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

html,
body {
  height: 100%;
  margin: 0;
}

body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  text-align: center;
  background-color: #121212;
  min-height: 100vh;
  padding-bottom: 50px; /* Espaço para o footer, ajuste conforme necessário */
}

/* Estilização do container principal */
.container {
  width: 90%;
  max-width: 600px;
  max-height: 90vh; /* Limita a altura máxima para 90% da viewport */
  padding: 40px;
  padding-bottom: 30px;
  background-color: #1f1f1f;
  border-radius: 10px;
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.2);
  margin: 20px auto;
  position: relative;
  overflow: auto; /* Permite rolagem, se necessário */
}

.container::-webkit-scrollbar {
  width: 8px; /* Largura da barra de rolagem */
  height: 8px; /* Altura da barra de rolagem para horizontal */
  opacity: 0; /* Torna a barra de rolagem invisível */
}

.container::-webkit-scrollbar-thumb {
  background-color: rgba(255, 255, 255, 0.1); /* Cor do indicador da barra */
  border-radius: 10px; /* Arredondamento das bordas */
  opacity: 0; /* Torna o indicador invisível */
}

.container::-webkit-scrollbar-track {
  background-color: rgba(0, 0, 0, 0.1); /* Cor de fundo da trilha */
  opacity: 0; /* Torna a trilha invisível */
}

.container:hover::-webkit-scrollbar,
.container:hover::-webkit-scrollbar-thumb,
.container:hover::-webkit-scrollbar-track {
  opacity: 1; /* Torna visível ao passar o mouse */
}

img,
video,
iframe {
  max-width: 100%;
  height: auto;
}

/* Certifique-se de que o container possa rolar se o conteúdo for maior que a tela */
@media (max-height: 800px) {
  .container {
    overflow-y: auto; /* Permite rolagem apenas verticalmente quando necessário */
    max-height: 100vh;
  }
}

@media (max-width: 768px) {
  .container {
    padding: 20px;
  }

  h1 {
    font-size: 2rem;
  }

  /* Outras regras de mídia... */
}

/* Estilo do título principal */
h1 {
  font-size: 2.25rem;
  color: #ff0055; /* Cor chamativa */
  margin-bottom: 1rem;
}

/* Estilização do campo de entrada de URL */
#videoUrl {
  width: 100%;
  padding: 1rem;
  border-radius: 5px;
  background-color: #333;
  border: none;
  color: #ffffff;
  margin-bottom: 1rem;
  font-size: 1rem;
}

/* Estilização do botão de download */
#downloadButton {
  padding: 0.75rem 1.5rem;
  background-color: #ff0055;
  color: #ffffff;
  border: none;
  border-radius: 50px;
  font-size: 1.25rem;
  cursor: pointer;
  transition: background-color 0.3s, transform 0.2s;
  margin-top: 1rem;
  width: 100%; /* Faz o botão se estender para a largura total */
}

footer {
  padding: 1rem 0;
  background-color: #222; /* Fundo escuro */
  color: #fff; /* Texto branco */
  text-align: center;
  position: fixed; /* Fixa o footer no fundo */
  bottom: 0;
  left: 0;
  width: 100%;
  margin-top: auto; /* Empurra o footer para baixo conforme o conteúdo expande */
}

footer p {
  font-size: 1rem; /* Tamanho da fonte */
  font-weight: 500; /* Peso da fonte */
  color: #ffffff; /* Cor do texto */
  text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.5); /* Sombra no texto */
  letter-spacing: 0.05em; /* Espaçamento das letras */
  margin-bottom: 0; /* Remove margem inferior */
}

#developerLink {
  color: #0084ff; /* Cor do link */
  font-weight: 600; /* Peso do texto */
  position: relative; /* Para pseudo-elementos */
  cursor: pointer; /* Cursor de link */
  display: inline-block; /* Para pseudo-elementos */
  transition: color 0.3s ease; /* Transição de cor */
  text-decoration: none; /* Remove o sublinhado padrão */
}

#developerLink::after {
  content: "";
  display: block;
  position: absolute;
  width: 100%; /* Largura inicial */
  height: 2px;
  background-color: #ffffff; /* Cor da linha */
  bottom: -3px; /* Posição abaixo do texto */
  transition: transform 0.6s ease; /* Animação de expansão */
  transform: scaleX(0); /* Inicia invisível */
  transform-origin: bottom left; /* Origem da transformação */
}

#developerLink:hover::after {
  transform: scaleX(1); /* Expande ao passar o mouse */
}

