/* Reset padrão */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "Poppins", sans-serif;
  background-color: #C8DCE4;
}


/* Variáveis úteis */
:root {
  --card-bg: #f3f3f3;
  --card-accent: rgba(0, 0, 0, 0.05);
  --card-radius: 12px;
  --card-padding: 18px;
  --card-shadow: 0 8px 18px rgba(0, 0, 0, 0.08);
}

/* transição overlay */
#transition-overlay {
  position: fixed;
  inset: 0;
  /* Equivale ao que foi excluido */
  pointer-events: none;
  background: var(--transition-color, #009F54);
  clip-path: circle(0% at 50% 50%);
  transition: clip-path 1s ease-in-out;
  z-index: 10000;
}

.fade-in {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .6s ease, transform .6s ease;
}

.fade-in.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Barra de navegação fixa, centralizada e acima de todo o conteúdo */
nav {
  position: fixed;
  top: 20px;
  top: 03%;
  /* Fixando no topo */
  left: 50%;
  /* Centraliza horizontalmente */
  transform: translateX(-50%);
  /* Ajusta para garantir que fique 100% no centro */
  background-color: #11a3cf;
  padding: 10px 30px;
  border-radius: 50px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
  z-index: 9999;
  /* Garante que fica acima de todo o conteúdo */
  width: auto;
}

nav ul {
  display: flex;
  justify-content: center;
  list-style: none;
  gap: 40px;
}

nav ul li a {
  text-decoration: none;
  color: #fff;
  font-weight: 600;
  padding: 10px 20px;
  border-radius: 20px;
  background: transparent;
  display: inline-block;
  transition:
    background 0.4s ease,
    transform 0.3s ease,
    box-shadow 0.3s ease;
}

.tooltip {
  position: relative;
  cursor: help;
}

/* RETÂNGULO, RESPONSIVO, NÃO SAI DA TELA */
.tooltip:hover::after {
  content: attr(data-tooltip);

  position: fixed;
  /* Mantém o tooltip sempre dentro da tela */
  left: 50%;
  transform: translateX(-50%);
  bottom: 12px;
  /* espaço do rodapé */

  padding: 10px 16px;
  /* formato mais retangular */
  background: #004a6c;
  color: #fff;

  font-size: 13px;
  line-height: 1.4;

  border-radius: 6px;
  /* mais retangular que arredondado */
  max-width: 80vw;
  /* nunca ultrapassa a largura da tela */
  white-space: normal;
  /* permite quebrar linha */
  text-align: center;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);

  z-index: 9999;
}



/* Hover com efeito de crescimento */
nav ul li a:hover {
  background: linear-gradient(to bottom, #004a6c, #0097d2);
  transform: scale(1.1);
  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
}

/* ===== SEÇÃO INICIAL ===== */
.inicialFundo {
  position: relative;
  min-height: 100vh;
  /* Alterado para garantir que o fundo cubra toda a altura da tela */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  padding-top: 25px;
  overflow: visible;
}

.dashboard-wrapper {
  width: 95%;
  max-width: 1400px;
  margin: 0 auto;
}

.inicialFundo::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("../IMG/Fundo_PTQA.webp");
  background-size: cover;
  background-position: center;
  z-index: -1;
  /* Garantir que o fundo fique atrás do conteúdo */
}

