/* Login */
.login-wrapper {
  background: linear-gradient(135deg, #1a56db 0%, #0e3a94 100%);
  min-height: 100vh;
}

.login-card {
  border-radius: 1rem;
}

.login-icon {
  width: 64px;
  height: 64px;
  background: #e8f0fe;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Dashboard */
body {
  font-size: 0.9rem;
}

.stat-icon {
  width: 52px;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.card {
  border-radius: 0.75rem;
}

.card-header {
  border-radius: 0.75rem 0.75rem 0 0 !important;
  padding: 1rem 1.25rem 0.5rem;
}

.chart-container {
  position: relative;
  height: 280px;
}

.chart-container-pie {
  position: relative;
  height: 260px;
  width: 260px;
}

.table > :not(caption) > * > * {
  padding: 0.65rem 0.75rem;
}

.table thead th {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
  border-bottom: 2px solid #e5e7eb;
}

.badge.bg-primary.bg-opacity-10 {
  font-size: 0.75rem;
  font-weight: 500;
}

/* Badges de categoria */
.categoria-UTILITY    { background: #dbeafe; color: #1d4ed8; font-weight: 500; font-size: .75rem; }
.categoria-MARKETING  { background: #dcfce7; color: #15803d; font-weight: 500; font-size: .75rem; }
.categoria-AUTHENTICATION { background: #fef9c3; color: #92400e; font-weight: 500; font-size: .75rem; }
.badge[class*="categoria-"] { padding: .25em .6em; border-radius: 999px; }

/* Cards clicáveis */
.card-clicavel {
  cursor: pointer;
  transition: transform .15s, box-shadow .15s;
}
.card-clicavel:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0,0,0,.12) !important;
}

/* Modal de card — tabela interna */
#modal-card-body .table th { font-size: .72rem; white-space: nowrap; }
#modal-card-body .table td { font-size: .82rem; vertical-align: middle; }

/* Sub-tabela de detalhes (dentro do grupo expandido) — compacta, sem quebra */
#modal-card-body .table .table th,
#modal-card-body .table .table td {
  white-space: nowrap;
  font-size: .76rem;
  padding: .3rem .5rem;
}
/* Container da sub-tabela rola na horizontal sem estourar o modal */
#modal-card-body td > .table-responsive { max-width: 100%; }

/* Embed: esconde coluna/card de custo para agentes */
body.esconde-custo .col-custo,
body.esconde-custo .custo-col { display: none !important; }

/* Scrollbar */
.table-responsive::-webkit-scrollbar { height: 4px; }
.table-responsive::-webkit-scrollbar-track { background: #f3f4f6; }
.table-responsive::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
