/*
 * SilaLink Sidebar V3 — navigation structurée par usage.
 * La logique métier reste portée par includes/menu.php ; ce fichier ne gère que le shell visuel.
 */
:root{
  --sl-sidebar-accent:#5b5ce2;
  --sl-sidebar-accent-deep:#4f46d6;
  --sl-sidebar-accent-soft:#f1f2ff;
  --sl-sidebar-ink:#172033;
  --sl-sidebar-muted:#718096;
  --sl-sidebar-line:#e8edf4;
  --sl-sidebar-surface:#ffffff;
  --sl-sidebar-soft:#f8fafc;
  --sl-sidebar-success-bg:#e9fbf2;
  --sl-sidebar-success:#15805d;
}

body.sl-sidebar-v3 .side-nav{
  background:var(--sl-sidebar-surface)!important;
  border-right:1px solid var(--sl-sidebar-line)!important;
}
body.sl-sidebar-v3 .side-nav .side-nav-inner{
  height:calc(100vh - var(--sl-admin-header,64px))!important;
  overflow:hidden!important;
  background:var(--sl-sidebar-surface)!important;
}
body.sl-sidebar-v3 .side-nav-menu.sl-sidebar-v3-source{
  display:none!important;
}

.sl-sidebar-v3-shell{
  position:relative;
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  min-height:0;
  padding:11px 10px 9px;
  background:var(--sl-sidebar-surface);
  box-sizing:border-box;
}
.sl-sidebar-v3-shell *{box-sizing:border-box}

