/* styles.css - Estilo base do TWT Analytics */

.site-kit-analytics-table {
  max-width: 100%;
  margin-bottom: 20px;
  border: 1px solid #ddd;
  background: #fff;
  padding: 15px;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.site-kit-analytics-table h3 {
  font-size: 18px;
  margin-bottom: 10px;
  color: #333;
}

.filter-form {
  margin-bottom: 15px;
}

.filter-form form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* Agrupador de ações (Aplicar, Exportar) */
.twt-analytics-filter-actions {
  display: flex;
  gap: 10px;
  align-items: center;
}

.filter-form label {
  font-weight: 500;
}

.filter-form input[type="date"],
.filter-form select {
  padding: 6px;
  font-size: 14px;
  border-radius: 4px;
  border: 1px solid #ccc;
}

.filter-form button[type="submit"],
.filter-form button[type="button"] {
  padding: 6px 12px;
  background-color: #f2622e;
  color: #fff;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
}

.site-kit-analytics-table-data {
  overflow-x: auto;
}

.site-kit-analytics-table-data table {
  width: 100%;
  border-collapse: collapse;
  min-width: 800px;
}

.site-kit-analytics-table-data th,
.site-kit-analytics-table-data td {
  padding: 8px 10px;
  text-align: left;
  border: 1px solid #ddd;
}

.site-kit-analytics-table-data th {
  background-color: #f4f4f4;
  color: #333;
  font-weight: 600;
}

.chart-container {
  max-width: 100%;
  margin: 20px auto;
  background: #fff;
  padding: 15px;
  border-radius: 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
  /* O canvas é gerido pela área do gráfico, não por scroll */
  overflow: visible;
  white-space: normal;
  height: auto;
}

#heatmap {
  width: 100%;
  height: 500px;
  margin: 20px 0;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid #ccc;
}

