/* ─────────────────────────────────────────────
   Composant menu latéral — Wiki Shevar'
   À inclure sur CHAQUE page, après les polices
   et après le CSS propre à la page.
   ───────────────────────────────────────────── */

.page-shell{ position:relative; z-index:1; }
.page-main{ width:100%; }

.side-menu{
  position:fixed; left:0; top:0; bottom:0; z-index:100001;
  width:250px; height:100%; overflow-y:auto; overflow-x:hidden;
  background:#0d1116; border-right:1px solid rgba(48,239,201,0.15);
  padding:1.4rem 0.9rem 2rem; font-family:'Audiowide',sans-serif; font-size:0.78rem;
  display:flex; flex-direction:column;
  transform:translateX(-100%);
  transition:transform 0.25s ease;
  box-shadow:0 0 30px rgba(0,0,0,0.4);
}
body.menu-open .side-menu{ transform:translateX(0); }

.side-menu .logo{
  display:flex; justify-content:center; padding:0.2rem 0 1.4rem;
  margin-bottom:0.8rem; border-bottom:1px solid rgba(48,239,201,0.12);
}
.side-menu .logo img{
  max-width:100%; height:auto;
  filter:drop-shadow(0 0 6px rgba(255,255,255,0.55)) drop-shadow(0 0 16px rgba(255,255,255,0.3));
}

.side-menu .item{
  display:flex; align-items:center; justify-content:space-between; gap:0.6rem;
  padding:0.6rem 0.6rem; border-radius:8px; color:#9aa0a6; cursor:pointer;
  text-transform:uppercase; letter-spacing:0.02em; transition:background 0.15s, color 0.15s;
  font-family:inherit; font-size:inherit; text-decoration:none;
  background:none; border:none; width:100%; text-align:left; line-height:1.3;
}
.side-menu .item:focus-visible{ outline:2px solid #30efc9; outline-offset:2px; }
.side-menu .item:hover{ background:rgba(48,239,201,0.06); color:#f9f9f9; }
.side-menu .item.active{ background:#30efc9; color:#04342c; }
.side-menu .item .chev{ font-family:'Share Tech Mono',monospace; font-size:0.7rem; transition:transform 0.2s; }
.side-menu .item.open .chev{ transform:rotate(90deg); }

/* Ligne "Organisations" : le mot ouvre la page, le reste de la ligne
   (et la flèche) déplie/replie le sous-menu. */
.side-menu .item-parent-label{
  color:inherit; text-decoration:none; font:inherit; text-transform:inherit;
  letter-spacing:inherit; flex:0 0 auto;
}
.side-menu .item-parent-label:hover{ text-decoration:underline; }
.side-menu .chev-btn{
  background:none; border:none; padding:0.2rem; margin:0; color:inherit; font:inherit;
  cursor:pointer; display:flex; align-items:center; flex:0 0 auto;
}

.side-menu .children{
  max-height:0; overflow:hidden; transition:max-height 0.25s ease;
  padding-left:0.9rem; border-left:1px solid rgba(48,239,201,0.12); margin-left:0.7rem;
}
.side-menu .children.open{ max-height:400px; }
.side-menu .children .item{ font-size:0.72rem; padding:0.5rem 0.5rem; }

.menu-backdrop{
  position:fixed; inset:0; z-index:100000; background:rgba(0,0,0,0.45);
  opacity:0; pointer-events:none; transition:opacity 0.25s ease;
}
body.menu-open .menu-backdrop{ opacity:1; pointer-events:auto; }

.menu-toggle{
  position:fixed; top:1rem; left:1rem; z-index:100002; width:48px; height:48px; border-radius:50%;
  background:#0d1116; border:1.5px solid #30efc9; color:#30efc9;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  font-size:1.1rem;
  box-shadow:0 0 12px rgba(48,239,201,0.55), 0 0 26px rgba(48,239,201,0.25);
  transition:opacity 0.25s ease, transform 0.25s ease;
}
.menu-toggle:hover{
  background:rgba(48,239,201,0.12);
  box-shadow:0 0 16px rgba(48,239,201,0.75), 0 0 34px rgba(48,239,201,0.35);
}
body.menu-open .menu-toggle{ opacity:0; pointer-events:none; transform:scale(0.8); }
