/* ============================================================
   BASE — grid/tipografia/legado estrutural, substitui format.css +
   style.css da v2_new num arquivo só (style.css era cópia divergente
   e desatualizada de format.css, usada só em 4 popups de upload -
   descartada; os popups passam a usar este arquivo também).

   Continua sendo a camada estrutural (position/display/tamanho) por
   baixo de css/tema.css, que sobrepõe só cor/tema claro-escuro
   (var(--...) com !important) nos mesmos seletores - navbar,
   offcanvas, contact-card, input-text/input-button etc. Os dois
   arquivos precisam estar carregados juntos; nenhuma classe daqui
   foi renomeada, só o arquivo.

   ============================================================ */

* {
  box-sizing: border-box;
}

html {
  font-family: "Lucida Sans", sans-serif;
  font-size: 90%;
}

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

.opcao {
list-style-type: none;
margin: 0;
padding: 0;
background-color: #f1f1f1;
}

li a{
  display: block;
  color: black;
  padding: 8px 16px;
  text-decoration: none;
}

li a:hover {
  background-color: #555555;
  color: white;
}


.row::after {
  content: "";
  clear: both;
  display: table;
}

[class*="col-"] {
  float: left;
  padding: 7px;
}

.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}


.template {
	width:100%;
}

.template-row {
	clear:both;
	width:100%;
	padding:20px;
}

.template-topo {
	text-align:center;
	padding:10px;
	border-bottom:solid 1px #aaa;
	background-color:#000;
	color:#fff;
}

.template-left{
	vertical-align:top;
	width: 30%;
	/* border-right:solid 1px #aaa; */
	display: inline-block;
}

.template-right{
	vertical-align:top;
	width: 69%;
	display: inline-block;
}

.template-conteudo-left {
	padding:5px;
}

.template-conteudo-right {
	padding:5px;
}

@media(max-width: 900px) {

	.template-left {
		width:100%;
	}
	.template-right {
		width:100%;
	}
}

.input-text,.form-control {
	padding:10px;
	width:100%;
}

.input-numero, .input-numerico {
	padding:10px;
	width:100%;
	text-align:right;
}

.input-button {
	padding:10px;
	width:100%;
	border:none;
	cursor:pointer;
	border-radius:5px;
	text-align:center;
}
.input-button:hover {
	opacity: 0.5; 
}


.input-upload {
    display: none;
}

.selecionado-upload {
    padding: 20px 10px;
    width: 100%;
    text-align: center;
    display: block;
    margin-top: 10px;
}
.label-upload {
    padding: 10px 10px;
    width: 100%;
    text-transform: uppercase;
    text-align: center;
    display: block;
    margin-top: 10px;
    cursor: pointer;
    border:none;
}
.label-upload:hover {
	opacity: 0.5; 
}

.label-input { font-size: 80%; }