@media (max-width: 768px) {
  .filter-form form {
    flex-direction: column;
    align-items: flex-start;
  }

  .twt-analytics-filter-actions {
    width: 100%;
    justify-content: flex-start;
  }

  .twt-analytics-filter-actions button {
    width: 100%;
  }

  .chart-container {
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .site-kit-analytics-table-data table {
    min-width: 600px;
  }
}


/* V2, Design variables */
.twt-analytics {
  font-family: var(--twt-font-family, inherit);
  font-size: var(--twt-font-size, 14px);
  color: var(--twt-text-color, #222);
}

.twt-analytics .twt-analytics-card,
.twt-analytics-card {
  background: var(--twt-card-bg, #fff);
  border: 1px solid var(--twt-card-border, #e5e5e5);
  border-radius: 12px;
  padding: 16px;
}

.twt-analytics-table {
  width: 100%;
  border-collapse: collapse;
}

.twt-analytics-table thead th {
  background: var(--twt-table-header-bg, #f6f6f6);
  color: var(--twt-table-header-text, #111);
  text-align: left;
  padding: 10px;
  border-bottom: 1px solid var(--twt-card-border, #e5e5e5);
}

.twt-analytics-table tbody td {
  padding: 10px;
  border-bottom: 1px solid var(--twt-card-border, #e5e5e5);
}

.twt-analytics-table tbody tr:nth-child(even) td {
  background: var(--twt-table-row-alt, #fbfbfb);
}

.twt-analytics-chart {
  background: var(--twt-card-bg, #fff);
  border: 1px solid var(--twt-card-border, #e5e5e5);
  border-radius: 12px;
  padding: 16px;
  /*
    Altura fixa para evitar ciclos de resize em page builders (Elementor incluído).
    Usamos flex para reservar espaço aos títulos sem cortar labels do gráfico.
  */
  /* Evita corte de labels e loops de resize */
  height: auto;
  min-height: var(--twt-chart-min-height, 360px);
  overflow: visible;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Área reservada ao canvas, altura ajustada por JS consoante n.º de labels */
.twt-analytics-chart-area {
  position: relative;
  width: 100%;
  height: var(--twt-chart-height, 320px);
  min-height: 280px;
}

.twt-analytics-chart-area canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}

/* Títulos consistentes em todos os shortcodes (evita CSS do tema a sobrepor a cor) */
.twt-analytics .twt-analytics-title,
.twt-analytics-title {
  color: var(--twt-chart-title-color, var(--twt-heading-color, #111)) !important;
  margin: 0 0 12px 0;
}

/* Área do gráfico: o canvas fica dentro de uma área com altura controlada */
/*
  IMPORTANT: Não aplicar posicionamento absoluto ao canvas dentro de .chart-container.
  Alguns shortcodes (ex: pie chart por categoria do dispositivo) usam .chart-container
  com legendas e títulos, e o canvas absoluto fica por cima do conteúdo e parece "desformatado".
  Mantemos o canvas absoluto APENAS na .twt-analytics-chart-area, que é o wrapper moderno.
*/
.twt-analytics-chart-area {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: var(--twt-chart-area-min-height, 280px);
  height: auto;
}

.twt-analytics-chart-area canvas {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
}

/* Legacy: .chart-container deve deixar o canvas fluir naturalmente */
.twt-analytics .chart-container,
.chart-container {
  position: relative;
  width: 100%;
  flex: 1 1 auto;
  min-height: var(--twt-chart-area-min-height, 280px);
  height: auto;
}

.twt-analytics .chart-container canvas,
.chart-container canvas {
  position: relative;
  display: block;
  width: 100% !important;
  height: auto !important;
}

/* Forçar cor e tipografia dentro do bloco (alguns temas usam !important em headings) */
.twt-analytics, .twt-analytics * {
  font-family: var(--twt-font-family, inherit) !important;
  color: var(--twt-text-color, inherit);
}

.twt-analytics h1,
.twt-analytics h2,
.twt-analytics h3,
.twt-analytics h4 {
  color: var(--twt-heading-color, #111) !important;
}

/* Compatibilidade legacy: remover altura fixa que estava a cortar labels */
.twt-analytics .chart-container,
.chart-container {
  height: auto;
}



/* Legacy sync, garantir que TODOS os shortcodes respeitam o tema (cores e tipografia) */
.twt-analytics, .twt-analytics * {
  font-family: var(--twt-font-family, inherit);
}

.twt-analytics h1,
.twt-analytics h2,
.twt-analytics h3,
.twt-analytics h4,
.twt-analytics h5 {
  color: var(--twt-heading-color, #111) !important;
}

.twt-analytics .site-kit-analytics-table,
.site-kit-analytics-table,
.twt-analytics .chart-container,
.chart-container {
  background: var(--twt-card-bg, #fff);
  color: var(--twt-text-color, #222);
  border: 1px solid var(--twt-card-border, #e5e5e5);
  font-family: var(--twt-font-family, inherit);
  font-size: var(--twt-font-size, 14px);
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.twt-analytics .site-kit-analytics-table h3,
.site-kit-analytics-table h3 {
  color: var(--twt-heading-color, #111);
}

.twt-analytics .filter-form label,
.filter-form label {
  color: var(--twt-text-color, #222);
}

.twt-analytics .filter-form button[type="submit"],
.twt-analytics .filter-form button[type="button"],
.filter-form button[type="submit"],
.filter-form button[type="button"],
.twt-analytics .site-kit-analytics-table button,
.site-kit-analytics-table button {
  background: var(--twt-accent, #E64A19);
  color: #fff;
}

.twt-analytics .site-kit-analytics-table-data th,
.site-kit-analytics-table-data th {
  background: var(--twt-table-header-bg, #f6f6f6);
  color: var(--twt-table-header-text, #111);
}

.twt-analytics .site-kit-analytics-table-data td,
.site-kit-analytics-table-data td {
  color: var(--twt-text-color, #222);
}

.twt-analytics .site-kit-analytics-table-data tr:nth-child(even) td,
.site-kit-analytics-table-data tr:nth-child(even) td {
  background: var(--twt-table-row-alt, #fbfbfb);
}


/* Tabelas, mobile first */
.twt-analytics-table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;}
.twt-analytics-table{min-width:640px;}
@media (max-width: 600px){.twt-analytics-table{min-width:560px;}}
