  body {
  position: relative;
  margin: 0;
  font-family: Arial, sans-serif;
  color: white;
  overflow-x: hidden;
  height: 800px;
}

body::before {
  content: "";
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-image: linear-gradient(rgba(29, 29, 29, 0.3), rgba(29, 29, 29, 0.8)), url(img/FundoUP.jpg);
  background-size: cover;
  z-index: -1; /* fica atrás do conteúdo */
}

  header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 170px;
  background-color: #0f2b2c;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  z-index: 9999;
  display: flex;
  align-items: center;
  position: relative;
  padding: 0 0px;
  box-sizing: border-box;
}



/* ---------- SELETOR DE ESTÁGIO ---------- */

.seletor-estagio {
width: 10%;
  height: 120px;
  /* NÃO usar margin-left ou margin-top! */
  box-shadow: 0 4px 18px #0005;
}
.fundo-prefeitura {
  position: absolute;
  top: 0; left: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 15px;
  filter: brightness(0.6);
  z-index: 1;
}
.card-estagio {
  margin-bottom: 0%;
  z-index: 2;
  width: 100%;
  height: 100%;
  cursor: pointer;
  border-radius: 15px;
  overflow: hidden;
}
.card-estagio img#estagioImgBanner {
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 15px;
  box-shadow: 0 2px 12px #0005;
  display: block;
}
#menuEstagios {
  display: none;
  position: absolute;
  top: 0%;
  left: 0%;
  width: 100%;
  min-width: 240px;
  background: rgba(34, 46, 56, 0.97);
  border-radius: 0 0 14px 14px;
  z-index: 20000; /* mais alto que outros menus */
  padding-bottom: 14px;
  box-shadow: 0 12px 32px 0 #0008, 0 1.5px 3px #0009;
  flex-direction: column;
  align-items: stretch;
  backdrop-filter: blur(1.5px);
  border-top: 2px solid #18798055;
}

#menuEstagios .estagio-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-radius: 10px 10px 10px 10px;
  color: #fff;
  font-size: 1.08em;
  cursor: pointer;
  transition: background .15s, border-color .18s;
  border-left: 3px solid transparent;
  background: transparent;
}

#menuEstagios .estagio-item.selected,
#menuEstagios .estagio-item:hover {
  background: #21796c;
  border-left: 3px solid #fff;
}

#menuEstagios .estagio-item img {
  width: 60px;
  height: 40px;
  object-fit: cover;
  border-radius: 6px;
  background: #181818;
  border: 1.8px solid #fff2;
  box-shadow: 0 1px 4px #0002;
}

#btnAbrirVisualizador {
  width: 90%;
  margin: 14px 5% 0 5%;
  background: #2979ff;
  color: #fff;
  font-size: 1.05em;
  border: none;
  padding: 10px;
  border-radius: 7px;
  cursor: pointer;
  font-weight: bold;
  box-shadow: 0 2px 6px #0003;
  transition: background 0.18s;
  display: block;
  text-align: center;
}

#btnAbrirVisualizador:hover {
  background: #1565c0;
}

#menuEstagios {
  display: none;
  position: absolute;
  top: 100%; left: 0;
  width: 100%;
  background: #222e;
  border-radius: 0 0 12px 12px;
  position: absolute !important; /* ou fixed, se preferir */
  z-index: 10000 !important; /* z-index ALTO para ficar acima do card/fundo */
  padding-bottom: 10px;
}



/* ---------- FIM DO SELETOR DE ESTÁGIO ---------- */


/* ---------- SELETOR DE Niveis de Calor ---------- */
.seletor-calor {
  position: absolute;
  /* top e left conforme quiser */
  width: 320px;
  height: 110px;
  z-index: 10;
}
#menuCalor {
  display: none;
  position: absolute;
  top: 0%;
  left: 0;
  width: 320px;
  background: #21796c;
  border-radius: 0 0 14px 14px;
  z-index: 100;
  box-shadow: 0 8px 24px #0008;
  flex-direction: column;
  align-items: stretch;
}
#menuCalor .calor-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 18px;
  border-radius: 10px 10px 10px 10px;
  color: #fff;
  font-size: 1.08em;
  cursor: pointer;
  border-left: 3px solid transparent;
  background: transparent;
  transition: background .15s, border-color .18s;
}
#menuCalor .calor-item.selected,
#menuCalor .calor-item:hover {
  background: #21796c;
  border-left: 3px solid #fff;
}
#menuCalor .calor-item img {
  width: 60px;
  height: 40px;
  object-fit: cover;
  border-radius: 6px;
  background: #181818;
  border: 1.8px solid #fff2;
  box-shadow: 0 1px 4px #0002;
}
#btnAbrirVisualizadorCalor {
  width: 90%;
  margin: 14px 5% 0 5%;
  background: #ff9a00;
  color: #fff;
  font-size: 1.05em;
  border: none;
  padding: 10px;
  border-radius: 7px;
  cursor: pointer;
  font-weight: bold;
  box-shadow: 0 2px 6px #0003;
  transition: background 0.18s;
  display: block;
  text-align: center;
}
#btnAbrirVisualizadorCalor:hover {
  background: #cc7800;
}

