/* ============================================================================
 * Central de Comunicações Operacionais — RESPONSIVIDADE
 * Desktop é a prioridade (1366×768+); tablet e celular ficam utilizáveis.
 * ========================================================================== */

/* Telas médias / notebooks compactos */
@media (max-width: 1500px) {
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1279px) {
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .header-center .sys-pill { display: none; }
  .topo-wrap { grid-template-columns: 1fr; }
  #topology-graph { min-height: 340px; }
}

/* Tablet: menu lateral vira drawer, painel do mapa recolhível */
@media (max-width: 1023px) {
  .body { grid-template-columns: 1fr; }
  .nav {
    position: fixed;
    top: calc(var(--banner-h) + var(--header-h));
    left: 0; bottom: var(--footer-h);
    width: min(240px, 82vw);
    box-shadow: var(--shadow-lg);
    transform: translateX(-103%);
    transition: transform 0.22s ease;
    z-index: 1300;
  }
  .nav.open { transform: translateX(0); }
  #btn-nav { display: inline-flex; }
  .map-side {
    position: absolute; top: 0; left: 0; bottom: 0; z-index: 950;
    box-shadow: var(--shadow-lg);
    transform: translateX(-103%);
    transition: transform 0.22s ease;
  }
  .map-side.open { transform: translateX(0); }
  #btn-map-side { display: inline-flex; }
  .grid-2 { grid-template-columns: 1fr; }
  .brand-sub, .user-chip .name, .sys-clock .date { display: none; }
}

#btn-nav, #btn-map-side { display: none; }

/* Celular */
@media (max-width: 639px) {
  .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .header-center { display: none; }
  .kpi-bar { padding: 8px 10px; }
  .kpi-card { min-width: 88px; flex: none; }
  .legend, .map-kpis { display: none; }
  .detail { width: 100vw; }
  .view { padding: 10px; }
}
