/* Corpo e fundo animado */
body { 
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  margin: 0;
  padding: 0;
  min-height: 100vh;
  background: linear-gradient(-45deg,#00c6ff,#0072ff,#00ff9d,#00c6ff);
  background-size:400% 400%;
  animation: gradientBG 15s ease infinite;
  color:#fff;
}

/* Animação fundo */
@keyframes gradientBG {
  0% {background-position:0% 50%;}
  50% {background-position:100% 50%;}
  100% {background-position:0% 50%;}
}

/* Títulos */
h1 {
  font-weight: 800;
  font-size: 2rem;
  text-align: center;
  margin-bottom: 2rem;
  text-shadow: 2px 2px 8px rgba(0,0,0,0.3);
}

/* Card principal */
#weatherResult .card {
  background: rgba(0,0,0,0.5);
  border-radius: 20px;
  padding: 2rem;
  text-align: center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  transition: transform 0.3s, box-shadow 0.3s;
}
#weatherResult .card:hover {
  transform: translateY(-5px);
  box-shadow:0 12px 25px rgba(0,0,0,0.6);
}

/* Cards previsão */
#forecastCards .card {
  border-radius:15px;
  padding:1rem;
  text-align:center;
  box-shadow:0 6px 15px rgba(0,0,0,0.3);
  transition: transform 0.3s, box-shadow 0.3s, background 0.3s;
}
#forecastCards .card:hover {
  transform: translateY(-5px);
  box-shadow:0 10px 20px rgba(0,0,0,0.5);
}

/* Ícones animados */
#forecastCards img, #weatherResult img {
  width:70px;
  height:70px;
  margin-bottom:0.5rem;
  animation: bounce 1s ease-in-out;
}
@keyframes bounce {
  0%,20%,50%,80%,100% {transform:translateY(0);}
  40% {transform:translateY(-5px);}
  60% {transform:translateY(-3px);}
}

/* Botões gradiente e arredondados */
button.btn-success {
  background: linear-gradient(45deg,#00ff9d,#00c6ff);
  border:none;
}
button.btn-success:hover {
  background: linear-gradient(45deg,#00c6ff,#00ff9d);
}
button.btn-primary {
  background: linear-gradient(45deg,#ff7e5f,#feb47b);
  border:none;
}
button.btn-primary:hover {
  background: linear-gradient(45deg,#feb47b,#ff7e5f);
}

/* Gráfico */
canvas {
  background: rgba(0,0,0,0.15);
  border-radius: 15px;
  padding:1rem;
  box-shadow:0 6px 15px rgba(0,0,0,0.3);
}

/* Dark mode */
.dark-mode {
  background:#0d0d0d;
  color:#fff;
}
.dark-mode #weatherResult .card,
.dark-mode #forecastCards .card {
  background: rgba(255,255,255,0.05);
  color:#fff;
}

/* Responsivo mobile */
@media (max-width:768px){
  #forecastCards .col-6 { margin-bottom:1rem; }
  h1 { font-size:1.8rem; }
  #forecastCards img, #weatherResult img { width:60px; height:60px; }
}
footer {
  background: rgba(0,0,0,0.3);
  border-top: 1px solid rgba(255,255,255,0.2);
  border-radius: 15px 15px 0 0;
  color: #fff;
}

footer p {
  margin: 0.3rem 0;
  font-size: 0.9rem;
}
footer .footer-link img {
  width: 20px; /* Reduzido de 24px para 20px */
  filter: brightness(0) invert(1);
  transition: transform 0.3s, filter 0.3s;
}

footer .footer-link:hover img {
  transform: scale(1.2);
  filter: brightness(1) invert(0.7);
}

@media (max-width:768px){
  footer .footer-link img {
    width: 18px; /* ainda menor no mobile */
  }
}