/* ---------- FIM DO SELETOR DE Niveis de Calor ---------- */


.header-content {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  height: 100%;
  gap: 20px;
  position: relative;
}

.right-image-panel {
  right: 0px;
  height: 170px;
  width: 20%; /* ajuste o tamanho conforme necessário*/
  position: absolute;
  background-color: #1c3b3c;
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
  cursor: pointer;
  
}

.right-image-panel img {
  width: 100%;
  height: 100%;
  border-radius: 10px;
  transition: transform 0.3s ease;
}

.right-image-panel:hover img {
  transform: scale(1.05);
}

/* Container do iframe, posicionado no canto esquerdo */
.Estagio {
  position: absolute;
  left: 0px;
  height: 100%;
  width: auto; /* ajuste o tamanho conforme necessário*/
  display: flex;
  align-items: center;
} 

.Estagio iframe {
  width: 100%;
  height: 100%;
  border: none;
  border-radius: 6px;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}

header img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.main-logo {
  height: 100%;
  object-fit: contain;
}

.action-button {
  padding: 12px 30px;
  background-color: #3a5a5a;
  color: white;
  font-weight: bold;
  border: none;
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  cursor: pointer;
  transition: background-color 0.3s ease;
}

.action-button:hover {
  background-color: #55a67a;
}

  main {
    margin-top: 0px;
    max-width: 1200px;
    margin-left: 12%;
    margin-right: auto;
    padding: 16px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
  }

  .left-column {
    flex: 0 0 340px;
    background-color: #1c3b3c;
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 0 20px rgba(0,0,0,0.4);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    margin-bottom: 20px;
    z-index: 0; /* z-index alto para ficar acima de outros elementos */
  }

  .left-column:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 30px rgba(0,0,0,0.6);
  }

  .right-column {
    flex: 1 1 600px;
    background-color: #1c3b3c;
    border-radius: 10px;
    padding: 20px;
    box-shadow: 0 0 20px rgba(0,0,0,0.4);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    margin-bottom: 20px;
    overflow-x: hidden;
  }
  
  .right-column:hover {
    transform: translateY(-2px);
    box-shadow: 0 0 30px rgba(0,0,0,0.6);
  }

  /* Melhorias no bloco exportação */
  .export-status-container {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    gap: 15px;
  }


  .export-status-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #294848;
    padding: 10px 15px;
    border-radius: 8px;
    box-shadow: inset 2px 2px 5px #1b2a2a, inset -2px -2px 5px #3a5a5a;
  }
  .export-status-label-group {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-weight: 600;
    color: #aad4a6;
    font-size: 1rem;
  }
  .export-status-count {
    color: #7fb69e;
    font-weight: 400;
    font-size: 0.9rem;
  }
  .export-status-button {
    padding: 8px 20px;
    background-color: #3a5a5a;
    border: none;
    border-radius: 8px;
    color: white;
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
    transition: background-color 0.3s ease;
  }
  .export-status-button:hover {
    background-color: #55a67a;
  }

  /* Inicio da painel ranking  */

  #top-geral-float {
  position: absolute;
  top: 195px;
  right: 20px;
  height: auto;
  width: 400px;
}