/* Estilização do aviso de erro do servidor */
#serverError {
  background-color: #444;
  color: #ff5555;
  padding: 1rem;
  border-radius: 5px;
  margin-top: 1rem;
  display: none; /* Inicialmente oculto */
}

/* Responsividade para dispositivos móveis */
@media (max-width: 768px) {
  .container {
    padding: 20px;
  }

  h1 {
    font-size: 2rem;
  }

  #videoUrl,
  #downloadButton {
    font-size: 1rem;
  }

  footer p {
    font-size: 0.75rem;
  }
}

#convertingMessage {
  display: inline-flex; /* Muda para inline-flex para que o container se ajuste ao conteúdo */
  flex-direction: row; /* Itens alinhados horizontalmente */
  align-items: center; /* Centraliza verticalmente os elementos filhos */
  justify-content: center; /* Centraliza horizontalmente os elementos filhos */
  background-color: #333; /* Cor de fundo do container */
  color: #ffffff; /* Cor do texto */
  padding: 10px 20px; /* Espaçamento interno reduzido do container */
  border-radius: 5px; /* Bordas arredondadas */
  margin-top: 1rem; /* Espaçamento acima do container */
  visibility: hidden; /* Inicialmente oculto, aparece com a classe 'loading' */
  transition: all 0.3s; /* Suaviza a transição de tamanho */
}

#convertingMessage.loading {
  visibility: visible; /* Torna visível quando a classe 'loading' é aplicada */
}

#convertingMessage span {
  margin-right: 10px; /* Espaço entre o texto e o spinner */
}

.loader {
  display: none; /* Inicia escondido, aparece com a classe 'loading' */
  border: 4px solid rgba(255, 255, 255, 0.2); /* Cor da borda com transparência */
  border-top: 4px solid #ffffff; /* Cor da parte do spinner que gira */
  border-radius: 50%; /* Faz com que o spinner seja um círculo */
  width: 36px; /* Largura do spinner */
  height: 36px; /* Altura do spinner */
  animation: spin 1s linear infinite; /* Animação do spinner */
}

#convertingMessage.loading .loader {
  display: inline-block; /* Mostra o spinner quando a classe 'loading' é aplicada */
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* Isto irá cobrir o fundo com um efeito de esmaecimento quando houver um erro */
#errorContainer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0); /* Altere a transparência para 0 */
  z-index: 9999;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
}

#errorContainer.loading-visible {
  visibility: visible;
  opacity: 1;
  background-color: rgba(
    0,
    0,
    0,
    0.9
  ); /* Altere a transparência para escurecer o fundo */
}

#errorMessage {
  padding: 20px;
  background-color: #ff3860;
  color: white;
  border-radius: 8px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: all 0.5s ease-in-out;
  transform: translateY(-20px);
  text-align: center;
}

#okButton {
  background-color: #ff3860;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
  cursor: pointer;
  margin-top: 20px;
  transition: background-color 0.3s ease, opacity 0.5s ease,
    visibility 0.5s linear; /* Adicione uma transição de visibilidade */
  opacity: 1; /* Defina a opacidade inicial como 1 */
}

#okButton.hidden {
  opacity: 0; /* Defina a opacidade para 0 quando a classe "hidden" for aplicada */
  pointer-events: none; /* Impedir que o botão seja clicado quando invisível */
  visibility: hidden; /* Esconda o botão quando invisível */
}
/*||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||ícone dentro do imput*/

.input-icon-wrapper {
  position: relative;
  display: flex;
}

#videoUrl {
  flex-grow: 1;
  padding-right: 2.5rem; /* Espaço para o ícone */
  /* Adicione o restante dos seus estilos para #videoUrl aqui */
}

#urlFeedback {
  position: absolute;
  right: 10px; /* Espaço do lado direito do input */
  top: 50%; /* Posiciona na metade da altura do input */
  transform: translateY(-80%); /* Centraliza verticalmente */
  font-size: 1rem; /* Tamanho do ícone */
  display: flex;
  align-items: center; /* Alinhamento vertical */
  justify-content: center; /* Alinhamento horizontal */
  pointer-events: none; /* Evita que o ícone bloqueie a entrada de texto */
  font-size: 1.5rem;
}

/* Estilos para quando o input não está vazio */
#videoUrl:not(:placeholder-shown) + #urlFeedback {
  display: flex; /* Mostra o ícone quando o input não está vazio */
}

#urlFeedback.valid-url {
  color: green;
}

