/* Importar Ubuntu Sans */
@import url('https://fonts.googleapis.com/css2?family=Ubuntu+Sans:ital,wght@0,100..800;1,100..800&display=swap');

/* ================================
   variáveis CSS
   ================================ */
:root {
  /* Core Colors */
  --main-color: #005BAA;          /* Títulos principais, elementos de destaque */
  --secondary-color: #66A3E0;     /* Fundos de gráficos, painéis */
  --dark-blue-color: #003F73;     /* Bordas, seções importantes */
  --white-color: #FFFFFF;         /* Fundo de painéis */
  --light-blue-color: #E6F2FF;    /* Background Light Blue */
  --dark-gray-color: #4D4D4D;     /* Textos secundários */
  --orange-color: #FFB74D;        /* Alertas, destaques críticos */
  --yellow-color: #FFD54F;        /* Picos em gráficos, realces */
  --dark-green-color: #00796B;    /* Sucesso, progresso */
  --turquoise-color: #009688;     /* Gráficos auxiliares, transições */
  --red-color: #FF0000;           /* Alertas críticos, erros */

  /* tipografia & espaços */
  --font-family: 'Ubuntu Sans', sans-serif;
  --transition-speed: 0.3s;
  --padding: 20px;
  --gap: 1rem;
}

/* ================================
   Global e base set 
   ================================ */
html, body {
  margin: 0;
  padding: 0;
  font-family: var(--font-family);
  color: var(--dark-gray-color);
}

/* Utility to accommodate fixed navbar */
body.bslib-page-navbar {
  padding-top: 160px !important;
}

/* ================================
   Navbar
   ================================ */
.navbar {
  display: flex;              
  flex-direction: column;
  align-items: stretch;
  background: var(--light-blue-color);
  border: none;               
  padding: 0;
}

.navbar-nav .nav-item {
  flex: 0 1 auto;
}

.navbar-brand {
  width: 100%;
  padding: 1px;
  margin: 0;
}

.navbar-nav .nav-link {
  display: flex;
  align-items: left;
  gap: 10px;
  padding: 5px 10px;
  font-size: 16px;
  font-weight: 300;
  color: var(--main-color);
  border-radius: 10px;
  transition: background-color var(--transition-speed), color var(--transition-speed), box-shadow var(--transition-speed);
}

.navbar-nav .nav-link:hover {
  background-color: var(--secondary-color);
  color: var(--white-color);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.navbar-nav .nav-link.active {
  background-color: var(--main-color);
  color: var(--white-color);
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
  font: var(--font-family);
}

/* ================================
  Header
  ================================ */
.page-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-color: var(--light-blue-color);
  padding: 10px;
  border-radius: 10px;
  font-weight: 400;
}

.page-title .logo-section img {
  height: 80px;
  width: auto;
}

.page-title .separator {
  width: 3px;
  height: 40px;
  background-color: var(--dark-blue-color);
  margin: 0 10px;
}

.page-title .text-section h1 {
  font-size: 22px;
  font-weight: bold;
  color: var(--main-color);
  margin: 0;
}

.page-title .text-section h2 {
  font-size: 16px;
  color: var(--dark-blue-color);
  margin: 5px 0 0;
}

/* ================================
   Footer
   ================================ */
.site-footer {
  background-color: var(--main-color);
  color: var(--white-color);
  font-size: 14px;
  text-align: center;
}

/* Footer Top: columns */
.site-footer .footer-top {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--gap);
  padding: var(--padding);
}

/* Títulos das seções do rodapé */
.site-footer h5 {
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
  color: var(--white-color);
}

/* Links Sobre & Soluções */
.site-footer .sobre a,
.site-footer .solucoes a {
  display: block;
  margin-bottom: 0.5rem;
  color: var(--white-color);
  text-decoration: none;
  transition: color var(--transition-speed), transform var(--transition-speed);
}

.site-footer .sobre a:hover,
.site-footer .solucoes a:hover {
  color: var(--secondary-color);
  transform: translateX(3px);
}

/* Contato */
.site-footer .contato p {
  display: flex;
  align-items: center;
  margin-bottom: 0.5rem;
  font-size: .9rem;
}

.site-footer .contato .icone-social {
  margin-right: 0.5rem;
  transition: color var(--transition-speed);
}

.site-footer .contato a {
  font-size: 2rem;
  margin: 0 0.75rem;
  color: var(--white-color);
  transition: color var(--transition-speed);
}

.site-footer .contato a:hover .icone-social {
  color: var(--secondary-color);
}

/* Partners Logos */
.site-footer .parceiros {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  padding: var(--padding) 0;
}

.site-footer .parceiros img {
  max-height: 45px;
  object-fit: contain;
  opacity: 0.8;
  transition: opacity var(--transition-speed), transform var(--transition-speed);
}

.site-footer .parceiros img:hover {
  opacity: 1;
  transform: scale(1.05);
}

/* Separadores do rodapé */
.site-footer .footer-sep,
.site-footer .footer-sep-1 {
  border: 0;
  border-top: 1px solid var(--secondary-color);
  width: 90%;
  margin: 10px auto;
}

.site-footer .footer-sep {
  border-top-width: 2px;
  width: 80%;
}

/* bloco sobre licença */
.site-footer .footer-license {
  padding: 0 var(--padding) var(--padding);
}

.site-footer .license-text {
  font-size: .8rem;
  line-height: 1.4;
}

.site-footer .license-text a {
  color: var(--secondary-color);
  text-decoration: underline;
  transition: color var(--transition-speed);
}

.site-footer .license-text a:hover {
  color: var(--white-color);
  text-decoration: none;
}

.site-footer .license-text img {
  vertical-align: middle;
  margin-left: .2em;
  max-width: 1em;
  max-height: 1em;
}

/* ================================
   Dygraph Styling
   ================================ */
.dygraph-label {
  font-family: var(--font-family);
  color: var(--dark-gray-color);
}

.dygraph-label.dygraph-title {
  text-align: left;
  font-size: 14px;
  margin-left: 10px;
  margin-bottom: 20px;
}

.dygraph-label.dygraph-ylabel,
.dygraph-label.dygraph-xlabel {
  font-size: 12px;
  margin: 0;
  font-weight: normal;
}
