/* Gestão Estratégica — dashboard e mapa.

   Estas regras precisam viver AQUI, num arquivo servido pela própria origem, e
   não num bloco <style> injetado por JS: a CSP dos domínios do app declara
   `style-src-elem 'self'` SEM 'unsafe-inline', então o navegador descarta
   qualquer <style> criado em runtime. Sem elas, os cards e gráficos perdem o
   grid e empilham um por linha mesmo no desktop. */

/* Mobile-first: 1 card/gráfico/tabela por linha, sem estourar a largura da tela.
   Desktop (>=769px) reproduz o layout de duas e quatro colunas. */
.ge-dash-stats { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; margin: 16px 0; }
.ge-dash-2col-a, .ge-dash-2col-b { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-bottom: 16px; }
.ge-dash-stats > .card,
.ge-dash-2col-a > .card,
.ge-dash-2col-b > .card { min-width: 0; max-width: 100%; overflow: hidden; }

.ge-obj-cards { display: block; }
.ge-obj-table-wrap { display: none; }
.ge-obj-card { padding: 10px 0; border-top: 1px solid var(--line); }
.ge-obj-card:first-child { border-top: none; }

@media (min-width: 769px) {
  .ge-dash-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ge-dash-2col-a { grid-template-columns: 1.3fr minmax(0, 1fr); }
  .ge-dash-2col-b { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ge-obj-cards { display: none; }
  .ge-obj-table-wrap { display: block; }
}

/* Mapa estratégico: no celular o bloco de identidade não recebe o recuo. */
@media (max-width: 768px) {
  .mapa-identidade { margin-left: 0 !important; }
}
