/* Ajustes de layout e responsividade do Sistema de Cálculo do Backoffice */

.titulo-pagina { font-size: 1.6rem; margin-bottom: .5rem; }

/* ---------- Wizard ---------- */
#smartWizardValidation > ul.card-header {
  display: flex;
  flex-wrap: nowrap;
  overflow: visible;
  border-bottom: 1px solid #e6e6e6;
  padding-left: 0;
  padding-right: 0;
}
#smartWizardValidation > ul.card-header > li { flex: 1 1 0; min-width: 0; }
#smartWizardValidation > ul.card-header > li > a {
  display: block;
  padding: .75rem .5rem;
  font-size: .95rem;
  line-height: 1.3;
  text-align: center;
}
#smartWizardValidation > ul.card-header > li > a small { font-size: .78rem; }

/* Campos em duas colunas em telas médias/grandes */
#smartWizardValidation .tab-content form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 1.5rem;
  align-items: start;
}
#smartWizardValidation .tab-content .form-group { margin-bottom: 1.25rem; }
#smartWizardValidation .tab-content label { font-weight: 600; font-size: .85rem; }
#smartWizardValidation .tab-content label + small,
#smartWizardValidation .tab-content .form-group > small:not(.alerta-limite-simples) {
  display: block;
  margin: -.25rem 0 .35rem;
  color: #8f8f8f;
}
#smartWizardValidation .custom-select { height: calc(2.25rem + 6px); }
.alerta-limite-simples { display: block; margin-top: .35rem; font-size: .8rem; }

/* Navegação Anterior / Próximo */
#smartWizardValidation .wizard-nav {
  display: flex !important;
  flex-wrap: nowrap;
  justify-content: space-between !important;
  gap: .75rem;
  margin-top: .5rem;
}
#smartWizardValidation .wizard-nav .btn { min-width: 140px; margin: 0; }

/* ---------- Coluna de resumo ---------- */
@media (min-width: 1200px) {
  .coluna-resumo { position: sticky; top: 110px; }
}
.coluna-resumo .percentuais h5 { font-size: .85rem; }
.coluna-resumo .percentuais h1 { font-size: 1.6rem; word-break: break-word; }
#btn-exportar-pdf { width: 100%; }

/* ---------- Tablets ---------- */
@media (max-width: 991px) {
  #smartWizardValidation > .card-body { padding-left: 0; padding-right: 0; }
}

/* ---------- Celulares ---------- */
@media (max-width: 767px) {
  .titulo-pagina { font-size: 1.3rem; }
  #smartWizardValidation .tab-content form { grid-template-columns: 1fr; }
  .card > .card-body { padding: 1.1rem; }
  #smartWizardValidation > .card-body,
  #smartWizardValidation .tab-content .card-body { padding: 0; }
  #smartWizardValidation .wizard-nav { padding: 0; }
  #smartWizardValidation .wizard-nav .btn { flex: 1 1 0; min-width: 0; }
  .coluna-resumo .percentuais h1 { font-size: 1.3rem; }
  #smartWizardValidation > ul.card-header > li > a { padding: .6rem .25rem; font-size: .85rem; }
  #smartWizardValidation > ul.card-header > li > a small { font-size: .7rem; }
}