.topo-centralizado {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

/* CONTEÚDO PRINCIPAL NÃO DEVE SER CENTRALIZADO */
.dashboard-conteudo {
  width: 100%;
}

/* Estilo para a seção Dashboard */
.Dashboard {
  margin-top: 5%;
}

.Dashboard img {
  max-width: 100%;
  height: auto;
}

/* FILTROS (gráficos) */
.filtros {
  background: linear-gradient(#14b3d6, #0ea2c0);
  width: 95%;
  /* Ocupa a largura disponível */
  max-width: 620px;
  /* Limite máximo para não ficar largo demais em telas grandes */
  margin: 40px auto;
  padding: 28px 35px;
  border-radius: 22px;
  text-align: center;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.25);
  font-family: "Poppins", sans-serif;
}

/* ====== LINHAS DO FILTRO ====== */
.filtros .linha {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 15px;
  /* Reduzi o gap para caber melhor */
  flex-wrap: wrap;
  /* Permite quebrar de forma organizada em telas pequenas */
  margin: 10px 0;
}

/* ====== LABELS ====== */
.filtros label {
  font-weight: 600;
  font-size: 15px;
  color: #003b52;
}

/* ====== INPUTS ====== */
.filtros input[type="date"],
.filtros input[type="number"] {
  background: white;
  border: none;
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 14px;
  width: 180px;
  /* Reduzi levemente a largura base */
  min-width: 140px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.filtros input[type="date"]:hover,
.filtros input[type="number"]:hover {
  background: #f3f9ff;
}

.filtros input[type="date"]:focus,
.filtros input[type="number"]:focus {
  outline: 2px solid #0ea2c0;
}

/* ====== BOTÃO ====== */
.filtros button {
  background: #007fa6;
  color: #fff;
  font-weight: 600;
  border: none;
  padding: 10px 28px;
  border-radius: 20px;
  cursor: pointer;
  font-size: 15px;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  transition: 0.25s ease;
}

.filtros button:hover {
  background: #005f7a;
  transform: translateY(-2px);
}

.filtros select {
  background: white;
  border: none;
  border-radius: 12px;
  padding: 10px 14px;
  font-size: 14px;
  width: 180px;
  min-width: 140px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
  cursor: pointer;
}

.filtros select:hover {
  background: #f3f9ff;
}

.filtros select:focus {
  outline: 2px solid #0ea2c0;
}

/* —— GRID PRINCIPAL —— */
.charts-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr) !important;
  /* sempre 2 */
  gap: 40px;
  width: 100%;
  max-width: 1500px;
  margin: 0 auto;
}

.charts-grid>.card {
  min-width: 300px;
}


/* —— CARDS PEQUENOS (media-max) —— */
.media-max {
  width: 100%;
  max-width: 900px;
  margin: 20px auto 40px auto;
  display: grid;
  grid-template-columns: repeat(3, minmax(200px, 1fr));
  gap: 20px;
}

.card.full-width {
  grid-column: 1 / -1 !important;
  width: 95%;
  margin: auto;
  min-height: 380px;
}

.card.full-width .grafico {
  width: 100%;
  min-height: 320px;
}

/* —— Card menor —— */
.graficos_card {
  background: var(--card-bg);
  padding: var(--card-padding);
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);

  display: flex;
  align-items: center;
  transition: transform 0.2s ease;
}

.graficos_card:hover {
  transform: translateY(-4px);
}

/* Ícone principal */
.graficos_card .ni-icon {
  font-size: 38px;
  color: #11a3cf;
  margin-right: 15px;
}

/* Conteúdo interno do card */
.card-content-data {
  display: flex;
  align-items: center;
}

.data-text-area h2 {
  font-size: 1rem;
  font-weight: 600;
  color: #004a6c;
  margin-bottom: 4px;
}

.data-text-area p {
  font-size: 1.1rem;
  font-weight: 700;
  color: #222;
}

/* —— CARDS GRANDES COM GRÁFICO —— */
.card {
  background: var(--card-bg);
  padding: 22px;
  border-radius: var(--card-radius);
  box-shadow: var(--card-shadow);
  min-height: 330px;
  padding: 20px;

  display: flex;
  flex-direction: column;
}

.card h2 {
  font-size: 1.25rem;
  color: #11a3cf;
  margin-bottom: 15px;
  border-left: 4px solid #11a3cf;
  padding-left: 10px;
}

.grafico {
  flex: 1;
  width: 100%;
  min-height: 250px;
}

/* --- CSS PARA A SEÇÃO EDUCATIVA (TEXTOS E MATERIAIS) --- */
.info-section {
  max-width: 1280px;
  margin: 60px auto;
  padding: 0 20px;
}

.section-title {
  text-align: center;
  color: #004a6c;
  font-size: 2rem;
  margin-bottom: 40px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.info-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  /* É isso que centraliza o card "sozinho" na linha de baixo */
  gap: 30px;
  margin-bottom: 60px;
}

.info-card {
  background: #fff;
  padding: 25px;
  border-radius: 15px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  transition: transform 0.3s ease;
  border-top: 5px solid #11a3cf;

  /* A mágica do triângulo: */
  flex: 1 1 300px;
  /* Cresce, encolhe e tem base de 300px */
  max-width: 500px;
  /* Impede que o 4º card estique ocupando a tela inteira */
}