.top-geral-panel {
  flex: 0 0 260px;
  background: linear-gradient(135deg, #1c3b3c 80%, #185865 100%);
  border-radius: 9px;
  box-shadow: 0 6px 24px #0004, 0 2px 6px #234;
  padding: 24px 14px 22px 18px;
  margin-left: 210px;
  margin-bottom: 24px;
  min-width: 210px;
  color: #e6f5f3;
  font-family: 'Segoe UI', Arial, sans-serif;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  max-height: 100%;
  overflow-y: auto;
}

.top-geral-panel h2 {
  margin: 0 0 18px 0;
  font-size: 1.13em;
  font-weight: bold;
  color: #fffc;
  letter-spacing: 0.04em;
  text-shadow: 0 2px 10px #19292988;
}
.top-geral-panel ul {
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
  max-height: 617px;    /* ajuste a altura que preferir */
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;   
  -ms-overflow-style: none;     /* IE and Edge */
}

/* Esconde a scrollbar em navegadores Webkit (Chrome, Edge, Safari) */
.top-geral-panel ul::-webkit-scrollbar {
  width: 0px;
  background: transparent;
}

.top-geral-panel li {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #213a3b;
  border-radius: 7px;
  margin-bottom: 10px;
  padding: 10px 11px;
  box-shadow: 0 1px 5px #123a4a22;
  font-size: 1.03em;
}
.top-geral-panel li b {
  color: #4be0b0;
  font-size: 1.04em;
}
.top-geral-panel li small {
  color: #7cf;
  margin-left: 7px;
  opacity: 0.65;
}
.top-geral-panel li span {
  color: #aad4a6;
  margin-left: auto;
  font-size: 0.95em;
}


/* Final da parte ranking */


  /* Status bar */
  .status-bar {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
    font-weight: bold;
  }
  .status-bar span {
    padding: 5px 15px;
    border-radius: 20px;
  }
  .online {
    background-color: #004d00;
  }
  .offline {
    background-color: #660000;
  }
  /* Inputs e botões */
  .input-area {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 20px;
  }
  .input-area input {
    padding: 10px;
    border: none;
    border-radius: 5px;
  }
  button {
    cursor: pointer;
  }
  .test-button,
  .clear-button,
  .export-button {
    padding: 10px 20px;
    border: none;
    border-radius: 5px;
    background-color: #555;
    color: white;
    font-weight: bold;
    transition: background-color 0.3s ease;
  }
  .test-button:hover,
  .clear-button:hover,
  .export-button:hover {
    background-color: #444;
  }
  /* Lista de sites */
  .site-list {
    background-color: #2b4a4a;
    border-radius: 10px;
    padding: 15px;
    max-height: 432px;
    overflow-y: auto;
    
  }
  .site-list::-webkit-scrollbar {
    width: 8px;
  }
  .site-list::-webkit-scrollbar-track {
    background: #1c3b3c;
    border-radius: 10px;
  }
  .site-list::-webkit-scrollbar-thumb {
    background-color: #555;
    border-radius: 10px;
    border: 2px solid #1c3b3c;
  }
  
  .site-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 10px;
    padding: 10px;
    background-color: #3a5a5a;
    border-radius: 5px;
  }
  .status-indicator {
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
  }
  .dot.online {
    background-color: limegreen;
  }
  .dot.offline {
    background-color: red;
  }
  .action-buttons {
    display: flex;
    gap: 10px;
  }
  .delete-button,
  .toggle-button,
  .edit-button,
  .open-button {
    background: none;
    border: none;
    color: #ccc;
    cursor: pointer;
    font-size: 14px;
    font-weight: bold;
    transition: color 0.3s ease;
  }
  
  .delete-button:hover,
  .toggle-button:hover,
  .edit-button:hover {
    color: red;
  }

  .open-button {
    color: #aad4a6;
  }

  .open-button:hover {
    color: #4caf50;
  }


/* 3) Header escuro, texto maior e close mais discreto */
.modal-header {
  background-color: #144347;            /* verde escuro */
  padding: 2px 6px;
  width: 100%;
  height: 70px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.modal-header h2 {
  color: #fff;
  font-size: 1.2rem;
  margin: 0;
}
.modal-close {
  font-size: 1.3rem;
  color: rgba(255,255,255,0.8);
  background: none;
  border: none;
  cursor: pointer;
}

/* === Corpo claro, scroll interno === */
.modal-body {
  padding: 16px;
  width: 100%;
  height: 100%;
  background-color: transparent;
  flex: 1;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: calc(100% - 56px); /* subtrai a altura aproximada do header (por ex. 56px) */
  background: transparent;
}

/* === Busca leve === */
.search-input {
  width: 100%;
  padding: 10px 14px;
  border: 1px solid #ccc;
  border-radius: 6px;
  background-color: #fff;
  color: #333;
  font-size: 0.95rem;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.search-input::placeholder {
  color: #999;
}
.top-buttons
.search-input:focus {
  outline: none;
  border-color: #144347;
  box-shadow: 0 0 4px rgba(20,67,71,0.4);
}

/* oculta scrollbar em WebKit (Chrome, Safari, Edge) */
.panel-list::-webkit-scrollbar {
  display: none;
  width: 6px;
}

.panel-list::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.2);
  border-radius: 3px;
}
/* oculta scrollbar em Firefox */
.panel-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr); /* 3 colunas fixas */
  gap: 28px 18px; /* espaçamento entre linhas e colunas */
  height: 0%;
  padding: 16px;
  overflow-y: auto;
  flex: 1;            /* ocupa todo o espaço restante */
  overflow-y: auto;   /* habilita scroll vertical */
  padding-right: 4px; /* pra não cortar o último cartão */
}

/* === Itens claros com sombra sutil === */
.panel-list .panel-item {
  background: #1a2328ee;
  border-radius: 20px;
  padding: 16px 10px 10px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 190px;
  min-width: 0;
  box-shadow: 0 4px 18px #0005;
  transition: transform 0.15s, box-shadow 0.15s;
  cursor: pointer;
  position: relative;
}

.panel-list .panel-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 18px rgba(0,0,0,0.15);
}

