.dm-burger-wrap{
  position: relative;
  display: inline-flex;
  align-items: center;
  /* If the header is a flex row, this pushes the burger to the right */
  margin-left: auto;
}

.dm-burger-btn,
[data-dm-burger="1"]{
  position:relative;
  top:auto;
  right:auto;
  z-index:9999;
  width:44px;
  height:44px;
  border-radius:12px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.16);
  color:#fff;
  font-size:20px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  -webkit-tap-highlight-color:transparent;
}

.dm-burger-menu{
  /* Fixed so the menu is never clipped by an ancestor (some headers/cards use overflow:hidden). */
  position:fixed;
  top: calc(max(12px, env(safe-area-inset-top)) + 54px);
  right: 12px;
  left:auto;
  z-index:9999;
  width:min(320px, calc(100vw - 24px));
  background:rgba(26,26,26,0.98);
  border:1px solid rgba(255,255,255,0.10);
  border-radius:16px;
  padding:12px;
  display:none;
  flex-direction:column;
  gap:10px;
  backdrop-filter: blur(10px);
  max-height: 70vh;
  overflow: auto;
}

.dm-burger-menu.open{display:flex;}

.dm-burger-menu a{
  color:#fff;
  text-decoration:none;
  padding:12px 14px;
  border-radius:12px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);
  font-weight:600;
}

.dm-burger-menu .dm-muted{
  font-size:12px;
  color:rgba(255,255,255,0.65);
  padding:4px 6px;
}

.dm-lang-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(255,255,255,0.04);
  border:1px solid rgba(255,255,255,0.08);
}

.dm-lang-label{
  color:rgba(255,255,255,0.75);
  font-size:13px;
  font-weight:600;
}

.dm-lang-select{
  background:rgba(255,255,255,0.06);
  color:#fff;
  border:1px solid rgba(255,255,255,0.16);
  border-radius:10px;
  padding:8px 10px;
}

/* Fixed placement (pages without header) */
.dm-burger-wrap.dm-fixed{
  position: fixed;
  top: max(12px, env(safe-area-inset-top));
  right: 12px;
  z-index:9999;
}

/* Mobile portrait safety: keep the burger always visible.
   Some pages hide `.user-menu` on small screens and large titles can push flex
   children out of view. On phones we pin the burger to the top-right so it
   never disappears. */
@media (max-width: 768px){
  /*
    Sur mobile, on ne "punaise" (fixed) le burger que si la page n'a pas de header.
    Sinon, on le laisse dans le header pour éviter les chevauchements.
  */
  body.dm-no-header .dm-burger-wrap{
    position: fixed;
    top: max(12px, env(safe-area-inset-top));
    right: 12px;
    z-index:9999;
    margin-left: 0;
  }
  body.dm-no-header .dm-burger-menu{
    /* already fixed in base rule; keep for clarity */
    top: calc(max(12px, env(safe-area-inset-top)) + 54px);
    right: 12px;
  }
}



/* V31 FIX: force burger top-right on ALL devices (desktop included) */
#navToggle.nav-toggle,
.nav-toggle,
.dm-burger-btn,
[data-dm-burger="1"]{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:fixed !important;
  top: max(12px, env(safe-area-inset-top)) !important;
  right: 12px !important;
  left: auto !important;
  bottom: auto !important;
  z-index:10000 !important;
  width:44px !important;
  height:44px !important;
  border-radius:12px !important;
  margin:0 !important;
}

/* prevent any parent from clipping or stealing clicks */
#dm-burger-wrap,
.dm-burger-wrap{
  position:fixed !important;
  top: max(12px, env(safe-area-inset-top)) !important;
  right: 12px !important;
  left:auto !important;
  bottom:auto !important;
  z-index:10000 !important;
  pointer-events:none;
}
#dm-burger-wrap > *,
.dm-burger-wrap > *{
  pointer-events:auto;
}

/* V31: language buttons (FR/EN) visible */
.dm-lang-buttons{
  display:flex;
  gap:8px;
  align-items:center;
}
.dm-lang-btn{
  background:rgba(255,255,255,0.06);
  color:#fff;
  border:1px solid rgba(255,255,255,0.16);
  border-radius:10px;
  padding:8px 12px;
  font-weight:800;
  cursor:pointer;
}
.dm-lang-btn.active{
  background:rgba(99,102,241,0.35);
  border-color: rgba(99,102,241,0.65);
}

/* V40 menu height fix */
.dm-burger-menu{
  max-height: calc(100vh - max(16px, env(safe-area-inset-top)) - 16px) !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
}

/* V40: app title on landing */
.app-name{
  text-align:center;
  font-weight:800;
  letter-spacing:.18em;
  font-size:12px;
  text-transform:uppercase;
  color:rgba(255,255,255,0.72);
  margin-bottom:10px;
}