.info-card:hover {
  transform: translateY(-5px);
}

.info-card h3 {
  color: #004a6c;
  margin-bottom: 15px;
  font-size: 1.3rem;
}

.info-card p,
.info-card li {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.6;
  margin-bottom: 10px;
}

.info-card ul {
  padding-left: 20px;
}

/* Destaque para a Justificativa */
.justification-container {
  background: linear-gradient(135deg, #11a3cf 0%, #0097d2 100%);
  color: white;
  padding: 40px;
  border-radius: 20px;
  margin-bottom: 60px;
  text-align: center;
}

.justification-container h3 {
  color: #fff;
  margin-bottom: 20px;
  font-size: 1.8rem;
}

.justification-container p {
  font-size: 1.1rem;
  max-width: 900px;
  margin: 0 auto;
  line-height: 1.8;
}

/* Cards de Materiais */
.material-header {
  background-color: #f0f0f0;
  padding: 10px;
  border-radius: 8px;
  margin-bottom: 15px;
  font-weight: bold;
  color: #333;
}

.filtros button:hover {
  background-color: #0ab4b4;
}

/* ===== FOOTER ===== */
.rodape {
  background-color: #11a3cf;
  color: #fff;
  text-align: center;
  padding: 60px 40px 30px;
  border-top-left-radius: 40px;
  border-top-right-radius: 40px;
  position: relative;
  z-index: 10;
  width: 100%;
  /* Garantir que o footer ocupe toda a largura */
  box-sizing: border-box;
  /* Garante que o padding seja incluído no cálculo do tamanho */
}

.rodape-container {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 60px;
  flex-wrap: wrap;
  text-align: left;
  margin-bottom: 20px;
}

.rodape-esquerda {
  flex: 1;
  min-width: 300px;
}

.titulo-ifsc {
  font-size: 1rem;
  font-weight: 600;
}

.logo-footer {
  height: 50px;
  margin-bottom: 10px;
}

.emails {
  list-style: none;
  padding: 0;
  margin: 0;
}

.emails li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.9rem;
  margin-bottom: 8px;
}

.emails img {
  width: 16px;
  height: 16px;
}

.rodape-divisor {
  width: 2px;
  background-color: #8be0fa;
  height: 140px;
  border-radius: 50px;
  align-self: center;
}

.rodape-direita {
  flex: 1;
  min-width: 300px;
}

.titulo-projeto {
  font-size: 1rem;
  font-weight: 500;
  margin-bottom: 25px;
}

.links-rodape {
  display: flex;
  align-items: center;
  gap: 40px;
}

.links-rodape a {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 500;
  transition: opacity 0.3s ease;
}

.links-rodape a:hover {
  opacity: 0.8;
}

.links-rodape img {
  width: 40px;
  height: auto;
}

.linha-final {
  border: none;
  height: 2px;
  background-color: #8be0fa;
  margin: 20px 0;
}

.copy {
  font-size: 0.9rem;
  color: #fff;
}

.acesso-rapido {
  width: 100%;
  max-width: 1200px;
  margin: -20px auto 40px;
  padding: 0 20px;
  z-index: 5;
}

.cards-navegacao {
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
}

.card-nav {
  background: rgba(255, 255, 255, 0.85);
  border: 1px solid rgba(17, 163, 207, 0.25);
  border-radius: 14px;
  padding: 14px 22px;
  text-decoration: none;
  color: #004a6c;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 150px;

  /* UX melhor */
  cursor: pointer;

  /* animação suave */
  transition: all 0.25s ease;

  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
}

/* Ícone */
.card-nav i {
  font-size: 1.25rem;
  margin-bottom: 6px;
  color: #11a3cf;
}

/* Título */
.card-nav span {
  font-weight: 700;
  font-size: 0.9rem;
  text-transform: uppercase;
}

/* Subtexto */
.card-nav small {
  font-size: 0.68rem;
  color: #666;
}

/* Hover (todos iguais, sem mudar cor base) */
.card-nav:hover {
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
  border-color: #11a3cf;
}

