﻿html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

/* Focus outline padrão do Velzon — não sobrescrever */

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* Iuris nudge — popover com largura controlada para não vazar pela viewport */
.iuris-popover {
    max-width: 300px;
}

/* Iuris nudge — pulsating badge */
.iuris-pulse {
  animation: iurisPulse 2s infinite;
}
@keyframes iurisPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 193, 7, 0.7); }
  50% { box-shadow: 0 0 0 8px rgba(255, 193, 7, 0); }
}

/* ============================================
   DASHBOARD — CORREÇÕES DE ALINHAMENTO
   ============================================ */

/* 1. Cards KPI: ícone alinhado ao centro vertical do bloco inferior */
.dash-kpi .card-body {
  min-height: 110px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.card.dash-kpi .card-body .d-flex.align-items-end {
  align-items: center !important;
  margin-top: 16px !important;
}
/* KPI header: badge wrap em telas menores para não vazar do card */
.dash-kpi .card-body > .d-flex.align-items-center {
  flex-wrap: wrap;
  gap: 4px;
}
.dash-kpi .card-body > .d-flex.align-items-center > .flex-shrink-0 .badge {
  white-space: nowrap;
  font-size: 0.65rem;
}

/* 2. Cards lado a lado: altura igual dentro do mesmo row */
.dash-section-row > [class*="col"] > .card {
  height: 100%;
  margin-bottom: 0;
}
.dash-section-row {
  margin-bottom: 24px;
}

/* 3. Card Prazos Críticos — altura fixa com scroll interno */
.dash-prazos-card .card-body {
  padding-top: 0;
}
.dash-prazos-card .table-responsive {
  max-height: 350px;
  overflow-y: auto;
}

/* 3b. Tabela de Prazos Críticos: truncar colunas longas */
.dash-table {
  table-layout: fixed;
  width: 100%;
}
.dash-table td,
.dash-table th {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 0;
}
/* Proporções das colunas da tabela de prazos (aba Admin — 5 colunas) */
.dash-table th:nth-child(1),
.dash-table td:nth-child(1) { width: 13%; } /* Prazo */
.dash-table th:nth-child(2),
.dash-table td:nth-child(2) { width: 28%; } /* Caso */
.dash-table th:nth-child(3),
.dash-table td:nth-child(3) { width: 14%; } /* Data Fatal */
.dash-table th:nth-child(4),
.dash-table td:nth-child(4) { width: 28%; } /* Responsável */
.dash-table th:nth-child(5),
.dash-table td:nth-child(5) { width: 17%; } /* Status */

/* 4. Próximos Eventos / Agenda: fix do ellipsis */
.list-group-item .flex-grow-1.min-width-0,
.list-group-item .flex-grow-1 {
  min-width: 0 !important;
  overflow: hidden;
}

/* 5. Espaçamento do row de KPIs */
#tab-admin > .row:first-child,
#tab-operacional > .row:first-child,
#tab-crm > .row:first-child {
  margin-bottom: 8px;
}

/* ============================================
   COBRANÇAS — tabelas dentro de card-body p-0
   Garante padding lateral na primeira e última
   coluna para evitar que o conteúdo fique
   colado na borda do card.
   ============================================ */
#tab-rascunhos .table > :is(thead, tbody, tfoot) > tr > :first-child,
#tab-emcobranca .table > :is(thead, tbody, tfoot) > tr > :first-child {
    padding-left: 1rem;
}
#tab-rascunhos .table > :is(thead, tbody, tfoot) > tr > :last-child,
#tab-emcobranca .table > :is(thead, tbody, tfoot) > tr > :last-child {
    padding-right: 1rem;
}

/* Utilitário */
.cursor-pointer { cursor: pointer; }

/* Velzon v4.3.0 — CSS LTR nativo (HTML/Master/dist).
   Overrides RTL removidos — app.css agora é LTR. */

/* Tema Minimal: borda nos cards (Bootstrap default é border-width:0) */
[data-theme=minimal] .card {
  --vz-card-border-width: 1px;
}

/* Mini-calendário no dashboard: ponto indicador de evento */
.flatpickr-event-dot {
  position: absolute;
  bottom: 2px;
  left: 50%;
  transform: translateX(-50%);
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--vz-primary);
}