/* 3) Thumb: força proporção 16:9 */
.panel-thumb {
  width: 100%;
  height: 0;
  padding-top: 56.25%; /* 16:9 */
  position: relative;
  overflow: hidden;
  border-radius: 10px 10px 10px 10px;
}

.panel-thumb img {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* === Overlay centralizado === */
#modal-overlay {
  position: fixed;
  top: 120px; left: 0; right: 0; bottom: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.5);
  z-index: 100;
}

/* === Modal “card” claro === */
#modal-var-legal {
  position: relative;       /* antes podia ser fixed, agora relative */
  width: 90%;
  max-height: 74vh;    
  margin-top: 10px;     /* use viewport units pra garantir scroll interno */
  display: flex;
  flex-direction: column;
  background-color: transparent;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
}

.panel-item img {
  width: 510px;
  height: 220px;
  object-fit: cover;
  border-radius: 14px;
  box-shadow: 0 2px 8px #0004;
  display: block;
  margin: 0 auto 16px auto;
  background: transparent;
}

.panel-item span {
  color: #fff;
  font-weight: 600;
  font-size: 1.1rem;
  margin-top: 8px;
  text-align: center;
  width: 100%;
  overflow-wrap: break-word;
}

#lista-top-geral li small {
  display: inline-block;
  margin-top: 4px;
  color: #ccc;
  font-size: 0.8em;
}

/* 1) Modal-body passa a preencher todo o interior do modal */
#modal-var-legal .modal-body {
  padding: 16px;
  flex: 1;                 /* já faz crescer até onde der */
  width: 100%;             /* preenche toda a largura interna */
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 2) Campo de busca com largura total */
#modal-var-legal .modal-body .search-input {
  width: auto;          /* ocupa toda a largura do modal */
}

/* 3) Cada “telinha” branca preenche 100% e tem fundo sólido */
#modal-var-legal .panel-list .panel-item {
  background-color:transparent;
  border-radius: 6px;
  padding: 10px 12px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  color: #333;
  transition: transform 0.1s, box-shadow 0.1s;
}


/* Aproveitamos .search-input e .panel-list/.panel-item do CSS anterior */

/* Classe utilitária para esconder */
.hidden {
  display: none !important;
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

.btn-acessar {
  background-color: #1f6feb;
  color: white;
  border: none;
  padding: 4px 10px;
  border-radius: 6px;
  cursor: pointer;
  font-size: 0.9em;
  transition: background 0.2s ease;
}
.btn-acessar:hover {
  background-color: #0f4fcc;
}

/* Oculta para desktop, mostra só no mobile */
.mobile-only {
  display: none;
}

  /* Modal */
  .modal {
  display: none;
  /* demais estilos da modal */
  }

  .modal {
    z-index: 1000;
    display: none;
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background-color: rgba(0,0,0,0.7);
    display: flex;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(4px);
    transition: opacity 0.3s ease;
  }

  .modal-content {
    background: linear-gradient(145deg, #2e3a3a, #223232);
    padding: 30px 25px;
    border-radius: 15px;
    width: 90%;
    max-width: 420px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.4);
    color: #e0e0e0;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    position: relative;
  }

  .modal-content h3 {
    margin-bottom: 20px;
    font-weight: 700;
    font-size: 1.5rem;
    color: #a2d5c6;
    text-align: center;
    text-shadow: 0 1px 3px rgba(0,0,0,0.6);
  }

  .modal-content input {
    width: 90%;
    padding: 12px 15px;
    margin: 10px 0;
    border: none;
    border-radius: 10px;
    background-color: #2a3a3a; /* fundo escuro */
    color: #e0e0e0; /* texto claro */
    font-size: 1rem;
    box-shadow: inset 2px 2px 5px #162020, inset -2px -2px 5px #3a4a4a;
    transition: background-color 0.3s ease, color 0.3s ease;
  }

  .modal-content input::placeholder {
    color: #7f9a9a; /* cor do placeholder */
  }

  .modal-content input:focus {
    outline: none;
    background-color: #1f2b2b;
    color: white;
    box-shadow: 0 0 8px #63cdda;
  }

  .modal-buttons {
    display: flex;
    justify-content: space-between;
    margin-top: 25px;
  }

  .modal-buttons button {
    flex: 1;
    margin: 0 5px;
    padding: 12px 0;
    border: none;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1rem;
    cursor: pointer;
    color: #1f2b2b;
    background: #63cdda;
    box-shadow: 0 4px 10px rgba(99, 205, 218, 0.5);
    transition: background-color 0.3s ease, color 0.3s ease;
  }
 
  .modal-buttons button:hover {
    background-color: #4bb3c0;
    color: #e0f7fa;
  }

  .modal-buttons button:first-child {
    background: #4caf50;
    color: white;
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.6);
  }

  .modal-buttons button:first-child:hover {
    background-color: #3a8a32;
  }

  .modal-buttons button:last-child {
    background: #f44336;
    color: white;
    box-shadow: 0 4px 12px rgba(244, 67, 54, 0.6);
  }

  .modal-buttons button:last-child:hover {
    background-color: #aa2e25;
  }

