/* Painel Trivante v2 — SÓ utilitários de layout. As CORES são do tema
   DashLite padrão + trivatemp.css (a mesma família do painel admin/OTA,
   aprovada pelo dono). Lição 2026-08-04: não pintar o template com a
   paleta do app — cada casa com sua roupa. */

/* KPI: linha de nota sempre presente => 4 cards com a mesma altura */
.painel-kpi-note { min-height: 1.75rem; margin-top: .25rem; }

/* Tile de sensor: coluna flex, spark e rodapé ancorados embaixo */
.painel-tile .card-inner { display: flex; flex-direction: column; height: 100%; }
.painel-tile-sub { min-height: 1.1rem; margin-bottom: 0; }
.painel-tile-reading { margin-top: .5rem; }
.painel-spark { height: 48px; margin-top: auto; padding-top: .5rem; }
.painel-spark canvas { width: 100% !important; height: 100% !important; }
.painel-tile-foot { margin-top: .5rem; }

/* Gráfico do sensor */
.painel-chart { height: 300px; margin-top: 1rem; }

/* Tabela de leituras contida (bloco secundário) */
.painel-readings { max-height: 340px; overflow-y: auto; }
.painel-readings thead th { position: sticky; top: 0; background: #fff; z-index: 1; }

/* Linhas de regra de alerta */
.painel-rule-row { padding: .5rem 0; border-bottom: 1px solid #dbdfea; }
.painel-rule-row:last-child { border-bottom: 0; }

/* Mapa (view-only) — cores de ESTADO (dado, não tema), tons do trivatemp.css */
.painel-map-wrap { position: relative; display: inline-block; max-width: 100%; }
.painel-map-wrap img { max-width: 100%; height: auto; display: block; border-radius: 8px; }
.painel-map-dot { position: absolute; transform: translate(-50%, -50%);
  border-radius: 50%; border: 2.5px solid #fff; box-shadow: 0 2px 8px rgba(31,43,70,.35); }
.painel-map-dot.is-ok     { background: #128a63; }
.painel-map-dot.is-alert  { background: #c74a3f; }
.painel-map-dot.is-off    { background: #8094ae; }
.painel-map-dot.is-locked { background: #9a6b00; }

/* v3 (auditoria Jean): elipse honesta p/ textos longos em flex */
.painel-ellipsis { min-width: 0; }
.painel-ellipsis, .painel-ellipsis .sub-text {
  max-width: 100%;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* rótulo dos pins do mapa (nome + leitura) */
.painel-map-label {
  position: absolute; transform: translate(-50%, 0);
  background: rgba(255,255,255,.94); border: 1px solid #dbdfea;
  border-radius: 4px; padding: 1px 6px; font-size: .68rem;
  color: #364a63; white-space: nowrap; pointer-events: none;
  box-shadow: 0 1px 4px rgba(31,43,70,.18);
}

/* contraste (auditoria: sub-texts abaixo de AA) — só nas páginas do painel */
.nk-content .sub-text { color: #526484; }
/* colunas da tabela de alarmes (Sensor não engole 60%) */
.painel-alarms .nk-tb-head .nk-tb-col:first-child { width: 24%; }
.painel-alarms .nk-tb-head .nk-tb-col { width: 15%; }

/* faixa de KPIs: card único dividido (referência demo loan — fim dos
   "quadradinhos"); divisórias entre colunas, some no mobile empilhado */
.painel-kpi-col { border-right: 1px solid #dbdfea; }
.painel-kpi-col:last-child { border-right: 0; }
@media (max-width: 991px) {
  .painel-kpi-col:nth-child(2n) { border-right: 0; }
  .painel-kpi-col:nth-child(-n+2) { border-bottom: 1px solid #dbdfea; }
}