.fundo-cinza-claro { background-color:#f6f6f6; }
.fundo-cinza { background-color:#ccc; }
.fundo-cinza-1 { background-color:#f6f6f6; }
.fundo-preto-3 { background-color:#333; color: #FFF;}
.fundo-firefox { background-color:#DAE8E0;}
.fundo-azul { background-color:#000080; color:#fff;}
.fundo-azul-1 { background-color:#0099cc;}
.fundo-azul-windows { background:#00bfff; }
.fundo-vermelho { background-color:#ff0000; color:#fff;}
.fundo-laranja { background-color: #ffcc33; }
.fundo-verde { background-color:#008000; color:#fff; }
.fundo-verde-1 { background:#139429; color:#fff; }
.fundo-maron { background-color: #cc9900; }
.fundo-maron-1 { background-color: #f5f1d3; }


.mensagem { text-align:center; color:red; }

.texto-vermelho { color:red; }
.texto-italico { font-style: italic; }
.texto-negrito, .negrito { font-weight: bold; }
.texto-pequeno { font-size:80%; }

.texto-centralizado, .centralizado { text-align:center }
.texto-maiusculo, .maiusculo { text-transform: uppercase; }

.bordas { border:solid 1px #ccc; overflow:hidden; }

.linha-preta { border-bottom: solid 1px #000; }
.linha-cinza { border-bottom: solid 1px #ccc; }
.linha-vermelha { border-bottom: solid 1px #ff0000; }
.linha-vermelha-2  { border-bottom: solid 2px #ff0000; overflow:hidden;}
.linha-vermelha-5  { border-bottom: solid 5px #ff0000; overflow:hidden;}

.linha-pontilhada { border-bottom: dotted 1px #aaa; }
.font-7 { font-size:70%; }
.font-8 { font-size:80%; }
.font-9 { font-size:90%; }
.font { font-size:100%; }
.font-12 { font-size:120%; }
.font-14 { font-size:140%; }


.paragrafo {
	border-top-left-radius:4px; 
	border-top-right-radius:4px; 
	padding:5px;
}


.div-content {
	font-family: Arial, Helvetica, sans-serif;
	/* border-radius: 5px; */
	/* background-color: #f2f2f2; */
	/* max-width:90%; */
	position: relative;
	/* margin: 2% auto; */
	margin: auto;
	/* padding: 5px; */
	color:#000;

}
#div-waiting { text-align:center;}

.circle {
	margin: 15% auto 0;
	  box-sizing: border-box;
	  width: 150px;
	  height: 150px;
	  border-radius: 100%;
	  border: 20px solid rgba(0, 0, 0, 0.2);
	  border-top-color: #fff;
	  animation: spin 1s infinite linear;
	}
	@keyframes spin { 
	  100% { 
		transform: rotate(360deg); 
	  } 
} 

/* ---------------- Navbar fixa no topo ---------------- */

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 16px;
  background-color: #fff;
  border-bottom: solid 3px #ff0000;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
  z-index: 1500;
}

.navbar-toggler {
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  background: none;
  border: none;
  color: #333;
  padding: 4px 8px;
}

.navbar-toggler:hover {
  opacity: 0.6;
}

.navbar-brand {
  font-weight: bold;
  flex: 1 1 auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.navbar-user {
  white-space: nowrap;
  color: #555;
}

/* ---------------- Offcanvas (menu lateral) ---------------- */

.offcanvas {
  height: 100%;
  width: 340px;
  position: fixed;
  z-index: 2000;
  top: 0;
  left: 0;
  background-color: #f7f7f7;
  overflow-x: hidden;
  display: flex;
  flex-direction: column;
  transform: translateX(-100%);
  transition: transform .3s ease;
  box-shadow: 2px 0 12px rgba(0, 0, 0, .25);
}

.offcanvas.is-open {
  transform: translateX(0);
}

/* Cabeçalho: título "MENU" e o "X" na mesma linha */
.offcanvas-header {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 16px 12px 24px;
  border-bottom: solid 2px #ff0000;
}

.offcanvas-title {
  font-size: 1.1rem;
  font-weight: bold;
  letter-spacing: .5px;
}

.offcanvas-logo {
  max-height: 32px;
  max-width: 70%;
  object-fit: contain;
}

.offcanvas .closebtn {
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  color: #333;
  text-decoration: none;
}

.offcanvas .closebtn:hover {
  color: #999;
}

/* Corpo: rola se o conteúdo for maior que a tela, empurra o footer pro fim */
.offcanvas-body {
  flex: 1 1 auto;
  overflow-y: auto;
  padding-top: 8px;
  display: flex;
  flex-direction: column;
}

.menu-nav {
  flex: 0 0 auto;
  padding-bottom: 8px;
}

.menu-link {
  padding: 10px 16px 10px 24px;
  text-decoration: none;
  color: #000;
  display: block;
  border-bottom: solid 1px #eee;
  transition: background-color .15s ease;
}

.menu-link:hover {
  background-color: #ececec;
}

.menu-link-strong {
  font-weight: bold;
}

.menu-link-sair {
  color: #c0392b;
  font-weight: bold;
}

.menu-link-sair:hover {
  background-color: #fdecea;
}

/* Dropdown "Processo" */
.menu-dropdown-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px 10px 24px;
  cursor: pointer;
  text-decoration: none;
  color: #000;
  font-weight: 600;
  border-bottom: solid 1px #eee;
}

.menu-dropdown-toggle:hover {
  background-color: #ececec;
}

.menu-dropdown-arrow {
  font-size: 11px;
  transition: transform .2s ease;
}

.menu-dropdown.is-open .menu-dropdown-arrow {
  transform: rotate(180deg);
}

.menu-dropdown-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .25s ease;
}

.menu-dropdown.is-open .menu-dropdown-content {
  max-height: 300px;
}

.menu-dropdown-content .menu-link {
  padding-left: 44px;
  font-size: .95em;
}

/* Card de contato: fica colado no final do painel */
.contact-card {
  margin: 16px;
  margin-top: auto;
  border: solid 1px #e0e0e0;
  border-radius: 10px;
  overflow: hidden;
  background-color: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .08);
}

.contact-card-title {
  background-color: #000;
  color: #fff;
  font-size: .8rem;
  font-weight: bold;
  letter-spacing: .5px;
  padding: 8px 14px;
}

.contact-card-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  text-decoration: none;
  color: #333;
  font-size: .9rem;
  border-top: solid 1px #f0f0f0;
}

.contact-card-row:hover {
  background-color: #f7f7f7;
}

.contact-card-row span:last-child {
  overflow-wrap: anywhere;
}

.contact-card-icon {
  font-size: 1.1rem;
  flex: 0 0 auto;
  width: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.contact-card-icon-whatsapp svg {
  width: 18px;
  height: 18px;
  fill: #25d366;
}

.contact-card-horario {
  border-top: solid 1px #f0f0f0;
  line-height: 1.5;
}

/* Linha "Horário Atendimento": reaproveita .contact-card-row (mesmo
   ícone, mesmo tamanho de fonte das linhas de e-mail/WhatsApp acima)
   só que sem link/hover, já que não é clicável. */
.contact-card-row-static {
  cursor: default;
  border-bottom: solid 1px #f0f0f0;
}

.contact-card-row-static:hover {
  background-color: transparent;
}

.contact-card-horario-detalhe {
  padding: 0 14px 10px;
  font-size: .78rem;
  color: #666;
}

.contact-card-horario-detalhe:first-of-type {
  padding-top: 8px;
}

.offcanvas-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, .5);
  z-index: 1900;
  opacity: 0;
  visibility: hidden;
  transition: opacity .3s ease, visibility .3s ease;
}

.offcanvas-backdrop.is-open {
  opacity: 1;
  visibility: visible;
}

#main {
  padding: 16px;
  padding-top: 72px;
}

@media (max-width: 500px) {
  [class*="col-"] { width:100%; }
  .offcanvas { width: 85%; }
}
@media screen and (max-height: 600px) {
  .offcanvas {overflow-x: hidden;}
}
@media screen and (max-height: 450px) {
  .offcanvas {padding-top: 15px;}
  .offcanvas a {font-size: 18px;}
}

/* Menu lateral sempre aberto no desktop (pedido do usuário): vira uma
   coluna fixa, empurra a navbar/conteúdo pra direita e some com o
   botão ≡ e o fundo escuro - não há mais nada pra abrir/fechar. Só
   dentro de um popup embutido (openpage(), html.embutido - ver
   tema.css) o menu continua escondido e #main volta a ocupar a
   largura toda, exatamente como antes.
   Abaixo de 900px (celular e tablet em pé) continua como sempre foi:
   fechado por padrão, abre por cima do conteúdo pelo botão ≡. */
@media (min-width: 900px) {
  .offcanvas {
    transform: translateX(0) !important;
    box-shadow: none;
    border-right: 1px solid var(--line, #e2ded7);
  }
  .offcanvas-backdrop { display: none !important; }
  .navbar-toggler { display: none; }
  .offcanvas .closebtn { display: none; }
  .navbar { left: 340px; }
  #main { margin-left: 340px; }

  html.embutido .navbar { left: 0; }
  html.embutido #main { margin-left: 0; }
}



.dropdown {
  position: relative;
}

/* Style the dropdown button */
.dropbtn {
  background-color: #4CAF50;
  color: white;
  padding: 10px;
  border: none;
  cursor: pointer;
}

/* Dropdown content */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 200px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}

/* Links inside dropdown content */
.dropdown-content a {
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
}

/* Change color of dropdown links on hover */
.dropdown-content a:hover {
  background-color: #f1f1f1
}

/* Show the dropdown content on hover */
.dropdown:hover .dropdown-content {
  display: block;
}

/* Change background color of dropdown button on hover */
.dropdown:hover .dropbtn {
  background-color: #3e8e41;
}


.list {
  font-family: Arial, Helvetica, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

.list td, .list th {
  border: 1px solid #ddd;
  padding: 8px;
}

.list tr:nth-child(even){background-color: #f2f2f2;}

.list tr:hover {background-color: #ddd;}

.list th {
  padding-top: 10px;
  padding-bottom: 12px;
  text-align: left;
  background-color: #04AA6D;
  color: white;
}

.list-click {
	cursor:pointer;
}


.FiltroPopup
{
	position: fixed;
	top:0;
	left: 0;
	z-index: 9999;
	width: 99%;
	height: 99%;
	background-color: transparent;
	/* border: solid 10px #eee; */
}

.FiltroFrm
{
	margin: 0;
	position: absolute;
	width:40%;
	max-height: 90%;
	top: 50%;
	left: 50%;
	border: solid 1px #ddd;
	transform: translate(-50%, -50%);
	background-color:#fff;
	overflow:auto;
}


.FiltroPopupTitleBtn
{
	border-radius:3px;
	cursor: pointer;
	width:100%;
	text-align:center;
}

.FiltroPopupForm
{
	min-height: 5%;
	padding:3%;
}



/* .tablink (botões de troca de aba do formulário grande) removido -
   a barra de abas em si foi excluída de
   app/atpv/provedor/41/index.php (openTab()/nextTab() não existem
   mais), então nenhum elemento usa mais essa classe. .tabcontent
   continua abaixo porque tab-cadastro/tab-resumo ainda carregam essa
   classe (mesmo com display:none inline). */
.tabcontent {
  /* color: transparent; */
  display: none;
  padding: 10px;
  padding-top: 140px;
  /* text-align: center; */
}


/* The Modal (background) */
.modal-open {
  display: block; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 2100; /* Acima da navbar (1500) e do offcanvas (2000) */
  padding-top: 100px; /* Location of the box */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}
.modal-close-i {
  display: none; /* Hidden by default */
  position: fixed; /* Stay in place */
  z-index: 1; /* Sit on top */
  padding-top: 100px; /* Location of the box */
  left: 0;
  top: 0;
  width: 100%; /* Full width */
  height: 100%; /* Full height */
  overflow: auto; /* Enable scroll if needed */
  background-color: rgb(0,0,0); /* Fallback color */
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
}

/* Modal Content */
.modal-content {
  background-color: #fefefe;
  margin: auto;
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
}

/* The Close Button */
.modal-close {
  color: #aaaaaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
}

.modal-close:hover,
.modal-close:focus {
  color: #000;
  text-decoration: none;
  cursor: pointer;
}

/* Cabecalho fixo do resumo de confirmacao da ATPVe (atpve-edit-resumo.js) -
   o conteudo e longo (vendedor/comprador/veiculo/venda), entao o "x" tem
   que continuar acessivel mesmo depois de rolar pra ver os campos de baixo,
   senao nao da pra fechar sem voltar ao topo. */
.resumo-atpve-header {
  position: sticky;
  top: -20px;
  margin: -20px -20px 10px -20px;
  padding: 14px 20px;
  background-color: #fefefe;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: solid 1px #eee;
  z-index: 2;
}

.resumo-atpve-header h3 {
  margin: 0;
}

.resumo-atpve-header .modal-close {
  float: none;
}


.calculadora-modal {
  display: none; /* Escondido por padrão */
  position: fixed; /* Fixa na tela */
  z-index: 1; /* Fica acima de outros */
  left: 0; top: 0;
  width: 100%; height: 100%;
  overflow: auto; /* Habilita scroll se necessário */
  background-color: rgba(0,0,0,0.4); /* Fundo escurecido */
}

.calculadora-conteudo {
  background-color: #fefefe;
  margin: 15% auto; /* 15% do topo e centralizado */
  padding: 20px;
  border: 1px solid #888;
  width: 80%;
  max-width: 500px;
  border-radius: 8px;
  position: relative;
}

.calculadora-fechar {
  color: #aaa;
  float: right;
  font-size: 28px;
  font-weight: bold;
  cursor: pointer;
}




.modal-waiting {
  /* Initially hidden */
  display: none;
  position: fixed;
  z-index: 2200; /* Acima do offcanvas (2000) e do backdrop (1900) */
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0,0,0.5); /* Semi-transparent background (overlay) */
}

.modal-content-waiting {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* Centraliza de verdade, na tela toda */
  background-color: #fefefe;
  padding: 20px;
  border: 1px solid #888;
  width: 200px;
  text-align: center;
}

/* Simple CSS Loader (Spinner) */
.loader {
  border: 8px solid #f3f3f3; /* Light grey base */
  border-top: 8px solid #3498db; /* Blue spinner color */
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
  margin: 10px auto;
}

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