/* Estilo da barra de pesquisa em sites */
  #searchInput{
    width: 93%;
    height: 20px;
    padding: 10px 15px;
    border: none;
    border-radius: 10px;
    background-color: #1c3b3c;
    color: white;
    box-shadow: inset 2px 2px 5px #162020, inset -2px -2px 5px #2e3e3e;
    margin-bottom: 12px;
 }

 /* Busca AnyDesk */
#searchAnyDeskInput {
  width:93%;
  padding: 10px 15px;
  border: none;
  border-radius: 10px;
  background-color: #1c3b3c;
  color: white;
  box-shadow: inset 2px 2px 5px #162020, inset -2px -2px 5px #2e3e3e;
  margin-bottom: 12px;
}

#searchAnyDeskInput::placeholder {
  color: #a8b3b3;
}

#searchAnyDeskInput:focus {
  outline: none;
  background-color: #254848;
  box-shadow: 0 0 8px #63cdda;
}

 /* Estilo da barra de pesquisa em Equipamentos Registrados */
  #searchRemoteInput {
    width: 93%;
    padding: 10px 15px;
    border: none;
    border-radius: 10px;
    background-color: #1c3b3c;
    color: white;
    box-shadow: inset 2px 2px 5px #162020, inset -2px -2px 5px #2e3e3e;
    margin-bottom: 12px;
  }

  #searchRemoteInput::placeholder {
    color: #a8b3b3;
  }

#searchRemoteInput:focus {
  outline: none;
  background-color: #254848;
  box-shadow: 0 0 8px #63cdda;
}


  /* Botões de filtro e recarregar */
  .reload-all-button,
  .filter-status-button {
    padding: 8px 18px;
    border: none;
    border-radius: 8px;
    background-color: #3a5a5a;
    color: white;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
    transition: background-color 0.3s ease;
  }
  .reload-all-button:hover,
  .filter-status-button:hover {
    background-color: #55a67a;
  }
  .filter-status-button.active {
    background-color: #4caf50;
    box-shadow: 0 4px 12px rgba(76, 175, 80, 0.7);
  }

.top-buttons {
  position: absolute;
  top: 200px; /* ou o valor ideal para desktop */
  left: 2%; /* ajuste para alinhar à esquerda da .left-column */
  display: flex;
  margin-right:20% ;
  flex-direction: column;
  gap: 12px;
  z-index: 0 !important; /* z-index baixo para ficar ATRÁS dos menus centrais */
}

.top-buttons button {
  min-width: 120px;
  padding: 10px;
  font-size: 14px;
    font-weight: bold;
  text-align: center;
  background-color: #1c3b3c;
  border: none;
  border-radius: 8px;
  color: white;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transition: all 0.3s ease;

}

.top-buttons button:hover {
  background-color: #2e6f67;
  transform: translateX(2px);
    transform: scale(1.05);
}

.top-buttons button {
  min-width: 130px;
  padding: 10px 14px;
  font-size: 15px;
  text-align: center;
  background-color: #1f3e3e;
  border: none;
  border-radius: 8px;
  color: white;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transition: all 0.3s ease;
}

.top-buttons button:hover {
  background-color: #399b7d;
  transform: translateX(2px);
}
.top-buttons button.active {
  background-color: #4caf50;
  color: white;
}

.registro-item {
  background-color: #2f4f4f;
  border-radius: 10px;
  padding: 15px;
  margin-bottom: 15px;
  color: #fff;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
}

.info-topo {
  margin-bottom: 10px;
  line-height: 1.5;
}

.registro-botoes {
  display: flex;
  gap: 10px;
}

.registro-botoes button {
  padding: 8px 12px;
  border: none;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
  background-color: #446;
  color: white;
  transition: background-color 0.3s ease;
}

.registro-botoes button:hover {
  background-color: #5a8;
}