/* Sélecteur d’établissement */
.sl-sidebar-v3-top{
  position:relative;
  flex:0 0 auto;
  padding-bottom:10px;
}
.sl-sidebar-v3-company-button{
  width:100%;
  min-height:49px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:7px 10px;
  border:1px solid #e3e8f0;
  border-radius:14px;
  background:#fff;
  color:var(--sl-sidebar-ink);
  box-shadow:0 5px 16px rgba(15,23,42,.035);
  cursor:pointer;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.sl-sidebar-v3-company-button:hover,
.sl-sidebar-v3-company-button[aria-expanded="true"]{
  border-color:#cfd5ff;
  box-shadow:0 8px 22px rgba(79,70,229,.09);
}
.sl-sidebar-v3-company-icon{
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:grid;
  place-items:center;
  border:1px solid #e8ebf2;
  border-radius:10px;
  background:#f7f8fb;
  color:#344056;
  font-size:14px;
}
.sl-sidebar-v3-company-copy{
  min-width:0;
  flex:1;
  text-align:left;
}
.sl-sidebar-v3-company-copy strong{
  display:block;
  overflow:hidden;
  color:var(--sl-sidebar-ink);
  font-size:13px;
  font-weight:800;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sl-sidebar-v3-company-copy small{
  display:block;
  margin-top:2px;
  color:#98a2b3;
  font-size:9px;
  font-weight:750;
  letter-spacing:.055em;
  line-height:1.1;
  text-transform:uppercase;
}
.sl-sidebar-v3-company-chevron{
  flex:0 0 auto;
  color:#64748b;
  font-size:10px;
  transition:transform .16s ease;
}
.sl-sidebar-v3-company-button[aria-expanded="true"] .sl-sidebar-v3-company-chevron{transform:rotate(180deg)}
.sl-sidebar-v3-company-menu{
  position:absolute;
  z-index:1200;
  top:56px;
  left:0;
  right:0;
  display:none;
  max-height:280px;
  padding:6px;
  overflow:auto;
  border:1px solid #e1e6ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,23,42,.15);
}
.sl-sidebar-v3-company-menu.is-open{display:block}
.sl-sidebar-v3-company-option{
  display:flex;
  align-items:center;
  gap:9px;
  min-height:40px;
  padding:7px 9px;
  border-radius:10px;
  color:#475569!important;
  font-size:12px;
  font-weight:700;
  text-decoration:none!important;
}
.sl-sidebar-v3-company-option:hover{background:#f6f7fb;color:#1f2937!important}
.sl-sidebar-v3-company-option.is-current{background:var(--sl-sidebar-accent-soft);color:var(--sl-sidebar-accent-deep)!important}
.sl-sidebar-v3-company-option i:first-child{width:17px;text-align:center}
.sl-sidebar-v3-company-option span{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sl-sidebar-v3-company-option .sl-sidebar-v3-company-check{font-size:11px;color:var(--sl-sidebar-accent)}

.sl-sidebar-v3-assistant{
  width:100%;
  min-height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:8px;
  padding:8px 11px;
  border:1px solid #dfe1ff;
  border-radius:11px;
  background:linear-gradient(135deg,#f6f5ff,#f0f2ff);
  color:var(--sl-sidebar-accent-deep)!important;
  font-size:12.5px;
  font-weight:800;
  text-decoration:none!important;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.sl-sidebar-v3-assistant:hover{
  transform:translateY(-1px);
  border-color:#cfd1ff;
  background:#eceeff;
}

/* Zone de navigation */
.sl-sidebar-v3-scroll{
  min-height:0;
  flex:1 1 auto;
  overflow-x:hidden;
  overflow-y:auto;
  padding:1px 1px 8px;
  scrollbar-width:thin;
  scrollbar-color:#cbd5e1 transparent;
}
.sl-sidebar-v3-scroll::-webkit-scrollbar{width:5px}
.sl-sidebar-v3-scroll::-webkit-scrollbar-thumb{border-radius:999px;background:#cbd5e1}
.side-nav .side-nav-inner .side-nav-menu.sl-sidebar-v3-menu{
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
  list-style:none!important;
}
.sl-sidebar-v3-menu li{list-style:none}
.sl-sidebar-v3-section{
  margin:13px 8px 5px!important;
  padding:0!important;
  color:#98a2b3;
  font-size:9px;
  font-weight:850;
  letter-spacing:.09em;
  line-height:1.2;
  text-transform:uppercase;
}
.sl-sidebar-v3-section:first-child{margin-top:4px!important}

.sl-sidebar-v3-item{
  width:100%;
  margin:1px 0!important;
  padding:0!important;
}
.sl-sidebar-v3-link,
.sl-sidebar-v3-group-toggle{
  position:relative;
  width:100%;
  min-height:38px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:7px 9px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#66758b!important;
  font-family:inherit;
  font-size:12.4px;
  font-weight:690;
  line-height:1.22;
  text-align:left;
  text-decoration:none!important;
  cursor:pointer;
  transition:background .15s ease,color .15s ease;
}
.sl-sidebar-v3-link:hover,
.sl-sidebar-v3-group-toggle:hover{
  background:#f5f7fb;
  color:#273449!important;
}
.sl-sidebar-v3-link.is-current,
.sl-sidebar-v3-group.is-current>.sl-sidebar-v3-group-toggle{
  background:var(--sl-sidebar-accent-soft)!important;
  color:var(--sl-sidebar-accent-deep)!important;
  font-weight:820!important;
}
.sl-sidebar-v3-nav-icon{
  width:20px;
  min-width:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#758399;
  font-size:13px;
}
.sl-sidebar-v3-link:hover .sl-sidebar-v3-nav-icon,
.sl-sidebar-v3-group-toggle:hover .sl-sidebar-v3-nav-icon,
.sl-sidebar-v3-link.is-current .sl-sidebar-v3-nav-icon,
.sl-sidebar-v3-group.is-current>.sl-sidebar-v3-group-toggle .sl-sidebar-v3-nav-icon{
  color:var(--sl-sidebar-accent);
}
.sl-sidebar-v3-label{
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sl-sidebar-v3-chevron{
  flex:0 0 auto;
  color:#98a2b3;
  font-size:9px;
  transition:transform .16s ease;
}
.sl-sidebar-v3-group.open>.sl-sidebar-v3-group-toggle .sl-sidebar-v3-chevron{transform:rotate(90deg)}

.sl-sidebar-v3-submenu{
  display:none;
  margin:2px 0 4px!important;
  padding:2px 0 2px 25px!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.sl-sidebar-v3-group.open>.sl-sidebar-v3-submenu{display:block!important}
.sl-sidebar-v3-submenu .sl-sidebar-v3-item{margin:0!important}
.sl-sidebar-v3-submenu .sl-sidebar-v3-link{
  min-height:34px;
  gap:8px;
  padding:6px 8px;
  border-radius:9px;
  color:#718096!important;
  font-size:11.9px;
  font-weight:640;
}
.sl-sidebar-v3-submenu .sl-sidebar-v3-nav-icon{width:17px;min-width:17px;font-size:12px;color:#8a96a8}
.sl-sidebar-v3-submenu .sl-sidebar-v3-link.is-current{
  background:#edf1ff!important;
  color:var(--sl-sidebar-accent-deep)!important;
  font-weight:790!important;
}

.sl-sidebar-v3-badge{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:18px;
  padding:2px 7px;
  border-radius:999px;
  background:#eef2f7;
  color:#64748b;
  font-size:8px;
  font-weight:900;
  letter-spacing:.025em;
  line-height:1;
  text-transform:uppercase;
}
.sl-sidebar-v3-badge.is-active{background:var(--sl-sidebar-success-bg);color:var(--sl-sidebar-success)}
.sl-sidebar-v3-badge.is-new{background:#eceeff;color:var(--sl-sidebar-accent-deep)}

/* Pied fixe */
.sl-sidebar-v3-footer{
  flex:0 0 auto;
  margin:0 -10px -9px;
  padding:8px 10px 9px;
  border-top:1px solid var(--sl-sidebar-line);
  background:rgba(255,255,255,.98);
}
.sl-sidebar-v3-footer .sl-sidebar-v3-link{min-height:36px}
.sl-sidebar-v3-footer .sl-sidebar-v3-link.is-logout:hover{background:#fff1f2;color:#be123c!important}
.sl-sidebar-v3-footer .sl-sidebar-v3-link.is-logout:hover .sl-sidebar-v3-nav-icon{color:#be123c}

/* Les anciens blocs colorés injectés dynamiquement ne doivent plus dominer visuellement. */
body.sl-sidebar-v3 .side-nav-menu .sl-client-menu-module>a,
body.sl-sidebar-v3 .side-nav-menu .sl-client-menu-haccp>a,
body.sl-sidebar-v3 .side-nav-menu .sl-client-menu-staff>a,
body.sl-sidebar-v3 .side-nav-menu .sl-client-menu-procurement>a{
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

@media (min-width:992px){
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-shell{padding-left:6px;padding-right:6px}
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-company-button{justify-content:center;padding-left:5px;padding-right:5px}
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-company-copy,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-company-chevron,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-assistant span,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-section,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-label,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-chevron,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-badge{display:none!important}
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-assistant,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-link,
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-group-toggle{justify-content:center;padding-left:6px;padding-right:6px}
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-submenu{display:none!important}
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-footer{margin-left:-6px;margin-right:-6px}
  .is-folded .side-nav:not(:hover) .sl-sidebar-v3-company-menu{display:none!important}
}

@media (max-width:991.98px){
  .sl-sidebar-v3-shell{padding:10px 9px 8px}
  .sl-sidebar-v3-footer{margin-left:-9px;margin-right:-9px;margin-bottom:-8px;padding-left:9px;padding-right:9px}
  .sl-sidebar-v3-link,.sl-sidebar-v3-group-toggle{min-height:41px;font-size:13px}
  .sl-sidebar-v3-submenu .sl-sidebar-v3-link{min-height:37px;font-size:12.3px}
}
