/* =============================================================================================
   HABUS – Navigation Sidebar (NO SCROLL / FIT ONE PAGE)
   File: habus_nav.css
   ============================================================================================= */

/* =============================================================================================
   0) Safety defaults
   ============================================================================================= */

.navigator,
.navigator * {
  box-sizing: border-box;
}

/* =============================================================================================
   1) Sidebar Container (no slider / fits one page)
   ============================================================================================= */

.navigator {
  width: var(--habus-nav-width, 170px);
  height: 100vh;

  flex-shrink: 0;
  display: flex;
  flex-direction: column;

  padding: 10px;

  background-color: var(--habus-color-nav-bg);

  overflow: hidden;     /* ✅ kein horizontaler UND kein vertikaler Slider */

  /* Bleibt beim Scrollen langer Seiten (z.B. Karten-/Auswertungsseiten) im Viewport sichtbar,
     statt mit dem Content-Bereich aus dem sichtbaren Bereich zu scrollen. */
  position: sticky;
  top: 0;
  align-self: flex-start;
}

/* =============================================================================================
   1b) Resize-Slider (Drag-Handle zwischen Navigator und Content)
   ============================================================================================= */

.habus-nav-resizer {
  width: 6px;
  flex-shrink: 0;
  cursor: col-resize;

  position: sticky;
  top: 0;
  height: 100vh;
  align-self: flex-start;

  background: rgba(0, 0, 0, 0.08);
  transition: background-color .12s ease;
}

.habus-nav-resizer:hover,
.habus-nav-resizer.is-dragging {
  background: var(--habus-color-primary-light);
}

/* =============================================================================================
   2) Lists
   ============================================================================================= */

.navigation,
.sub-navigation {
  margin: 0;
  padding: 0;
  list-style: none;

  font-family: Arial, Helvetica, sans-serif;
  font-size: var(--habus-font-size-navigation);
}

/* Das Menü nimmt den verfügbaren Platz ein */
.navigation {
  flex: 1 1 auto;
  overflow: hidden; /* ✅ kein Scroll */
}

/* =============================================================================================
   3) Items (compact spacing)
   ============================================================================================= */

.navigation li {
  width: 100%;
  margin: 4px 0;     /* ✅ kompakter als vorher */
}

/* =============================================================================================
   4) Links (no overflow)
   ============================================================================================= */

.navigation a,
.sub-navigation a {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;

  padding: 6px 8px;       /* ✅ kompakter */
  border-radius: 10px;

  color: #bac7bb;
  font-weight: 700;
  text-decoration: none;

  overflow: hidden;       /* ✅ Link-Inhalt darf nicht raus */
}

/* Hover */
.navigation a:hover,
.sub-navigation a:hover {
  background-color: rgba(255, 255, 255, 0.12);
}

/* =============================================================================================
   5) Icons + Text
   ============================================================================================= */

.navigation i,
.sub-navigation i {
  width: 18px;
  text-align: center;
  flex-shrink: 0;
}

.nav-text {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;   /* ✅ wenn zu lang -> ... */
  min-width: 0;              /* ✅ wichtig für flex overflow */
}

/* =============================================================================================
   6) Submenu (compact + controlled)
   ============================================================================================= */

.sub-navigation {
  margin-top: 4px;
  padding-left: 18px;   /* ✅ etwas eingerückt, aber nicht zu viel */
}

/* standard: versteckt */
li.has-children > .sub-navigation {
  display: none;
}

/* sichtbar wenn open */
li.has-children.open > .sub-navigation {
  display: block;
}

/* Pfeil-Indikator für aufklappbare Hauptpunkte */
li.has-children > a .nav-caret {
  margin-left: auto;
  flex-shrink: 0;
  transition: transform 0.18s ease;
}

li.has-children.open > a .nav-caret {
  transform: rotate(90deg);
}

/* =============================================================================================
   7) Footer (small, no space waste)
   ============================================================================================= */

.navigator-footer {
  margin-top: auto;    /* schiebt ihn ganz nach unten */
  padding: 6px;

  font-size: 9px;
  text-align: left;    /* jetzt links */
  opacity: 0.6;
  color: #e0e0e0;

  line-height: 1.1;
}

/* =============================================================================================
   8) Mobile: optional off-canvas (ohne Scroll/Slider)
   ============================================================================================= */

.habus-nav-toggle {
  display: none;

  width: 42px;
  height: 42px;

  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.15);

  background: #fff;
  cursor: pointer;

  margin-bottom: 8px;
}

.habus-nav-toggle i {
  font-size: 18px;
}

.habus-nav-backdrop {
  display: none;
  position: fixed;
  inset: 0;

  background: rgba(0, 0, 0, 0.45);
  z-index: 2400;
}

@media (max-width: 860px) {
  .habus-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .habus-nav-resizer {
    display: none;      /* Off-Canvas-Menü statt Sidebar -> keine Breitenanpassung per Slider */
  }

  .navigator {
    position: fixed;
    left: 0;
    top: 0;

    width: 320px;
    max-width: 86vw;

    transform: translateX(-110%);
    transition: transform 0.22s ease;

    z-index: 2500;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
  }

  .navigator.is-open {
    transform: translateX(0);
  }

  .habus-nav-backdrop.is-open {
    display: block;
  }
}

/* Mobile: Hamburger immer oben links fest */
@media (max-width: 860px) {

  /* Der Button sitzt in deinem Header, soll aber fixed sein */
  #habusNavToggle.habus-nav-toggle{
    position: fixed;
    top: 10px;
    left: 10px;
    margin: 0;
    z-index: 2601; /* über Backdrop (2400) und Panel (2500) */
  }

  /* Optional: damit nichts unter dem Button "klebt" */
  .content{
    /* padding-top: 64px; /* vorher 20px -> jetzt Platz für den fixed Button */
    padding-top: 20px;
  }
}