#urlFeedback.invalid-url {
  color: red;
  animation: shake 0.5s; /* Aplica a animação 'shake' quando o ícone de erro é mostrado */
}

#videoThumbnail {
  max-width: 100%; /* Faz com que a imagem não exceda a largura do contêiner */
  height: auto; /* Mantém a proporção da imagem ajustando a altura automaticamente */
  display: block; /* Corrige o problema de alinhamento em alguns navegadores */
  margin: 0 auto; /* Centraliza a imagem se ela for menor que o contêiner */
}

/* Estilo base para botões */
.actionButton {
  background-color: #4caf50; /* Cor de fundo verde */
  color: white; /* Texto branco */
  padding: 1rem; /* Espaçamento interno - usa rem para escalabilidade */
  border: none; /* Sem borda */
  cursor: pointer; /* Cursor de ponteiro */
  border-radius: 0.3rem; /* Bordas arredondadas */
  font-size: 1rem; /* Tamanho do texto baseado no tamanho de fonte do root */
  margin-bottom: 0.8rem; /* Margem inferior */
  transition: background-color 0.3s; /* Transição suave para o hover */
  display: flex; /* Uso de flexbox para alinhar ícone e texto */
  align-items: center; /* Alinha itens verticalmente */
  justify-content: center; /* Alinha itens horizontalmente */
  width: 100%; /* O botão ocupa toda a largura do seu contêiner */
}

.actionButton:hover {
  background-color: #379c3c; /* Cor de fundo um pouco mais escura quando hover */
}

.actionButton:disabled {
  background-color: #cccccc; /* Cor de fundo para botão desabilitado */
  cursor: not-allowed; /* Cursor para indicar ação não permitida */
  color: #666666; /* Cor de texto para botão desabilitado */
}

.disabled {
  opacity: 0.5;
  pointer-events: none; /* Desativa os cliques */
}

/* Ícone de colar */
.fas.fa-paste {
  margin-right: 0.5rem; /* Espaço entre o ícone e o texto */
}

#clearButton .fas {
  margin-right: 0.3rem; /* Ajusta o espaçamento entre o ícone e o texto */
}

/* Media queries para ajustes em telas menores */
@media (max-width: 768px) {
  .actionButton {
    padding: 1rem; /* Espaçamento interno menor para telas menores */
    font-size: 0.9rem; /* Tamanho de texto reduzido para telas menores */
  }
}

@media (max-width: 480px) {
  .actionButton {
    padding: 0.8rem; /* Espaçamento interno ainda menor para telas muito pequenas */
    font-size: 0.8rem; /* Tamanho de texto ainda menor para telas muito pequenas */
  }

  .fas {
    /* Reduz o tamanho dos ícones em telas pequenas */
    font-size: 0.8rem;
  }
}

@keyframes slideDownFadeIn {
  from {
    transform: translateY(
      -50px
    ); /* Ajuste conforme necessário para menos movimento */
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.icon-container {
  display: flex;
  align-items: center; /* Centraliza verticalmente */
  justify-content: center; /* Centraliza horizontalmente */
  gap: 5%; /* Espaço baseado na largura da viewport */
  /* Remove a altura definida para permitir que o flexbox controle o alinhamento vertical */
  padding-bottom: 1em;
}

/* Estilo base para as animações Lottie e ícones FontAwesome */
#lottie-youtube,
#lottie-music,
.fa-arrow-right {
  width: 10vw; /* Tamanho baseado na largura da viewport */
  max-width: 80px; /* Tamanho máximo */
  /* Remove max-height, pois o alinhamento vertical é controlado por 'align-items' no flex container */
  margin: auto; /* Centraliza automaticamente dentro do contêiner flex */
}

/* Estilos para tablets */
@media (max-width: 768px) {
  #lottie-youtube,
  #lottie-music,
  .fa-arrow-right {
    /* Incluído o ícone da seta */
    width: 12vw; /* Ajuste a largura para tablets */
    max-width: 60px; /* Diminui o tamanho máximo para tablets */
    max-height: 60px; /* Mantém a proporção do tamanho máximo */
  }
}

/* Estilos para celulares */
@media (max-width: 480px) {
  #lottie-youtube,
  #lottie-music,
  .fa-arrow-right {
    /* Incluído o ícone da seta */
    width: 15vw; /* Ajuste a largura para celulares */
    max-width: 50px; /* Diminui o tamanho máximo para celulares */
    max-height: 50px; /* Mantém a proporção do tamanho máximo */
  }
}

.fa-arrow-right {
  font-size: 3vw; /* Ajusta conforme necessário */
  color: #4caf50; /* Cor do ícone da seta, ajuste conforme necessário */
  /* A margem automática não é necessária para ícones de fonte, pois 'align-items' já os centraliza */
}

/* Estilos para tablets */
@media (max-width: 768px) {
  .fa-arrow-right {
    font-size: 7vw; /* Tamanho maior para tablets */
  }
}

/* Estilos para celulares */
@media (max-width: 480px) {
  .fa-arrow-right {
    font-size: 10vw; /* Tamanho maior para celulares */
  }
}

#apkBanner {
  display: flex;
  flex-direction: column;
  position: fixed;
  bottom: 0;
  width: 100%;
  background-color: #1f1f1f;
  color: #fff;
  padding: 10px 20px;
  box-shadow: 0 -6px 30px rgba(0, 0, 0, 0.05);
  text-align: center;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  transform: translateY(100%); /* Começa fora da tela */
  transition: transform 1.5s ease-in-out; /* Animação mais lenta */
}

.banner-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
}

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