/* Ativo (mantém padrão visual, só destaca levemente) */
.card-nav.active {
  border: 1.5px solid #11a3cf;
  box-shadow: 0 6px 16px rgba(17, 163, 207, 0.2);
}

/* Efeito ao clicar */
.card-nav:active {
  transform: scale(0.98);
}

/* Responsividade (regras originais) */
@media (max-width: 1200px) {
  nav {
    padding: 10px 22px;
  }

  nav ul {
    gap: 20px;
  }
}

@media (max-width: 992px) {
  .inicialFundo {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    /* Mantém no topo, mas flexível */
    padding: 80px 18px 0px 18px;
    /* Dá espaço para a Nav não encostar nos filtros */
    flex-direction: column;
  }

  nav {
    width: auto;
    max-width: 90vw;
    /* Impede de vazar da tela se ficar muito estreito */
    padding: 10px 20px;
  }

  nav ul {
    gap: 15px;
  }

  nav ul li a {
    padding: 8px 14px;
    font-size: 0.95rem;
  }

  .inicialFundo::before {
    background-attachment: scroll;
    /* Corrige bugs de performance/pulo no mobile */
    background-position: top center;
  }

  /* FORÇA 1 coluna no grid principal, vencendo o !important do CSS base */
  .charts-grid {
    grid-template-columns: 1fr !important;
  }

  .media-max {
    grid-template-columns: repeat(2, 1fr);
    /* 2 por linha em tablet */
  }

  .full-width {
    width: 100%;
  }

  .rodape {
    margin-left: -18px;
    margin-right: -18px;
    width: calc(100% + 36px);
    /* 100% + 18px de cada lado */
  }
}

@media (max-width: 768px) {
  .info-grid {
    grid-template-columns: 1fr;
  }

  .inicialFundo {
    padding-top: 70px;
    /* Espaço para a navbar no celular */
    padding-bottom: 0px;
  }

  nav {
    padding: 10px 18px;
  }

  nav ul {
    gap: 12px;
  }

  nav ul li a {
    font-size: rem;
    padding: 8px 14px;
  }

  /* Footer: Empilha colunas e ajusta alinhamento */
  .rodape {
    padding: 40px 20px;
  }

  .rodape-container {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
  }

  .rodape-esquerda {
    min-width: unset;
    width: 100%;
  }

  /* Esconde a linha vertical separadora no mobile, senão buga a coluna */
  .rodape-divisor {
    display: none;
  }

  .if {
    justify-content: center;
  }

  .emails li {
    justify-content: center;
  }

  .links-rodape {
    flex-direction: column;
    gap: 15px;
    margin-top: 10px;
  }
}

@media (max-width: 520px) {

  /* No celular pequeno, cards menores (temperatura, etc) ficam 1 por linha */
  .media-max {
    grid-template-columns: 1fr;
  }

  .graficos_card {
    padding: 14px;
  }

  .graficos_card .ni-icon {
    font-size: 30px;
    margin-right: 12px;
  }

  .filtros .linha {
    flex-direction: column;
    /* Empilha os inputs do filtro no celular */
    gap: 15px;
  }

  .filtros input[type="date"],
  .filtros input[type="number"] {
    width: 100%;
    /* Inputs ocupam largura total do card de filtros */
  }
}

@media (max-width: 480px) {
  nav {
    padding: 6px 12px;
    top: 2%;
    /* Sobe a ilha um pouquinho no celular para dar mais espaço de tela */
  }

  nav ul {
    gap: 5px;
  }

  nav ul li a {
    padding: 6px 8px;
    font-size: 0.75rem;
  }

  .justification-container {
    padding: 25px 15px;
    /* Reduz padding do bloco azul de texto no mobile */
  }

  .justification-container h3 {
    font-size: 1.4rem;
  }

  .copy {
    font-size: 0.78rem;
  }
}

@media (max-width: 600px) {
  .filtros .linha {
    flex-direction: column;
    /* Empilha labels e inputs */
    gap: 10px;
  }

  .filtros input[type="date"],
  .filtros input[type="number"] {
    width: 100%;
    /* Ocupa a largura toda do container pai no mobile */
  }

  .Dashboard img {
    max-width: 90%;
    /* Garante que o letreiro não suma da tela */
    height: auto;
  }
}