/* nossaRede — ajustes específicos do app sobre o postal-ui-kit.css.
   O kit é a base; aqui só o que falta (responsividade, helpers, estados HTMX). */

/* ---- Sidebar como coluna flex: fixa o rodapé de versão ao pé do menu.
   Definido ANTES do @media para que o `display:none` mobile (posterior) ainda vença. ---- */
.sidebar { display: flex; flex-direction: column; }
.sidebar-foot {
  margin-top: auto;
  padding: 12px 12px 4px;
  color: var(--texto-terciario);
  font-size: 11px;
}
.sidebar-foot strong { font-weight: 600; }

/* ---- Responsividade (o kit é desktop-first) ---- */
@media (max-width: 880px) {
  .layout { grid-template-columns: 1fr; }
  .sidebar { display: none; }
  .kpi-strip { grid-template-columns: 1fr 1fr; }
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
}

/* ---- Indicador de carregamento HTMX ---- */
.htmx-indicator { opacity: 0; transition: opacity .2s; }
.htmx-request .htmx-indicator { opacity: 1; }
.htmx-request.htmx-indicator { opacity: 1; }

/* ---- Espaçadores e utilitários extra ---- */
.mb-3 { margin-bottom: 16px; }
.w-full { width: 100%; }
.text-right { text-align: right; }
.text-center { text-align: center; }
.nowrap { white-space: nowrap; }
.muted-row td { color: var(--texto-terciario); }
.spacer { flex: 1; }

/* ---- Mapa/placeholder de matriz territorial ---- */
.matriz-uf { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 8px; }
.matriz-uf .uf-cell {
  border: 1px solid var(--borda); border-radius: var(--raio-md);
  padding: 8px 10px; background: white; border-left-width: 3px;
}

/* ---- Empty state ---- */
.empty-state {
  text-align: center; padding: 40px 20px; color: var(--texto-terciario);
  border: 1px dashed var(--borda-forte); border-radius: var(--raio-lg); background: white;
}

/* ---- Tabela densa rolável ---- */
.table-scroll { max-height: 62vh; overflow: auto; }
/* Fundo opaco no cabeçalho fixo — mesma cor do thead (table.dados thead { background: var(--bg-sidebar) })
   para que as linhas não apareçam por trás ao rolar. */
.table-scroll table.dados thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bg-sidebar);
}

/* ---- Card KPI clicável (v2.8.0) ----
   .kpi-link não deve virar o item do grid nem sublinhar: display:contents deixa
   o .kpi-card interno ser o filho direto de .kpi-strip (layout idêntico), só
   tornando-o clicável. Compartilhado por dashboard (kpi_kpis, "Regiões sem
   rede") e /rede (cards por categoria). */
.kpi-strip .kpi-link { display: contents; color: inherit; text-decoration: none; }
.kpi-strip .kpi-link .kpi-card { cursor: pointer; }

/* ---- Badge neutro (v2.8.0) ----
   O kit base (postal-ui-kit.css) só define .badge-primary/.badge-warn; chips de
   categoria "não-utilizável" (ex. NÃO CREDENCIADO, PROSPECÇÃO) usam esta variante
   discreta — mesmo padrão de .kpi-card.neutro. */
.badge-neutro { background: var(--texto-fraco); color: white; }
/* Badge "ok" (v2.8.1) — confirmação positiva (ex.: IP já coberto pela allowlist). */
.badge-ok { background: var(--verde-ok); color: white; }
