/* =========================================================
   FRETE+PRO 2.2 - DARK HARD OVERRIDE
   Carregado por último com nome novo para evitar cache.
   Neutraliza superfícies claras remanescentes do CSS legado.
========================================================= */
:root{
  --pro-bg:#070f1b;
  --pro-sidebar:#0a1320;
  --pro-surface:#101c2d;
  --pro-surface-2:#15243a;
  --pro-surface-3:#1b2d45;
  --pro-border:#2a3d55;
  --pro-text:#f5f7fb;
  --pro-muted:#9aabc0;
  --pro-accent:#ff9f1c;
}
html,body,.app,.main,.content{background-color:var(--pro-bg)!important;color:var(--pro-text)!important}

/* Superfícies. O seletor amplo é proposital nesta versão visual. */
.card,.painel,.table-container,.modal,.modal-content,.modal-body,.modal-header,
.form-card,.form-section,.section-card,.status-atual-box,.campo-box,
.relatorios-filtros,.relatorios-cards,.relatorio-card,.relatorio-painel,
.representantes-card,.representantes-busca,.representantes-filtros,
.posvenda-card,.posvenda-arquivo-card,.posvenda-detalhes,.posvenda-filtros,
.nfe-nota-card,.nfe-card,.nfe-resumo,.nfe-detalhes,.nfe-importacao,
.comprovacao-card,.comprovacao-box,.comprovacao-item,.comprovacao-status-box,
.entrega-card,.entrega-resumo,.entrega-dados,.central-card,.central-box,
.pro-card,.pro-table-wrap,.dashboard3-card,.dashboard-card,.dashboard3-box,
.empty-box,.loading-box,.observacao-box,.vinculo-veiculo-item,
[class*="-card"],[class*="-painel"],[class*="-box"]{
  background-color:var(--pro-surface)!important;
  background-image:linear-gradient(180deg,var(--pro-surface-2),var(--pro-surface))!important;
  color:var(--pro-text)!important;
  border-color:var(--pro-border)!important;
}

/* Não transformar badges/status em cards genéricos */
.status,[class*="badge"],.pro-status,.card-icon{
  background-image:none!important;
}

