/* ============================================================
 *  Correções Mobile — sidebar off-canvas + dashboards responsivos
 *  Carregado por último (maior prioridade). Resolve o menu que
 *  ficava "suspenso" a tapar o ecrã em telemóvel.
 * ============================================================ */

/* ---------- Sidebar como gaveta (≤ 991px) ---------- */
@media (max-width: 991.98px) {
  .sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 270px !important;
    height: 100vh !important;
    max-height: 100vh !important;
    margin: 0 !important;
    padding-top: 0 !important;
    transform: translateX(-100%);
    transition: transform .28s ease;
    z-index: 1045 !important;
    overflow-y: auto !important;
    box-shadow: 8px 0 40px rgba(15, 20, 40, .18);
  }
  body.mnav-open .sidebar { transform: translateX(0); }

  /* Overlay escuro por trás da gaveta */
  .sidebar-overlay {
    position: fixed !important;
    inset: 0 !important;
    background: rgba(15, 20, 40, .5);
    z-index: 1044 !important;
    opacity: 0;
    visibility: hidden;
    transition: opacity .28s ease;
    display: block !important;
  }
  body.mnav-open .sidebar-overlay { opacity: 1; visibility: visible; }
  body.mnav-open { overflow: hidden; }

  /* Conteúdo ocupa toda a largura (sem espaço reservado p/ sidebar) */
  .page-wrapper { margin-left: 0 !important; }

  /* Botão hamburguer: visível, tappável e bem posicionado */
  #toggle_btn { display: none !important; }
  #mobile_btn {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    margin: 11px 6px;
    border-radius: 10px;
    background: rgba(46, 55, 164, .08);
  }
  #mobile_btn img { width: 20px; height: 20px; }
  /* fallback: se o SVG não carregar, desenha 3 barras */
  #mobile_btn::after {
    content: "";
    display: none;
  }
}

/* Em desktop a gaveta/overlay nunca aparecem */
@media (min-width: 992px) {
  .sidebar-overlay { display: none !important; }
  body.mnav-open { overflow: auto; }
}

/* ---------- Dashboards mais limpos no telemóvel (≤ 767px) ---------- */
@media (max-width: 767.98px) {
  .content { padding: 14px !important; }
  .page-header { margin-bottom: 14px; }
  .page-title { font-size: 1.2rem !important; }
  .card { border-radius: 14px; }
  .card-body { padding: 16px !important; }
  /* tabelas largas deslizam em vez de rebentar o layout */
  .table-responsive { -webkit-overflow-scrolling: touch; }
  /* KPIs e cartões com respiro entre si */
  .row.g-3 > [class*="col-"] { margin-bottom: 2px; }
  /* evita overflow horizontal acidental */
  body, html { overflow-x: hidden; }
}