.modal {
  display: none;               /* segue oculto até abrir */
  position: fixed;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(0, 0, 0, 0.7);
  z-index: 1000;

  display: flex;               /* usando flexbox para centralizar */
  justify-content: center;
  align-items: center;
}
/* modal da parte do acesso remoto - Botão detalhe */
.modal-content {
  background: linear-gradient(145deg, #2e3a3a, #223232);
  padding: 30px 25px;
  border-radius: 15px;
  width: 90%;
  max-width: 420px;
  max-height: 90vh;            /* não excede 90% da altura da viewport */
  overflow-y: auto;            /* adiciona scrollbar interna se necessario */
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  position: relative;
}
.modal-content h3 {
  margin-top: 0;
  margin-bottom: 15px;
  text-align: center;
  color: #aaf0dc;
  font-size: 1.4rem;
}

.modal-content p {
  line-height: 1.6;
  white-space: pre-wrap;
  font-family: monospace;
  font-size: 1rem;
}
.site-list
#acessos-remotos-list {

  scrollbar-width: thin;
}
#acessos-remotos-list::-webkit-scrollbar { width: 8px; }
#acessos-remotos-list::-webkit-scrollbar-track {
  background: #1c3b3c;
  border-radius: 10px;
}
#acessos-remotos-list::-webkit-scrollbar-thumb {
  background-color: #555;
  border-radius: 10px;
  border: 2px solid #1c3b3c;
}

#camera-section video,
#camera-section canvas {
  max-width: 100%;
}

.type-filter {
  flex:1;
  padding:8px;
  border:none;
  border-radius:5px;
  background:#3a5a5a;
  color:white;
  cursor:pointer;
  transition:background 0.2s;
}
.type-filter.active,
.type-filter:hover {
  background:#55a67a;
}



@keyframes fadeIn {
  from { opacity: 0; transform: scale(0.95); }
  to { opacity: 1; transform: scale(1); }
}

/* Oculta para desktop, mostra só no mobile */
.mobile-only {
  display: none;
}

/* Badge de status */
.badge {
  display: inline-block;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600;
  margin-left: 8px;
  vertical-align: middle;
}
.badge.online {
  background-color: #4caf50;
  color: white;
}
.badge.offline {
  background-color: #f44336;
  color: white;
}



/* Verificar: cursor e transição */
.verificar-btn {
  transition: background-color 0.2s;
}
.verificar-btn:disabled {
  background-color: #555;
  cursor: not-allowed;
}

#modal-close {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #223e47;
  color: #fff;
  border: none;
  font-size: 2em;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 13px;
  right: 18px;
  transition: background 0.18s, box-shadow 0.18s, color 0.12s, transform 0.13s;
  box-shadow: 0 2px 9px #0003;
  cursor: pointer;
  z-index: 20;
}
#modal-close:hover {
  background: #e34242;
  color: #fffbe7;
  transform: scale(1.12);
  box-shadow: 0 4px 18px #0006;
}
/* MOBILE e RESPONSIVIDADE AVANÇADA - Cola no final do style.css */

/* Ajusta header e painéis para ocupar menos espaço no mobile */

/* Ajusta header e painéis para ocupar menos espaço no mobile */
@media (max-width: 450px) {

  /* 1) Header fica flexível e auto-height */
  header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    height: auto !important;
    padding: 10px 5px !important;
  }

  /* 4. Painéis/listas justos, inputs 100% */
  .painel-lista, .painel-acessos, .main-content, .left-column, .right-column {
    width: 95vw !important;
    max-width: 98vw !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    padding: 8px 3vw 10px 3vw !important;
    border-radius: 10px !important;
    margin: 0 auto !important;
  }
  .painel-lista input,
  .painel-lista select,
  .painel-lista textarea,
  .painel-lista button,
  .painel-acessos input,
  .painel-acessos select,
  .painel-acessos textarea,
  .painel-acessos button,
  .btn,
  .exportar {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    display: block !important;
    font-size: 1.08em !important;
    padding: 10px 0 !important;
    border-radius: 8px !important;
    margin-bottom: 9px !important;
  }

  
  #modal-var-legal {
    width: 98vw !important;
    max-width: 99vw !important;
    margin-top: 12vw !important;
    margin-right: 2%;
  }
    
  