/* Tipografia em superfícies escuras */
h1,h2,h3,h4,h5,h6,strong,b,legend{color:var(--pro-text)!important}
p,small,.muted,.subtitulo,.descricao{color:var(--pro-muted)!important}
label{color:#d6deea!important}

/* Tabelas */
table,tbody,tr,td{background-color:transparent!important;color:#e9eef6!important}
thead,thead tr,th{background-color:#0c1828!important;color:#cbd5e1!important}
th,td{border-color:var(--pro-border)!important}
tbody tr:hover{background-color:rgba(255,255,255,.04)!important}

/* Inputs e controles */
input,select,textarea,.input,.select{
  background:#091624!important;
  color:var(--pro-text)!important;
  border-color:#344a64!important;
  caret-color:var(--pro-accent)!important;
}
input:disabled,select:disabled,textarea:disabled{
  background:#111f31!important;
  color:#aebbd0!important;
  opacity:1!important;
}
input::placeholder,textarea::placeholder{color:#6f829a!important}
option{background:#091624!important;color:#f5f7fb!important}

/* Botões secundários claros do legado */
.btn-secondary,.btn-cancelar,.btn-voltar,.btn-limpar,.btn-filtro,.btn-link,
button[class*="secondary"]{
  background:#17263a!important;
  color:#e6edf7!important;
  border-color:#344a64!important;
}

/* Elementos com style inline claro */
[style*="background: white"],[style*="background:white"],
[style*="background: #fff"],[style*="background:#fff"],
[style*="background: #ffffff"],[style*="background:#ffffff"],
[style*="background-color: white"],[style*="background-color:white"]{
  background:var(--pro-surface-2)!important;
  color:var(--pro-text)!important;
}

/* Fixes de componentes particularmente teimosos */
.auth-card,.auth-box,.login-card{background:#101c2d!important;color:var(--pro-text)!important;border-color:var(--pro-border)!important}
.relatorios-filtros .btn-secondary{background:#17263a!important;color:#e6edf7!important}
.relatorio-card-icon{background:rgba(56,189,248,.13)!important}
.vinculo-veiculo-item:hover{background:#1b2d45!important}

/* Ações primárias */
.btn-primary,.btn-status,.btn-salvar,.btn-novo,.btn-aplicar{
  background:linear-gradient(135deg,#ffad32,#f97316)!important;
  color:#171006!important;
  border-color:transparent!important;
}

/* Topbar/sidebar */
.topbar{background:rgba(8,17,31,.94)!important;border-color:var(--pro-border)!important}
.sidebar{background:linear-gradient(180deg,#0a1320,#07101b)!important;border-color:var(--pro-border)!important}

/* Seleção do navegador */
::selection{background:#ff9f1c;color:#171006}

/* FRETE+PRO 2.4 - ANTT/CIOT validation + larger distance field */
.pro-km-field{grid-column:span 2;min-width:0}
.pro-km-row{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:center}
.pro-km-input{min-height:52px!important;font-size:1.25rem!important;font-weight:800!important;letter-spacing:.02em;padding:10px 14px!important}
.pro-route-btn{min-height:52px;white-space:nowrap;padding-left:18px!important;padding-right:18px!important}
.pro-antt-result{margin-top:16px;border:1px solid #2b4059;border-radius:16px;overflow:hidden;background:#0d1726}
.pro-result-empty{padding:18px;color:#94a3b8}
.pro-result-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;border-bottom:1px solid #2b4059}
.pro-result-head h3{margin:4px 0 0;font-size:1.1rem}.pro-result-head small{color:#94a3b8;font-weight:800;letter-spacing:.08em}
.pro-result-head.is-ok{background:rgba(34,197,94,.10)}.pro-result-head.is-bad{background:rgba(239,68,68,.10)}
.pro-result-head.is-ok>strong{color:#86efac}.pro-result-head.is-bad>strong{color:#fca5a5}
.pro-result-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:1px;background:#24364d}
.pro-result-grid>div{background:#111e30;padding:16px}.pro-result-grid small{color:#94a3b8}.pro-result-grid strong{display:block;margin-top:6px;font-size:1.08rem;color:#f4f7fb}
.pro-result-source{padding:11px 16px;color:#94a3b8;font-size:.8rem}
#proBtnPrepararCiot:disabled{opacity:.38;cursor:not-allowed;filter:grayscale(.45)}
@media(max-width:760px){.pro-km-field{grid-column:span 1}.pro-km-row{grid-template-columns:1fr}.pro-result-head{align-items:flex-start;flex-direction:column}.pro-result-grid{grid-template-columns:repeat(2,1fr)}}

/* FRETE+PRO 2.5 - Prontidao CIOT */
.pro-ciot-readiness{margin-top:16px;border:1px solid #2b4059;border-radius:16px;overflow:hidden;background:#0f1b2b}
.pro-ciot-readiness-head{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px;background:#111e30}
.pro-ciot-readiness-head h3{margin:0}.pro-ciot-percent{font-size:1.7rem;font-weight:900;color:#ffb84d}
.pro-ciot-progress{height:10px;background:#24364d;overflow:hidden}.pro-ciot-progress>span{display:block;height:100%;background:linear-gradient(90deg,#ff9f1c,#facc15);transition:width .25s ease}
.pro-ciot-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.pro-ciot-group{border:1px solid #24364d;border-radius:12px;padding:14px;background:#111e30}.pro-ciot-group h4{margin:0 0 10px;color:#f4f7fb}
.pro-ciot-item{display:flex;gap:9px;align-items:flex-start;padding:7px 0;border-bottom:1px solid rgba(148,163,184,.10)}.pro-ciot-item:last-child{border-bottom:0}.pro-ciot-item small{display:block;color:#94a3b8}
.pro-ciot-extra{padding:0 16px 16px}.pro-ciot-extra .pro-form{grid-template-columns:repeat(2,minmax(0,1fr))}
.pro-ciot-final{margin:0 16px 16px;padding:16px;border-radius:12px;border:1px solid #2b4059;background:#111e30}.pro-ciot-final.is-ready{border-color:rgba(34,197,94,.45);background:rgba(34,197,94,.08)}.pro-ciot-final.is-blocked{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}
@media(max-width:760px){.pro-ciot-groups{grid-template-columns:1fr}.pro-ciot-extra .pro-form{grid-template-columns:1fr}.pro-ciot-readiness-head{align-items:flex-start;flex-direction:column}}

/* =========================================================
   FRETE+PRO 2.7 - CADASTRO INTEGRADO DE FROTA
   Filosofia TMS/fiscal: seções grandes, leitura rápida,
   dados técnicos + proprietário + pagamento na mesma tela.
   ========================================================= */

.modal-veiculo-integrado-pro {
  width: min(1180px, 96vw) !important;
  max-width: 1180px !important;
  max-height: 94vh !important;
  overflow: hidden !important;
  border: 1px solid rgba(55, 205, 255, 0.20) !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.56) !important;
}

.modal-motorista-pro {
  width: min(760px, 94vw) !important;
  max-width: 760px !important;
}

.pro-integrated-header {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 92% 10%, rgba(255, 159, 28, .16), transparent 34%),
    linear-gradient(135deg, #0b1728 0%, #101f34 100%) !important;
  border-bottom: 1px solid rgba(55, 205, 255, .16) !important;
}

.pro-integrated-header::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 210px;
  height: 3px;
  background: linear-gradient(90deg, #36d1ff, #ff9f1c);
}

.pro-eyebrow {
  margin-bottom: 5px;
  color: #57d9ff !important;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .15em;
}

.pro-integrated-body {
  padding: 22px !important;
  overflow-y: auto !important;
  background: #081321 !important;
}

.pro-form-section {
  margin-bottom: 18px;
  padding: 20px;
  background: linear-gradient(145deg, rgba(17,31,51,.97), rgba(12,25,43,.97)) !important;
  border: 1px solid #233b58 !important;
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

.pro-form-section-last { margin-bottom: 0; }

.pro-form-section-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(148, 163, 184, .13);
}

.pro-form-section-head h3 {
  margin: 0 0 3px !important;
  color: #f8fbff !important;
  font-size: 16px !important;
}

.pro-form-section-head p {
  margin: 0 !important;
  color: #8ea4bd !important;
  font-size: 12px !important;
}

.pro-form-step {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  border-radius: 10px;
  color: #06101d !important;
  background: linear-gradient(135deg, #39d5ff, #6be5ff) !important;
  box-shadow: 0 6px 18px rgba(57,213,255,.18);
  font-weight: 900;
  font-size: 12px;
}

.pro-form-grid-wide {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 15px !important;
}

.pro-form-grid-wide .campo-grande { grid-column: span 2; }
.pro-form-grid-wide .campo-full { grid-column: 1 / -1; }

.pro-form-section .campo label,
.modal-motorista-pro .campo label {
  color: #dce8f5 !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

.pro-form-section input,
.pro-form-section select,
.pro-form-section textarea,
.modal-motorista-pro input,
.modal-motorista-pro select,
.modal-motorista-pro textarea {
  min-height: 44px !important;
  background: #0a1828 !important;
  border: 1px solid #2b4260 !important;
  border-radius: 10px !important;
  color: #f7fbff !important;
}

.pro-form-section input:focus,
.pro-form-section select:focus,
.pro-form-section textarea:focus,
.modal-motorista-pro input:focus,
.modal-motorista-pro textarea:focus {
  border-color: #3dd6ff !important;
  box-shadow: 0 0 0 3px rgba(61,214,255,.10) !important;
  outline: none !important;
}

.pro-checkbox-field {
  display: flex;
  align-items: flex-end;
}

.pro-checkbox-label {
  width: 100%;
  min-height: 44px;
  display: flex !important;
  align-items: center;
  gap: 9px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #0a1828;
  border: 1px solid #2b4260;
  cursor: pointer;
}

.pro-checkbox-label input { min-height: auto !important; width: 17px; height: 17px; }

.pro-modal-footer-sticky {
  position: sticky;
  bottom: 0;
  z-index: 4;
  padding: 14px 20px !important;
  background: rgba(9, 20, 35, .98) !important;
  border-top: 1px solid #203651 !important;
  backdrop-filter: blur(12px);
}

.pro-save-big {
  min-width: 230px;
  min-height: 44px;
  background: linear-gradient(135deg, #ff9f1c, #ffb347) !important;
  color: #10151c !important;
  font-weight: 900 !important;
}

@media (max-width: 980px) {
  .pro-form-grid-wide { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 640px) {
  .modal-veiculo-integrado-pro { width: 100vw !important; max-height: 100vh !important; border-radius: 0 !important; }
  .pro-integrated-body { padding: 12px !important; }
  .pro-form-section { padding: 14px !important; border-radius: 12px; }
  .pro-form-grid-wide { grid-template-columns: 1fr !important; }
  .pro-form-grid-wide .campo-grande,
  .pro-form-grid-wide .campo-full { grid-column: auto; }
  .pro-save-big { min-width: 0; width: 100%; }
}


/* =========================================================
   FRETE+PRO 2.7.3 - PROPORCOES DO CADASTRO INTEGRADO
   Somente layout. Nenhuma regra de negocio alterada.
   ========================================================= */
@media (min-width: 981px) {
  .modal-veiculo-integrado-pro { width: min(1240px, 97vw) !important; max-width: 1240px !important; }
  .modal-veiculo-integrado-pro .pro-form-grid-wide {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    gap: 12px 14px !important;
  }
  /* Veiculo */
  .pro-col-placa{grid-column:span 2}.pro-col-renavam{grid-column:span 4}.pro-col-uf{grid-column:span 2}.pro-col-eixos{grid-column:span 2}
  .pro-col-capacidade{grid-column:span 3}.pro-col-tara{grid-column:span 3}.pro-col-carroceria{grid-column:span 6}
  .pro-col-tipo-veiculo{grid-column:span 4}.pro-col-rodado{grid-column:span 4}.pro-col-propriedade{grid-column:span 4}
  /* Proprietario */
  .pro-col-doc{grid-column:span 4}.pro-col-nome{grid-column:span 8}.pro-col-ie{grid-column:span 4}.pro-col-isento{grid-column:span 3}
  .pro-col-uf-prop{grid-column:span 2}.pro-col-rntrc{grid-column:span 3}.pro-col-tipo-prop{grid-column:span 4}.pro-col-tipo-transp{grid-column:span 4}
  /* Pagamento */
  .pro-col-meio{grid-column:span 4}.pro-col-banco{grid-column:span 8}.pro-col-agencia{grid-column:span 3}.pro-col-conta{grid-column:span 5}.pro-col-tipo-conta{grid-column:span 4}
}
.modal-veiculo-integrado-pro .pro-form-section input,
.modal-veiculo-integrado-pro .pro-form-section select { min-height: 40px !important; height: 40px !important; }
.modal-veiculo-integrado-pro .pro-checkbox-label { min-height: 40px !important; height: 40px; box-sizing: border-box; }
.modal-veiculo-integrado-pro .pro-form-section { padding: 18px 20px !important; }
.modal-veiculo-integrado-pro .pro-form-section-head { margin-bottom: 14px !important; padding-bottom: 12px !important; }
@media (max-width: 980px) and (min-width: 641px) {
 .modal-veiculo-integrado-pro .pro-form-grid-wide { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
 .modal-veiculo-integrado-pro .pro-form-grid-wide > .campo { grid-column:auto !important; }
 .modal-veiculo-integrado-pro .pro-form-grid-wide > .campo-full { grid-column:1/-1 !important; }
}


/* =========================================================
   FRETE+PRO 2.7.5 - ANTT / CIOT CAMPOS REALMENTE AMPLOS
   Corrige o bloco 2.7.4 que havia sido gravado com \n literais.
   ========================================================= */
.pro-antt-layout {
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 20px !important;
  width: 100% !important;
}

.pro-antt-card,
.pro-validacao-card {
  width: 100% !important;
  max-width: none !important;
  box-sizing: border-box !important;
}

.pro-antt-card {
  padding: 26px 28px !important;
}

.pro-antt-card .pro-antt-form {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 20px 22px !important;
  align-items: end !important;
  width: 100% !important;
}

.pro-antt-card .pro-antt-form > div {
  min-width: 0 !important;
}

/* Campos principais: mais largura para leitura e operacao */
.pro-antt-table-field { grid-column: 1 / -1 !important; }
.pro-antt-tipo-field  { grid-column: span 7 !important; }
.pro-antt-eixos-field { grid-column: span 5 !important; }
.pro-antt-card .pro-km-field { grid-column: 1 / -1 !important; }
.pro-antt-ccd-field,
.pro-antt-cc-field,
.pro-antt-pedagio-field,
.pro-antt-frete-field { grid-column: span 6 !important; }

.pro-antt-card .pro-antt-form label,
.pro-ciot-extra-form label {
  display: block !important;
  font-size: .92rem !important;
  font-weight: 800 !important;
  margin-bottom: 9px !important;
  line-height: 1.25 !important;
}

.pro-antt-card .pro-antt-form input,
.pro-antt-card .pro-antt-form select,
.pro-ciot-extra-form input,
.pro-ciot-extra-form select {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 56px !important;
  height: 56px !important;
  padding: 12px 16px !important;
  font-size: 1.02rem !important;
  border-radius: 11px !important;
  box-sizing: border-box !important;
}

.pro-antt-card #proTabelaAntt {
  font-size: 1.04rem !important;
  font-weight: 700 !important;
}

.pro-antt-card .pro-km-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

.pro-antt-card .pro-km-input {
  min-height: 62px !important;
  height: 62px !important;
  font-size: 1.45rem !important;
  font-weight: 900 !important;
}

.pro-antt-card .pro-route-btn {
  min-height: 62px !important;
  height: 62px !important;
  padding: 0 24px !important;
  font-size: .98rem !important;
  white-space: nowrap !important;
}

/* Dados adicionais CIOT: previsao de termino e pagamento mais largos */
.pro-ciot-extra-form {
  display: grid !important;
  grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
  gap: 20px 22px !important;
  width: 100% !important;
}

.pro-ciot-forma-pagamento { grid-column: span 5 !important; }
.pro-ciot-previsao-termino { grid-column: span 7 !important; }
.pro-ciot-previsao-termino .pro-ciot-datetime {
  width: 100% !important;
  min-width: 0 !important;
  font-size: 1.05rem !important;
}

@media (max-width: 1050px) {
  .pro-antt-tipo-field,
  .pro-antt-eixos-field,
  .pro-antt-ccd-field,
  .pro-antt-cc-field,
  .pro-antt-pedagio-field,
  .pro-antt-frete-field,
  .pro-ciot-forma-pagamento,
  .pro-ciot-previsao-termino {
    grid-column: span 6 !important;
  }
}

@media (max-width: 760px) {
  .pro-antt-card { padding: 18px !important; }
  .pro-antt-card .pro-antt-form,
  .pro-ciot-extra-form {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .pro-antt-table-field,
  .pro-antt-tipo-field,
  .pro-antt-eixos-field,
  .pro-antt-card .pro-km-field,
  .pro-antt-ccd-field,
  .pro-antt-cc-field,
  .pro-antt-pedagio-field,
  .pro-antt-frete-field,
  .pro-ciot-forma-pagamento,
  .pro-ciot-previsao-termino {
    grid-column: 1 / -1 !important;
  }
  .pro-antt-card .pro-km-row {
    grid-template-columns: 1fr !important;
  }
  .pro-antt-card .pro-route-btn {
    width: 100% !important;
  }
}
