/* =============================================================================
 * app-shell.css — chrome do NOSSO produto, carregado DEPOIS do merion-ds/**
 * (que fica verbatim, CLAUDE.md §2). Aqui vive só o que o DS não traz: a
 * sidebar RETRÁTIL.
 *
 * O site.css do DS entrega uma sidebar fixa de 244px que simplesmente
 * `display:none` abaixo de 820px — não retrai e no mobile desaparece sem
 * substituto. Este arquivo troca isso pelo comportamento do merion-cloud /
 * power-bi-gateway (mesma linguagem visual, classes idênticas):
 *   · < 821px  → drawer sobreposto (backdrop, fecha ao navegar)
 *   · ≥ 821px  → empurra o conteúdo e COLAPSA num trilho de 64px só com ícones
 * ============================================================================= */

/* ---- Drawer sobreposto (base / mobile) ---- */
.dash-app {
  grid-template-columns: 1fr;
}
.dapp-side {
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 200;
  align-self: auto;
  width: 244px;
  max-width: 84vw;
  height: 100dvh;
  transform: translateX(-100%);
  transition: transform 0.22s ease;
  box-shadow: var(--shadow);
}
.dapp-side[data-open="true"] {
  transform: translateX(0);
}
/* Desfaz explicitamente o `display:none` do site.css nesse breakpoint. */
@media (max-width: 820px) {
  .dapp-side {
    display: flex;
  }
}

.dapp-side-backdrop {
  position: fixed;
  inset: 0;
  z-index: 150;
  background: rgba(0, 0, 0, 0.5);
  animation: fade 0.15s ease;
}

/* ---- Botão de menu (hambúrguer) — visível em qualquer largura ---- */
.dapp-menu-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--foreground);
  border-radius: var(--radius);
  cursor: pointer;
  transition: background 0.12s ease;
}
.dapp-menu-btn .ic {
  font-size: 20px;
}
.dapp-menu-btn:hover {
  background: var(--accent);
}

/* ---- Desktop: push + trilho colapsado ---- */
@media (min-width: 821px) {
  .dash-app {
    grid-template-columns: auto 1fr;
  }
  .dapp-side {
    position: sticky;
    left: auto;
    z-index: auto;
    height: 100vh;
    width: 244px;
    max-width: none;
    transform: none;
    box-shadow: none;
    transition: width 0.2s ease;
  }
  .dapp-side[data-open="false"] {
    width: 64px;
  }
  /* Colapsada: só ícones (rótulos e cabeçalhos de grupo somem) */
  .dapp-side[data-open="false"] .dapp-navlabel {
    display: none;
  }
  .dapp-side[data-open="false"] .dapp-nav {
    padding: 8px 8px;
  }
  .dapp-side[data-open="false"] .dapp-navitem {
    justify-content: center;
    gap: 0;
    font-size: 0;
    padding: 10px;
  }
  .dapp-side[data-open="false"] .dapp-navitem .ic {
    font-size: 18px;
  }
  /* No desktop é push: nada de escurecer o conteúdo */
  .dapp-side-backdrop {
    display: none;
  }
}