.panel-list {
    display: grid;
    grid-template-columns: 1fr !important;
    gap: 8px 0 !important;
    padding: 20px 0px 30px 0px !important;
    place-items: center;
  }

  .panel-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    background: linear-gradient(140deg, #1b2936 80%, #1e3848 100%);
    border-radius: 16px;
    box-shadow: 0 4px 18px #091b2b33, 0 1px 4px #022;
    padding: 8px 8px 8px 8px;
    min-height: 0;
    margin: 0 10px;
    transition: transform 0.18s, box-shadow 0.18s, background 0.2s;
    border: 1.2px solid #2c4052;
    position: relative;
  }
  .panel-item img {
    display: block;
    width: 192%;
    max-width: 225px;
    height: 200px;
    object-fit: cover;
    border-radius: 11px;
    margin: 0 auto 14px auto;
    box-shadow: 0 2px 9px #0004, 0 1px 3px #125b8b44;
    background: #0a1a24;
    border: 1.3px solid #213d44;
  }
  .panel-item span {
    color: #cde7ff;
    font-size: 1.13em;
    font-weight: 600;
    margin: 0 auto;
    margin-bottom: 6px;
    text-align: center;
    letter-spacing: 0.03em;
    text-shadow: 0 1px 6px #012b2b44, 0 1px 1px #041c33;
    width: 20%;
    max-width: 92vw;
    overflow-wrap: break-word;
    line-height: 1.28em;
  }
  modal
  .panel-item::after {
    content: "";
    display: block;
    width: 60px;
    height: 3.5px;
    border-radius: 2px;
    background: linear-gradient(90deg, #4be0b0, #367cf8 60%);
    opacity: 0.18;
    margin: 11px auto 0 auto;
  }
  .panel-item:active {
    transform: scale(0.97);
    box-shadow: 0 1px 6px #123a4a33;
    background: #26384a;
  }
  .panel-item:hover {
    background: linear-gradient(120deg, #263d4c 85%, #203a43 100%);
    box-shadow: 0 4px 20px #1fc1c533, 0 1px 4px #143a42aa;
  }
  #modal-var-legal {
    width: 98vw !important;
    max-width: 109vw !important;
    margin-top: 13vw !important;
    border-radius: 15px !important;
    background: rgba(19,33,43,0.98);
    box-shadow: 0 8px 38px #102a3c99;
  }
  .modal-header {
    background: linear-gradient(90deg, #163949, #186b5a 60%);
    color: #c0e8fc;
    border-radius: 12px 12px 0 0;
    padding: 18px 18px 6px 18px;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  .modal-header h2 {
    font-size: 1.22rem;
    color: #c0e8fc;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-shadow: 0 1px 3px #143a48, 0 1px 1px #111a25;
    margin: 0;
  }
  #modal-close {
  width: 18px;
  height: 38px;
  border-radius: 50%;
  background: #223e47;
  color: #fff;
  border: none;
  font-size: 2em;
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 13px;
  right: 48px;
  transition: background 0.18s, box-shadow 0.18s, color 0.12s, transform 0.13s;
  box-shadow: 0 2px 9px #0003;
  cursor: pointer;
  z-index: 20;
  }
  #modal-close:hover {
  background: #e34242;
  color: #fffbe7;
  transform: scale(1.08);
  box-shadow: 0 4px 18px #0006;
  }
  .modal-body {
    padding: 12px 7px 14px 7px;
  }
  .search-input {
    border-radius: 9px;
    font-size: 1.08em;
    margin-bottom: 15px;
    padding: 13px 10px;
    border: 1.4px solid #224050;
    background: #133045;
    color: #e6f0ff;
    box-shadow: 0 1px 2px #223a4236;
    outline: none;
    transition: border-color 0.15s, background 0.17s;
  }
  .search-input:focus {
    border-color: #51e7b6;
    background: #174358;
    color: #fff;
  }

  /* Modal em si ocupa quase a largura toda */
  #modal-var-legal {
    width: 98vw !important;
    max-width: 99vw !important;
    margin-top: 6vw !important;
    border-radius: 13px !important;
  }

  /* Botões flutuantes, topo etc — ajuste aqui */
  .top-buttons {
    position: static !important;
    width: 95vw !important;
    max-width: 97vw !important;
    margin: 8px auto 7px auto !important;
    gap: 10px !important;
    display: flex !important;
    flex-direction: column !important;
    font-size: 1em !important;
    margin-left: 7% !important;
    margin-top: 45% !important;
  }
  .top-buttons button {
    width: 90% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 10px 0 !important;
    margin-bottom: 0 !important;
    font-size: 1em !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
  }

  .painel-lista h1, .painel-lista h2,
  .painel-acessos h2, .painel-acessos h1 {
    font-size: 1.04em !important;
    margin-bottom: 0.38em !important;
    margin-top: 0.0em !important;
  }

  /* mostra o botão no mobile */
  #btnAbrirModalSeletores {
    display: block !important;
  }

  /* o botão interno de “Abrir em tela cheia” podemos esconder (opcional) */
  #btnAbrirVisualizador,
  #btnAbrirVisualizadorCalor {
    display: none !important;
    
  }

  /* ========================
   Ajuste dos botões em Conexões Registradas
   ======================== */

/* 1) Garante que os botões quebrem linha */
#anydesk-list .site-item .action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;               /* espaço entre botões */
  margin-top: 8px;        /* distanciamento do conteúdo acima */
}

/* 2) Cada botão ocupa até ~45% da largura e nunca vaza */
#anydesk-list .site-item .action-buttons button {
  flex: 1 1 45%;          /* flex-grow, flex-shrink, flex-basis */
  padding: 6px 8px;
  font-size: 0.85rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}