.banner-text {
  font-size: 14px;
  margin-bottom: 10px;
}

.banner-button {
  background-color: #ff0055;
  color: white;
  padding: 6px 12px;
  text-decoration: none;
  border-radius: 5px;
  white-space: nowrap;
  transition: background-color 0.3s ease;
  margin-bottom: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  font-size: 14px;
  width: 150px;
  height: 35px;
}

.banner-button:last-child {
  margin-bottom: 0;
}

.banner-button:hover {
  background-color: #d60349;
}

@media (min-width: 768px) {
  #apkBanner {
    padding: 15px 30px;
  }

  .banner-content {
    flex-direction: column;
    align-items: center;
  }

  .banner-logo {
    width: 60px;
    height: 60px;
    margin-bottom: 15px;
  }

  .banner-button {
    padding: 8px 16px;
    font-size: 16px;
    width: 180px;
    height: 40px;
    margin-bottom: 15px;
  }

  .banner-text {
    font-size: 16px;
    margin-bottom: 15px;
  }
}

.oculto {
  display: none;
}

.visivel {
  display: flex;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeOut {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-20px);
  }
}

#msgDownloadFinalizado {
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(10px);
  z-index: 1000;
  display: none; /* Inicialmente oculto */
  opacity: 0; /* Inicialmente invisível */
  transform: translateY(-20px); /* Inicialmente fora da tela */
  transition: opacity 0.5s, transform 0.5s; /* Adicionar transições */
}

#msgDownloadFinalizado.entrada {
  display: flex; /* Exibir com flexbox */
  opacity: 1;
  transform: translateY(0);
}

#msgDownloadFinalizado.saida {
  opacity: 0;
  transform: translateY(-20px);
  transition: opacity 0.5s, transform 0.5s; /* Suaviza a saída */
}

.msgContent {
  background-color: #242424;
  color: #fefefe;
  padding: 30px 40px;
  border-radius: 15px;
  text-align: center;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.37);
  max-width: 90%;
  width: auto;
  margin: 0 20px;
  font-size: 1.5rem;
}

.msgContent span {
  display: block;
  margin-bottom: 15px;
}

.okButton {
  background-color: #ff0055;
  color: #fff;
  border: none;
  padding: 10px 25px;
  border-radius: 5px;
  cursor: pointer;
  font-size: 1.2rem;
  transition: background-color 0.3s ease, transform 0.3s ease;
  margin: 10px; /* Adicionado margem para espaçamento */
}

.okButton:hover {
  background-color: #cc0044;
  transform: scale(1.05);
}

@media (max-width: 768px) {
  .msgContent {
    padding: 25px 35px;
    font-size: 1.4rem;
  }

  .okButton {
    padding: 10px 20px;
    font-size: 1.1rem;
  }
}

@media (max-width: 480px) {
  .msgContent {
    padding: 20px 30px;
    font-size: 1.3rem;
  }

  .okButton {
    padding: 10px 18px;
    font-size: 1rem;
  }
}

/* Estilo para o estado bloqueado */
#downloadButton.blocked {
  opacity: 0.6; /* Torna o botão um pouco transparente */
  cursor: not-allowed; /* Muda o cursor para indicar que não é clicável */
  pointer-events: none; /* Desabilita eventos de clique */
}

/* Remove o estilo de hover e focus quando bloqueado */
#downloadButton.blocked:hover,
#downloadButton.blocked:focus {
  color: white; /* Cor do texto bloqueado */
  opacity: 0.6; /* Opacidade constante */
}