/* Botão de menu no celular */
.navbar .menu-button-mobile { margin-left: 15px; }
.navbar .menu-button-mobile svg { width: 26px; height: 17px; fill: #8f8f8f; }

/* Logo da CF também no celular (no lugar do ícone padrão do template) */
@media (max-width: 767px) {
  .navbar .logo-mobile {
    width: 150px;
    height: 40px;
    background: url(https://cfcontabilidade.com.br/wp-content/themes/cfcontabilidade.com/images/logo.png) no-repeat center center;
    background-size: contain;
  }
}

/* ---------- Resultado do orçamento ---------- */
.resultado-orcamento { border-top: 4px solid #145388; }
.resultado-orcamento .card-body { padding: 1.25rem 1.5rem; }
.resultado-titulo {
  font-size: 1.05rem;
  font-weight: 700;
  color: #145388;
  margin-bottom: .75rem;
}
.resultado-titulo small { font-weight: 400; color: #8f8f8f; margin-left: .35rem; font-size: .75rem; }
.resultado-linha {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding: .8rem 0;
  border-bottom: 1px solid #ececec;
}
.resultado-rotulo { font-size: .95rem; color: #3a3a3a; }
.resultado-valor { font-size: 1.25rem; font-weight: 700; color: #212121; white-space: nowrap; }
.resultado-personalizar { color: #c43d4b; font-size: 1rem; }
.resultado-detalhe {
  display: block;
  margin-top: .3rem;
  padding: .2rem .55rem;
  border-radius: 4px;
  background: #fff4e5;
  color: #b25e09;
  font-size: .78rem;
}
.resultado-detalhe b { white-space: nowrap; }
.resultado-detalhe-neutro { background: #eef3f8; color: #145388; }
.resultado-total {
  margin: 1rem -.25rem 0;
  padding: 1rem 1.1rem;
  border-radius: 8px;
  background: #145388;
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .25rem .75rem;
}
.resultado-total span { font-size: 1rem; font-weight: 600; }
.resultado-total strong { font-size: 1.75rem; font-weight: 700; white-space: nowrap; }
.resultado-total small { flex-basis: 100%; text-align: right; opacity: .85; }
@media (max-width: 767px) {
  .resultado-orcamento .card-body { padding: 1.1rem; }
  .resultado-valor { font-size: 1.1rem; }
  .resultado-total strong { font-size: 1.45rem; }
}

/* Aviso abaixo de campo (ex.: RPA/Autônomo) */
#smartWizardValidation .tab-content .form-group > small.aviso-campo {
  display: block;
  margin: .35rem 0 0;
  color: #b25e09;
  font-size: .78rem;
}
#smartWizardValidation .campo-quantidade { height: calc(2.25rem + 6px); }

/* Valor em reais abaixo do percentual */
.coluna-resumo .percentual-valor { display: block; margin-top: .2rem; font-size: .75rem; color: #8f8f8f; }

/* Data/hora só aparece na impressão direta da página */
.data-impressao { display: none; }

/* ---------- Menu lateral ---------- */
.menu .main-menu { height: calc(100% - 100px); }
.menu .main-menu .menu-cf { padding: 12px 10px; }
.menu .main-menu .menu-cf li { border-bottom: 0; margin-bottom: 6px; position: relative; }
.menu .main-menu .menu-cf li a {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: auto;
  padding: 14px 6px;
  border-radius: 12px;
  color: #6c757d;
  text-align: center;
  transition: background .2s, color .2s;
}
.menu .main-menu .menu-cf li a:hover { background: #f1f5fa; color: #145388; }
.menu .main-menu .menu-cf .menu-icone {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: 12px;
  background: #eef3f8;
  color: #145388;
  transition: background .2s, color .2s;
}
.menu .main-menu .menu-cf .menu-icone i { font-size: 24px; line-height: 1; margin: 0; }
.menu .main-menu .menu-cf .menu-texto { font-size: .78rem; line-height: 1.25; font-weight: 600; }
.menu .main-menu .menu-cf li.active a { color: #145388; background: #f1f5fa; }
.menu .main-menu .menu-cf li.active .menu-icone { background: #145388; color: #fff; }
.menu .main-menu .menu-cf li.active:after { display: none; }
.menu .main-menu .menu-cf li.active a:before {
  content: "";
  position: absolute;
  left: -10px;
  top: 14px;
  bottom: 14px;
  width: 4px;
  border-radius: 0 4px 4px 0;
  background: #145388;
}

/* ---------- Enquadramento e documentos ---------- */
.grade-regimes .card { box-shadow: none; border: 1px solid #edf0f4; margin-bottom: .4rem !important; border-radius: 8px; }
.grade-regimes .card .card-body { padding: .7rem 1rem; }
.grade-regimes .card.table-heading { border: 0; background: transparent; }
.grade-regimes .card.table-heading p { font-weight: 700; font-size: .75rem; }
.grade-regimes .list-item-heading { font-size: .85rem; line-height: 1.3; white-space: normal; }
.grade-regimes .simple-icon-check { font-size: 1rem; font-weight: 700; }
@media (max-width: 767px) {
  .grade-regimes .card .card-body { padding: .6rem .5rem; }
  .grade-regimes .list-item-heading { font-size: .78rem; }
  .grade-regimes .card.table-heading p { font-size: .65rem; }
}

/* ---------- Tabela de serviços extras: vira lista no celular ---------- */
@media (max-width: 767px) {
  .tabela-servicos thead { display: none; }
  .tabela-servicos, .tabela-servicos tbody, .tabela-servicos tr, .tabela-servicos td { display: block; width: 100%; }
  .tabela-servicos tr { padding: .75rem .25rem; border-bottom: 1px solid #ececec; }
  .tabela-servicos td { border: 0; padding: .15rem .5rem; text-align: left !important; }
  .tabela-servicos td:nth-child(2) { color: #6c757d; font-size: .82rem; }
  .tabela-servicos td:nth-child(3) { margin-top: .3rem; color: #145388; }
  .tabela-servicos tr[class^="table-"] td { text-align: center !important; padding: .4rem; }
}

/* Regras do enquadramento: lista com marcadores, sem tudo em negrito */
.col-item .card-body.pt-5 { padding-top: 2rem !important; padding-bottom: 2rem !important; }
.col-item .large-icon { font-size: 40px; }
.col-item strong > ul.list-unstyled { font-weight: 500; }
.col-item strong > ul.list-unstyled li {
  position: relative;
  padding: .35rem 0 .35rem 1.4rem;
  border-bottom: 1px dashed #eceff3;
  font-size: .8rem;
  line-height: 1.4;
  color: #3a3a3a;
}
.col-item strong > ul.list-unstyled li:last-child { border-bottom: 0; }
.col-item strong > ul.list-unstyled li:before {
  content: "";
  position: absolute;
  left: .2rem;
  top: .8rem;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #145388;
}
@media (max-width: 767px) {
  .col-item .card-body { padding-left: 1rem; padding-right: 1rem; }
  .col-item .card-body > .pl-3 { padding-left: 0 !important; padding-right: 0 !important; }
}
.grade-regimes .card-body > p.w-40 { flex: 0 0 40%; max-width: 40%; }
.grade-regimes .card-body > p.w-20 { flex: 0 0 20%; max-width: 20%; }

/* ---------- Importar planilha ---------- */
.importar-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; margin-bottom: 1rem; }
.importar-acoes { display: flex; gap: .5rem; flex-wrap: wrap; align-items: center; }
.area-upload {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem;
  width: 100%; margin: 0; padding: 2.2rem 1rem; text-align: center; cursor: pointer;
  border: 2px dashed #c9d6e4; border-radius: 12px; background: #f8fafc; transition: background .2s, border-color .2s;
}
.area-upload:hover, .area-upload.arrastando { background: #eef3f8; border-color: #145388; }
.area-upload i { font-size: 38px; color: #145388; }
.area-upload input[type=file] { display: none; }
.tabela-importacao-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid #edf0f4; border-radius: 8px; }
.tabela-importacao { margin: 0; min-width: 1650px; font-size: .8rem; }
.tabela-importacao th { white-space: nowrap; font-size: .72rem; color: #6c757d; vertical-align: bottom; border-top: 0; padding: .5rem .4rem; background: #fafbfc; }
.tabela-importacao tr.grupo th { text-transform: uppercase; letter-spacing: .05em; color: #145388; font-weight: 700; border-bottom: 1px solid #e3e8ef; text-align: center; }
.tabela-importacao td { padding: .35rem .4rem; vertical-align: middle; border-top: 1px solid #f0f2f5; }
.tabela-importacao .form-control-sm { font-size: .78rem; height: calc(1.5em + .5rem + 4px); padding: .2rem .4rem; min-width: 90px; }
.tabela-importacao .campo-cliente { min-width: 170px; }
.tabela-importacao .campo-numero { min-width: 70px; max-width: 90px; }
.tabela-importacao .num-linha { color: #aaa; width: 28px; }
.tabela-importacao .col-resultado { text-align: right; white-space: nowrap; background: #f6f9fc; min-width: 95px; }
.tabela-importacao tr.linha-ok .r-total strong { color: #145388; }
.tabela-importacao tr.linha-erro td { background: #fff5f5; }
.tabela-importacao tr.desatualizada .col-resultado { color: #bbb; text-decoration: line-through; }
.tabela-importacao .is-invalid { border-color: #dc3545; background: #fff5f5; }
.resumo-lote { max-width: 560px; }
.tabela-importacao { min-width: 1900px; }
.tabela-importacao [data-campo="regime"] { min-width: 165px; }
.tabela-importacao [data-campo="atividade"] { min-width: 150px; }
.tabela-importacao [data-campo="faturamento"] { min-width: 165px; }
.tabela-importacao [data-campo="entrega"] { min-width: 140px; }
.tabela-importacao [data-campo="folha"] { min-width: 150px; }
.tabela-importacao [data-campo="caixa"], .tabela-importacao [data-campo="fatorR"], .tabela-importacao [data-campo="compraFora"] { min-width: 80px; }

/* Importação: formato Precificação de Carteira */
.tabela-importacao { min-width: 2350px; }
.tabela-importacao .is-ajustado { border-color: #e0a800; background: #fff8e1; }
.texto-ajustado { color: #9a6b00; background: #fff8e1; padding: 0 .25rem; border-radius: 3px; }
.tabela-importacao .grupo-opcoes { background: #fbfaf5; }
.tabela-importacao tr.grupo th.grupo-opcoes { color: #8a6d1f; }
.tabela-importacao [data-campo="cnpj"] { min-width: 150px; }
.tabela-importacao [data-campo="honorario"] { min-width: 105px; }
.tabela-importacao .campo-cliente { min-width: 260px; }
.selecao-aba { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.selecao-aba select { width: auto; min-width: 260px; }
.resumo-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; align-items: start; }
.resumo-colunas .resumo-lote { max-width: none; }
.resumo-honorarios { border: 1px solid #e3e8ef; border-radius: 10px; padding: .25rem 1.1rem; }
.resumo-honorarios .destaque-margem { border-bottom: 0; }
.resumo-honorarios .destaque-margem .resultado-valor { color: #145388; font-size: 1.45rem; }
@media (max-width: 991px) { .resumo-colunas { grid-template-columns: 1fr; gap: 1rem; } }

/* Importação: escolha de departamentos */
.departamentos-lote { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; padding: .75rem 1rem; margin-bottom: 1rem; background: #f6f9fc; border: 1px solid #e3e8ef; border-radius: 8px; }
.departamentos-lote .departamentos-rotulo { font-weight: 700; color: #145388; margin-right: .25rem; }
.departamentos-lote .custom-control-inline { margin-right: .5rem; }
.tabela-importacao { min-width: 2200px; }
.tabela-importacao.sem-contabil [data-campo="caixa"], .tabela-importacao.sem-contabil [data-campo="entrega"],
.tabela-importacao.sem-fiscal [data-campo="compraFora"], .tabela-importacao.sem-fiscal [data-campo="fatorR"],
.tabela-importacao.sem-dp [data-campo="folha"], .tabela-importacao.sem-dp [data-campo="funcionarios"],
.tabela-importacao.sem-dp [data-campo="prolabore"], .tabela-importacao.sem-dp [data-campo="rpa"] { opacity: .35; }
.tabela-importacao tr.linha-sem-dp [data-campo="folha"], .tabela-importacao tr.linha-sem-dp [data-campo="funcionarios"],
.tabela-importacao tr.linha-sem-dp [data-campo="prolabore"], .tabela-importacao tr.linha-sem-dp [data-campo="rpa"] { opacity: .35; }
.tabela-importacao [data-campo="calcDp"] { min-width: 80px; }
.departamentos-lote .dp-por-cliente { flex-basis: 100%; color: #6c757d; }

/* Importação: desconto (botão só aparece ao passar o mouse) */
.desconto-wrap { position: relative; }
.btn-desconto-oculto { opacity: 0; transition: opacity .2s; }
.btn-desconto-oculto:hover, .btn-desconto-oculto:focus, .btn-desconto-oculto.aberto { opacity: 1; }
.desconto-painel {
  position: absolute; top: calc(100% + 6px); right: 0; z-index: 20; width: 250px; padding: .75rem;
  background: #fff; border: 1px solid #e3e8ef; border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}
.desconto-painel label { font-size: .75rem; color: #6c757d; }
.desconto-linha { display: flex; gap: .4rem; }
.desconto-linha .form-control { flex: 1; text-align: right; }
.desconto-botoes { display: flex; justify-content: space-between; align-items: center; margin-top: .5rem; }
.linha-desconto .resultado-rotulo, .linha-desconto .resultado-valor { font-size: .9rem; }

/* Lucratividade no mesmo formato do Total do Backoffice, em verde (vermelho se negativa) */
.resumo-honorarios .total-lucratividade { background: #1f8a4c; margin-bottom: .85rem; }
.resumo-honorarios .total-lucratividade.negativa { background: #c43d3d; }

/* ---------- Campos: ícone interno, bordas arredondadas e cartões de opção (js/campos.js) ---------- */
.card-formulario { border-radius: 16px; box-shadow: 0 6px 24px rgba(20, 83, 136, .08); }
.card-formulario > .card-body { padding: 1.75rem 2rem; }
.campo-icone { position: relative; }
.campo-icone > i {
  position: absolute; left: 14px; top: 50%; transform: translateY(-50%);
  font-size: 16px; color: #8a97a8; pointer-events: none; z-index: 2; transition: color .15s;
}
.campo-icone > .custom-select, .campo-icone > .form-control { padding-left: 42px; }
.campo-icone:focus-within > i { color: #145388; }
.card-formulario .custom-select, .card-formulario .form-control {
  height: 48px !important; border: 1px solid #cfd8e3; border-radius: 8px; background-color: #fff;
  font-size: .9rem; color: #2b2b2b; transition: border-color .15s, box-shadow .15s;
}
.card-formulario .form-control::placeholder { color: #9aa6b5; }
.card-formulario .custom-select:focus, .card-formulario .form-control:focus {
  border-color: #145388; box-shadow: 0 0 0 3px rgba(20, 83, 136, .15);
}
.card-formulario label { font-weight: 700 !important; font-size: .85rem; color: #2b2b2b; margin-bottom: .45rem; }
.card-formulario .custom-select.is-invalid, .card-formulario .form-control.is-invalid { border-color: #dc3545 !important; background-color: #fff5f5; }

.select-oculto { position: absolute !important; opacity: 0; pointer-events: none; width: 1px !important; height: 1px !important; }
.opcoes-cartao { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: .6rem; }
.opcao-cartao {
  display: flex; align-items: center; gap: .6rem; height: 48px; padding: 0 .9rem;
  border: 1px solid #cfd8e3; border-radius: 8px; background: #fff; color: #3a3a3a;
  font-size: .9rem; text-align: left; cursor: pointer; transition: border-color .15s, background .15s, box-shadow .15s;
}
.opcao-cartao:hover { border-color: #145388; }
.opcao-cartao:focus { outline: none; box-shadow: 0 0 0 3px rgba(20, 83, 136, .15); }
.opcao-cartao .marcador {
  flex: 0 0 18px; width: 18px; height: 18px; border: 1.5px solid #9aa6b5; border-radius: 50%; position: relative; transition: border-color .15s;
}
.opcao-cartao.ativo { border-color: #145388; background: #f1f6fb; color: #145388; font-weight: 700; }
.opcao-cartao.ativo .marcador { border-color: #145388; }
.opcao-cartao.ativo .marcador:after {
  content: ""; position: absolute; inset: 3px; border-radius: 50%; background: #145388;
}
.opcoes-cartao.is-invalid .opcao-cartao { border-color: #dc3545; background: #fff5f5; }
.opcoes-cartao.desativado .opcao-cartao { opacity: .5; cursor: not-allowed; background: #f3f4f6; }
@media (max-width: 767px) {
  .card-formulario > .card-body { padding: 1.25rem; }
}
.card-formulario .custom-select:invalid, .card-formulario .custom-select option[value=""] { color: #9aa6b5; }
.card-formulario .custom-select option { color: #2b2b2b; }