/* 3) (Opcional) cor de fundo levemente distinta */
#anydesk-list .site-item .action-buttons button {
  background-color: rgba(255,255,255,0.1);
  border-radius: 4px;
  transition: background .2s;
}
#anydesk-list .site-item .action-buttons button:hover {
  background-color: rgba(255,255,255,0.2);
}

  /* SCROLLBAR MODERNA E DISCRETA */
  ::-webkit-scrollbar {
    width: 7px;
    height: 7px;
    background: #0f2b2c;
    border-radius: 8px;
  }
  ::-webkit-scrollbar-thumb {
    background: #2c5454;
    border-radius: 8px;
    border: 1.5px solid #243434;
  }
  ::-webkit-scrollbar-thumb:hover {
    background: #388484;
  }
  * {
    scrollbar-width: thin;
    scrollbar-color: #388484 #0f2b2c;
  } 

}



/* === MOBILE (até 450px) === */
@media (max-width: 450px) {

  /* ——— Esconde só as imagens de banner, mantendo o container vivo para o menu ——— */
  .seletor-estagio img#estagioImgBanner,
  .seletor-calor  img#calorImgBanner {
    display: none !important;
  }

  /* ——— Menus em full-screen, mas sempre ocultos por padrão ——— */
  #menuEstagios .estagio-item,
  #menuCalor    .calor-item {
    display: flex;
    align-items: center;
    width: 70%;
    max-width: 360px;
    padding: 12px 16px;
    margin: 10px 0;
    background: rgba(255,255,255,0.1);
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.4);
    cursor: pointer;
    transition: background 0.2s, transform 0.2s;
  }

  /* ─────── Menus de Estágio e Calor ─────── */
#menuEstagios {
    position: fixed !important;
    top: 0;
    width:0vw !important;       /* cada um ocupa metade da tela */
    height: 61vh !important;
    padding-top: 8px;
    background: rgba(0,0,0,0.75);
    backdrop-filter: blur(5px);
    display: none !important; 
    margin-top: 100px;    /* JS continua fazendo .open */
    flex-direction: column;
    overflow-y: auto;
    z-index: 20000;
    border-radius: 50px 50px 50px 50px; /* borda arredondada */
}

#menuCalor{
    position: fixed !important;
    width: 45vw !important;       /* cada um ocupa metade da tela */
    height: 62vh !important;
    padding-top: 10px;
    margin: 8px 0 0 6px;
    background: rgba(0,0,0,0.75);
    backdrop-filter: blur(5px);
    display: none !important; 
    margin-top: 101px;    /* JS continua fazendo .open */
    flex-direction: column;
    justify-items: center;
    overflow-y: auto;
    z-index: 20000;
    border-radius: 50px 50px 50px 50px; /* borda arredondada */
}

  /* ─── Quando abertos ─── */
  #menuEstagios.open,
  #menuCalor.open {
    display: flex !important;
  }

  /* Estágio à esquerda */
  #menuEstagios {
    left: 0;
    border-radius: 16px 16px 16px 16px;  /* arredonda apenas canto direito */
  }

  /* Calor à direita */
  #menuCalor {
    right: 0;
    left: auto !important;
    border-radius: 16px 0 0 16px;  /* arredonda apenas canto esquerdo */
  }


/* animação de fade+slide */
@keyframes fadeInMenu {
  from { opacity: 0; transform: translateY(-20px); }
  to   { opacity: 1; transform: translateY(0); }
}

#menuEstagios .estagio-item:hover,
#menuCalor    .calor-item:hover {
  background: rgba(255,255,255,0.2);
  transform: translateX(4px);
}

/* ── Miniaturas ── */
#menuEstagios .estagio-item img,
#menuCalor    .calor-item img {
    width: auto !important;
    height: auto !important;
    max-width: 60px;              /* ajuste máximo que quiser */
    max-height: 40px;
    margin-right: 1px;
    object-fit: cover;
    box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}

/* ── Labels ── */
#menuEstagios .estagio-item span,
#menuCalor    .calor-item span {
  flex: 1;
  color: #fff;
    font-size: 1.0rem !important;
    font-weight: 600;
}

/* ── Estado selecionado ── */
#menuEstagios .estagio-item.selected,
#menuCalor    .calor-item.selected {
  background: #1f8f83;    /* escolha uma cor de destaque */
}

/* ── Botão “Abrir em full-screen” (opcional) ── */
#btnAbrirVisualizador,
#btnAbrirVisualizadorCalor {
  margin-top: 24px !important;
  padding: 10px 20px !important;
  background: #00c2ff !important;
  color: #004d4d !important;
  font-weight: bold;
  border-radius: 6px !important;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3) !important;
  transition: background 0.2s, transform 0.2s !important;
}
#btnAbrirVisualizador:hover,
#btnAbrirVisualizadorCalor:hover {
  background: #00a0cc !important;
  transform: translateY(-2px) !important;
}

}

@media (max-width: 450px){
/* Botões flutuantes, topo etc — ajuste aqui */
  .top-buttons {
    
    width: 95vw !important;
   flex: row  !important;
    margin: 8px auto 7px auto !important;
    gap: 10px !important;


  }
}
