body {
    font-size: 12px;

}
span {
    font-weight: 400;
}

.page-wrapper.compact-wrapper .page-body-wrapper .page-body {
    padding-top: 20px;
    padding-bottom: 20px;
    margin-left: 220px;
}

.page-wrapper .page-body-wrapper .page-header .breadcrumb li {
    color: #717171;
    font-size: 11px;
    letter-spacing: 0;
    font-weight: 500;
}

.page-wrapper .page-body-wrapper .page-header {
    padding-bottom: 15px;
}

  .page-wrapper .page-body-wrapper .page-body {
    /* app-shell : le contenu remplit le viewport sous le header et scrolle EN INTERNE
       (la fenêtre ne scrolle plus ; header + sidebar fixes restent en place). */
    height: calc(100vh - 62px);
    margin-top: 62px;
    padding: 0 15px 0 15px;
    position: relative;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-transition: margin-left .26s cubic-bezier(.4,0,.2,1);
    transition: margin-left .26s cubic-bezier(.4,0,.2,1);
    background-color: #f5f6fa; }  /* fond gris = base ; les cards blanches ressortent dessus (fini le blanc-sur-blanc) */

.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav {
    position: fixed;
    border-bottom: none;
    top: 62px;
    z-index: 8;
    height: calc(100vh - 62px);
    line-height: inherit;
    background: #fff;
    border-right: 1px solid #e6edef;
    width: 220px;
    text-align: left;
    -webkit-transition: width 0.26s cubic-bezier(.4,0,.2,1), left 0.3s ease;
    transition: width 0.26s cubic-bezier(.4,0,.2,1), left 0.3s ease;
}




.page-main-header .main-header-right .main-header-left {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    width: 220px;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0 14px;
    border-right: 1px solid #e6edef;
    -webkit-transition: width 0.26s cubic-bezier(.4,0,.2,1);
    transition: width 0.26s cubic-bezier(.4,0,.2,1);
}

footer {
    background-color: #fff;
    -webkit-box-shadow: 0 0 20px 16px rgb(4 122 251 / 4%);
    box-shadow: 0 0 20px 16px rgb(4 122 251 / 4%);
    padding: 15px;
    padding-top: 15px;
    padding-right: 15px;
    padding-bottom: 15px;
    padding-left: 15px;
    bottom: 0;
    left: 0;
    margin-left: 220px;
}


.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user {
    padding: 1rem 10px 10px;   /* padding-top 1rem : espace au-dessus du bloc profil */
    position: relative;
    border-bottom: 1px solid #e6edef;
    margin-bottom: 10px;
}

.card .card-body {
    padding: 10px;
    background-color: transparent;
}

.social-tab {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    padding-top: 2px;
    padding-right: 20px;
    padding-bottom: 2px;
    padding-left: 20px;
}

.card {
    margin-bottom: 30px;
    border: 1px solid #e6edef;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    letter-spacing: 0.5px;
    border-radius: 5px;
    background-color: #ffffff;
}

.bookmarkll {
    text-align: left;
}


.card {
    margin-bottom: 5px;
    border: 1px solid #e6edef;
    -webkit-transition: all 0.3s ease;
    transition: all 0.3s ease;
    letter-spacing: 0.5px;
    border-radius: 5px;
    background-color: #ffffff;
}



.bookmarkl {
  text-align: left; }
  .bookmarkl ul li {
    border: 1px solid #e6edef;
    background-color: #fff;
    display: inline-block;
    border-radius: 8px;
    -webkit-transition: all 0.5s ease;
    transition: all 0.5s ease; }
    .bookmarkl ul li svg {
      -webkit-transition: all 0.5s ease;
      transition: all 0.5s ease; }
    .bookmarkl ul li:hover {
      background-color: #168eea; }
      .bookmarkl ul li:hover a svg {
        color: #fff;
        stroke: #fff; }
    .bookmarkl ul li .search-form {
      position: absolute;
      bottom: 53px; }
      .bookmarkl ul li .search-form .form-control-search {
        top: 60px;
        position: absolute;
        -webkit-transition: all linear 0.3s;
        transition: all linear 0.3s;
        right: -20px;
        -webkit-transform: translateY(-35px) scaleY(0);
                transform: translateY(-35px) scaleY(0);
        opacity: 0;
        visibility: hidden; }
        .bookmarkl ul li .search-form .form-control-search input {
          width: 285px;
          background-color: #fff;
          border: 1px solid #e6edef; }
        .bookmarkl ul li .search-form .form-control-search.open {
          -webkit-transform: translateY(0px) scaleY(1);
                  transform: translateY(0px) scaleY(1);
          opacity: 1;
          visibility: visible;
          -webkit-transition: all linear 0.3s;
          transition: all linear 0.3s;
          z-index: 100; }
        .bookmarkl ul li .search-form .form-control-search:after {
          top: 12px;
          left: 20px;
          z-index: 1; }
        .bookmarkl ul li .search-form .form-control-search:before {
          left: 50px;
          top: 9px;
          z-index: 2; }
    .bookmarkl ul li a {
      position: relative;
      color: #242934; }
      .bookmarkl ul li a svg {
        vertical-align: middle;
        height: 24px;
        width: 24px;
        margin: 12px; }
    .bookmarkl ul li:nth-child(n+2) {
      margin-left: 8px; }
    .bookmarkl ul li:last-child {
      padding-right: 0;
      color: #168eea; }
      .bookmarkl ul li:last-child a {
        border-radius: 5px; }
        .bookmarkl ul li:last-child a svg {
          color: #168eea; }

.offcanvas-bookmarkl.page-wrapper.horizontal-wrapper .page-body-wrapper .page-body .bookmarkl ul li a {
  z-index: 99999;
  color: rgba(255, 255, 255, 0.5); }

.offcanvas-bookmarkl:before {
  position: fixed;
  content: '';
  background-color: rgba(0, 0, 0, 0.5);
  height: 100%;
  width: 100%;
  z-index: 99;
  right: 0;
  left: 0; }



.hk-sec-wrapper {
    background: #fff;
    padding: 1.5rem;
    border-radius: .25rem;
    margin-bottom: 14px;
}
.hk-sec-wrapper .hk-sec-title {
    display: block;
    margin-bottom: 10px;
}
.mb-40 {
    margin-bottom: 40px !important;
}
.mr-10 {
    margin-right: 10px !important;
}
.avatar {
    font-size: 1rem;
    position: relative;
    display: inline-block;
    width: 3.875rem;
    height: 3.875rem;
}

.avatar.avatar-xl {
    font-size: 1.70833rem;
    width: 5.125rem;
    height: 5.125rem;
}

.avatar.avatar-lg {
    font-size: 1.4rem;
    width: 4.5rem;
    height: 4.5rem;
}

.avatar.avatar-md {
    font-size: .95rem;
    width: 3.25rem;
    height: 3.25rem;
}

.avatar.avatar-sm {
    font-size: .9rem;
    width: 2.625rem;
    height: 2.625rem;
}

.avatar.avatar-xs {
    font-size: .6rem;
    width: 2rem;
    height: 2rem;
}

.avatar .avatar-img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
}

.avatar .avatar-text {
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
    text-transform: uppercase;
    overflow: hidden;
    background: #fff;
    font-weight: 600;
    color: #00acf0;
}

.avatar .avatar-text .initial-wrap {
    display: table;
    width: 100%;
    height: 100%;
}

.avatar .avatar-text .initial-wrap > span {
    position: relative;
    display: table-cell;
    vertical-align: middle;
    text-align: center;
}

.avatar .avatar-text:before {
    content: "";
    position: absolute;
    height: 100%;
    width: 100%;
    left: 0;
    top: 0;
    background: rgba(178, 230, 250, 0.5);
}

.avatar .avatar-text.avatar-text-cyan,
.avatar .avatar-text.avatar-text-info {
    color: #1ebccd;
}

.avatar .avatar-text.avatar-text-cyan:before,
.avatar .avatar-text.avatar-text-info:before {
    background: rgba(187, 235, 240, 0.5);
}

.avatar .avatar-text.avatar-text-light {
    color: #6f7a7f;
}

.avatar .avatar-text.avatar-text-light:before {
    background: rgba(173, 179, 182, 0.5);
}

.avatar .avatar-text.avatar-text-dark {
    color: #fff;
}

.avatar .avatar-text.avatar-text-dark:before {
    background: #324148 !important;
}

.avatar .avatar-text.avatar-text-sky,
.avatar .avatar-text.avatar-text-primary {
    color: #00acf0;
}

.avatar .avatar-text.avatar-text-sky:before,
.avatar .avatar-text.avatar-text-primary:before {
    background: rgba(178, 230, 250, 0.5);
}

.avatar .avatar-text.avatar-text-green,
.avatar .avatar-text.avatar-text-success {
    color: #22af47;
}

.avatar .avatar-text.avatar-text-green:before,
.avatar .avatar-text.avatar-text-success:before {
    background: rgba(188, 231, 199, 0.5);
}

.avatar .avatar-text.avatar-text-red,
.avatar .avatar-text.avatar-text-danger {
    color: #f83f37;
}

.avatar .avatar-text.avatar-text-red:before,
.avatar .avatar-text.avatar-text-danger:before {
    background: rgba(253, 197, 195, 0.5);
}

.avatar .avatar-text.avatar-text-yellow,
.avatar .avatar-text.avatar-text-warning {
    color: #ffbf36;
}

.avatar .avatar-text.avatar-text-yellow:before,
.avatar .avatar-text.avatar-text-warning:before {
    background: rgba(255, 236, 194, 0.5);
}

.avatar .avatar-text.avatar-text-pink {
    color: #ed1b60;
}

.avatar .avatar-text.avatar-text-pink:before {
    background: rgba(250, 186, 207, 0.5);
}

.avatar .avatar-text.avatar-text-purple {
    color: #ab26aa;
}

.avatar .avatar-text.avatar-text-purple:before {
    background: rgba(230, 189, 229, 0.5);
}

.avatar .avatar-text.avatar-text-violet {
    color: #6640b2;
}

.avatar .avatar-text.avatar-text-violet:before {
    background: rgba(209, 197, 232, 0.5);
}

.avatar .avatar-text.avatar-text-indigo {
    color: #3a55b1;
}

.avatar .avatar-text.avatar-text-indigo:before {
    background: rgba(196, 204, 231, 0.5);
}

.avatar .avatar-text.avatar-text-blue {
    color: #0092ee;
}

.avatar .avatar-text.avatar-text-blue:before {
    background: rgba(178, 222, 250, 0.5);
}

.avatar .avatar-text.avatar-text-teal {
    color: #009b84;
}

.avatar .avatar-text.avatar-text-teal:before {
    background: rgba(178, 225, 218, 0.5);
}

.avatar .avatar-text.avatar-text-neon {
    color: #88c241;
}

.avatar .avatar-text.avatar-text-neon:before {
    background: rgba(219, 237, 198, 0.5);
}

.avatar .avatar-text.avatar-text-lime {
    color: #d0d962;
}

.avatar .avatar-text.avatar-text-lime:before {
    background: rgba(241, 244, 208, 0.5);
}

.avatar .avatar-text.avatar-text-sun {
    color: #fde335;
}

.avatar .avatar-text.avatar-text-sun:before {
    background: rgba(254, 247, 194, 0.5);
}

.avatar .avatar-text.avatar-text-orange {
    color: #ff9528;
}

.avatar .avatar-text.avatar-text-orange:before {
    background: rgba(255, 223, 190, 0.5);
}

.avatar .avatar-text.avatar-text-pumpkin {
    color: #ff6028;
}

.avatar .avatar-text.avatar-text-pumpkin:before {
    background: rgba(255, 207, 190, 0.5);
}

.avatar .avatar-text.avatar-text-brown {
    color: #7a5449;
}

.avatar .avatar-text.avatar-text-brown:before {
    background: rgba(215, 203, 200, 0.5);
}

.avatar .avatar-text.avatar-text-gold {
    color: #c1993f;
}

.avatar .avatar-text.avatar-text-gold:before {
    background: rgba(236, 224, 197, 0.5);
}

.avatar .avatar-text.avatar-text-grey,
.avatar .avatar-text.avatar-text-secondary {
    color: #9e9e9e;
}

.avatar .avatar-text.avatar-text-grey:before,
.avatar .avatar-text.avatar-text-secondary:before {
    background: rgba(226, 226, 226, 0.5);
}

.avatar .avatar-text.avatar-text-inv-cyan,
.avatar .avatar-text.avatar-text-inv-info {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-cyan:before,
.avatar .avatar-text.avatar-text-inv-info:before {
    background-color: #1ebccd !important;
}

.avatar .avatar-text.avatar-text-inv-sky,
.avatar .avatar-text.avatar-text-inv-primary {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-sky:before,
.avatar .avatar-text.avatar-text-inv-primary:before {
    background-color: #00acf0 !important;
}

.avatar .avatar-text.avatar-text-inv-green,
.avatar .avatar-text.avatar-text-inv-success {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-green:before,
.avatar .avatar-text.avatar-text-inv-success:before {
    background-color: #22af47 !important;
}

.avatar .avatar-text.avatar-text-inv-red,
.avatar .avatar-text.avatar-text-inv-danger {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-red:before,
.avatar .avatar-text.avatar-text-inv-danger:before {
    background-color: #f83f37 !important;
}

.avatar .avatar-text.avatar-text-inv-yellow,
.avatar .avatar-text.avatar-text-inv-warning {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-yellow:before,
.avatar .avatar-text.avatar-text-inv-warning:before {
    background-color: #ffbf36 !important;
}

.avatar .avatar-text.avatar-text-inv-pink {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-pink:before {
    background-color: #ed1b60 !important;
}

.avatar .avatar-text.avatar-text-inv-purple {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-purple:before {
    background-color: #ab26aa !important;
}

.avatar .avatar-text.avatar-text-inv-violet {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-violet:before {
    background-color: #6640b2 !important;
}

.avatar .avatar-text.avatar-text-inv-indigo {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-indigo:before {
    background-color: #3a55b1 !important;
}

.avatar .avatar-text.avatar-text-inv-blue {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-blue:before {
    background-color: #0092ee !important;
}

.avatar .avatar-text.avatar-text-inv-teal {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-teal:before {
    background-color: #009b84 !important;
}

.avatar .avatar-text.avatar-text-inv-neon {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-neon:before {
    background-color: #88c241 !important;
}

.avatar .avatar-text.avatar-text-inv-lime {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-lime:before {
    background-color: #d0d962 !important;
}

.avatar .avatar-text.avatar-text-inv-sun {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-sun:before {
    background-color: #fde335 !important;
}

.avatar .avatar-text.avatar-text-inv-orange {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-orange:before {
    background-color: #ff9528 !important;
}

.avatar .avatar-text.avatar-text-inv-pumpkin {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-pumpkin:before {
    background-color: #ff6028 !important;
}

.avatar .avatar-text.avatar-text-inv-brown {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-brown:before {
    background-color: #7a5449 !important;
}

.avatar .avatar-text.avatar-text-inv-gold {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-gold:before {
    background-color: #c1993f !important;
}

.avatar .avatar-text.avatar-text-inv-grey,
.avatar .avatar-text.avatar-text-inv-secondary {
    color: #fff;
}

.avatar .avatar-text.avatar-text-inv-grey:before,
.avatar .avatar-text.avatar-text-inv-secondary:before {
    background-color: #9e9e9e !important;
}

.avatar-group {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
}

.avatar-group .avatar {
    font-size: .9rem;
    width: 2.625rem;
    height: 2.625rem;
}

.avatar-group .avatar .avatar-img,
.avatar-group .avatar .avatar-text {
    border: 2px solid #fff;
}

.avatar-group.avatar-group-overlapped .avatar {
    margin-right: -13px;
}

.avatar-group.avatar-group-overlapped .avatar:hover {
    z-index: 1;
}

.avatar-group.avatar-group-lg .avatar {
    font-size: .95rem;
    width: 3.25rem;
    height: 3.25rem;
}

.avatar-group.avatar-group-lg.avatar-group-overlapped .avatar {
    margin-right: -15px;
}

.avatar-group.avatar-group-sm .avatar {
    font-size: .6rem;
    width: 2rem;
    height: 2rem;
}

.avatar-group.avatar-group-sm.avatar-group-overlapped .avatar {
    margin-right: -10px;
}

 .page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .sidebar-user img {
        border:1px ; }




.fa-m1 {
    font-size: 1.5em;
}        


.form-control, .form-select {
    background-color:#fff;
    font-size:13px;
    border:1px solid #d4e0e5;
    border-radius:8px;
    color:#364a63;
    font-weight:500;
    padding:8px 14px;
    min-height:40px;
    transition:border-color .15s ease,box-shadow .15s ease;
    box-shadow:none;
}
.form-control:focus, .form-select:focus {
    border-color:#b9cdf5;
    box-shadow:0 0 0 3px rgba(44,111,239,.12);
    color:#1f2937;
}
.form-control::placeholder { color:#b6c0d4; font-weight:400; }
.form-control[readonly] { background:#f8fafc; cursor:default; }
.form-control[type="color"] { min-height:40px; padding:4px 6px; cursor:pointer; }
textarea.form-control { min-height:90px; resize:vertical; }
select.form-select { background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238094ae' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"); background-size:14px 12px; background-position:right 12px center; padding-right:36px; appearance:none; -webkit-appearance:none; -moz-appearance:none; }
.form-select[multiple] { background-image:none; padding-right:14px; min-height:90px; }
.form-select:disabled { background-color:#f1f4f8; cursor:not-allowed; }
.form-label { font-size:12px; font-weight:600; color:#52637a; margin-bottom:4px; }

.form-group { margin-bottom: 0; }
.form-control-wrap { position: relative; }
.form-control-select { position: relative; }

/* ===== Sidebar : le menu remplit EXACTEMENT la hauteur restante sous le bloc profil =====
   Ancien procédé (height: calc(100vh - 155px)) = nombre magique calé sur l'ancien petit profil.
   Depuis que le profil est une "card" (~173px), 155 était trop petit → le bas du menu passait
   sous le viewport (derniers items coupés). On passe la chaîne main-nav > nav > main-navbar >
   #mainnav > nav-menu en flex colonne : le menu prend tout l'espace disponible, quelle que soit
   la hauteur du profil (auditeur = profil plus court, s'adapte tout seul). */
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav {
    display: flex !important;
    flex-direction: column;
}
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav > nav,
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar,
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav #mainnav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column;
}
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav .main-navbar .nav-menu {
    border-radius: 0;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    height: auto !important;   /* plus de hauteur fixe : le flex borne le menu au bas du viewport */
    left: -300px;
    z-index: 99;
    -webkit-transition: color 1s ease;
    transition: color 1s ease;
    overflow: hidden;
    overflow-y: auto;
    color: rgba(0, 0, 0, 0);
    padding-top: 16px;      /* respire en haut ET en bas quand le menu scrolle (items pas collés aux bords) */
    padding-bottom: 16px;
}


/* HTML: <div class="loader"></div> */
.loader {
  width: 20px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #000;
  box-shadow: 0 0 0 0 #0004;
  animation: l2 1.5s infinite linear;
  position: relative;
}
.loader:before,
.loader:after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: 0 0 0 0 #0004;
  animation: inherit;
  animation-delay: -0.5s;
}
.loader:after {
  animation-delay: -1s;
}
@keyframes l2 {
    100% {box-shadow: 0 0 0 40px #0000}
}




      .context-menu {
            display: none;
            position: absolute;
            background-color: #f9f9f9;
            border: 1px solid #ccc;
            min-width: 120px;
            box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
        }
        .context-menu-item {
            padding: 8px 12px;
            cursor: pointer;
        }



.jodit .jodit-workplace,.jodit-container .jodit-workplace {
    overflow: auto;
    position: relative;
    height: 400px;
}        


.btn-primary2 {
  background-color: #4195d5 !important;
  border-color: #4195d5 !important; }
.btn-primary2.disabled, .btn-primary2:disabled {
    background-color: #4195d5 !important;
    border-color: #4195d5 !important; }
.btn-primary2:focus {
    -webkit-box-shadow: 0 0 0 0.2rem #a2d2f7;
    box-shadow: 0 0 0 0.2rem #a2d2f7; }

.table th, .table td {
    padding: 6px;
}            

.sticky-header thead {
    position: sticky;
    top: 0;
    background-color: #ffffff; /* Tu peux changer la couleur selon tes préférences */
    z-index:2;

}


.needs-validation label {
    opacity: 0.7;
    margin-bottom: 1px;
}



.btn-success {
  background-color: #10bf20 !important;
  border-color: #10bf20 !important; }
  .btn-success.disabled, .btn-success:disabled {
    background-color: #1b4c43 !important;
    border-color: #1b4c43 !important; }
  .btn-success:focus {
    -webkit-box-shadow: 0 0 0 0.2rem #44bca6;
            box-shadow: 0 0 0 0.2rem #44bca6; }



.text-success {
    color: #17A51B !important;
}            

/* Champ requis : petit astérisque sur le libellé (convention claire et discrète), au lieu de
   l'ancienne bordure rouge globale qui « allumait » tout le formulaire. Les champs eux-mêmes
   gardent leur style neutre ; les champs requis en lecture seule ne sont pas marqués. */
.form-label:has(+ input:required:not([readonly]))::after,
.form-label:has(+ select:required:not([readonly]))::after,
.form-label:has(+ textarea:required:not([readonly]))::after,
.form-label:has(+ .form-control-wrap :required:not([readonly]))::after {
  content: " *";
  color: #d83b3b;
  font-weight: 700;
  margin-left: 1px;
}

.accordion-body {
  padding: 0.5rem 0.25rem; }


  .resizer {
  display: inline-block;
      width: 5px;
      height: 100%;
      position: absolute;
      right: 0;
      top: 0;
      cursor: ew-resize;
}


    /* Style pour la petite fenêtre centrée */
    .info-window {
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      padding: 20px;
      background-color: white;
      border: 1px solid #ccc;
      box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
      display: none; /* Par défaut, on cache la fenêtre */
      z-index: 1000; /* S'assurer que la fenêtre est au-dessus du contenu */
      width: 300px;
      text-align: center;
    }

      .small-feather-icon {
    width: 8px;
    height: 10px;
  }


/* Bootstrap tooltips (étapes icons) */
.tooltip-inner {
    background-color: #2c3e50;
    border-radius: 6px;
    padding: 5px 12px;
    font-size: 12px;
    box-shadow: 0 3px 10px rgba(0,0,0,.3);
}
.bs-tooltip-top    .tooltip-arrow::before { border-top-color:    #2c3e50; }
.bs-tooltip-bottom .tooltip-arrow::before { border-bottom-color: #2c3e50; }
.bs-tooltip-start  .tooltip-arrow::before { border-left-color:   #2c3e50; }
.bs-tooltip-end    .tooltip-arrow::before { border-right-color:  #2c3e50; }

.tooltip { pointer-events: none !important; }

/* Custom tooltip (data-tip / .tooltip-trigger) */
.mm3tip {
    display: none;
    position: fixed;
    z-index: 9999;
    background-color: #2c3e50;
    color: #fff;
    padding: 5px 12px;
    border-radius: 6px;
    font-size: 12px;
    white-space: nowrap;
    pointer-events: none;
    box-shadow: 0 3px 10px rgba(0,0,0,.3);
}
.mm3tip.tooltip-visible { display: block; }


.text-secondary {
    color: #9c9e9f !important;
}


.page-main-header .main-header-right .nav-right .bookmark-dropdown {
    width: 300px;
    top: 50px;
    left: unset;
    right: 0;
    border-radius: 8px;
    padding: 15px;
    background-color: aliceblue;
}



#pdfContainer {
    position: relative; /* Permet de positionner le menu en relatif */
    overflow: auto; /* Active le scroll interne */
/*    background-color: red;
*/}
#pdfCanvas {
    display: block;
    width: 100%;
    height: auto;
    z-index: 1; /* S'assure que le canvas est SOUS le menu */
    position: relative; /* Permet au z-index de fonctionner */
}

        #iframeContainer {
    transform-origin: top left; /* Pour centrer le zoom */
    transition: transform 0.2s; /* Transition douce */
        transform: scale(0.5); /* Échelle réduite par défaut */
            display: none;

}

#navButtons {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    font-family: Arial, sans-serif;
}


#navButtons button {
    background-color: #007BFF;
    color: white;
    border: none;
    padding: 10px 15px;
    font-size: 15px;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease, transform 0.5s ease; /* Ajout de la transition de rotation */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
}

#navButtons button i {
    font-size: 14px;
}

#navButtons button:hover {
    background-color: #0056b3;
}

#navButtons button:active {
    transform: rotate(360deg); /* Effet de rotation quand le bouton est cliqué */
}
#pageInfo {
    font-size: 16px;
    color: #333;
}
#pageInfo {
    font-size: 12px; /* Réduction de la taille du texte */
    color: #666;
    font-family: Arial, sans-serif;
}

.disabled {
  pointer-events: none;  /* Désactive le lien */
  opacity: 0.3;  /* Optionnel : le rend visuellement désactivé */
}

/* Le menu flottant */
/* ── Barre de navigation PDF flottante (pill translucide moderne) ── */
#pdfMenu {
    position: absolute;
    top: 12px;
    right: 12px;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 5px 6px;
    background: rgba(255,255,255,.9);
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    border: 1px solid #e6edef;
    border-radius: 12px;
    box-shadow: 0 6px 18px rgba(43,55,72,.14);
    z-index: 1000;
}
/* markup historique en <ul><li> : neutralisé pour que le flex s'applique quand même */
#pdfMenu ul { display: contents; list-style: none; margin: 0; padding: 0; }
#pdfMenu li { display: contents; }
/* Compteur de page (chip) */
#pdfMenu #page_inf {
    display: inline-flex; align-items: center; gap: 4px;
    height: 32px; padding: 0 11px; margin-right: 2px;
    font-size: 13px; font-weight: 600; color: #364a63;
    background: #f2f5fa; border-radius: 8px; white-space: nowrap;
}
#pdfMenu #page_cur { color: #2c6fef; font-weight: 700; }
#pdfMenu .pdfnav-sep { color: #c4cdda; margin: 0 1px; }
/* Boutons ronds */
#pdfMenu a {
    display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: 8px;
    font-size: 14px; color: #5a6b85; text-decoration: none;
    transition: background .12s ease, color .12s ease;
}
#pdfMenu a:hover { background: #e7efff; color: #2c6fef; }
#pdfMenu a#bt_text:hover { background: #e4f7ee; color: #0fae83; }

/* Le canvas du PDF */
#pdfCanvas {
    display: block; /* Supprime l’espace blanc sous le canvas */
    width: 100%; /* Prend toute la largeur du container */
    height: auto; /* Garde les proportions */
}




.overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.6);
  display: none;
  z-index: 999;
}

.info-window {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: white;
  padding: 1rem 2rem;
  border-radius: 10px;
  box-shadow: 0 0 15px rgba(0,0,0,0.4);
  display: none;
  z-index: 1000;

  max-height: 80vh;
  overflow-y: auto;

  width: 50vw;           /* Largeur relative à la fenêtre (viewport) */
  max-width: 900px;      /* Largeur maximale pour très grands écrans */
}

#affiche_dossier {
    margin-top: 2rem;
}

.ag-header-cell, .ag-header-cell-label {
    font-size: 11px !important;
    line-height: 1.2;
    padding-top: 2px;
    padding-bottom: 2px;
}
/* ----- Titre de section dans un formulaire (blocs Client / Véhicule) — style dashboard ----- */
.mm-formsection { margin-top:18px; padding-top:14px; border-top:1px solid #eef0f4;
                  font-size:12px; font-weight:700; letter-spacing:.4px; text-transform:uppercase;
                  color:#8094ae; display:flex; align-items:center; gap:8px; }
.mm-formsection i { font-size:14px; }

/* ===================== Kanban (datas/analyse + widget accueil) ===================== */
/* Couleur d'accent par colonne passée en inline : style="--mmk-c:#xxxxxx" */
/* Barre de choix (Type de dossier / Modèle Kanban) : carte à part entière (padding + marge).
   Classe dédiée (pas .mm-panel) pour échapper à `.mm-subpage .mm-panel:not(.mm-dt-filters){padding:0}`. */
.mmk-pickbar     { background:#fff; border:1px solid #eceff4; border-radius:12px; box-shadow:0 1px 3px rgba(43,55,72,.05); padding:16px 18px; margin-bottom:14px; }
.mmk-scroll      { width:100%; max-width:100%; overflow-x:auto; padding-bottom:6px; }
/* Jusqu'à 5 colonnes : le board remplit la largeur, les colonnes se partagent l'espace -> pas de scroll. */
.mmk-board       { display:flex; gap:14px; align-items:stretch; width:100%; }
.mmk-col         { flex:1 1 0; min-width:0; max-height:480px; display:flex; flex-direction:column;
                   background:#fbfcfe; border:1px solid #eef0f4; border-top:3px solid var(--mmk-c,#94a3b8); border-radius:12px; }
/* À partir de 6 colonnes : largeur mini réactivée -> le board déborde -> scroll horizontal (.mmk-scroll). */
.mmk-board:has(> .mmk-col:nth-child(6))          { width:max-content; min-width:100%; }
.mmk-board:has(> .mmk-col:nth-child(6)) .mmk-col { flex:1 1 260px; min-width:260px; }
/* Page Analyse : les colonnes se DIMENSIONNENT à leur contenu (flex-start, pas étirées plein
   écran → fini les colonnes hautes quasi vides), plafonnées à la hauteur du viewport → scroll
   interne pour les colonnes longues. L'accueil (#mmk_board_accueil) garde sa taille fixe (480px). */
#mmk_board_analyse .mmk-board { -webkit-box-align:start; -ms-flex-align:start; align-items:flex-start; }
#mmk_board_analyse .mmk-col   { max-height:calc(100vh - 210px); }
/* Padding régulier & aligné : l'en-tête et le corps partagent le MÊME retrait horizontal (16px)
   → les cartes s'alignent pile sous le titre ; le corps a un padding-top → les cartes ne collent
   plus à l'en-tête. Cartes = vraies cards (padding confortable, gap régulier). */
.mmk-col-head    { flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 16px 11px; }
.mmk-col-title   { font-weight:700; font-size:12px; color:#3a4a63; letter-spacing:.4px; text-transform:uppercase; }
.mmk-col-count   { background:var(--mmk-c,#94a3b8); color:#fff; border-radius:20px; padding:2px 9px;
                   font-size:11.5px; font-weight:700; min-width:22px; text-align:center; line-height:1.4; }
.mmk-col-body    { flex:1 1 auto; min-height:0; overflow-y:auto; padding:5px 16px 16px; display:flex; flex-direction:column; gap:10px; }
.mmk-empty       { color:#aeb8c8; font-size:12.5px; text-align:center; padding:22px 8px; }
.mmk-card        { display:block; background:#fff; border:1px solid #e6eaf1; border-radius:10px; padding:12px 14px;
                   text-decoration:none; color:#1f2937; box-shadow:0 1px 2px rgba(43,55,72,.03);
                   transition:border-color .12s ease, box-shadow .12s ease, transform .12s ease; }
.mmk-card:hover  { border-color:#cdd8ea; box-shadow:0 3px 10px rgba(43,55,72,.09); transform:translateY(-1px); }
.mmk-card-code   { font-size:11px; color:#8b99b0; margin-bottom:3px; letter-spacing:.3px; font-weight:600; }
.mmk-card-title  { font-weight:600; font-size:13.5px; color:#26313f; line-height:1.35; }
.mmk-scrollhint  { flex:0 0 auto; text-align:center; font-size:11px; color:#a3adbf; padding:6px; border-top:1px solid #eef0f4; }
.mmk-filterwrap  { margin-bottom:8px; }

/* ===================== Tableau de bord accueil (design system .mm-*) ===================== */
/* Pas de min-height:100vh ici : .mm-dash vit DANS .page-body, qui fait déjà calc(100vh - 76px)
   + 20px de padding haut/bas. Un 100vh y ajoutait ~102px de trop → .page-body affichait sa propre
   barre de défilement EN PLUS de celle du tableau. Le fond étant transparent, rien n'en dépend. */
.mm-dash { background:transparent; }  /* fond = page-body gris ; mm-dash transparent (fini le fond dans le fond) */
.mm-dash .mm-panel { height:auto; }
.mm-dash a { text-decoration:none; }
.mm-dash .mm-section { font-size:12px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:#8094ae; margin:22px 2px 12px; display:flex; align-items:center; gap:8px; }
.mm-dash .mm-section:first-of-type { margin-top:6px; }
/* Sections pliables du tableau de bord (chevron visible + état mémorisé) */
.mm-dash .mm-sec-toggle { cursor:pointer; }
.mm-dash .mm-sec-toggle:hover { color:#5b6b85; }
.mm-sec-chevron { margin-left:auto; display:inline-flex; align-items:center; color:#8094ae; transition:transform .15s ease; }
.mm-dash .mm-sec-toggle:hover .mm-sec-chevron { color:#5b6b85; }
.mm-sec-toggle.mm-collapsed .mm-sec-chevron { transform:rotate(-90deg); }
.mm-dash .card { border:none; border-radius:12px; box-shadow:0 1px 3px rgba(43,55,72,.08); }
.mm-stat { position:relative; display:flex; align-items:center; gap:14px; background:#fff; border-radius:12px; padding:16px 18px; box-shadow:0 1px 3px rgba(43,55,72,.08); height:100%; transition:box-shadow .15s ease; }
.mm-stat:hover { box-shadow:0 2px 8px rgba(43,55,72,.08); }
.mm-stat-ic { flex:0 0 48px; width:48px; height:48px; border-radius:14px; display:flex; align-items:center; justify-content:center; background:var(--cbg,#eef2ff); color:var(--c,#2c6fef); }
.mm-stat-ic svg { width:22px; height:22px; stroke-width:2.2; }
.mm-stat-body { min-width:0; }
.mm-stat-label { font-size:11px; text-transform:uppercase; letter-spacing:.4px; color:#8094ae; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mm-stat-value { font-size:22px; font-weight:700; color:#1f2937; line-height:1.15; }
.mm-stat-value a { color:inherit; }
/* Ligne d'appoint sous la valeur d'une tuile (ex. boîte relevée par « Récupérer les mails ») */
.mm-stat-note { font-size:11px; color:#8094ae; margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mm-stat-note--warn { color:#e6a100; font-weight:600; }
.mm-stat-sub { display:flex; gap:16px; margin-top:3px; }
.mm-stat-sub .n { font-size:19px; font-weight:700; line-height:1; }
.mm-stat-sub .l { font-size:10px; color:#8094ae; text-transform:uppercase; letter-spacing:.3px; }
.mm-panel { background:#fff; border-radius:12px; box-shadow:0 1px 3px rgba(43,55,72,.08); padding:18px; }
.mm-panel-title { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:11px; font-size:13px; font-weight:700; color:#364a63; margin-bottom:14px; }
/* Icône du titre = pastille bleue douce (même langage que .mm-form-section / .mm-cardhead).
   feather.replace() transforme le <i data-feather> en <svg> → on habille les deux. */
.mm-panel-title > i { width:32px; height:32px; -webkit-box-flex:0; -ms-flex:0 0 32px; flex:0 0 32px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; border-radius:9px; background:#eaf2ff; color:#2c6fef; font-size:15px; }
.mm-panel-title > svg { width:32px; height:32px; -webkit-box-flex:0; -ms-flex:0 0 32px; flex:0 0 32px; -webkit-box-sizing:border-box; box-sizing:border-box; padding:7px; border-radius:9px; background:#eaf2ff; color:#2c6fef; stroke:#2c6fef; }
.mm-panel-title:has(> i), .mm-panel-title:has(> svg) { padding-bottom:12px; border-bottom:1px solid #eef1f6; }
/* Liens en liste dans une mm-panel (accueils admin/superadmin) */
.mm-panel ul { list-style:none; margin:0; padding:0; }
.mm-panel ul li { margin:0; }
.mm-panel ul li > a, .mm-panel .nav-link { display:block; padding:7px 4px; font-size:12.5px; color:#2c6fef; border-bottom:1px solid #f0f2f7; line-height:1.35; transition:background .12s ease, padding .12s ease; }
.mm-panel ul li > a:hover, .mm-panel .nav-link:hover { color:#1b57d6; background:#f7f9fc; padding-left:8px; border-radius:6px; }
.mm-panel ul li:last-child > a { border-bottom:none; }
.mm-panel hr { margin:7px 0; border:0; border-top:1px solid #eef1f6; }
/* Liste type changelog / infos clé-valeur dans une mm-panel */
.mm-panel ul.mm-versions li { display:flex; gap:12px; padding:9px 4px; border-bottom:1px solid #f0f2f7; font-size:12.5px; color:#4a5a70; line-height:1.4; }
.mm-panel ul.mm-versions li:last-child { border-bottom:none; }
.mm-panel ul.mm-versions .d { color:#8094ae; font-weight:600; white-space:nowrap; min-width:70px; }
.mm-chart-wrap { position:relative; height:250px; }
.mm-list { max-height:250px; overflow-y:auto; }
.mm-list table { width:100%; margin:0; }
.mm-list td { padding:8px 6px; border-bottom:1px solid #f0f2f7; font-size:13px; }
.mm-list tr:last-child td { border-bottom:none; }
.mm-list a { color:#2c6fef; }
.mm-list .dt { color:#8094ae; font-size:11px; white-space:nowrap; }

/* Empty state (placeholder « aucune donnée ») — graphes & listes du dashboard */
.mm-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:180px; padding:20px 16px; }
.mm-chart-wrap .mm-empty, .mm-list .mm-empty { min-height:150px; }
.mm-empty i, .mm-empty svg { font-size:36px; width:36px; height:36px; margin-bottom:10px; color:#cfd6e6; }
.mm-empty-txt { font-size:13px; font-weight:600; color:#8094ae; }
.mm-empty-sub { font-size:12px; color:#b6c0d4; margin-top:3px; max-width:250px; line-height:1.4; }
/* Page d'erreur générique (erreur/erreur) — carte moderne façon design system */
.mm-errwrap { display:flex; align-items:center; justify-content:center; padding:60px 16px; }
.mm-errbox { width:100%; max-width:460px; text-align:center; background:#fff; border:1px solid #f0e2e2; border-radius:14px; padding:34px 30px; box-shadow:0 1px 3px rgba(43,55,72,.08); }
.mm-errbox-ic { width:58px; height:58px; border-radius:16px; display:inline-flex; align-items:center; justify-content:center; background:#fdecec; color:#e0484d; font-size:25px; margin-bottom:18px; }
.mm-errbox-msg { font-size:14.5px; color:#3a4a63; line-height:1.55; margin:0 0 22px; }
.mm-errbox-msg b { color:#c0353a; }
.mm-errbox-reason { display:flex; gap:9px; align-items:flex-start; text-align:left; margin:0 0 22px; padding:11px 13px; border-radius:9px; background:#faf3f3; border:1px solid #f0e2e2; color:#8a5d60; font-size:12.5px; line-height:1.5; }
.mm-errbox-reason i { flex:0 0 auto; margin-top:2px; color:#c0757a; }
.mm-errbox-btn { display:inline-flex; align-items:center; gap:8px; padding:10px 22px; border-radius:10px; background:#e0484d; color:#fff; font-size:13px; font-weight:600; text-decoration:none; transition:background .12s ease; }
.mm-errbox-btn:hover { background:#c83b40; color:#fff; }
/* Variante SUCCÈS de la boîte d'état (page erreur/success legacy, ex. « mot de passe mis à jour ») */
.mm-errbox--ok { border-color:#e3efe2; }
.mm-errbox--ok .mm-errbox-ic { background:#e9f7e8; color:#54ba4a; }
.mm-errbox--ok .mm-errbox-btn { background:#54ba4a; }
.mm-errbox--ok .mm-errbox-btn:hover { background:#46a03d; }
.mm-brand { display:flex; align-items:center; gap:14px; margin-bottom:4px; }
.mm-brand img { max-height:46px; width:auto; }
.mm-dash .breadcrumb { background:transparent; padding:0; margin:0 0 10px; font-size:12px; }
.mm-dash .breadcrumb-item a { color:#8094ae; text-decoration:none; }
.mm-dash .breadcrumb-item a:hover { color:#364a63; }
.mm-dash .breadcrumb-item.active { color:#364a63; font-weight:600; }
.mm-dash .breadcrumb-item + .breadcrumb-item::before { color:#c4cdda; }
.mm-dash .breadcrumb .fa-home { margin-right:4px; }

/* ----- Kanban : barre de filtres intégrée (style mm/DashLite moderne, plus de look Bootstrap brut) ----- */
.mmk-filterwrap { margin-bottom:10px; display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; gap:8px; }
/* titre du kanban (ex-« Analyse simple », avant en cyan #2DC3E8 inline) */
.mmk-title { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:#5a6b85; margin:0; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:7px; }
.mmk-title::before { content:""; width:4px; height:14px; border-radius:3px; background:#2c6fef; display:inline-block; }
/* bouton « Filtres » (toggle) → doux façon .mm-fbtn (on force sur le thème vendor Cuba) */
.mmk-filterwrap > .btn-outline-primary,
.mmk-filterwrap > .btn-outline-primary:focus,
.mmk-filterwrap > .btn-outline-primary:active { -ms-flex-item-align:start; align-self:flex-start; border:1px solid #e6eaf0 !important; background:#fff !important; color:#5a6b85 !important; border-radius:9px !important; font-weight:600; font-size:12.5px; padding:8px 14px; -webkit-box-shadow:none !important; box-shadow:none !important; -webkit-transform:none !important; transform:none !important; -webkit-transition:.14s; transition:.14s; }
.mmk-filterwrap > .btn-outline-primary:hover { border-color:#cfe0fb !important; color:#2c6fef !important; background:#f4f8ff !important; }
.mmk-filterwrap > .btn-outline-primary::before, .mmk-filterwrap > .btn-outline-primary::after { display:none !important; }
.mmk-filterwrap > .btn-outline-primary .badge { background:#2c6fef !important; font-weight:600; }
/* panneau des filtres = carte blanche propre (remplace la .card Bootstrap brute) */
.mmk-filters { margin-top:0; }
.mmk-filters > form.card { border:1px solid #e9edf3 !important; border-radius:12px !important; -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04) !important; box-shadow:0 1px 2px rgba(20,40,80,.04) !important; background:#fff; padding:14px 16px !important; }
/* contrôles doux + arrondis */
.mmk-filters .form-select, .mmk-filters .form-control { height:40px; border-radius:8px; border:1px solid #e2e8f1; font-size:13px; color:#33425c; padding:8px 12px; background-color:#fff; }
.mmk-filters .form-select:focus, .mmk-filters .form-control:focus { border-color:#2c6fef; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.mmk-filter-label { font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.3px; color:#8094ae; margin-bottom:4px !important; }
/* ligne des boutons (Filtrer / Réinit) — sur sa propre ligne */
.mmk-btnrow { display:-webkit-box; display:flex; gap:8px; }
.mmk-filters .btn { border-radius:9px !important; font-weight:600; font-size:12.5px; padding:8px 16px; -webkit-box-shadow:none !important; box-shadow:none !important; }
/* bouton Filtrer : bleu mm + hover PROPRE (on tue l'ombre/overlay/lift du vendor Cuba) */
.mmk-filters .btn-primary,
.mmk-filters .btn-primary:focus,
.mmk-filters .btn-primary:active { background:#2c6fef !important; border-color:#2c6fef !important; color:#fff !important; -webkit-box-shadow:none !important; box-shadow:none !important; -webkit-transform:none !important; transform:none !important; }
.mmk-filters .btn-primary:hover { background:#1f5fd8 !important; border-color:#1f5fd8 !important; color:#fff !important; -webkit-box-shadow:none !important; box-shadow:none !important; -webkit-transform:none !important; transform:none !important; }
.mmk-filters .btn-primary::before, .mmk-filters .btn-primary::after { display:none !important; }
/* bouton Réinit : outline doux */
.mmk-filters .btn-outline-secondary,
.mmk-filters .btn-outline-secondary:focus { border:1px solid #e6eaf0 !important; color:#5a6b85 !important; background:#fff !important; -webkit-box-shadow:none !important; box-shadow:none !important; }
.mmk-filters .btn-outline-secondary:hover { background:#eef1f6 !important; color:#43536b !important; border-color:#e6eaf0 !important; }
.mmk-filters .btn-outline-secondary::before, .mmk-filters .btn-outline-secondary::after { display:none !important; }
/* recherche EN HAUT du panneau → pleine largeur */
.mmk-searchrow .mmk-search { max-width:none; width:100%; }
.mmk-search { height:40px; border-radius:8px; border:1px solid #e2e8f1; font-size:13px; padding:8px 12px; }
.mmk-search:focus { border-color:#2c6fef; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }

/* ===================== Toolbar + viewer génériques (design system .mm-*) =====================
   Réutilisables sur tout écran « barre d'actions + visualiseur + panneau » (messagerie, dossier…).
   Palette alignée sur le reste du DS : accent #2c6fef, cartes blanches radius 12, bordures #eef0f4. */
.mm-toolbar { position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:#fff; border-radius:12px; box-shadow:0 1px 3px rgba(43,55,72,.08); padding:8px 12px; margin-bottom:14px; }
.mm-toolbar-actions { display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.mm-toolbar-title { margin-left:auto; font-size:13px; font-weight:700; color:#364a63; white-space:nowrap; }
/* Bouton d'action générique (icône seule) */
.mm-tbtn { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:8px; color:#2c6fef; background:transparent; border:none; cursor:pointer; transition:background .12s ease, color .12s ease; }
.mm-tbtn:hover { background:#eef4ff; color:#1b57d6; }
.mm-tbtn.mm-tbtn-danger { color:#e85347; }
.mm-tbtn.mm-tbtn-danger:hover { background:#fbe6e4; }
.mm-tbtn svg { width:18px; height:18px; }
.mm-tbtn i { font-size:16px; }
.mm-tbtn.disabled { pointer-events:none; opacity:.35; }
.mm-tbtn-sep { display:inline-block; width:1px; height:22px; background:#e2e8f0; margin:0 4px; }
/* Bouton d'action AVEC libellé (largeur auto) + variantes CTA — même famille que .mm-tbtn */
.mm-tbtn-lbl { width:auto; padding:0 12px; height:34px; gap:6px; font-size:12px; font-weight:600; }
.mm-tbtn-lbl i { font-size:12px; }
.mm-tbtn-primary { background:#eaf1ff; }
.mm-tbtn-primary:hover { background:#dbe8ff; color:#1b57d6; }
/* Boutons pleins réutilisables (CTA) : .mm-btn + variante */
.mm-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:9px 18px; border-radius:9px; font-size:13px; font-weight:600; line-height:1; border:1px solid transparent; cursor:pointer; text-decoration:none; transition:background .12s ease, border-color .12s ease, color .12s ease; }
.mm-btn i { font-size:13px; }
.mm-btn-primary { background:#2c6fef; color:#fff; }
.mm-btn-primary:hover { background:#1b57d6; color:#fff; }
.mm-btn-primary:disabled, .mm-btn-primary.disabled { opacity:.5; cursor:not-allowed; }
.mm-btn-light { background:#f2f5fa; color:#5a6b85; border-color:#e6edef; }
.mm-btn-light:hover { background:#e9eef5; color:#364a63; }
.mm-btn-danger { background:#e0484d; color:#fff; }
.mm-btn-danger:hover { background:#c83b40; color:#fff; }
.mm-btn-sm { padding:6px 12px; font-size:12px; border-radius:8px; }
.mm-btn-sm i { font-size:12px; }

/* Formulaire d'alerte (alerte/fiche) : interrupteurs + bloc « autres destinataires » */
.mm-ale-toggles { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; flex-direction:column; gap:2px; }
.mm-ale-toggles .animate-chk { margin-top:0 !important; }
.mm-ale-extra { margin-top:18px; padding-top:16px; border-top:1px solid #eef1f6; }
.mm-ale-extra-head { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:justify; justify-content:space-between; font-size:12px; font-weight:600; color:#5a6b85; margin-bottom:10px; }
.mm-ale-users { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; flex-direction:column; gap:6px; }
.mm-ale-users:empty { display:none; }
.mm-ale-user { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; padding:7px 12px; background:#f6f8fc; border:1px solid #eef1f6; border-radius:8px; font-size:13px; color:#48566b; }
.mm-ale-user a { color:#c2455a; }
.mm-ale-user a:hover { color:#a12f42; }

/* Aperçu de l'avatar actuel sur la page « Photo de profil » */
.mm-avatar-current { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:14px; padding:14px 16px; margin-bottom:16px; border:1px solid #eef1f6; border-radius:12px; background:#fbfcfe; }
.mm-avatar-current img { width:56px !important; height:56px !important; border-radius:50% !important; -o-object-fit:cover; object-fit:cover; }
.mm-avatar-current-lbl { font-size:12px; font-weight:600; color:#8a94a6; }
.mm-avatar-drop img#avatarPreview { max-height:130px; border-radius:14px; }
/* Photo d'avatar : les .img-30/.img-100 du thème ne fixent QUE la largeur. Sur une photo non carrée
   (ex. 1920x1080), border-radius:50% donnait une ELLIPSE. On force le carré + recadrage centré. */
.mm-avatar-img { -o-object-fit:cover; object-fit:cover; border-radius:50%; display:inline-block; vertical-align:middle; }
.mm-avatar-img.img-30 { width:30px !important; height:30px !important; }
.mm-avatar-img.img-100 { width:100px !important; height:100px !important; }
.mm-tbtn-ia { background:#eef0ff; color:#4f46e5; }
.mm-tbtn-ia:hover { background:#e2e5ff; color:#4338ca; }
.mm-tbtn-success { background:#34a853; color:#fff; }
.mm-tbtn-success:hover { background:#2d9247; color:#fff; }
.mm-tbtn-muted { background:#fff; color:#5b6b85; border:1px solid #d7dde7; }
.mm-tbtn-muted:hover { background:#f4f6fa; color:#364a63; }
.mm-tbtn-ghost { background:#f4f6fa; color:#5b6b85; }
.mm-tbtn-ghost:hover { background:#e9edf3; color:#364a63; }
/* En-tête de page GÉNÉRIQUE (helper mm_pagehead) : fil d'ariane + titre + retour/actions */
.mm-pagehead { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.mm-pagehead-l { min-width:0; }
.mm-pagehead-title { font-size:18px; font-weight:700; color:#364a63; line-height:1.2; }
.mm-pagehead-bread { margin-top:3px; }
.mm-bread { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:0; padding:0; list-style:none; font-size:11px; }
.mm-bread li { color:#8094ae; }
.mm-bread li a { color:#8094ae; text-decoration:none; }
.mm-bread li a:hover { color:#364a63; }
.mm-bread li:not(:first-child)::before { content:'/'; margin-right:6px; color:#c4cdda; }
.mm-bread li.active { color:#364a63; font-weight:600; }
.mm-pagehead-r { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.mm-pagehead-back { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:8px; color:#2c6fef; background:#fff; border:1px solid #e6edef; transition:background .12s ease; }
.mm-pagehead-back:hover { background:#eef4ff; color:#1b57d6; }

/* ── Structure dossier (get_message_dossier) : zones de dépôt par étape ──
   Statut : ok (déposé/vert) · ko (obligatoire manquant/rouge) · opt (optionnel/gris) · is-sel (zone ciblée). */
.mm-struct { max-height:60vh; overflow-y:auto; padding:2px 2px 6px; }
.mm-struct-etape { margin-bottom:14px; }
.mm-struct-etape-hd { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8094ae; padding:4px 6px; border-bottom:1px solid #e6edef; margin-bottom:5px; }
.mm-struct-doc { display:flex; align-items:center; gap:9px; padding:7px 10px; margin:4px 0; border-radius:8px; border:1px solid #e6edef; border-left:3px solid #dbdfea; background:#fff; color:#364a63; text-decoration:none; font-size:13px; transition:background .12s ease, border-color .12s ease; }
.mm-struct-doc:hover { background:#f5f8ff; border-color:#c9d6f0; }
.mm-struct-doc i { flex:0 0 auto; font-size:14px; width:16px; text-align:center; }
.mm-struct-lbl { flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-struct-cnt { flex:0 0 auto; min-width:22px; text-align:center; font-size:11px; font-weight:700; padding:1px 7px; border-radius:10px; background:#eef1f6; color:#8094ae; }
.mm-struct-ok  { border-left-color:#1ee0ac; }
.mm-struct-ok  i { color:#0fae83; }
.mm-struct-ok  .mm-struct-cnt { background:#e0f8f0; color:#0fae83; }
.mm-struct-ko  { border-left-color:#e85347; }
.mm-struct-ko  i { color:#e85347; }
.mm-struct-ko  .mm-struct-cnt { background:#fce7e5; color:#c8322b; }
.mm-struct-opt { border-left-color:#dbdfea; }
.mm-struct-opt i { color:#b7c0d0; }
.mm-struct-doc.is-sel { background:#fff6e0; border-color:#f0c66b; border-left-color:#f4a100; font-weight:600; }
.mm-struct-doc.is-sel i { color:#f4a100; }
.mm-struct-empty { padding:18px; text-align:center; color:#8094ae; font-size:13px; }

/* ── Bloc info dossier (get_info_dossier) : carte moderne (avatar + code/sous-titre + statut pastille) ── */
.mm-dosinfo { border:1px solid #e6edef; border-radius:12px; overflow:hidden; background:#fff; margin-bottom:14px; box-shadow:0 1px 3px rgba(43,55,72,.06); }
.mm-dosinfo-head { display:flex; align-items:center; gap:11px; padding:12px 14px; background:linear-gradient(180deg,#f3f8ff,#eaf1ff); border-bottom:1px solid #e6edef; }
.mm-dosinfo-av { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:10px; background:#2c6fef; color:#fff; font-size:16px; box-shadow:0 2px 6px rgba(44,111,239,.28); }
.mm-dosinfo-dos { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; line-height:1.25; text-decoration:none; }
.mm-dosinfo-code { font-size:14px; font-weight:700; color:#1f3355; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-dosinfo-sub { font-size:11.5px; color:#8094ae; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-dosinfo-dos:hover .mm-dosinfo-code { color:#2c6fef; }
.mm-dosinfo-ext { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; border-radius:8px; color:#7488a6; text-decoration:none; transition:background .12s ease, color .12s ease; }
.mm-dosinfo-ext:hover { background:#dfeaff; color:#2c6fef; }
.mm-dosinfo-body { padding:4px 14px 8px; }
.mm-dosinfo-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 0; font-size:13px; border-top:1px solid #f2f5f9; }
.mm-dosinfo-row:first-child { border-top:0; }
.mm-dosinfo-k { color:#8094ae; flex:0 0 auto; }
.mm-dosinfo-v { color:#364a63; font-weight:600; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-dosinfo-badge { display:inline-block; padding:3px 10px; border-radius:20px; background:#eef2f7; color:#5a6b85; font-size:11px; font-weight:700; letter-spacing:.02em; }

/* ── Détail message (vue liste, colonne droite) : carte centrée moderne + état vide ── */
.mm-msgdet { display:flex; flex-direction:column; align-items:center; text-align:center; padding:24px 16px; }
.mm-msgdet-ic { width:54px; height:54px; border-radius:15px; display:flex; align-items:center; justify-content:center; background:linear-gradient(180deg,#eef4ff,#dbe8ff); color:#2c6fef; font-size:22px; margin-bottom:14px; box-shadow:0 2px 8px rgba(44,111,239,.16); }
.mm-msgdet-subject { font-size:15px; font-weight:700; color:#1f3355; line-height:1.3; margin-bottom:14px; word-break:break-word; }
.mm-msgdet-meta { width:100%; display:flex; flex-direction:column; gap:6px; margin-bottom:14px; }
.mm-msgdet-line { display:flex; align-items:center; justify-content:center; gap:7px; font-size:12.5px; color:#8094ae; max-width:100%; }
.mm-msgdet-line i { flex:0 0 auto; width:14px; text-align:center; color:#adb8ca; }
.mm-msgdet-line span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-msgdet-badges { display:flex; flex-wrap:wrap; gap:5px; justify-content:center; margin-bottom:16px; }
.mm-msgdet-badges:empty { display:none; }
.mm-msgdet-reply { display:inline-flex; align-items:center; gap:8px; padding:9px 20px; border-radius:9px; background:#2c6fef; color:#fff; font-size:13px; font-weight:600; text-decoration:none; transition:background .12s ease; }
.mm-msgdet-reply:hover { background:#1b57d6; color:#fff; }
.mm-msgdet-empty { padding-top:48px; }
.mm-msgdet-empty .mm-msgdet-ic { background:#f2f5fa; color:#adb8ca; box-shadow:none; }
.mm-msgdet-emptytxt { font-size:13px; color:#8094ae; max-width:180px; }

/* ── Table légère (mm-table) ── */
.mm-table { margin:0; font-size:13px; color:#364a63; }
.mm-table thead th { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#8094ae; border-bottom:1px solid #e6edef; padding:8px 10px; background:transparent; }
.mm-table tbody td { padding:10px; border-bottom:1px solid #f2f5f9; vertical-align:middle; }
.mm-table tbody tr:last-child td { border-bottom:0; }
.mm-table tbody tr:hover td { background:#f7f9fc; }
.mm-upl-date { color:#8094ae; white-space:nowrap; font-size:12.5px; }
.mm-upl-file { align-items:center; gap:8px; height:100%; }
.mm-upl-file i, .mm-upl-file svg { width:15px; height:15px; color:#8094ae; flex:0 0 auto; }
.mm-upl-file span { overflow:hidden; text-overflow:ellipsis; }
.mm-upl-foot { margin-top:14px; }
.mm-upl-foot .mm-btn { width:100%; }
/* état vide (colonne droite) : icône + texte centrés */
.mm-upl-empty2 { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:40px 16px; color:#8094ae; }
.mm-upl-empty2 i, .mm-upl-empty2 svg { font-size:40px; color:#cfd6e6; margin-bottom:12px; }
.mm-upl-empty2 div { font-size:13px; }

/* ── Bloc de dépôt de fichiers GÉNÉRIQUE (.mme-up*) — source unique partagée par mémomédias
   (app/memomedias/medias/htm/ajouter.htm) ET le helper mm_uploader (fiche_upl, etc.).
   Même nuage, mêmes couleurs, même hover partout. ── */
.mm-up-form .card { border-radius:12px; overflow:hidden; }
.mme-up { display:flex; align-items:center; justify-content:center; text-align:center; min-height:170px; width:100%; cursor:pointer; padding:24px; border:2px dashed #cfd6df; border-radius:10px; background:#fbfcfe; transition:.15s; }
.mme-up:hover { border-color:#9aa4b2; background:#f5f7fa; }
.mme-up.is-dragover { border-color:#0d6efd; background:#eef4ff; }
.mme-up-file { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); }
.mme-up-bar { display:flex; align-items:center; justify-content:space-between; margin-top:14px; padding-bottom:6px; border-bottom:1px solid #eef0f2; }
.mme-up-list { list-style:none; padding:0; margin:10px 0 0; }
.mme-up-list li { display:flex; align-items:center; gap:8px; font-size:12px; padding:10px 12px; border:1px solid #eef0f2; border-radius:8px; margin-bottom:8px; background:#fff; }
.mme-up-list li .th { flex:0 0 38px; width:38px; height:38px; border-radius:6px; object-fit:cover; background:#f3f5f8; display:flex; align-items:center; justify-content:center; color:#9aa4b2; font-size:18px; overflow:hidden; }
.mme-up-list li .nm { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mme-up-list li .sz { color:#9aa4b2; font-size:11px; }
.mme-up-list li .rm { border:none; background:transparent; color:#c0c6cf; font-size:18px; line-height:1; cursor:pointer; padding:2px 6px; transition:color .12s; }
.mme-up-list li .rm:hover { color:#dc3545; }

/* ── Datatable générique (Tabulator + panneau filtres) — thème DashLite mm ──
   Réutilisable : conteneur .mm-dt-panel (table) + .mm-dt-filters (panneau droit). */
.mm-dt-panel { padding:0; overflow:hidden; }
.mm-dt-panel .tabulator { border:none; background:#fff; font-size:13px; border-radius:12px; overflow:hidden; }
.mm-dt-panel .tabulator .tabulator-header { background:#fbfcfe; border-bottom:1px solid #eef1f6; }
.mm-dt-panel .tabulator .tabulator-header .tabulator-col { background:transparent; border-right:none; padding-top:2px; padding-bottom:2px; }
.mm-dt-panel .tabulator .tabulator-header .tabulator-col:hover { background:#f2f5fa; }
.mm-dt-panel .tabulator .tabulator-col-title { color:#8094ae; font-weight:700; font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; }
.mm-dt-panel .tabulator .tabulator-header .tabulator-header-filter input { border:1px solid #e2e8f0; border-radius:6px; background:#fff; padding:3px 8px; font-size:11px; }
.mm-dt-panel .tabulator .tabulator-header .tabulator-header-filter input:focus { border-color:#2c6fef; outline:none; }
.mm-dt-panel .tabulator .tabulator-row { border-bottom:1px solid #f3f6fa; }
.mm-dt-panel .tabulator .tabulator-row.tabulator-row-even { background:#fff; }
.mm-dt-panel .tabulator .tabulator-row:hover { background:#f5f8ff; cursor:pointer; }
.mm-dt-panel .tabulator .tabulator-row:last-child { border-bottom:none; }
.mm-dt-panel .tabulator .tabulator-cell { color:#48566b; border-right:none; padding:11px 14px; }
/* Ligne sélectionnée : surlignage BLEU CLAIR subtil (au lieu du gros bloc bleu Tabulator) */
.mm-dt-panel .tabulator .tabulator-row.tabulator-selected,
.mm-dt-panel .tabulator .tabulator-row.tabulator-selected.tabulator-row-even { background:#eef4ff !important; }
.mm-dt-panel .tabulator .tabulator-row.tabulator-selected:hover { background:#e4edff !important; }
/* Case « tout sélectionner » du header : ne pas la rogner. Tabulator applique overflow:hidden
   via un sélecteur très spécifique (6 classes) -> !important obligatoire pour libérer la case 19px. */
.mm-dt-panel .tabulator .tabulator-header .tabulator-col-title:has(input[type="checkbox"]) {
    overflow:visible !important; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
}
.mm-dt-panel .tabulator .tabulator-header .tabulator-col .tabulator-col-content,
.mm-dt-panel .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title-holder { overflow:visible !important; }
/* Cellule de SÉLECTION (case 19px) : colonne 42px, le padding cellule 14px ne laisse que 14px<19px
   -> la case déborde et text-overflow:ellipsis peint un « … » parasite juste après la case.
   Padding horizontal réduit (34px de place > 19px) + pas d'ellipsis. */
.mm-dt-panel .tabulator .tabulator-cell:has(> input[type="checkbox"]) {
    padding-left:4px; padding-right:4px; text-overflow:clip;
}
/* la carte porte déjà l'ombre/arrondi → la table remplit bord à bord */
.mm-panel.mm-dt-panel { box-shadow:0 1px 3px rgba(43,55,72,.08); }

/* Panneau filtres : padding confortable, champs arrondis, labels de section, boutons aérés */
.mm-panel.mm-dt-filters { padding:16px; }
.mm-dt-filters { font-size:12px; }
.mm-dt-filters .form-select, .mm-dt-filters .form-control, .mm-dt-filters select { font-size:12px; margin-bottom:8px; border-radius:8px; padding:7px 12px; border:1px solid #e2e8f0; color:#48566b; background-position:right 10px center; }
.mm-dt-filters .form-select:focus, .mm-dt-filters .form-control:focus, .mm-dt-filters select:focus { border-color:#b9cdf5; box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.mm-dt-filters label { display:block; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#9aa7bd; margin:8px 0 4px; }
.mm-dt-filters hr { margin:14px 0; border:0; border-top:1px solid #eef1f6; }

/* ===== Matrice d'analyse « analyse par dossiers » (grille de <div> flottants mi_div) =====
   On modernise la couche RENDU (typo, bordures douces, en-tête sticky stylé, hover, affordance +)
   SANS toucher aux fonds de cellule inline (le fond = couleur SÉMANTIQUE de l'alerte = la donnée). */
.mm-almatrix { font-size:12px; color:#48566b; background:#fff; }
.mm-almatrix .mi-cell { font-size:12px; color:#4a5769; line-height:1.45; box-sizing:border-box; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mm-almatrix .mi-cell a { color:#2c6fef; font-weight:600; text-decoration:none; }
.mm-almatrix .mi-cell a:hover { color:#1b57d6; }   /* pas de soulignement (moche) : le survol est porté par la ligne */
.mm-almatrix .mi-cell b { font-weight:600; color:#26313f; }
/* En-tête (cellules almhead) : gris doux, majuscules, collé en haut au scroll. Fond décoratif -> !important OK (jamais une couleur de donnée). */
.mm-almatrix .mi-cell[id="almhead"] { background:#f7f9fc !important; font-weight:700; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:#8094ae; position:sticky; top:0; z-index:3; border-bottom:1px solid #e6eaf1 !important; }
/* Densité : les lignes dossier (essai / .mm-alm-row) faisaient 60px -> aérées/vides. On les resserre
   à 44px avec un padding-top régulier (override des height/padding INLINE décoratifs, pas les fonds). */
.mm-almatrix .mm-alm-row .mi-cell { height:44px !important; padding-top:13px !important; }
/* Survol de LIGNE : `:hover` remonte depuis la cellule survolée vers `.mm-alm-row` (pas besoin de
   flow-root) → on surligne toutes les cellules de la ligne d'un bleu très clair. Les cellules de la
   ligne dossier n'ont QUE des fonds décoratifs (#f9fafc), jamais une couleur d'alerte -> !important OK. */
.mm-almatrix .mm-alm-row:hover .mi-cell { background-color:#eef4ff !important; }
/* Lien d'alerte cliquable (icône + code + libellé) = déplie/replie le détail */
.mm-almatrix .alm-toggle { color:#2c6fef; font-weight:600; text-decoration:none; cursor:pointer; }
.mm-almatrix .alm-toggle:hover { color:#1b57d6; }
.mm-almatrix .alm-toggle i { color:#2c6fef; margin-right:5px; transition:color .12s ease; }
.mm-almatrix .alm-toggle:hover i { color:#1b57d6; }

/* ===== Paramétrage matrice dossiers (couleurs) — carte autonome + table + pastilles couleur ===== */
/* Carte alignée sur .mm-panel du site (padding 18px, même ombre) */
.mm-param-card { background:#fff; border:1px solid #eceff4; border-radius:12px; box-shadow:0 1px 3px rgba(43,55,72,.08); padding:18px; }
.mm-param-table { width:100%; border-collapse:collapse; }
.mm-param-table thead th { text-align:left; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#8094ae; padding:0 10px 10px; border-bottom:1px solid #eef1f6; white-space:nowrap; }
.mm-param-table thead th.mm-param-col { text-align:center; width:104px; }
.mm-param-table tbody td { padding:8px 10px; border-bottom:1px solid #f3f6fa; font-size:13px; color:#3b4a63; vertical-align:middle; }
.mm-param-table tbody tr:last-child td { border-bottom:none; }
.mm-param-table tbody tr:hover td { background:#f7f9fc; }
.mm-param-table td.mm-param-col { text-align:center; }
/* Pastille de couleur (input type=color) : chip arrondi net */
.mm-param-table input[type="color"] { width:42px; height:26px; padding:2px; border:1px solid #d9e0ea; border-radius:7px; background:#fff; cursor:pointer; vertical-align:middle; -webkit-appearance:none; appearance:none; transition:border-color .12s ease, box-shadow .12s ease; }
.mm-param-table input[type="color"]:hover { border-color:#b9cdf5; }
.mm-param-table input[type="color"]:focus { border-color:#2c6fef; box-shadow:0 0 0 3px rgba(44,111,239,.12); outline:none; }
.mm-param-table input[type="color"]::-webkit-color-swatch-wrapper { padding:0; }
.mm-param-table input[type="color"]::-webkit-color-swatch { border:none; border-radius:6px; }

.mm-dt-vue { display:flex; align-items:center; gap:8px; margin-bottom:14px; }
.mm-dt-vue-sel { flex:1 1 auto; min-width:0; }
.mm-dt-vue-sel .form-select, .mm-dt-vue-sel select { margin-bottom:0; }
.mm-dt-tabs { border-bottom:1px solid #e6edef; margin-bottom:14px; gap:4px; }
.mm-dt-tabs .nav-link { font-size:12px; font-weight:600; color:#8094ae; border:none; padding:6px 10px; background:transparent; }
.mm-dt-tabs .nav-link:hover, .mm-dt-tabs .nav-link:focus { border:none; color:#2c6fef; background:transparent; }  /* pas de bordure grise bootstrap au survol */
.mm-dt-tabs .nav-link.active { color:#2c6fef; border:none; border-bottom:2px solid #2c6fef; background:transparent; }
.mm-dt-actions { display:flex; justify-content:flex-end; gap:8px; margin:12px 0 14px; }  /* padding-top au-dessus des boutons +/retour */
.mm-dt-acc { margin-top:6px; --bs-accordion-border-color:transparent; --bs-accordion-border-width:0; }
/* pas de bordures/traits sur les côtés quand on déroule « Filtres supplémentaires » */
.mm-dt-acc .accordion-item, .mm-dt-acc .accordion-collapse, .mm-dt-acc .accordion-body { border:none; background:transparent; }
.mm-dt-acc .accordion-button { font-size:12px; font-weight:600; color:#5a6b85; padding:9px 12px; background:#f7f9fc; border-radius:8px !important; }
.mm-dt-acc .accordion-button:not(.collapsed) { color:#2c6fef; background:#eef4ff; box-shadow:none; }
.mm-dt-acc .accordion-button:hover { background:#eef4ff; }
.mm-dt-acc .accordion-button:focus { box-shadow:none; }
.mm-dt-acc .accordion-body { padding:14px 0 2px; }
.mm-dt-exports { list-style:none; padding:0; margin:8px 0 0; }
.mm-dt-exports li a { display:block; padding:8px 10px; font-size:12px; color:#2c6fef; border-radius:8px; text-decoration:none; }
.mm-dt-exports li a:hover { background:#f5f8ff; }
.mm-dt-logo { margin-top:16px; text-align:center; }
.mm-dt-logo img { max-width:100%; max-height:56px; opacity:.9; }
/* En-tête de table (titre + recherche) + liens de cellule — réutilisable (ex. perso/list) */
.mm-dt-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; flex-wrap:wrap; }
.mm-dt-search { max-width:260px; border-radius:8px; }
.mm-cell-link, .mm-table a:not(.mm-tbtn) { color:#2c6fef; text-decoration:none; font-weight:500; }
.mm-cell-link:hover, .mm-table a:not(.mm-tbtn):hover { color:#1b57d6; }

/* Sélecteur de colonnes (perso/fiche) : liste de champs cochables + réordonnables (drag&drop) */
.mm-fieldpick-hint { font-size:12px; color:#8094ae; margin:8px 0 12px; }
.mm-fieldpick { border:1px solid #eef1f6; border-radius:10px; overflow-y:auto; overflow-x:hidden; }
.mm-fieldpick-table { margin:0; font-size:13px; }
.mm-fieldpick-table tbody td { padding:9px 12px; border-bottom:1px solid #f3f6fa; }
.mm-fieldpick-table tbody tr:last-child td { border-bottom:none; }
.mm-fieldpick-table tbody tr { cursor:grab; transition:background .12s ease; }
.mm-fieldpick-table tbody tr:hover { background:#f7f9fc; }
.mm-fieldpick-table tbody tr:active { cursor:grabbing; }
.mm-fieldpick-handle { width:30px; color:#c4cdda; text-align:center; }
.mm-fieldpick-lbl { color:#48566b; }
.mm-form-actions { display:flex; gap:10px; margin-top:18px; }

/* Placeholder image absente (garde-fou global sur les 404 d'images — cf. index.js) */
.mm-noimg { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; font-size:11px; color:#8094ae; background:#f4f6fa; border:1px dashed #d3dbe7; border-radius:8px; line-height:1.3; }
.mm-noimg i, .mm-noimg svg { font-size:14px; color:#adb8ca; }

/* Statut & badges en pastille arrondie (rendus par get_dossier_statut / cellules HTML) */
/* Statut : pastille colorée (point) + libellé texte — rendu par get_dossier_statut */
.mm-status { display:inline-flex; align-items:center; gap:8px; font-size:12.5px; font-weight:500; color:#48566b; white-space:nowrap; }
.mm-status-dot { flex:0 0 auto; width:9px; height:9px; border-radius:50%; display:inline-block; box-shadow:0 0 0 3px rgba(0,0,0,.04); }
/* Autres badges de cellule (ex. obligatoires) en pastille arrondie */
.mm-dt-panel .tabulator-cell .badge { display:inline-block; padding:3px 10px !important; border-radius:20px !important; font-size:11px !important; font-weight:600; line-height:1.5; white-space:nowrap; }

/* ── Fiche messagerie plein écran : tient dans le viewport, scroll interne par colonne ──
   La hauteur du conteneur .mm-fiche-fit est posée en JS (fitMsgFiche) = espace restant sous le
   fil d'ariane + la toolbar. On répartit ensuite : viewer à gauche, panneau à droite, chacun
   scrollant en interne → plus de scroll de page. */
.mm-fiche-fit { display:flex; flex-direction:column; overflow:hidden; min-height:0; }  /* min-height:0 = laisse la hauteur JS (fitMsgFiche) gagner sur le min-height:100vh de .mm-dash, sinon overflow */
.mm-fiche-fit > .mm-pagehead, .mm-fiche-fit > .mm-toolbar, .mm-fiche-fit > .mm-fiche-head, .mm-fiche-fit > .mm-deleg-banner { flex:0 0 auto; }
.mm-fiche-fit > .row { flex:1 1 auto; min-height:0; --bs-gutter-y:0; margin-top:0; }
.mm-fiche-fit > .row > [class*="col-"] { height:100%; min-height:0; display:flex; }
.mm-fiche-fit > .row > [class*="col-"] > .mm-panel { flex:1 1 auto; min-height:0; height:100%; }
.mm-fiche-fit > .row > [class*="col-"] > .mm-panel:not(.mm-viewer):not(.mm-dt-panel) { overflow-y:auto; }  /* chaque panneau scrolle en interne (sauf viewer/datatable qui gèrent leur propre scroll) */
.mm-fiche-fit #msg_panel .mm-struct { max-height:none; }    /* évite le double scroll avec la liste des zones */
.mm-fiche-fit .mm-inbox { max-height:none; overflow:visible; }  /* le panneau gère le scroll → pas de double scrollbar */
.mm-fiche-fit .mm-viewer { overflow:hidden; }               /* le viewer ne scrolle pas : c'est #pdfContainer */
.mm-fiche-fit .mm-dt-panel { overflow:hidden; }             /* la datatable (Tabulator) gère son propre scroll interne (hauteur px posée en JS) */
.mm-fiche-fit #fichier_pdf, .mm-fiche-fit #pdfContainer { height:100%; }
/* Écrans étroits : les colonnes s'empilent → on repasse en flux normal (pas de hauteur figée). */
@media (max-width:1199.98px){
  .mm-fiche-fit { display:block; overflow:visible; height:auto !important; }
  .mm-fiche-fit > .row > [class*="col-"] { height:auto; display:block; }
  .mm-fiche-fit > .row > [class*="col-"] > .mm-panel { height:auto; }
  .mm-fiche-fit > .row > [class*="col-"] > .mm-panel:not(.mm-viewer) { overflow:visible; }
  .mm-fiche-fit #fichier_pdf, .mm-fiche-fit #pdfContainer { height:auto; }
}

/* Visualiseur (enveloppe blanche autour de #pdfContainer / canvas) */
.mm-viewer { padding:8px; overflow:hidden; }
.mm-viewer #pdfContainer { border-radius:8px; }

/* En-tête d'un message / document dans un mm-panel */
.mm-msg-head { display:flex; gap:10px; align-items:flex-start; padding-bottom:12px; border-bottom:1px solid #eef0f4; margin-bottom:12px; }
.mm-msg-title { font-size:14px; font-weight:700; color:#1f2937; line-height:1.3; }
.mm-msg-meta { font-size:12px; color:#8094ae; margin-top:3px; line-height:1.5; }
.mm-msg-badges { margin-top:7px; display:flex; gap:6px; flex-wrap:wrap; }
.mm-msg-actions { margin-left:auto; display:flex; gap:2px; flex-shrink:0; }
.mm-msg-actions a { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:8px; color:#2c6fef; transition:background .12s ease; }
.mm-msg-actions a:hover { background:#eef4ff; color:#1b57d6; }
.mm-msg-actions a i { font-size:16px; }

/* Corps d'un email HTML rendu tel quel (dossier/mail/message) */
.mm-mailbody { overflow-x:auto; font-size:13px; color:#364a63; line-height:1.55; }
.mm-mailbody img { max-width:100%; height:auto; }

/* Dépôts externes (depots/list/accueil) — liste des espaces + item sélectionné */
.mm-deplist { max-height:72vh; overflow-y:auto; }
.mm-depitem { padding:12px 14px; border-bottom:1px solid #eef1f6; transition:background .12s ease; }
.mm-depitem:hover { background:#f7f9fc; }
.mm-depitem.is-sel { background:#eef4ff; box-shadow:inset 3px 0 0 #2c6fef; }
.mm-depitem-head { display:flex; align-items:center; gap:8px; }
.mm-depitem-title { font-size:13px; font-weight:700; color:#364a63; flex:1; min-width:0; }
.mm-depitem-title:hover { color:#2c6fef; }
.mm-depitem-count { font-size:12px; font-weight:700; color:#2c6fef; background:#e7f0ff; border-radius:12px; padding:2px 9px; flex-shrink:0; }
.mm-depitem-dos { font-size:12px; color:#526484; margin-top:3px; }
.mm-depitem-dos a { color:#2c6fef; margin-left:4px; }
.mm-depitem-meta { font-size:11px; color:#8094ae; margin-top:3px; line-height:1.5; }

/* Recherche de dossier (remplace Select2) — champ + panneau de résultats en ajax */
.mm-dossearch { position:relative; }
.mm-dossearch-label { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:600; color:#8094ae; margin-bottom:6px; }
.mm-dossearch-label svg { width:14px; height:14px; }
.mm-dossearch-box { position:relative; display:flex; align-items:center; }
.mm-dossearch-ic { position:absolute; left:11px; width:15px; height:15px; color:#8094ae; pointer-events:none; }
.mm-dossearch-input { width:100%; border:1px solid #e2e8f1; border-radius:9px; padding:9px 12px 9px 34px; font-size:13.5px; color:#33425c; background:#fff; transition:border-color .12s ease, box-shadow .12s ease; }
.mm-dossearch-input::-webkit-input-placeholder { color:#a7b2c6; }
.mm-dossearch-input::placeholder { color:#a7b2c6; }
.mm-dossearch-input:focus { outline:none; border-color:#2c6fef; box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.mm-dossearch-results { position:absolute; z-index:30; left:0; right:0; margin-top:4px; background:#fff; border:1px solid #e6edf6; border-radius:10px; box-shadow:0 8px 24px rgba(43,55,72,.13); max-height:280px; overflow-y:auto; padding:4px; }
.mm-dossearch-item { display:block; width:100%; text-align:left; border:none; background:none; padding:8px 10px; border-radius:7px; font-size:12.8px; color:#33425c; line-height:1.4; cursor:pointer; }
.mm-dossearch-item:hover, .mm-dossearch-item:focus { background:#eef4ff; color:#1b57d6; outline:none; }
.mm-dossearch-empty { padding:12px 10px; font-size:12.5px; color:#8094ae; text-align:center; }

/* État « document introuvable » (niveau 3 de la résolution PDF) */
.mm-notfound { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; min-height:220px; padding:24px; }
.mm-notfound i, .mm-notfound svg { font-size:40px; width:40px; height:40px; margin-bottom:12px; color:#cfd6e6; }
.mm-notfound-txt { font-size:14px; font-weight:600; color:#8094ae; }

/* Boîte de réception / liste de messages (mode liste) — style « inbox » dashlite */
.mm-inbox { max-height:calc(100vh - 175px); overflow-y:auto; }
.mm-inbox-item { display:block; padding:10px 12px; border-bottom:1px solid #f0f2f7; border-left:3px solid transparent; cursor:pointer; transition:background .12s ease, border-color .12s ease; }
.mm-inbox-item:last-child { border-bottom:none; }
.mm-inbox-item:hover { background:#f7f9fc; }
.mm-inbox-item.mm-active { background:#eef4ff; border-left-color:#2c6fef; }
/* Clic = sélection : la ligne dont la case est cochée est surlignée. Piloté par l'état RÉEL de la case
   (:has) → reste synchro avec « tout cocher ». Composable avec .mm-active (bord gauche, autre propriété). */
.mm-inbox-item:has(.chk:checked) { background:#e4edff; }
.mm-inbox-top { display:flex; align-items:baseline; gap:8px; }
.mm-inbox-subject { flex:1; min-width:0; font-size:12.5px; font-weight:600; color:#1f2937; line-height:1.35; }
.mm-inbox-subject input.chkbox { margin-right:8px; }   /* padding à droite de la case */
.mm-inbox-pages { flex-shrink:0; font-size:10px; font-weight:600; color:#8094ae; background:#eef2f7; border-radius:20px; padding:1px 8px; }
.mm-inbox-meta { display:block; font-size:11.5px; color:#8094ae; line-height:1.4; margin-top:3px; }
.mm-inbox-foot { display:flex; align-items:center; gap:8px; margin-top:6px; }
.mm-inbox-open { margin-left:auto; flex-shrink:0; display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; color:#2c6fef; background:#eaf1ff; border:1px solid #d6e3ff; border-radius:7px; padding:4px 10px; transition:background .12s ease, color .12s ease; }
.mm-inbox-open:hover { background:#dbe8ff; color:#1b57d6; }
.mm-inbox-open i { font-size:10px; }

/* ============================================================================
   CHROME mm3 — REFONTE DashLite (07/07). Markup NEUF .mmh-*/.mms-* (header_top.php).
   On ne garde que les 3 classes porteuses (.page-main-header / header.main-nav /
   .page-body) pour la géométrie + les hooks JS ; tout l'intérieur est neuf.
   Clair uniquement, pas de badges. Le vendor Cuba ne matche plus l'intérieur.
   ============================================================================ */

/* ---------- TOP BAR ---------- */
.page-wrapper .page-main-header { height:62px; padding:0; background:#fff; border-bottom:1px solid #e9edf3;
  -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04); box-shadow:0 1px 2px rgba(20,40,80,.04); }
.mmh { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; width:100%; height:62px; }

/* zone marque (largeur sidebar + filet à droite) */
.mmh-brand { width:220px; min-width:220px; height:100%; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px;
  padding:0 16px; border-right:1px solid #e9edf3; -webkit-transition:width .26s cubic-bezier(.4,0,.2,1),min-width .26s cubic-bezier(.4,0,.2,1); transition:width .26s cubic-bezier(.4,0,.2,1),min-width .26s cubic-bezier(.4,0,.2,1); }
.mmh-logo { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; overflow:hidden; }
.mmh-logo img { max-height:32px; width:auto; }
.mmh-ver { font-size:10px; color:#aeb7c8; white-space:nowrap; }
.mmh-burger { margin-left:auto; width:36px; height:36px; border-radius:9px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
  color:#8094ae; cursor:pointer; -webkit-box-flex:0; -ms-flex:0 0 36px; flex:0 0 36px; -webkit-transition:.15s; transition:.15s; }
.mmh-burger:hover { background:#f1f4f9; color:#2c6fef; }
.mmh-burger svg { width:20px; height:20px; }

/* recherche */
.mmh-search { position:relative; -webkit-box-flex:1; -ms-flex:1; flex:1; max-width:440px; margin:0 22px; }
.mmh-search svg { position:absolute; left:15px; top:50%; -webkit-transform:translateY(-50%); transform:translateY(-50%); width:17px; height:17px; color:#aeb7c8; }
.mmh-search input { width:100%; height:40px; border:1px solid #e9edf3; background:#f5f7fb; border-radius:22px; padding:0 16px 0 42px; font-size:13px; color:#3a4a61; outline:none; -webkit-transition:.15s; transition:.15s; }
.mmh-search input::-webkit-input-placeholder { color:#aeb7c8; }
.mmh-search input::placeholder { color:#aeb7c8; }
.mmh-search input:focus { border-color:#2c6fef; background:#fff; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }

/* cluster d'actions à droite */
.mmh-actions { margin-left:auto; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:6px; padding-right:16px; }

/* bouton icône */
.mmh-ic { width:40px; height:40px; border-radius:11px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
  color:#8094ae; border:1px solid transparent; -webkit-transition:.15s; transition:.15s; }
.mmh-ic:hover { background:#f1f4f9; color:#2c6fef; border-color:#e9edf3; }
.mmh-ic svg { width:19px; height:19px; }

/* panier (caddie) : icône toujours visible, grisée si vide, badge chiffré */
.mmh-cart { position:relative; }
.mmh-cart-empty { color:#c3ccda; }
.mmh-cart-badge { position:absolute; top:1px; right:1px; min-width:16px; height:16px; padding:0 4px;
  display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
  background:#e5484d; color:#fff; border-radius:9px; font-size:10px; font-weight:700; line-height:1; box-sizing:border-box; }

/* sélecteur de site */
.mmh-drop { position:relative; }
.mmh-site { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:9px; height:40px; padding:0 13px; border:1px solid #e9edf3; border-radius:22px;
  background:#f5f7fb; color:#3a4a61; font-family:inherit; font-weight:600; font-size:12.5px; cursor:pointer; max-width:220px; -webkit-transition:.15s; transition:.15s; }
.mmh-site:hover { border-color:#2c6fef; background:#fff; }
.mmh-site > svg:first-child { width:17px; height:17px; color:#2c6fef; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mmh-site-nm { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mmh-cv { width:14px; height:14px; color:#aeb7c8; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; -webkit-transition:-webkit-transform .18s; transition:transform .18s; }
.mmh-drop:hover .mmh-cv { -webkit-transform:rotate(180deg); transform:rotate(180deg); }
.mmh-pop { position:absolute; top:calc(100% + 8px); right:0; min-width:230px; background:#fff; border:1px solid #e9edf3; border-radius:12px;
  -webkit-box-shadow:0 12px 34px rgba(20,40,80,.14); box-shadow:0 12px 34px rgba(20,40,80,.14); padding:6px; opacity:0; visibility:hidden; -webkit-transform:translateY(-6px); transform:translateY(-6px); -webkit-transition:.16s; transition:.16s; z-index:60; }
.mmh-drop:hover .mmh-pop { opacity:1; visibility:visible; -webkit-transform:translateY(0); transform:translateY(0); }
.mmh-pop-h { font-size:10.5px; text-transform:uppercase; letter-spacing:.5px; color:#aeb7c8; font-weight:700; padding:8px 10px 6px; }
.mmh-pop-i { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px; padding:9px 10px; border-radius:8px; color:#3a4a61; font-size:12.5px; font-weight:500; -webkit-transition:.12s; transition:.12s; }
.mmh-pop-i:hover { background:#f1f4f9; color:#2c6fef; }
.mmh-pop-i svg { width:15px; height:15px; color:#aeb7c8; }
.mmh-pop-i:hover svg { color:#2c6fef; }

/* séparateur + déconnexion */
.mmh-sep { width:1px; height:26px; background:#e9edf3; margin:0 6px; }
.mmh-logout { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; height:40px; padding:0 15px; border-radius:22px; border:1px solid #e9edf3;
  background:#f5f7fb; color:#3a4a61; font-weight:600; font-size:12.5px; white-space:nowrap; -webkit-transition:.15s; transition:.15s; }
.mmh-logout svg { width:17px; height:17px; }
.mmh-logout:hover { background:#fff0f0; border-color:#f4c6c6; color:#e0484d; }

/* ---------- SIDEBAR ---------- */
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav { background:#fff; border-right:1px solid #e9edf3; padding:0; overflow:hidden; }
.mms-profile { padding:20px 16px 16px; border-bottom:1px solid #eef1f6; display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; flex-direction:column; -webkit-box-align:center; align-items:center; text-align:center; gap:8px; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mms-av { line-height:0; }
.mms-av .avatar, .mms-av img { width:58px !important; height:58px !important; border-radius:50% !important; }
.mms-av .avatar { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
  background:-webkit-gradient(linear,left top,right bottom,from(#2c6fef),to(#4d9bff)); background:linear-gradient(135deg,#2c6fef,#4d9bff); color:#fff; font-weight:700; font-size:20px; -webkit-box-shadow:0 6px 16px rgba(44,111,239,.3); box-shadow:0 6px 16px rgba(44,111,239,.3); }
.mms-av img { -o-object-fit:cover; object-fit:cover; }
.mms-name { font-size:14px; font-weight:700; color:#28374b; white-space:nowrap; }
.mms-client { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:6px; font-size:12px; color:#8094ae; max-width:100%; }
.mms-client svg { width:12px; height:12px; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mms-client span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mms-pref { margin-top:2px; display:-webkit-inline-box; display:inline-flex; -webkit-box-align:center; align-items:center; gap:6px; font-size:11.5px; font-weight:600; color:#2c6fef; padding:6px 13px; border:1px solid #e9edf3; border-radius:9px; -webkit-transition:.15s; transition:.15s; white-space:nowrap; }
.mms-pref svg { width:13px; height:13px; }
.mms-pref:hover { background:#f1f4f9; }

.mms-nav { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-height:0; overflow-y:auto; padding:10px 12px 24px; }
.mms-nav::-webkit-scrollbar { width:6px; }
.mms-nav::-webkit-scrollbar-thumb { background:#e3e8f0; border-radius:3px; }
.mms-label { font-size:10px; text-transform:uppercase; letter-spacing:.6px; color:#aeb7c8; font-weight:700; padding:8px 12px 6px; }
.mms-item { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:12px; padding:9px 13px; border-radius:10px; color:#43536b; font-weight:500; font-size:13px; margin:2px 0;
  -webkit-transition:background .14s,color .14s,-webkit-transform .12s; transition:background .14s,color .14s,transform .12s; }
.mms-ic { -webkit-box-flex:0; -ms-flex:0 0 22px; flex:0 0 22px; width:22px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; }
.mms-tx { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; line-height:1.3; }
.mms-ic i { font-size:18px; color:#98a4b8; -webkit-transition:color .14s; transition:color .14s; }
.mms-item:hover { background:#f4f6fa; color:#28374b; -webkit-transform:translateX(2px); transform:translateX(2px); }
.mms-item:hover .mms-ic i { color:#28374b; }
.mms-item.mms-active { background:#eaf2ff; color:#2c6fef; }
.mms-item.mms-active .mms-ic i { color:#2c6fef; }
.mms-sep { height:1px; background:#eef1f6; margin:9px 12px; }

/* ---------- REPLI : ICÔNES SEULES (74px) ---------- */
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon { width:74px; opacity:1; visibility:visible; margin-left:0; }
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ .page-body { margin-left:74px; }
.page-wrapper.compact-wrapper .page-body-wrapper header.main-nav.close_icon ~ footer { margin-left:74px; }
header.main-nav.close_icon .mms-name, header.main-nav.close_icon .mms-client, header.main-nav.close_icon .mms-pref, header.main-nav.close_icon .mms-label, header.main-nav.close_icon .mms-tx { display:none; }
header.main-nav.close_icon .mms-profile { padding:14px 8px 12px; }
header.main-nav.close_icon .mms-av .avatar, header.main-nav.close_icon .mms-av img { width:42px !important; height:42px !important; font-size:15px; }
header.main-nav.close_icon .mms-item { -webkit-box-pack:center; justify-content:center; padding:11px 0; gap:0; }
header.main-nav.close_icon .mms-item:hover { -webkit-transform:none; transform:none; }
header.main-nav.close_icon .mms-sep { margin:9px 12px; }
/* zone marque réduite à 74px quand replié (mm-h-collapsed posé par index.js) :
   logo masqué, burger centré */
.page-wrapper .page-main-header.mm-h-collapsed .mmh-brand { width:74px; min-width:74px; -webkit-box-pack:center; justify-content:center; padding:0; }
.page-wrapper .page-main-header.mm-h-collapsed .mmh-logo { display:none; }
.page-wrapper .page-main-header.mm-h-collapsed .mmh-burger { margin-left:0; }

@media (max-width:1200px){ .mmh-search { max-width:280px; } .mmh-site-nm { max-width:120px; } }
@media (max-width:768px){ .mmh-search { display:none; } }
.mm-inbox-badges { margin-top:5px; display:flex; gap:4px; flex-wrap:wrap; }
.mm-inbox-badges:empty { display:none; }

/* ============================================================================
   MENU UTILISATEUR (avatar tout à droite) + ouverture des dropdowns au clic
   ============================================================================ */
/* ouverture au clic (.mmh-open) en plus du survol */
.mmh-drop.mmh-open .mmh-pop { opacity:1; visibility:visible; -webkit-transform:translateY(0); transform:translateY(0); }
.mmh-drop.mmh-open .mmh-cv { -webkit-transform:rotate(180deg); transform:rotate(180deg); }

.mmh-user { margin-left:2px; }
.mmh-avatar { width:40px; height:40px; border-radius:50%; border:2px solid #e9edf3; background:#f5f7fb; padding:0; cursor:pointer; overflow:hidden;
  display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; -webkit-transition:.15s; transition:.15s; }
.mmh-avatar:hover, .mmh-drop.mmh-open .mmh-avatar { border-color:#2c6fef; }
.mmh-avatar img { width:100%; height:100%; -o-object-fit:cover; object-fit:cover; }
.mmh-avatar span { font-weight:700; font-size:13px; color:#2c6fef; letter-spacing:.3px; }
.mmh-pop-user { min-width:236px; padding:0; overflow:hidden; }
.mmh-user-head { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:11px; padding:14px; border-bottom:1px solid #eef1f6; }
.mmh-user-av { width:40px; height:40px; border-radius:50%; -webkit-box-flex:0; -ms-flex:0 0 40px; flex:0 0 40px; overflow:hidden;
  display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
  background:-webkit-gradient(linear,left top,right bottom,from(#2c6fef),to(#4d9bff)); background:linear-gradient(135deg,#2c6fef,#4d9bff); color:#fff; font-weight:700; font-size:14px; }
.mmh-user-av img { width:100%; height:100%; -o-object-fit:cover; object-fit:cover; }
.mmh-user-id { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; flex-direction:column; min-width:0; }
.mmh-user-name { font-weight:700; font-size:13px; color:#28374b; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mmh-user-sub { font-size:11.5px; color:#8094ae; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mmh-pop-user .mmh-pop-i { margin:5px 6px; border-radius:8px; }
.mmh-pop-danger { color:#e0484d; }
.mmh-pop-danger svg { color:#e0484d !important; }
.mmh-pop-danger:hover { background:#fff0f0 !important; color:#e0484d !important; }

/* ============================================================================
   PAGE ADMINISTRATION — cartes de liens jolies (scopé .mm-adm)
   ============================================================================ */
.mm-adm .row { margin-left:-8px; margin-right:-8px; }
.mm-adm [class^="col-"], .mm-adm [class*=" col-"] { padding-left:8px; padding-right:8px; }
.mm-adm .mm-panel { height:100%; border:1px solid #e9edf3; border-radius:14px; padding:0; overflow:hidden; background:#fff;
  -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04); box-shadow:0 1px 2px rgba(20,40,80,.04); -webkit-transition:box-shadow .15s, -webkit-transform .15s; transition:box-shadow .15s, transform .15s; }
.mm-adm .mm-panel:hover { border-color:#d4dce8; -webkit-box-shadow:0 2px 6px rgba(20,40,80,.05); box-shadow:0 2px 6px rgba(20,40,80,.05); }
.mm-adm .mm-panel-title { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px; margin:0; padding:14px 16px; border-bottom:1px solid #eef1f6;
  font-size:13.5px; font-weight:700; color:#28374b; }
.mm-adm .mm-panel-title i { width:30px; height:30px; -webkit-box-flex:0; -ms-flex:0 0 30px; flex:0 0 30px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center;
  border-radius:9px; background:#eaf2ff; color:#2c6fef !important; font-size:15px; }
.mm-adm .mm-panel ul { list-style:none; margin:0; padding:8px; }
.mm-adm .mm-panel ul li { margin:0; }
.mm-adm .mm-panel ul li a.nav-link { position:relative; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; padding:8px 12px 8px 22px; border-radius:8px;
  color:#43536b !important; font-size:12.5px; font-weight:500; -webkit-transition:background .12s, color .12s, padding .12s; transition:background .12s, color .12s, padding .12s; }
.mm-adm .mm-panel ul li a.nav-link::before { content:""; position:absolute; left:9px; top:50%; width:5px; height:5px; border-radius:50%; background:#cdd5e2; -webkit-transform:translateY(-50%); transform:translateY(-50%); -webkit-transition:.12s; transition:.12s; }
.mm-adm .mm-panel ul li a.nav-link:hover { background:#f4f6fa; color:#2c6fef !important; padding-left:26px; }
.mm-adm .mm-panel ul li a.nav-link:hover::before { background:#2c6fef; }
.mm-adm .mm-panel ul li a.nav-link.text-info { color:#2c6fef !important; font-weight:600; }
.mm-adm .mm-panel ul hr { margin:7px 12px; border:0; border-top:1px solid #eef1f6; }
/* cartes à contenu MIXTE (À propos : version/support/système empilés) : garder l'auto-hauteur
   (sinon height:100% casse l'empilement) + padder les corps non-liste (div de contenu). */
.mm-adm .mm-panel.h-auto { height:auto; }
.mm-adm .mm-panel > *:not(.mm-panel-title):not(ul):not(hr) { padding:14px 16px; }
/* sortie de debug des pages de test (ztest) : bloc monospace scrollable */
.mm-testout { margin:0; font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace; font-size:12px; line-height:1.55; color:#33425c; background:#f7f9fc; border:1px solid #eef1f6; border-radius:8px; padding:12px 14px; max-height:62vh; overflow:auto; }
.mm-testout pre { margin:0; white-space:pre-wrap; word-break:break-word; }
.mm-testout a { color:#2c6fef; word-break:break-all; }

/* ============================================================================
   SIDEBAR MÉMOMÉDIAS — en-tête module + sections + accordéon catégories
   (markup mms-* dans app/memomedias/menu.php)
   ============================================================================ */
/* en-tête module */
.mms-modhead { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px; margin:10px 12px 8px; padding:10px 12px; border-radius:11px;
  background:-webkit-gradient(linear,left top,right bottom,from(#2c6fef),to(#4d9bff)); background:linear-gradient(135deg,#2c6fef,#4d9bff); color:#fff; }
.mms-modhead-ic { width:32px; height:32px; -webkit-box-flex:0; -ms-flex:0 0 32px; flex:0 0 32px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; border-radius:9px; background:rgba(255,255,255,.18); font-size:17px; }
.mms-modhead-id { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; flex-direction:column; line-height:1.2; min-width:0; }
.mms-modhead-id b { font-size:13px; font-weight:700; }
.mms-modhead-id small { font-size:9px; opacity:.85; text-transform:uppercase; letter-spacing:.03em; line-height:1.25; margin-top:1px; }
/* section suivante : filet + espace au-dessus */
.mms-label-sep { margin-top:8px; border-top:1px solid #eef1f6; padding-top:12px; }

/* accordéon catégories */
.mme-acc { margin:0; }
.mme-head .mme-caret { margin-left:auto; }
.mme-caret { font-size:10px; color:#9aa7bd; -webkit-transition:-webkit-transform .2s; transition:transform .2s; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mme-head[aria-expanded="true"] .mme-caret, .mme-cat[aria-expanded="true"] .mme-caret { -webkit-transform:rotate(90deg); transform:rotate(90deg); }
.mme-sub { list-style:none; margin:0; padding:0; }
.mme-cat, .mme-val, .mme-manage { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; margin:1px 8px; border-radius:8px; color:#5a6b85; font-weight:500; line-height:1.3;
  -webkit-transition:background .12s, color .12s; transition:background .12s, color .12s; }
.mme-cat, .mme-manage { padding:7px 10px 7px 34px; font-size:12px; }
.mme-val { padding:6px 10px 6px 46px; font-size:11.5px; }
.mme-manage { border-bottom:1px solid #eef1f6; border-radius:8px 8px 0 0; }
.mme-cat:hover, .mme-val:hover, .mme-manage:hover { background:#f4f6fa; color:#28374b; }
.mme-cat i, .mme-manage i { font-size:13px; color:#9aa7bd; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mme-cat:hover i, .mme-manage:hover i { color:#28374b; }
.mme-cat > span { -webkit-box-flex:1; -ms-flex:1; flex:1; min-width:0; }
.mme-caret { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; margin-left:6px; }
.mme-more { font-style:italic; color:#8094ae; }

/* repli (icônes 74px) : en-tête module = icône seule, accordéon = icône seule */
header.main-nav.close_icon .mms-modhead { margin:10px 8px 8px; padding:0; background:none; -webkit-box-pack:center; justify-content:center; }
header.main-nav.close_icon .mms-modhead-ic { background:-webkit-gradient(linear,left top,right bottom,from(#2c6fef),to(#4d9bff)); background:linear-gradient(135deg,#2c6fef,#4d9bff); }
header.main-nav.close_icon .mms-modhead-id { display:none; }
header.main-nav.close_icon .mme-head .mme-caret { display:none; }
header.main-nav.close_icon .mme-sub { display:none !important; }

/* ============================================================================
   FICHE DOSSIER (dossier/fiche/accueil) — carte plein écran + onglets DashLite
   Le conteneur .mm-dossier-fiche (mm-dash mm-fiche-fit) : en-tête + tabs fixes,
   contenu scrollable en interne. Cards internes → panneaux mm-*.
   ============================================================================ */
.mm-dash.mm-dossier-fiche { background:transparent; padding:0; border:none; }
/* card haute = en-tête + onglets réunis dans UNE seule card blanche */
.mm-fiche-topcard { background:#fff; border:1px solid #e9edf3; border-radius:14px; overflow:hidden; -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04); box-shadow:0 1px 2px rgba(20,40,80,.04); }
/* enfants directs de mm-fiche-fit : card haute = fixe, corps = flex + scroll */
.mm-dossier-fiche.mm-fiche-fit > .mm-fiche-topcard { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mm-dossier-fiche.mm-fiche-fit > .mm-fiche-head,
.mm-dossier-fiche.mm-fiche-fit > .mm-tabs,
.mm-dossier-fiche.mm-fiche-fit > .mm-tabs-row { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mm-dossier-fiche.mm-fiche-fit > .mm-fiche-body { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-height:0; overflow-y:auto; }

/* ---- en-tête fiche : pagehead SANS card (transparent, compact), comme les autres pages ---- */
.mm-fiche-head { padding:2px 2px 12px; margin:0; background:transparent; }
.mm-fiche-head-main { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:16px; }
.mm-fiche-head-l { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.mm-fiche-title { line-height:1.2; }
.mm-fiche-title b { font-size:16px; font-weight:700; color:#28374b; }
.mm-fiche-head-l .breadcrumb, .mm-fiche-head-l .mm-bread { margin:4px 0 0; padding:0; background:transparent; font-size:11.5px; }
/* barre d'actions à droite */
.mm-fiche-actions { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -ms-flex-wrap:wrap; flex-wrap:wrap; -webkit-box-pack:end; justify-content:flex-end; gap:6px; }
.mm-fbtn { display:-webkit-inline-box; display:inline-flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; gap:6px;
  height:34px; min-width:34px; padding:0 8px; border-radius:9px; border:1px solid #e3e8f0; background:#fff; color:#5a6b85;
  font-size:12px; font-weight:600; text-decoration:none; -webkit-box-sizing:border-box; box-sizing:border-box;
  -webkit-box-shadow:0 1px 2px rgba(43,55,72,.07); box-shadow:0 1px 2px rgba(43,55,72,.07); -webkit-transition:.14s; transition:.14s; }
.mm-fbtn > i[data-feather], .mm-fbtn > svg { width:16px; height:16px; }
.mm-fbtn:hover { border-color:#2c6fef; color:#2c6fef; background:#f4f8ff; }
.mm-fbtn-txt { padding:0 12px; }
.mm-fbtn .text-danger { color:#e0484d; }
.mm-fbtn-danger:hover { border-color:#f4c6c6; color:#e0484d; background:#fff5f5; }
.mm-fbtn-sep { width:1px; height:20px; background:#e6eaf0; margin:0 3px; }
/* compteur « (x sur y) » calé à gauche des actions (messagerie) */
.mm-fiche-count { font-size:12px; font-weight:600; color:#8094ae; white-space:nowrap; margin-right:4px; }
/* bouton Revues (couleur de statut Bootstrap conservée), calé à la même hauteur */
.mm-fbtn-btn { display:-webkit-inline-box; display:inline-flex; -webkit-box-align:center; align-items:center; height:34px; padding:0 12px; border-radius:9px; font-size:12px; font-weight:600; }
/* note prioritaire éventuelle sous l'en-tête */
.mm-fiche-note { margin-top:10px; }

/* ---- onglets DashLite ---- */
.mm-tabs { border:none !important; margin:0 0 4px; padding:0; display:-webkit-box; display:flex; gap:2px; background:transparent; border-bottom:1px solid #e4e9f0 !important; }
/* onglets + toolbar étapes sur la MÊME ligne (la bordure passe sur la rangée) */
.mm-tabs-row { display:-webkit-box; display:flex; -webkit-box-align:end; align-items:flex-end; -ms-flex-wrap:wrap; flex-wrap:wrap; gap:8px 12px; margin:0 0 4px; border-bottom:1px solid #e4e9f0; }
.mm-tabs-row > .mm-tabs { margin:0; border-bottom:none !important; }
.mm-etapes-toolbar { display:none; -webkit-box-align:center; align-items:center; gap:6px; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; margin-left:auto; padding-bottom:5px; }
.mm-tabs-row:has(#nav_onglet2.active) .mm-etapes-toolbar { display:-webkit-box; display:flex; }
.mm-etapes-btn { display:-webkit-inline-box; display:inline-flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; width:34px; height:34px; border-radius:8px; color:#7b869a; border:1px solid #e6eaf0; background:#fff; text-decoration:none; -webkit-transition:.12s; transition:.12s; }
.mm-etapes-btn:hover { color:#2c6fef; border-color:#cfe0fb; background:#f4f8ff; }
.mm-etapes-btn svg { width:16px; height:16px; }
.mm-etapes-toolbar .mm-etapes-filter { margin-left:2px; }
.mm-etapes-toolbar .mm-etapes-filter select, .mm-etapes-toolbar .mm-etapes-filter .form-select { min-width:160px; height:34px; padding-top:4px; padding-bottom:4px; font-size:12.5px; }
/* Bouton « Ajout IA » (tâche #4094) : action libellée, distincte des boutons-icônes carrés. */
.mm-etapes-btn.mm-etapes-btn-ia { width:auto; gap:6px; padding:0 12px; font-size:12.5px; font-weight:600; color:#fff; border-color:#2c6fef; background:#2c6fef; }
.mm-etapes-btn.mm-etapes-btn-ia:hover { color:#fff; border-color:#1f5bd6; background:#1f5bd6; }

/* Demande : conteneurs Bootstrap SANS padding horizontal (contenu à ras).
   Le débord de 12px des marges négatives de .row est clippé par .page-body{overflow-x:hidden}
   (les contenus larges — Tabulator, .table-responsive, #div_tablo — ont leur propre scroll interne). */
.container, .container-fluid, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl { padding-right:0; padding-left:0; }

/* pages sous-dossier avec chrome (mails, alertes…) : même look que l'historique ([pagehead]+.mm-panel) */
/* panneau tableau à ras (mais PAS le panneau de filtres qui garde son padding) */
.mm-subpage .mm-panel.mm-dt-panel { padding:0; }
/* datatables admin (tables HTML) : la table tient dans la page (scroll INTERNE, pas de scroll page).
   height:auto → s'ajuste au contenu ; capé à la hauteur dispo ; thead figé au scroll. */
.mm-subpage .mm-dt-scroll { height:auto !important; max-height:calc(100vh - 180px) !important; overflow:auto !important; }
.mm-subpage .mm-dt-scroll table.mm-dtable thead th,
.mm-subpage .mm-dt-scroll table.table thead th { position:-webkit-sticky; position:sticky; top:0; z-index:3; background:#fbfcfe; box-shadow:inset 0 -1px 0 #e4e9f0; }
/* Scroll horizontal FANTÔME dans les conteneurs défilants.
   Une .row Bootstrap porte des marges négatives (-12px de chaque côté) censées être absorbées par le
   padding de son conteneur — or on a retiré celui des .container* (ci-dessus). Partout ailleurs le
   débord est clippé par .page-body{overflow-x:hidden}, mais dans un .mm-dt-scroll (overflow:auto) il
   suffit à faire apparaître une barre horizontale, même sans contenu large :
     - .row émise par get_form_checkbox() autour de CHAQUE case (≈2px de débord) → fiche_rol_use ;
     - .row de mise en page émise par get_structure_tdo() (col-11/col-1, 24px) → admin/tdo/typedossier.
   On neutralise donc la gouttière dans les zones défilantes et dans les cellules de tableau.
   Le scroll horizontal LÉGITIME (fiche_rol : des dizaines de colonnes) reste intact : il vient de la
   largeur réelle du contenu, pas des marges. */
.mm-dtable td .row, .mm-dtable th .row,
.mm-dt-scroll .row, .mm-table-scroll .row { margin-left:0; margin-right:0; }
/* Bloc quelconque borné à la hauteur disponible, avec défilement interne (même logique que
   .mm-dt-scroll, mais sans les règles de tableau) : colonnes d'actions, panneaux latéraux…
   La hauteur réelle est posée en inline !important par fitMmDtScroll() ; le max-height ci-dessous
   n'est qu'un repli si le JS ne tourne pas. Jamais de défilement horizontal ici. */
.mm-subpage .mm-fit-scroll { height:auto !important; max-height:calc(100vh - 180px); overflow-y:auto; overflow-x:hidden; }
.mm-table-scroll { width:100%; overflow-x:auto; }
.mm-table-scroll > table { margin:0; }
/* petit bouton « ouvrir le document » (aperçu) dans les tables (alertes…) */
.mm-viewbtn { display:-webkit-inline-box; display:inline-flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; width:26px; height:26px; border-radius:7px; color:#8a94a6; text-decoration:none; -webkit-transition:.12s; transition:.12s; }
.mm-viewbtn:hover { background:#eef2fb; color:#2c6fef; }
/* page de dépôt : contexte + Dropzone.js restylé façon .mme-up */
.mm-upl-context { margin-top:5px; font-size:12px; color:#8a94a6; line-height:1.5; }
.dropzone.mm-dropzone { min-height:190px; border:2px dashed #cfd6df !important; border-radius:12px; background:#fbfcfe; padding:30px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; text-align:center; -webkit-transition:.15s; transition:.15s; }
.dropzone.mm-dropzone:hover { border-color:#9aa4b2 !important; background:#f5f7fa; }
.dropzone.mm-dropzone.dz-drag-hover, .dropzone.mm-dropzone.dz-started.dz-drag-hover { border-color:#2c6fef !important; background:#eef4ff; }
.dropzone.mm-dropzone .dz-message { margin:0; }
.dropzone.mm-dropzone .dz-button { background:none !important; border:0 !important; padding:0 !important; cursor:pointer; color:inherit; font:inherit; }
.dropzone.mm-dropzone .mm-dz-ic { display:block !important; font-size:40px; color:#9aa4b2; margin-bottom:10px; }
.dropzone.mm-dropzone .mm-dz-txt { display:inline !important; font-size:13.5px; color:#5b6470; font-weight:600; }
.dropzone.mm-dropzone .dz-preview .dz-image { border-radius:8px; }
.mm-dz-hint { text-align:center; font-size:11px; color:#9aa4b2; margin-top:10px; }
/* Découpe IA : preview fichier « pro » (chip horizontal PDF + barre + spinner) — remplace le preview Dropzone par défaut */
@-webkit-keyframes mm-spin { to { -webkit-transform:rotate(360deg); transform:rotate(360deg); } }
@keyframes mm-spin { to { -webkit-transform:rotate(360deg); transform:rotate(360deg); } }
.dropzone.mm-dropzone.mm-dz-ia.dz-started { display:block; -webkit-box-align:stretch; align-items:stretch; -webkit-box-pack:start; justify-content:flex-start; text-align:left; padding:16px; min-height:auto; }
.dropzone.mm-dropzone.mm-dz-ia.dz-started:hover { background:#fbfcfe; border-color:#cfd6df !important; }
.dropzone.mm-dropzone .mm-dzfile { position:relative; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:14px; width:auto; height:auto; margin:0; min-height:auto; padding:14px 16px; background-color:#fff; border:1px solid #e7ebf1; border-radius:12px; -webkit-box-shadow:0 1px 3px rgba(20,30,60,.05); box-shadow:0 1px 3px rgba(20,30,60,.05); font-size:14px; }
.mm-dzfile-ic { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; width:46px; height:46px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; border-radius:10px; background:-webkit-gradient(linear,left top,right bottom,from(#fdecec),to(#fbdada)); background:linear-gradient(135deg,#fdecec,#fbdada); color:#e0464b; font-size:24px; }
.mm-dzfile-body { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.mm-dzfile-name { font-size:13.5px; font-weight:600; color:#2d3644; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mm-dzfile-meta { font-size:11.5px; color:#9aa4b2; margin-top:2px; }
.mm-dzfile-meta strong { font-weight:600; color:#5b6470; }
.mm-dzfile-bar { height:5px; border-radius:99px; background:#eef1f6; margin-top:9px; overflow:hidden; }
.mm-dzfile-bar-fill { width:0; height:100%; border-radius:99px; background:-webkit-gradient(linear,left top,right top,from(#2c6fef),to(#5b8def)); background:linear-gradient(90deg,#2c6fef,#5b8def); -webkit-transition:width .2s ease; transition:width .2s ease; }
.mm-dzfile-status { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; }
.mm-dzfile-spin { width:20px; height:20px; border-radius:50%; border:2.5px solid #dbe3ee; border-top-color:#2c6fef; -webkit-animation:mm-spin .7s linear infinite; animation:mm-spin .7s linear infinite; }
.mm-dzfile-ok { display:none; color:#22a06b; font-size:22px; }
.mm-dzfile.dz-success .mm-dzfile-spin { display:none; }
.mm-dzfile.dz-success .mm-dzfile-ok { display:inline-block; }
.mm-dzfile.dz-success .mm-dzfile-bar-fill { width:100% !important; background:#22a06b; }
.dropzone.mm-dropzone .mm-dzfile.dz-error { border-color:#f3c9c9; background-color:#fff8f8; }
.mm-dzfile.dz-error .mm-dzfile-ic { background:-webkit-gradient(linear,left top,right bottom,from(#fdecec),to(#f7c9c9)); background:linear-gradient(135deg,#fdecec,#f7c9c9); }
.mm-dzfile.dz-error .mm-dzfile-spin, .mm-dzfile.dz-error .mm-dzfile-bar { display:none; }
/* neutralise le tooltip .dz-error-message par défaut (position absolue) -> texte inline sous le nom */
.dropzone.mm-dropzone .mm-dzfile-err { display:none; position:static; top:auto; left:auto; z-index:auto; min-width:0; max-width:none; padding:0; background:none; opacity:1; -webkit-transition:none; transition:none; }
.dropzone.mm-dropzone .mm-dzfile-err:after { display:none; }
.dropzone.mm-dropzone .mm-dzfile.dz-error .mm-dzfile-err { display:block; margin-top:5px; font-size:12px; font-weight:600; color:#d64550; white-space:normal; }
/* loader « Analyse IA en cours » (spinner + texte) */
.mm-iaload { display:-webkit-inline-box; display:inline-flex; -webkit-box-align:center; align-items:center; gap:9px; }
.mm-iaload-spin { width:16px; height:16px; border-radius:50%; border:2.5px solid #cfe0fb; border-top-color:#2c6fef; -webkit-animation:mm-spin .7s linear infinite; animation:mm-spin .7s linear infinite; }
/* Indicateur d'envoi pour les formulaires lents (POST synchrone : panier, envoi mail…).
   Barre INDÉTERMINÉE : le serveur ne renvoie aucune progression réelle, on n'affiche donc pas de %. */
.mm-progress { height:6px; border-radius:99px; background:#e9eef5; overflow:hidden; }
.mm-progress-bar { height:100%; border-radius:99px; background:-webkit-gradient(linear,left top,right top,from(#2c6fef),to(#5b8def)); background:linear-gradient(90deg,#2c6fef,#5b8def); }
.mm-progress-bar.mm-progress-indet { width:40%; -webkit-animation:mm-indet 1.15s ease-in-out infinite; animation:mm-indet 1.15s ease-in-out infinite; }
@-webkit-keyframes mm-indet { 0% { -webkit-transform:translateX(-100%); } 100% { -webkit-transform:translateX(250%); } }
@keyframes mm-indet { 0% { transform:translateX(-100%); } 100% { transform:translateX(250%); } }
.mm-sendprogress { margin-top:16px; padding-top:14px; border-top:1px solid #eef1f6; }
.mm-sendnote { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; margin-top:9px; font-size:12px; color:#5b6470; }
.mm-btn-spin { display:inline-block; width:14px; height:14px; margin-right:8px; vertical-align:-2px; border-radius:50%; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; -webkit-animation:mm-spin .7s linear infinite; animation:mm-spin .7s linear infinite; }
/* Petit spinner inline générique (label « En cours… ») */
.mm-spin { display:inline-block; width:13px; height:13px; vertical-align:-2px; margin-right:5px; border-radius:50%; border:2px solid #cfe0fb; border-top-color:#2c6fef; -webkit-animation:mm-spin .7s linear infinite; animation:mm-spin .7s linear infinite; }
/* Tuile « Récupérer les mails » : cliquable + état de relève asynchrone */
.mm-fetch-tile { cursor:pointer; }
.mm-fetch-tile:hover { box-shadow:0 4px 14px rgba(43,55,72,.14); }
.mm-fetch-tile.is-loading { cursor:progress; opacity:.85; }
/* pendant l'envoi : on neutralise les actions concurrentes (Annuler, Vider le panier, suppression de ligne) */
.mm-sending a.btn, .mm-sending a.mm-act { pointer-events:none; opacity:.5; }
@media (prefers-reduced-motion:reduce) {
	.mm-progress-bar.mm-progress-indet { -webkit-animation:none; animation:none; width:100%; opacity:.65; }
	.mm-btn-spin, .mm-iaload-spin, .mm-dzfile-spin { -webkit-animation:none; animation:none; }
}
/* page « Espace de dépôt fichier » (standalone, sans menu) — tâche #4094 UI/UX */
.mm-depot-page { min-height:100vh; background:#f4f6fa; display:-webkit-box; display:flex; -webkit-box-align:start; align-items:flex-start; -webkit-box-pack:center; justify-content:center; padding:44px 16px; }
.mm-depot-card { width:100%; max-width:640px; }
.mm-depot-head { text-align:center; margin-bottom:20px; }
.mm-depot-head img { height:46px; width:auto; }
.mm-depot-panel { padding:24px 26px; }
.mm-depot-panel .mm-panel-title { font-size:15px; padding-bottom:14px; border-bottom:1px solid #eef1f6; margin-bottom:16px; }
.mm-depot-intro { font-size:13px; line-height:1.5; color:#5b6470; margin:0 0 20px; }
.mm-depot-form .mm-form-actions { margin-top:22px; padding-top:16px; border-top:1px solid #eef1f6; }
/* page « Enregistrer le document » (viewer PDF + formulaire, page bare) */
.mm-docreg { display:-webkit-box; display:flex; height:100vh; background:#f5f6fa; }
.mm-docreg-viewer { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; padding:12px; }
.mm-docreg-viewer #pdfContainer { height:100%; -webkit-box-sizing:border-box; box-sizing:border-box; background:#fff; border:1px solid #e9edf3; border-radius:12px; -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04); box-shadow:0 1px 2px rgba(20,40,80,.04); }
.mm-docreg-side { -webkit-box-flex:0; -ms-flex:0 0 470px; flex:0 0 470px; max-width:52%; padding:12px 12px 12px 0; overflow-y:auto; }
.mm-docreg-side .mm-panel { min-height:100%; }
.mm-docreg-title { font-size:16px; font-weight:700; color:#28374b; margin-bottom:16px; padding-bottom:13px; border-bottom:1px solid #eef1f6; }
.mm-docreg-sub { display:block; font-size:12px; font-weight:500; color:#8a94a6; margin-top:3px; }
/* en-tête de formulaire avec actions (ex. fiche : Modifier le fichier + tampon) */
.mm-docreg-head { display:-webkit-box; display:flex; -webkit-box-align:start; align-items:flex-start; -webkit-box-pack:justify; justify-content:space-between; gap:12px; margin-bottom:16px; padding-bottom:13px; border-bottom:1px solid #eef1f6; }
.mm-docreg-head .mm-docreg-title { margin-bottom:0; padding-bottom:0; border-bottom:0; -webkit-box-flex:1; flex:1 1 auto; min-width:0; }
.mm-docreg-actions { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; -webkit-box-flex:0; flex:0 0 auto; }
/* Page « Tamponner le document » : pager + tampons glissables */
.mm-tampon-pager { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; margin-bottom:16px; }
.mm-tampon-page { font-size:12.5px; font-weight:600; color:#5a6b85; }
.mm-tampon-hint { font-size:12px; color:#8a94a6; margin:0 0 12px; }
.mm-stamp { display:block; width:100%; text-align:left; padding:10px 12px; margin-bottom:8px; border:1px dashed #cfd8e6; border-radius:9px; background:#f7f9fc; color:#43536b; font-size:12px; font-weight:600; cursor:grab; -webkit-transition:border-color .12s, color .12s, background .12s; transition:border-color .12s, color .12s, background .12s; }
.mm-stamp:hover { border-color:#2c6fef; color:#2c6fef; background:#f0f6ff; }
.mm-stamp:active { cursor:grabbing; }
.mm-stamp-img { display:block; max-width:100%; height:auto; margin-bottom:8px; padding:6px; border:1px dashed #cfd8e6; border-radius:9px; background:#fff; cursor:grab; }
.mm-stamp-img:hover { border-color:#2c6fef; }
/* Bloc de debug superadmin discret (masqué s'il est vide) */
.mm-debug { margin-top:16px; padding-top:10px; border-top:1px dashed #eef1f6; font-size:11px; line-height:1.5; color:#b3bdcc; }
.mm-debug:empty { display:none; }

/* ===================================================================== */
/* Pages d'authentification (login / forgot / reset) — 2 colonnes façon DashLite */
/* ===================================================================== */
.mm-login { display:-webkit-box; display:flex; min-height:100vh; background:#fff; }
.mm-login-main { -webkit-box-flex:1; -ms-flex:1 1 46%; flex:1 1 46%; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; padding:40px 24px; }
.mm-login-box { width:100%; max-width:384px; }
.mm-login-logo-top { margin-bottom:30px; }
.mm-login-logo-top img { height:46px; width:auto; max-width:210px; display:block; }
.mm-login-title { font-size:24px; font-weight:800; color:#1f2b3e; margin:0 0 6px; letter-spacing:-.3px; }
.mm-login-sub { font-size:13.5px; color:#8794a9; margin:0 0 8px; line-height:1.5; }
.mm-login-space { font-size:12px; font-weight:600; color:#5a6b85; padding-bottom:16px; margin-bottom:22px; border-bottom:1px solid #eef1f6; }
.mm-login-space b { color:#2c6fef; }
.mm-login-field { margin-bottom:16px; }
.mm-login-field > label { display:block; font-size:12.5px; font-weight:600; color:#3b4a63; margin-bottom:7px; }
.mm-login-input { position:relative; }
.mm-login-input > i { position:absolute; left:14px; top:50%; -webkit-transform:translateY(-50%); transform:translateY(-50%); color:#a7b2c6; font-size:14px; pointer-events:none; }
.mm-login-input input { width:100%; height:46px; padding:0 40px; border:1px solid #e2e8f2; border-radius:10px; background:#f8fafc; font-size:14px; color:#28374b; -webkit-box-shadow:none; box-shadow:none; -webkit-transition:border-color .14s, background .14s, box-shadow .14s; transition:border-color .14s, background .14s, box-shadow .14s; }
.mm-login-input input:invalid, .mm-login-input input:required { border-color:#e2e8f2; -webkit-box-shadow:none; box-shadow:none; }
.mm-login-input input:focus { outline:none; border-color:#2c6fef; background:#fff; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.13); box-shadow:0 0 0 3px rgba(44,111,239,.13); }
.mm-login-input input::-webkit-input-placeholder { color:#b3bdcc; }
.mm-login-input input::placeholder { color:#b3bdcc; }
.mm-login-eye { position:absolute; right:8px; top:50%; -webkit-transform:translateY(-50%); transform:translateY(-50%); color:#9aa7bd; cursor:pointer; font-size:14px; background:none; border:none; padding:6px; }
.mm-login-eye:hover { color:#2c6fef; }
.mm-login-btn { display:block; -webkit-box-sizing:border-box; box-sizing:border-box; width:100%; height:47px; line-height:47px; padding:0; text-align:center; text-decoration:none; border:none; border-radius:10px; background:#2c6fef; color:#fff; font-size:14.5px; font-weight:600; cursor:pointer; -webkit-transition:background .14s; transition:background .14s; }
.mm-login-btn:hover { background:#1b57d6; color:#fff; }
.mm-login-links { display:-webkit-box; display:flex; -webkit-box-pack:end; justify-content:flex-end; margin:-2px 0 18px; }
.mm-login-link { font-size:13px; color:#2c6fef; text-decoration:none; font-weight:500; }
.mm-login-link:hover { text-decoration:underline; }
.mm-login-foot { text-align:center; margin-top:22px; font-size:13px; color:#8794a9; }
.mm-login-foot a { color:#2c6fef; text-decoration:none; font-weight:600; }
.mm-login-logo { text-align:center; margin-bottom:18px; }
.mm-login-logo img { max-height:64px; max-width:180px; }
.mm-login-alert { display:-webkit-box; display:flex; -webkit-box-align:start; align-items:flex-start; gap:9px; padding:11px 14px; border-radius:10px; font-size:13px; line-height:1.45; margin-bottom:18px; }
.mm-login-alert i { margin-top:2px; }
.mm-login-alert-danger { background:#fdecec; color:#c0392b; border:1px solid #f6d4d1; }
.mm-login-alert-success { background:#e9f7ef; color:#1e8e5a; border:1px solid #cdeade; }
.mm-login-aside { -webkit-box-flex:1; -ms-flex:1 1 54%; flex:1 1 54%; position:relative; overflow:hidden; background:linear-gradient(150deg,#eef4ff 0%,#e8efff 55%,#f4f7ff 100%); display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; padding:48px; }
.mm-login-aside-inner { position:relative; z-index:1; max-width:440px; text-align:center; }
.mm-login-aside-illu { width:100%; max-width:370px; margin:0 auto 30px; display:block; }
.mm-login-aside h2 { font-size:24px; font-weight:800; color:#1f2b3e; margin:0 0 12px; letter-spacing:-.4px; }
.mm-login-aside p { font-size:14px; color:#5f6d84; line-height:1.65; margin:0; }
/* Responsive : tablette / mobile — l'illustration passe sous le formulaire puis disparaît */
@media (max-width: 991px) {
    .mm-login { display:block; min-height:100vh; }
    .mm-login-main { min-height:100vh; padding:32px 20px; }
    .mm-login-aside { display:none; }
}
@media (max-width: 480px) {
    .mm-login-main { padding:26px 18px; -webkit-box-align:start; align-items:flex-start; }
    .mm-login-box { padding-top:8px; }
    .mm-login-logo-top img { height:42px; }
    .mm-login-title { font-size:21px; }
}

/* ===================================================================== */
/* Page Préférences utilisateur (mm-*) — carte centrée + interrupteurs */
/* ===================================================================== */
.mm-prefpage { min-height:100vh; background:#f5f6fa; display:-webkit-box; display:flex; -webkit-box-align:start; align-items:flex-start; -webkit-box-pack:center; justify-content:center; padding:40px 20px; }
.mm-prefcard { width:100%; max-width:640px; background:#fff; border:1px solid #eceff4; border-radius:16px; padding:24px 30px 30px; }
.mm-pref-head { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:16px; padding-bottom:18px; margin-bottom:6px; border-bottom:1px solid #eef1f6; }
.mm-pref-logo { height:40px; width:auto; -webkit-box-flex:0; flex:0 0 auto; }
.mm-pref-title { font-size:19px; font-weight:800; color:#1f2b3e; letter-spacing:-.3px; }
.mm-pref-sub { font-size:13px; color:#8794a9; margin-top:2px; }
.mm-prefcard .mm-form-section { margin-top:18px; }
.mm-pref-list { margin-bottom:2px; }
.mm-pref-row { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:justify; justify-content:space-between; gap:16px; padding:11px 2px; border-bottom:1px solid #f2f5f9; cursor:pointer; margin:0; }
.mm-pref-row:last-child { border-bottom:none; }
.mm-pref-lbl { font-size:13.5px; color:#3b4a63; line-height:1.4; }
.mm-pref-switch { position:relative; -webkit-box-flex:0; flex:0 0 auto; width:42px; height:24px; }
.mm-pref-switch input { position:absolute; opacity:0; width:0; height:0; }
.mm-pref-slider { position:absolute; top:0; left:0; right:0; bottom:0; background:#d5dde8; border-radius:24px; -webkit-transition:background .15s; transition:background .15s; }
.mm-pref-slider::before { content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; -webkit-transition:-webkit-transform .15s; transition:transform .15s; }
.mm-pref-switch input:checked + .mm-pref-slider { background:#2c6fef; }
.mm-pref-switch input:checked + .mm-pref-slider::before { -webkit-transform:translateX(18px); transform:translateX(18px); }
.mm-prefcard .mm-form-actions { margin-top:24px; }
/* Carte profil sur la page « Mes préférences » (user/fiche) */
.mm-uprof { text-align:center; }
.mm-uprof-av { margin-bottom:16px; line-height:0; }
.mm-uprof-av img, .mm-uprof-av .avatar { width:92px !important; height:92px !important; border-radius:50% !important; margin:0 auto; -o-object-fit:cover; object-fit:cover; }
.mm-uprof-av .avatar-text { font-size:30px; }
.mm-uprof-actions { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; flex-direction:column; gap:8px; margin-bottom:18px; }
.mm-uprof-info { text-align:left; border-top:1px solid #eef1f6; padding-top:16px; }
.mm-uprof-info .form-label { font-size:11px; text-transform:uppercase; letter-spacing:.3px; color:#9aa7bd; margin-bottom:4px; }
.mm-uprof-info small { display:block; }

/* ===================================================================== */
/* Interrupteurs génériques : les cases à cocher de FORMULAIRE deviennent  */
/* des toggles (même look que la page Préférences). Exclus : radios,       */
/* cases de sélection de tableaux (.chkbox / #chkall) et sélection         */
/* Tabulator (markup différent → non touchée).                            */
/* ===================================================================== */
input.checkbox_animated:not([type="radio"]):not(.mm-check),
input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check) {
    -webkit-appearance:none; -moz-appearance:none; appearance:none;
    -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto;
    width:42px !important; height:24px !important; min-width:42px; margin:0 8px 0 0; padding:0;
    border:none !important; border-radius:24px;
    background:#d5dde8 !important; background-image:none !important;
    position:relative; cursor:pointer; vertical-align:middle; float:none !important;
    -webkit-transition:background .15s; transition:background .15s;
}
input.checkbox_animated:not([type="radio"]):not(.mm-check)::before,
input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check)::before {
    content:''; position:absolute; width:18px; height:18px; left:3px; top:3px;
    border:none; border-radius:50%; background:#fff; -webkit-box-shadow:none; box-shadow:none; z-index:1;
    -webkit-transform:none; transform:none;
    -webkit-transition:-webkit-transform .15s; transition:transform .15s;
}
input.checkbox_animated:not([type="radio"]):not(.mm-check)::after,
input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check)::after {
    content:none !important;
}
input.checkbox_animated:not([type="radio"]):not(.mm-check):checked,
input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check):checked {
    background:#2c6fef !important;
}
input.checkbox_animated:not([type="radio"]):not(.mm-check):checked::before,
input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check):checked::before {
    -webkit-transform:translateX(18px); transform:translateX(18px);
}
input.checkbox_animated:not([type="radio"]):not(.mm-check):disabled,
input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check):disabled {
    opacity:.5; cursor:not-allowed;
}
/* Alignement dans un .form-check (Bootstrap réserve un padding pour une case ~1em) */
.form-check:has(input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check)) {
    padding-left:0; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; min-height:0;
}
.form-check input.form-check-input[type="checkbox"]:not(.chkbox):not(#chkall):not(.mm-check) {
    margin-left:0 !important;
}

/* ===================================================================== */
/* 2e style : CASE À COCHER moderne (pour la SÉLECTION en liste/tableau,  */
/* où un interrupteur n'a pas de sens). Auto sur .chkbox / #chkall        */
/* (sélection de tableaux) ; opt-in via .mm-check sur n'importe quelle case.*/
/* ===================================================================== */
input.chkbox, input#chkall, input.mm-check, .tabulator input[type="checkbox"] {
    -webkit-appearance:none !important; -moz-appearance:none; appearance:none !important;
    width:19px !important; height:19px !important; min-width:19px; margin:0; padding:0;
    border:1.5px solid #cbd5e6 !important; border-radius:6px !important;
    background:#fff !important; background-image:none !important;
    cursor:pointer; position:relative; vertical-align:middle; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto;
    -webkit-transition:background .12s, border-color .12s; transition:background .12s, border-color .12s;
}
input.chkbox::before, input#chkall::before, input.mm-check::before, .tabulator input[type="checkbox"]::before,
input.chkbox::after, input#chkall::after, input.mm-check::after, .tabulator input[type="checkbox"]::after { content:none !important; }
input.chkbox:hover, input#chkall:hover, input.mm-check:hover, .tabulator input[type="checkbox"]:hover { border-color:#2c6fef !important; }
input.chkbox:checked, input#chkall:checked, input.mm-check:checked, .tabulator input[type="checkbox"]:checked {
    background:#2c6fef !important; border-color:#2c6fef !important;
}
input.chkbox:checked::after, input#chkall:checked::after, input.mm-check:checked::after, .tabulator input[type="checkbox"]:checked::after {
    content:'' !important; position:absolute; left:6px; top:2px; width:4px; height:9px;
    border:solid #fff !important; border-width:0 2px 2px 0 !important; border-radius:0;
    background:transparent !important; -webkit-transform:rotate(45deg); transform:rotate(45deg);
}

/* ===================================================================== */
/* Préférence « masquer le menu » (data-nav-collapse=1) : masquage TOTAL  */
/* (0px, PAS le rail d'icônes 74px). Le burger retire close_icon → la     */
/* sidebar complète réapparaît (peek), puis re-repli au chargement suivant.*/
/* ===================================================================== */
.page-wrapper[data-nav-collapse="1"] header.main-nav.close_icon {
    width:0 !important; min-width:0 !important; padding:0 !important; border:none !important; overflow:hidden !important; opacity:0 !important;
}
.page-wrapper[data-nav-collapse="1"] header.main-nav.close_icon ~ .page-body {
    margin-left:0 !important;
}
.page-wrapper[data-nav-collapse="1"] header.main-nav.close_icon ~ footer {
    margin-left:0 !important;
}

/* ===================================================================== */
/* Boutons génériques : TOUS les .btn Bootstrap alignés sur le design mm-* */
/* btn-info = « Annuler » dans l'app (135/143) → gris ; couleurs sémantiques */
/* danger/success/warning conservées. .btn-close / .mm-btn / .mm-tbtn non concernés. */
/* ===================================================================== */
.btn {
    border-radius:9px !important; font-size:13px !important; font-weight:600 !important; line-height:1.2;
    padding:9px 18px !important; border:1px solid transparent;
    -webkit-box-shadow:none !important; box-shadow:none !important;
    -webkit-transition:background .12s ease, border-color .12s ease, color .12s ease;
    transition:background .12s ease, border-color .12s ease, color .12s ease;
}
.btn:focus, .btn:active, .btn:active:focus, .btn.focus, .btn:focus-visible {
    outline:none !important; -webkit-box-shadow:none !important; box-shadow:none !important;
}
.btn:disabled, .btn.disabled { opacity:.55; cursor:not-allowed; }
/* NB : variantes/tailles scopées à .btn.btn-x pour ne PAS toucher les éléments
   non-boutons portant une classe btn-* (ex. .accordion-button.btn-sm). */
/* Primaire (bleu, identique à .mm-btn-primary) */
.btn.btn-primary, .btn.btn-primary:focus, .btn.btn-primary:active, .btn.btn-primary:active:focus { background:#2c6fef !important; border-color:#2c6fef !important; color:#fff !important; }
.btn.btn-primary:hover { background:#1b57d6 !important; border-color:#1b57d6 !important; color:#fff !important; }
/* Secondaire / Annuler (gris, identique à .mm-btn-light) — info=Annuler dans l'app */
.btn.btn-secondary, .btn.btn-info, .btn.btn-light,
.btn.btn-secondary:focus, .btn.btn-info:focus, .btn.btn-light:focus,
.btn.btn-secondary:active, .btn.btn-info:active, .btn.btn-light:active {
    background:#f2f5fa !important; border-color:#e6edef !important; color:#5a6b85 !important;
}
.btn.btn-secondary:hover, .btn.btn-info:hover, .btn.btn-light:hover { background:#e9eef5 !important; border-color:#dbe3ee !important; color:#364a63 !important; }
/* Danger (rouge) */
.btn.btn-danger, .btn.btn-danger:focus, .btn.btn-danger:active { background:#e0484d !important; border-color:#e0484d !important; color:#fff !important; }
.btn.btn-danger:hover { background:#c83b40 !important; border-color:#c83b40 !important; color:#fff !important; }
/* Succès (vert) */
.btn.btn-success, .btn.btn-success:focus, .btn.btn-success:active { background:#2ec76a !important; border-color:#2ec76a !important; color:#fff !important; }
.btn.btn-success:hover { background:#25a659 !important; border-color:#25a659 !important; color:#fff !important; }
/* Avertissement (ambre) */
.btn.btn-warning, .btn.btn-warning:focus, .btn.btn-warning:active { background:#f0a500 !important; border-color:#f0a500 !important; color:#fff !important; }
.btn.btn-warning:hover { background:#d69400 !important; border-color:#d69400 !important; color:#fff !important; }
/* Outline */
.btn.btn-outline-primary, .btn.btn-outline-primary:focus { background:transparent !important; border-color:#2c6fef !important; color:#2c6fef !important; }
.btn.btn-outline-primary:hover, .btn.btn-outline-primary:active { background:#2c6fef !important; border-color:#2c6fef !important; color:#fff !important; }
.btn.btn-outline-secondary, .btn.btn-outline-info, .btn.btn-outline-light { background:transparent !important; border-color:#d5dde8 !important; color:#5a6b85 !important; }
.btn.btn-outline-secondary:hover, .btn.btn-outline-info:hover, .btn.btn-outline-light:hover { background:#f2f5fa !important; color:#364a63 !important; }
.btn.btn-outline-danger, .btn.btn-outline-danger:focus { background:transparent !important; border-color:#e0484d !important; color:#e0484d !important; }
.btn.btn-outline-danger:hover, .btn.btn-outline-danger:active { background:#e0484d !important; border-color:#e0484d !important; color:#fff !important; }
.btn.btn-outline-success { background:transparent !important; border-color:#2ec76a !important; color:#2ec76a !important; }
.btn.btn-outline-success:hover { background:#2ec76a !important; border-color:#2ec76a !important; color:#fff !important; }
/* Tailles (scopées à .btn pour épargner .accordion-button.btn-sm etc.) */
.btn.btn-sm { padding:6px 12px !important; font-size:12px !important; border-radius:8px !important; }
.btn.btn-xs { padding:3px 9px !important; font-size:11px !important; border-radius:7px !important; }
.btn.btn-lg { padding:11px 22px !important; font-size:14.5px !important; border-radius:10px !important; }
/* input-group : coins internes carrés (bouton œil mot de passe, etc.) */
.input-group > .btn:not(:first-child) { border-top-left-radius:0 !important; border-bottom-left-radius:0 !important; }
.input-group > .btn:not(:last-child) { border-top-right-radius:0 !important; border-bottom-right-radius:0 !important; }

/* ligne placeholder « aucune donnée » injectée dans les datatables vides (mmEmptyTables) */
.mm-empty-row td { border:none !important; background:transparent !important; }
.mm-empty-row .mm-table-empty { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; gap:9px; padding:40px 0; color:#aab3c2; font-size:13px; font-style:italic; }
.mm-empty-row .mm-table-empty i { font-size:18px; opacity:.7; }
/* placeholder Tabulator (histo, liste dossiers…) */
.tabulator .tabulator-placeholder .tabulator-placeholder-contents { color:#aab3c2 !important; font-size:13px !important; font-style:italic !important; font-weight:400 !important; }

/* Agenda : calendrier daypilot en panneau + navigation moderne */
.mm-subpage .mm-panel.mm-agenda-cal { padding:14px 16px; overflow-x:auto; }
.mm-subpage .mm-panel.mm-agenda-nav { padding:16px 10px; }
.mm-agenda-nav { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; -webkit-box-align:center; align-items:center; gap:12px; }
.mm-agenda-period { text-align:center; line-height:1.35; padding-bottom:10px; border-bottom:1px solid #eef1f6; width:100%; }
.mm-agenda-period #txt_mois { display:block; font-size:13px; font-weight:700; color:#28374b; text-transform:capitalize; }
.mm-agenda-period #txt_annee { display:block; font-size:11px; color:#8094ae; }
.mm-agenda-btns { display:-webkit-box; display:flex; gap:5px; }
/* le calendrier reprend la couleur d'accent du thème sur la case du jour */
#calendar .month_default_cell_today .month_default_cell_inner { background:#fff7e0 !important; }
.mm-tabs .nav-item { margin:0; }
.mm-tabs .nav-link { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:7px; border:none !important; border-bottom:2px solid transparent !important; border-radius:8px 8px 0 0;
  padding:10px 16px; font-size:13px; font-weight:600; color:#8094ae; background:transparent; -webkit-transition:.14s; transition:.14s; }
.mm-tabs .nav-link i { font-size:15px; }
.mm-tabs .nav-link:hover { color:#43536b; background:#f7f9fc; }
.mm-tabs .nav-link.active { color:#2c6fef !important; border-bottom-color:#2c6fef !important; background:transparent !important; }

/* ---- corps : cards internes → panneaux propres ---- */
.mm-fiche-body { background:transparent; padding:16px 0 0 !important; overflow-x:hidden; }
.mm-fiche-body .container-fluid { padding:0; background:transparent !important; }
/* neutralise le débord de 12px des .row Bootstrap (marges négatives non absorbées) */
.mm-fiche-body .row { margin-left:0; margin-right:0; }
.mm-fiche-body .row.pt-4 { padding-top:0 !important; }
.mm-fiche-body .card { border:1px solid #e9edf3 !important; border-radius:12px !important; -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04) !important; box-shadow:0 1px 2px rgba(20,40,80,.04) !important; margin-bottom:14px; background:#fff; }
.mm-fiche-body .card-body { padding:14px 16px; }
.mm-fiche-body .card-body p { margin-bottom:8px; }
/* adoucit TOUS les tableaux générés (Familles / activations / DMS / synthèse…) : plus de « grosses bordures carrées » */
.mm-fiche-body table { width:100%; font-size:12px; border:none !important; background:transparent !important; }
.mm-fiche-body table td, .mm-fiche-body table th { border:none !important; border-bottom:1px solid #eef1f6 !important; padding:7px 6px !important; background:transparent !important; vertical-align:middle; }
.mm-fiche-body table tr:last-child td { border-bottom:none !important; }
/* titre de section généré en <b> EN PREMIER dans un card-body (Activations / Familles) — pas les <b> inline */
.mm-fiche-body .card-body > b:first-child { display:block; font-size:12px; font-weight:700; color:#43536b; margin-bottom:6px; letter-spacing:.2px; }
/* placeholder d'état vide dans un panneau de la fiche */
.mm-fiche-empty { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:8px; padding:6px 2px; color:#aab3c2; font-size:12px; font-style:italic; }
.mm-fiche-empty i { font-size:15px; opacity:.7; }
/* carte vide → placeholder « Aucune donnée » (posé par mmHideEmptyFicheCards, non destructif) */
.mm-fiche-body .card.mm-card-empty .card-body:first-of-type::before { content:"Aucune donnée"; display:block; color:#aeb7c4; font-size:12px; font-style:italic; padding:2px; }

/* ---- onglet Notes : barre + cartes-lignes (get_note) ---- */
.mm-notes-bar { display:-webkit-box; display:flex; -webkit-box-pack:end; justify-content:flex-end; padding:2px 2px 12px; }
.mm-notes { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; gap:8px; }
.mm-note { display:-webkit-box; display:flex; -webkit-box-align:start; align-items:flex-start; gap:12px; background:#fff; border:1px solid #e9edf3; border-radius:11px; padding:12px 14px; -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04); box-shadow:0 1px 2px rgba(20,40,80,.04); }
.mm-note-prio { border-left:3px solid #e0484d; }
.mm-note-done { opacity:.72; }
.mm-note-body { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.mm-note-text { font-size:13px; color:#3b4a63; line-height:1.5; word-break:break-word; }
.mm-note-meta { margin-top:5px; font-size:11px; color:#98a1b2; }
.mm-note-meta i { margin-right:3px; opacity:.8; }
.mm-note-donetxt { color:#2bb673; }
.mm-note-badge { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; -ms-flex-item-align:start; align-self:flex-start; font-weight:600; }
.mm-note-actions { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:2px; }
.mm-note-actions .mm-act .text-success { color:#2bb673 !important; }

/* Œil afficher/masquer des champs secrets (posé par mm3_secret_eyes, index.js). */
input.form-control.mm-has-eye { padding-right:42px; }
.mm-eye { position:absolute; top:50%; right:6px; transform:translateY(-50%); width:32px; height:32px;
  border:0; background:none; border-radius:8px; color:#8094ae; cursor:pointer; }
.mm-eye:hover { background:#eef1f6; color:#364a63; }

/* ============================================================
   Badges — SYSTÈME UNIFIÉ (look DashLite « dim » : fond pastel + texte coloré, pilule).
   Classe canonique : .mm-badge + .mm-badge-{primary|success|danger|warning|info|gray|dark}.
   Les classes legacy (badge-* Bootstrap 4, .badge.bg-* Bootstrap 5, *-subtle) sont des ALIAS
   du même rendu : les gabarits existants sont unifiés sans être modifiés.
   ============================================================ */
.badge, .mm-badge {
  display:inline-block; padding:4px 11px; font-size:11.5px; font-weight:600; line-height:1.45;
  border-radius:999px; letter-spacing:.2px; white-space:nowrap; border:0; vertical-align:middle; }
.mm-badge-primary, .badge.bg-primary, .badge-primary,
.mm-badge-info,    .badge.bg-info,    .badge-info,    .badge.bg-info-subtle
  { background:#eaf2ff !important; color:#2c6fef !important; border:0 !important; }
.mm-badge-success, .badge.bg-success, .badge-success, .badge.bg-success-subtle
  { background:#e9f7ec !important; color:#2f9e44 !important; border:0 !important; }
.mm-badge-danger,  .badge.bg-danger,  .badge-danger,  .badge.bg-danger-subtle
  { background:#fdeaea !important; color:#d6393f !important; border:0 !important; }
.mm-badge-warning, .badge.bg-warning, .badge-warning, .badge.bg-warning-subtle
  { background:#fdf3e2 !important; color:#b97e00 !important; border:0 !important; }
.mm-badge-gray, .badge.bg-secondary, .badge-secondary, .badge.bg-light, .badge-light
  { background:#eef1f6 !important; color:#5a6b85 !important; border:0 !important; }
.mm-badge-dark, .badge.bg-dark, .badge-dark
  { background:#28374b !important; color:#fff !important; }
.mm-badge-purple, .badge.bg-purple, .badge-purple
  { background:#f1eafd !important; color:#7c3aed !important; border:0 !important; }
/* Variante à point (listes de statuts) : <span class="mm-badge mm-badge-success mm-badge-dot">…</span> */
.mm-badge-dot::before { content:''; display:inline-block; width:7px; height:7px; border-radius:50%;
  background:currentColor; margin-right:7px; vertical-align:1px; }

/* Colonne « Actions » mutualisée : largeur ajustée au contenu (jamais 10/40% arbitraires),
   icônes centrées, pas de retour à la ligne. Posée sur le th ET les td de la colonne. */
.mm-dtable th.mm-col-act, table th.mm-col-act { width:1%; white-space:nowrap; text-align:center; padding-left:16px; padding-right:16px; }
.mm-dtable td.mm-col-act, table td.mm-col-act { white-space:nowrap; text-align:center; }
/* Taille d'icône UNIFIÉE dans la colonne Actions : les gabarits mélangent « fa-trash » nu et
   « fa-trash fa-lg » (19 vs ~13) → poubelles de tailles différentes selon l'écran. La cellule
   partagée impose la taille ; la spécificité (td.classe i) bat .fa-lg sans !important. */
.mm-dtable td.mm-col-act i, table td.mm-col-act i { font-size:15px; line-height:1; vertical-align:middle; }

/* ============================================================================
   SweetAlert (popups swal — t4t5 v2, classes .swal-*) : look aligné app (moderne)
   ============================================================================ */
.swal-modal { border-radius:16px !important; -webkit-box-shadow:0 22px 70px rgba(20,40,80,.30) !important; box-shadow:0 22px 70px rgba(20,40,80,.30) !important; padding-bottom:22px !important; }
.swal-title { font-size:19px !important; font-weight:700 !important; color:#28374b !important; padding:16px 16px 0 !important; margin:0 !important; }
.swal-text { font-size:14px !important; color:#5a6b85 !important; text-align:center !important; }
.swal-footer { text-align:center !important; margin-top:6px !important; }
.swal-button { border-radius:9px !important; font-size:14px !important; font-weight:600 !important; padding:9px 22px !important; -webkit-box-shadow:none !important; box-shadow:none !important; -webkit-transition:.14s; transition:.14s; }
.swal-button:focus { -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.20) !important; box-shadow:0 0 0 3px rgba(44,111,239,.20) !important; }
.swal-button--confirm { background-color:#2c6fef !important; color:#fff !important; }
.swal-button--confirm:hover { background-color:#1f5fd8 !important; }
.swal-button--cancel { background:#eef1f6 !important; color:#43536b !important; }
.swal-button--cancel:hover { background:#e3e8f0 !important; }
/* dangerMode:true (suppressions) → bouton rouge (gagne sur --confirm via specificité) */
.swal-button--danger, .swal-button--confirm.swal-button--danger { background-color:#e0484d !important; }
.swal-button--danger:hover { background-color:#cf3b40 !important; }
.swal-overlay { background-color:rgba(24,34,54,.45) !important; }
.swal-content input { border-radius:8px !important; border:1px solid #e2e8f1 !important; }

/* ── Modernisation complète (look DashLite) : la lib v1 embarque ses styles dans le JS,
      on surcharge tout — geometrie compacte, icônes recolorées pastel, fond flouté. ── */
.swal-overlay { background-color:rgba(18,28,48,.42) !important; -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.swal-modal { width:420px !important; max-width:calc(100vw - 32px) !important; padding:30px 8px 24px !important; }
.swal-title { padding:14px 24px 0 !important; letter-spacing:-.2px; }
.swal-title:not(:last-child) { margin-bottom:6px !important; }
.swal-text { padding:0 26px !important; line-height:1.6 !important; }
.swal-footer { margin-top:18px !important; padding:0 !important; }
.swal-button-container { margin:0 5px !important; }

/* Icônes : on MASQUE le dessin de la lib (anneaux/barres animés, look 2015) et on le remplace
   par une pastille pleine pastel + pictogramme trait fin (langage des chips .mm-form-section
   et des toasts .mm-toast). Pictos en SVG data-URI — aucun JS. */
.swal-icon { width:64px !important; height:64px !important; margin:2px auto 0 !important;
  border:0 !important; border-radius:50% !important;
  background-repeat:no-repeat !important; background-position:center !important; background-size:30px 30px !important;
  -webkit-animation:none !important; animation:none !important; }
.swal-icon * { display:none !important; }
.swal-icon::before, .swal-icon::after { content:none !important; display:none !important; }
.swal-icon--warning { background-color:#fdf3e2 !important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e6a100' stroke-width='2.6' stroke-linecap='round'%3e%3cline x1='12' y1='5.5' x2='12' y2='14'/%3e%3cline x1='12' y1='18.6' x2='12' y2='18.62'/%3e%3c/svg%3e") !important; }
.swal-icon--error { background-color:#fdeaea !important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e0484d' stroke-width='2.6' stroke-linecap='round'%3e%3cline x1='7' y1='7' x2='17' y2='17'/%3e%3cline x1='17' y1='7' x2='7' y2='17'/%3e%3c/svg%3e") !important; }
.swal-icon--success { background-color:#e9f7ec !important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2354ba4a' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='5,12.5 10,17.5 19,7'/%3e%3c/svg%3e") !important; }
.swal-icon--info { background-color:#eaf2ff !important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c6fef' stroke-width='2.6' stroke-linecap='round'%3e%3cline x1='12' y1='5.4' x2='12' y2='5.42'/%3e%3cline x1='12' y1='10' x2='12' y2='18.5'/%3e%3c/svg%3e") !important; }


/* ============================================================================
   PAGES STANDALONE du dossier (mail, alertes, modifier, activation…) : wrapper
   .mm-page → fond gris + pagehead propre + panneaux blancs + tables/forms doux.
   ============================================================================ */
.mm-page { min-height:100vh; background:#f5f6fa; padding:22px 26px; }
.mm-page-head { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:16px; margin-bottom:16px; }
.mm-page-head-l { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.mm-page-title { font-size:17px; font-weight:700; color:#28374b; line-height:1.25; }
.mm-page-head .breadcrumb, .mm-page-head .mm-bread { margin:4px 0 0 !important; padding:0 !important; background:transparent !important; font-size:11.5px; }
.mm-page-actions { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; display:-webkit-box; display:flex; gap:6px; }
/* panneau blanc générique */
.mm-card { background:#fff; border:1px solid #e9edf3; border-radius:14px; -webkit-box-shadow:0 1px 2px rgba(20,40,80,.04); box-shadow:0 1px 2px rgba(20,40,80,.04); }
.mm-card > .card-body, .mm-card-body { padding:18px 20px; }
.mm-card-title { font-size:14px; font-weight:700; color:#28374b; margin:0 0 14px; padding-bottom:12px; border-bottom:1px solid #eef1f6; }
/* tables douces (data pages hors fiche) */
.mm-card table.table, table.mm-dtable { width:100%; font-size:12.5px; border:none; margin:0; }
.mm-card table.table thead th, table.mm-dtable thead th { border:none !important; border-bottom:1px solid #e4e9f0 !important; background:transparent; color:#8094ae; font-weight:600; font-size:11px; text-transform:uppercase; letter-spacing:.3px; padding:9px 10px !important; }
.mm-card table.table td, table.mm-dtable td { border:none !important; border-bottom:1px solid #f0f2f6 !important; padding:10px !important; color:#3b4a63; vertical-align:middle; }
.mm-card table.table tbody tr:hover, table.mm-dtable tbody tr:hover { background:#f8fafd; }
.mm-card table.table tbody tr:last-child td, table.mm-dtable tbody tr:last-child td { border-bottom:none !important; }
/* Largeurs figées (via les width des th) : évite que de longs contenus (ex. print_r du log API) ne fassent
   déborder la table horizontalement et ne rendent l'affichage très lourd. Seules les cellules corps
   se replient ; les en-têtes restent sur une ligne. */
table.mm-dtable-fixed { table-layout:fixed; }
table.mm-dtable-fixed td { overflow-wrap:anywhere; word-break:break-word; white-space:normal; vertical-align:top; }
table.mm-dtable-fixed th { white-space:nowrap; }
/* état vide de table */
.mm-table-empty { padding:40px 0; text-align:center; color:#aab3c2; font-size:13px; font-style:italic; }
/* formulaires (modifier / activation…) : contrôles modernes + sections */
.mm-form .form-label { font-weight:600; font-size:12px; color:#5a6b85; margin-bottom:5px; }
.mm-form .form-control, .mm-form .form-select, .mm-form textarea { border-radius:9px; border:1px solid #e2e8f1; font-size:13.5px; padding:9px 12px; color:#33425c; }
.mm-form .form-control:focus, .mm-form .form-select:focus, .mm-form textarea:focus { border-color:#2c6fef; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.mm-form-section { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:11px; font-size:14px; font-weight:700; letter-spacing:0; text-transform:none; color:#28374b; margin:22px 0 16px; padding-bottom:14px; border-bottom:1px solid #eef1f6; }
/* Pas de marge haute quand la section est le 1er élément VISIBLE de la carte.
   Les <input type="hidden"> (id, jetons…) précèdent souvent la section et cassaient :first-child. */
.mm-form-section:first-child,
input[type="hidden"] + .mm-form-section { margin-top:0; }
.mm-form-section i { width:32px; height:32px; -webkit-box-flex:0; -ms-flex:0 0 32px; flex:0 0 32px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; border-radius:9px; background:#eaf2ff; color:#2c6fef; font-size:15px; }
/* feather.replace() REMPLACE le <i data-feather> par un <svg> : la règle ci-dessus ne s'applique alors
   plus et l'icône reste nue. On habille donc aussi le <svg> pour obtenir la même pastille bleue, quel
   que soit le jeu d'icônes (Font Awesome <i> ou Feather <svg>). */
.mm-form-section > svg { width:32px; height:32px; -webkit-box-flex:0; -ms-flex:0 0 32px; flex:0 0 32px; -webkit-box-sizing:border-box; box-sizing:border-box; padding:7px; border-radius:9px; background:#eaf2ff; color:#2c6fef; stroke:#2c6fef; }
/* En-tête de carte réutilisable façon hub Analyse : icône sur pastille douce + titre.
   (même rendu que .mm-adm .mm-panel-title mais utilisable hors .mm-adm, ex. formulaires.) */
.mm-cardhead { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:11px; margin:0 0 18px; padding-bottom:14px; border-bottom:1px solid #eef1f6; font-size:14px; font-weight:700; color:#28374b; }
.mm-cardhead i { width:32px; height:32px; -webkit-box-flex:0; -ms-flex:0 0 32px; flex:0 0 32px; display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; -webkit-box-pack:center; justify-content:center; border-radius:9px; background:#eaf2ff; color:#2c6fef; font-size:15px; }
/* En-tête de section repliable (tiers multiples sur création dossier) */
.mm-form-toggle { cursor:pointer; -webkit-user-select:none; user-select:none; }
.mm-form-toggle:hover { color:#2c6fef; }
.mm-form-toggle i { font-size:13px; }
.mm-tiers-collapse { padding:2px 2px 6px; }
.mm-form-actions { display:-webkit-box; display:flex; gap:10px; margin-top:22px; padding-top:16px; border-top:1px solid #eef1f6; }
.mm-form .btn { border-radius:9px; font-weight:600; font-size:13px; padding:9px 20px; }
/* liste de cases à cocher (activations) */
.mm-checklist { display:-webkit-box; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; gap:2px; }
.mm-check { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px; padding:11px 12px; border-radius:9px; -webkit-transition:.12s; transition:.12s; cursor:pointer; }
.mm-check:hover { background:#f6f8fb; }
.mm-check + .mm-check { border-top:1px solid #f0f2f6; }
.mm-check input[type=checkbox] { width:17px; height:17px; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; accent-color:#2c6fef; cursor:pointer; }
.mm-check label { margin:0; font-size:13.5px; color:#3b4a63; cursor:pointer; }


/* Synthèse dossier : barre d'actions + carte clé/valeur (onglet Synthèse de la fiche) */
.mm-syn-toolbar { display:flex; justify-content:flex-end; gap:6px; margin:0 0 14px; }
.mm-syn { background:#fff; border:1px solid #eef1f6; border-radius:12px; overflow:hidden; box-shadow:0 1px 3px rgba(43,55,72,.06); }
.mm-syn-row { display:flex; align-items:stretch; border-bottom:1px solid #f3f6fa; }
.mm-syn-row:last-child { border-bottom:none; }
.mm-syn-row:hover { background:#f8fafe; }
.mm-syn-k { flex:0 0 32%; max-width:320px; padding:11px 16px; font-size:13px; color:#8094ae; font-weight:600;
    background:#fbfcfe; border-right:1px solid #f0f3f8; display:flex; align-items:center; }
.mm-syn-v { flex:1 1 auto; min-width:0; padding:11px 16px; font-size:13.5px; color:#3b4a63; display:flex; align-items:center; }
.mm-syn-empty { color:#c2ccda; }
.mm-syn:empty::after { content:"Aucune donnée de synthèse."; color:#9aa7bd; font-size:13.5px; padding:14px; display:block; }

/* Revue de dossier — vérification des pièces (revue.fiche) : liste docs + visionneuse + barre d'actions */
.mm-subpage .mm-panel.mm-revdoc-panel { padding:16px 16px 18px; }
.mm-revdoc-head { display:flex; align-items:center; gap:9px; font-size:15px; font-weight:750; color:#2c3a52;
    letter-spacing:-.01em; padding-bottom:12px; margin-bottom:6px; border-bottom:1px solid #eef1f6; }
.mm-revdoc-head i { color:#2c6fef; }
.mm-revdoc { display:flex; flex-direction:column; gap:2px; }
.mm-revdoc-sec { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#9aa7bd;
    padding:14px 6px 6px; }
.mm-revdoc-sec:first-child { padding-top:4px; }
.mm-revdoc-item { display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:9px; font-size:13.5px;
    color:#48566b; text-decoration:none; transition:background .12s; }
a.mm-revdoc-item:hover { background:#f2f7ff; }
a.mm-revdoc-item { cursor:pointer; }
.mm-revdoc-na { cursor:default; opacity:.72; }
.mm-revdoc-dot { flex:0 0 auto; width:9px; height:9px; border-radius:50%; background:#cdd6e3; }
.mm-revdoc-lib { flex:1 1 auto; min-width:0; font-weight:600; }
.mm-revdoc-count { display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 5px;
    margin-left:5px; border-radius:20px; background:#eef2f8; color:#8094ae; font-size:11px; font-weight:700; vertical-align:middle; }
.mm-revdoc-arr { flex:0 0 auto; font-size:11px; color:#c2ccda; }
a.mm-revdoc-item:hover .mm-revdoc-arr { color:#2c6fef; }
/* statuts */
.mm-revdoc-ok  .mm-revdoc-dot { background:#2ec27e; }
.mm-revdoc-ok  .mm-revdoc-lib { color:#1f9d57; }
.mm-revdoc-ko  .mm-revdoc-dot { background:#e0484d; }
.mm-revdoc-ko  .mm-revdoc-lib { color:#d64545; }
.mm-revdoc-todo .mm-revdoc-dot { background:#cdd6e3; }
.mm-revdoc-todo .mm-revdoc-lib { color:#9aa7bd; font-weight:500; }
.mm-revdoc-cur { background:#eaf2ff; }
.mm-revdoc-cur .mm-revdoc-dot { background:#2c6fef; box-shadow:0 0 0 3px rgba(44,111,239,.18); }
.mm-revdoc-cur .mm-revdoc-lib { color:#1b57d6; font-weight:700; }
a.mm-revdoc-item.mm-revdoc-cur:hover { background:#e0ebff; }
/* visionneuse + barre d'actions */
.mm-subpage .mm-panel.mm-revviewer-panel { padding:16px 18px 18px; }
.mm-revbar { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px;
    padding-bottom:14px; border-bottom:1px solid #eef1f6; }
.mm-revbar-l, .mm-revbar-r { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mm-revbar-count { font-size:12.5px; font-weight:700; color:#8094ae; padding:0 4px; white-space:nowrap; }
.mm-revviewer { position:relative; width:100%; height:calc(100vh - 258px); min-height:460px; border:1px solid #eef1f6;
    border-radius:12px; overflow:hidden; background:#f5f7fb; }
.mm-revviewer .pdfobject-container, .mm-revviewer iframe { width:100%; height:100%; border:0; }
.mm-revviewer:empty::after { content:attr(data-empty); position:absolute; inset:0; display:flex; align-items:center;
    justify-content:center; color:#aab6c8; font-size:14px; }
.mm-revfin { max-width:640px; margin:0 auto; }
.mm-revfin .mm-alert { margin-bottom:16px; }

/* ============================================================================
   ALERTS façon DashLite — classe globale .mm-alert (+ helper PHP mm_alert() /
   JS mm_alert()). Fond teinté + bordure + icône + texte à la couleur variante.
   ============================================================================ */
.mm-alert { display:-webkit-box; display:flex; -webkit-box-align:start; align-items:flex-start; gap:11px; padding:12px 15px; border-radius:8px;
  border:1px solid transparent; font-size:13px; line-height:1.5; margin-bottom:12px; }
.mm-alert-ic { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; font-size:17px; line-height:1.45; }
.mm-alert-txt { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.mm-alert-txt strong, .mm-alert-txt b { font-weight:700; }
.mm-alert-txt a { color:inherit; font-weight:700; text-decoration:underline; }
.mm-alert-close { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; margin-left:8px; background:none; border:none; font-size:20px; line-height:1; color:inherit; opacity:.55; cursor:pointer; padding:0 2px; }
.mm-alert-close:hover { opacity:1; }
/* variantes (fond / bordure / couleur texte+icône) */
.mm-alert-success { background:#e7f8ef; border-color:#c3efd6; color:#1f9d5f; }
.mm-alert-info    { background:#e4f2fd; border-color:#bfe0f8; color:#1e7fd6; }
.mm-alert-warning { background:#fdf4da; border-color:#f6e2a6; color:#b7860f; }
.mm-alert-danger  { background:#fdeaea; border-color:#f6c7c7; color:#d83b3b; }
.mm-alert-gray    { background:#edf0f5; border-color:#dde3ec; color:#55647d; }
.mm-alert-light   { background:#fbfcfe; border-color:#e9edf3; color:#59698a; }

/* Bandeau « vue déléguée » (messagerie) : icône + texte à gauche, retour à droite */
.mm-deleg-banner { -webkit-box-align:center; align-items:center; margin-bottom:12px; }
.mm-deleg-banner svg { width:17px; height:17px; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.mm-deleg-banner span { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.mm-deleg-back { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; font-weight:700; text-decoration:underline; color:inherit; white-space:nowrap; }

/* upgrade des .alert Bootstrap déjà présents (couleurs seulement, pas de layout) */
.alert { border-radius:8px; border:1px solid transparent; font-size:13px; }
.alert-success { background:#e7f8ef !important; border-color:#c3efd6 !important; color:#1f9d5f !important; }
.alert-info    { background:#e4f2fd !important; border-color:#bfe0f8 !important; color:#1e7fd6 !important; }
.alert-warning { background:#fdf4da !important; border-color:#f6e2a6 !important; color:#b7860f !important; }
.alert-danger:not(.dark) { background:#fdeaea !important; border-color:#f6c7c7 !important; color:#d83b3b !important; }
.alert-secondary, .alert-light { background:#edf0f5 !important; border-color:#dde3ec !important; color:#55647d !important; }

/* ============================================================================
   MODALES — base générique : TOUTES les modales Bootstrap du site en héritent
   (aucun markup à changer ; elles utilisent déjà .modal-content/.modal-header…).
   ============================================================================ */
/* Une modale ne doit jamais dépasser l'écran : on plafonne .modal-content (déjà flex colonne)
   et c'est le CORPS qui défile. En-tête et pied (donc les boutons) restent toujours visibles.
   Sans ça, une modale au contenu long (ex. « Remplacer par », étape 2) débordait sous le pli. */
.modal-content { border:none; border-radius:14px; -webkit-box-shadow:0 18px 60px rgba(20,40,80,.22); box-shadow:0 18px 60px rgba(20,40,80,.22); overflow:hidden; max-height:calc(100vh - 3.5rem); }
/* Beaucoup de modales enveloppent corps + pied dans un <form> : sans cette règle, le form
   (display:block) rompt la chaîne flex et le corps refuse de rétrécir. */
.modal-content > form { display:-webkit-box; display:-ms-flexbox; display:flex; -webkit-box-orient:vertical; -webkit-box-direction:normal; -ms-flex-direction:column; flex-direction:column; -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-height:0; }
.modal-header { padding:15px 20px; border-bottom:1px solid #eef1f6; -webkit-box-align:center; -ms-flex-align:center; align-items:center; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.modal-title { font-size:15px; font-weight:700; color:#28374b; }
/* min-height:0 est indispensable : sans lui un élément flex refuse de rétrécir sous la
   taille de son contenu (min-height:auto), le corps déborde et le pied sort de l'écran. */
.modal-body { padding:18px 20px; color:#43536b; font-size:13.5px; overflow-y:auto; min-height:0; }
.modal-footer { padding:12px 18px; border-top:1px solid #eef1f6; gap:8px; -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; }
.modal-footer > * { margin:0; }
.modal-footer .btn { border-radius:8px; font-weight:600; font-size:13px; padding:8px 16px; }
.modal .btn-close { border-radius:6px; -webkit-transition:.14s; transition:.14s; }
.modal .btn-close:hover { background-color:#eef1f6; opacity:1; }
.modal .close { border:none; background:none; font-size:22px; line-height:1; opacity:.5; cursor:pointer; }
.modal .close:hover { opacity:1; }
/* champs de formulaire dans une modale */
.modal-body .form-label { font-weight:600; font-size:12.5px; color:#5a6b85; margin-bottom:5px; }
.modal-body .form-control, .modal-body .form-select, .modal-body textarea { border-radius:8px; border-color:#e2e8f1; font-size:13.5px; }
.modal-body .form-control:focus, .modal-body .form-select:focus, .modal-body textarea:focus { border-color:#2c6fef; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }
/* fond + petite animation d'entrée (compatible modal-dialog-centered) */
.modal-backdrop.show { opacity:.45; }
.modal.fade .modal-dialog { -webkit-transform:scale(.96); transform:scale(.96); -webkit-transition:-webkit-transform .18s ease; transition:transform .18s ease; }
.modal.show .modal-dialog { -webkit-transform:none; transform:none; }

/* ============================================================================
   TOAST (Toastify) — même langage visuel que les alertes (.mm-alert)
   Piloté par mm3_toast(message, color) : className "mm-toast mm-toast-{variante}".
   ============================================================================ */
.toastify.mm-toast { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px;
  min-height:auto; padding:13px 16px; border-radius:10px; border:1px solid transparent;
  font-size:13px; font-weight:500; line-height:1.4; -webkit-box-shadow:0 8px 30px rgba(20,40,80,.18); box-shadow:0 8px 30px rgba(20,40,80,.18); }
.toastify.mm-toast .mm-toast-in { display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:10px; -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.toastify.mm-toast .mm-toast-ic { -webkit-box-flex:0; -ms-flex:0 0 auto; flex:0 0 auto; font-size:18px; line-height:1; display:-webkit-inline-box; display:inline-flex; }
.toastify.mm-toast .mm-toast-txt { -webkit-box-flex:1; -ms-flex:1 1 auto; flex:1 1 auto; min-width:0; }
.toastify.mm-toast .toast-close { color:inherit; opacity:.5; font-size:18px; padding:0 0 0 6px; -ms-flex-item-align:start; align-self:flex-start; }
.toastify.mm-toast .toast-close:hover { opacity:1; }
.toastify.mm-toast-success { background:#e7f8ef; border-color:#c3efd6; color:#1f9d5f; }
.toastify.mm-toast-danger  { background:#fdeaea; border-color:#f6c7c7; color:#d83b3b; }
.toastify.mm-toast-warning { background:#fdf4da; border-color:#f6e2a6; color:#b7860f; }
.toastify.mm-toast-info    { background:#e4f2fd; border-color:#bfe0f8; color:#1e7fd6; }
.toastify.mm-toast-gray    { background:#ffffff; border-color:#e6eaf0; color:#43536b; }

/* ── Habillage Select2 au style mm (init global mmSelectInit dans index.js) ──────────────
   Repeint le DOM Select2 pour qu'un <select> ait le même rendu que .mm-dossearch / .form-select. */
/* Règle standard Select2, absente du thème : masque le <select> natif une fois Select2 monté.
   Sans elle, natif + widget s'affichent tous les deux (« double select »). */
.select2-hidden-accessible { border:0 !important; clip:rect(0 0 0 0) !important; -webkit-clip-path:inset(50%) !important; clip-path:inset(50%) !important; height:1px !important; width:1px !important; overflow:hidden !important; padding:0 !important; margin:-1px !important; position:absolute !important; white-space:nowrap !important; }
.select2-container { width:100% !important; }
.select2-container--default .select2-selection--single {
  height:40px; border:1px solid #d4e0e5; border-radius:8px; background:#fff;
  display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center;
  padding:0 34px 0 14px; -webkit-transition:border-color .15s ease,box-shadow .15s ease; transition:border-color .15s ease,box-shadow .15s ease; }
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color:#364a63; font-size:13px; font-weight:500; line-height:1.3; padding:0; }
.select2-container--default .select2-selection--single .select2-selection__placeholder { color:#b6c0d4; font-weight:400; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top:0; right:10px; width:16px; height:100%; }
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  top:50%; left:50%; width:14px; height:12px; margin:0; border:0; -webkit-transform:translate(-50%,-50%); transform:translate(-50%,-50%);
  background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%238094ae' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") center/14px 12px no-repeat; }
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color:#b9cdf5; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.select2-container--default.select2-container--disabled .select2-selection--single { background:#f1f4f8; cursor:not-allowed; }

/* --- Select multiple : mêmes bordure/rayon/focus que le simple, valeurs en puces (chips). --- */
.select2-container--default .select2-selection--multiple {
  min-height:40px; border:1px solid #d4e0e5; border-radius:8px; background:#fff;
  padding:4px 8px; -webkit-transition:border-color .15s ease,box-shadow .15s ease; transition:border-color .15s ease,box-shadow .15s ease; }
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple {
  border-color:#b9cdf5; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
  display:-webkit-box; display:flex; -ms-flex-wrap:wrap; flex-wrap:wrap; gap:5px; padding:0; margin:0; }
.select2-container--default .select2-selection--multiple .select2-selection__placeholder {
  color:#b6c0d4; font-size:13px; line-height:30px; margin:0; }
/* !important seulement sur les propriétés que le thème (color-*.css) force lui-même en !important :
   padding, margin, background-color, border-color, et la couleur de la croix. */
.select2-container--default .select2-selection--multiple .select2-selection__choice {
  display:-webkit-box; display:flex; -webkit-box-align:center; align-items:center; gap:6px;
  background-color:#eaf2ff !important; border:1px solid #d3e2fb; border-color:#d3e2fb !important;
  border-radius:6px; color:#2c6fef;
  font-size:12.5px; font-weight:500; line-height:1.4;
  padding:4px 8px !important; margin:0 !important; margin-top:0 !important; margin-right:0 !important; max-width:100%; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
  color:#7fa4e8 !important; font-weight:700; margin:0; border:0; background:none; font-size:14px; line-height:1; float:none; }
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { color:#e0484d !important; }
.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
  margin:0; height:30px; font-size:13px; color:#33425c; font-family:inherit; }
.select2-container--default.select2-container--disabled .select2-selection--multiple { background:#f1f4f8; cursor:not-allowed; }

.select2-container--default .select2-dropdown {
  border:1px solid #e6edf6; border-radius:10px; -webkit-box-shadow:0 8px 24px rgba(43,55,72,.13); box-shadow:0 8px 24px rgba(43,55,72,.13); overflow:hidden; }
.select2-container--default .select2-search--dropdown { padding:8px; }
.select2-container--default .select2-search--dropdown .select2-search__field {
  border:1px solid #e2e8f1; border-radius:8px; padding:8px 11px; font-size:13px; color:#33425c; outline:none; }
.select2-container--default .select2-search--dropdown .select2-search__field:focus {
  border-color:#2c6fef; -webkit-box-shadow:0 0 0 3px rgba(44,111,239,.12); box-shadow:0 0 0 3px rgba(44,111,239,.12); }
.select2-container--default .select2-results__options { padding:4px; max-height:280px; }
.select2-container--default .select2-results__option {
  border-radius:7px; padding:8px 10px; font-size:12.8px; color:#33425c; line-height:1.4; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background:#eef4ff; color:#1b57d6; }
.select2-container--default .select2-results__option[aria-selected=true] { background:#f2f6fd; color:#1b57d6; font-weight:600; }
.select2-container--default .select2-results__message { color:#8094ae; font-size:12.5px; padding:10px; }
select.form-select-sm + .select2-container .select2-selection--single { height:34px; }
select.form-select-sm + .select2-container .select2-selection__rendered { font-size:11.5px; }

/* ── Priorité mm sur les !important décoratifs Select2 du thème (style.css / color-3.css) ──
   Le thème force des couleurs (option sélectionnée #168eea, survol #e0e0e0) et une boîte
   (radius 4px, bordure #e6edef) en !important → on les rebat au style mm avec !important + spécificité égale. */
.select2-container--default .select2-selection--single {
  border:1px solid #d4e0e5 !important; border-radius:8px !important; height:40px !important; padding:0 34px 0 14px !important;
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single { border-color:#b9cdf5 !important; }
.select2-container--default .select2-selection--single .select2-selection__arrow { top:0 !important; right:10px !important; height:100% !important; }
.select2-container--default .select2-results__options .select2-results__option[aria-selected=true] { background-color:#f2f6fd !important; color:#1b57d6 !important; }
.select2-container--default .select2-results__options .select2-results__option--highlighted[aria-selected] { background-color:#eef4ff !important; color:#1b57d6 !important; }
select.form-select-sm + .select2-container--default .select2-selection--single { height:34px !important; }

/* Espacement : le <select> masqué par Select2 est hors flux → sa marge mb-* (posée en direct
   sur le <select>) est perdue. On la reporte sur le conteneur pour retrouver le rythme vertical
   des filtres/formulaires. Les selects "helper" ont leur marge sur le wrapper (.col mb-1) → intacts. */
select.mb-1 + .select2-container,
select.mb-2 + .select2-container,
select.mb-3 + .select2-container { margin-bottom: 1rem; }

/* ── Libellés de filtre GÉNÉRIQUES : rendu identique sur TOUS les panneaux .mm-dt-filters,
   prioritaire sur .mm-form (mêmes valeurs que .mm-dt-filters label, mais bat .mm-form .form-label). */
.mm-dt-filters .form-label, .mm-dt-filters label {
  display:block; font-size:10.5px; font-weight:700; text-transform:uppercase;
  letter-spacing:.03em; color:#9aa7bd; margin:9px 0 4px;
}

/* ── Icône « poubelle » (suppression) = TOUJOURS ROUGE, partout (cohérence app-wide) ─────
   Sur fond clair, quelle que soit la couleur héritée (ex. panier .mm-act en bleu). */
i.fa-trash, i.fa-trash-o, i.fa-trash-alt, i.fa-trash-can, .feather-trash-2, svg.feather-trash-2 {
  color:#e0484d !important;
}
/* Exception : icône BLANCHE sur un bouton PLEIN rouge (fond rouge) — pas les boutons outline. */
.mm-btn-danger i.fa-trash, .btn-danger:not(.btn-outline-danger) i.fa-trash,
.mm-btn-danger .feather-trash-2, .btn-danger:not(.btn-outline-danger) .feather-trash-2 {
  color:#fff !important;
}

/* Statut réservé à un AUTRE type de dossier : information, pas une action.
   (Avant : rendu en <a href="#"> → curseur « pointer » trompeur, clic sans effet.) */
.mm-stat-lock { cursor:default; display:inline-flex; align-items:center; gap:6px; }
.mm-stat-lock i { font-size:11px; opacity:.75; }

/* ══════ Filtre latéral par liens (liste dossiers coffre/favoris) ══════ */
.mm-statfilter { display:flex; flex-direction:column; gap:10px; }
.mm-statfilter .mm-filter-item { display:block; font-size:12.5px; color:#364a63; text-decoration:none; line-height:1.3; }
.mm-statfilter .mm-filter-item:hover { color:#2c6fef; }
.mm-statfilter .mm-filter-all { padding-top:8px; border-top:1px solid #eef1f6; color:#2c6fef; font-weight:600; }
.mm-statfilter .mm-filter-cur { cursor:default; position:relative; padding-left:18px; }
.mm-statfilter .mm-filter-cur::before { content:"\2713"; position:absolute; left:0; color:#2f9e44; font-weight:700; }
.mm-statfilter a.mm-filter-item.mm-filter-all:hover { text-decoration:underline; }

/* ══════ Liste « Workflow à valider » (file d'attente à gauche) ══════ */
.mm-wkf-list { display:flex; flex-direction:column; }
.mm-wkf-item { display:block; padding:11px 14px; border-bottom:1px solid #eef1f6; text-decoration:none; color:#364a63; font-size:12.5px; line-height:1.45; }
.mm-wkf-item:last-child { border-bottom:none; }
.mm-wkf-item:hover { background:#f7f9fc; color:#364a63; }
.mm-wkf-item.mm-wkf-cur { background:#eaf2ff; border-left:3px solid #2c6fef; padding-left:11px; }
.mm-wkf-item small { color:#8094ae; }
