/* OrçaEng — estilo base (cores e fonte das telas aprovadas) */
:root {
  --marinho: #14213D;
  --laranja: #E8590C;
  --acao: #C24A0A;
  --fundo: #F3F4F6;
  --branco: #FFFFFF;
  --texto2: #4E586B;
  --borda: #DCE0E7;
  --borda-campo: #C5CBD6;
  --linha: #EEF0F4;
  --verde: #1D7A46;
  --verde-escuro: #1D5E3A;
  --verde-claro: #E3F2E9;
  --vermelho: #9B2C1F;
  --vermelho-claro: #FBE4E1;
  --amarelo: #FFF4D6;
  --amarelo-borda: #F0D58A;
  --amarelo-texto: #7A5A00;
  --laranja-claro: #FFF6EF;
  --laranja-borda: #F5C9A9;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  background: var(--fundo); color: var(--marinho);
  font-family: 'Archivo', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  font-size: 15px; line-height: 1.45; -webkit-font-smoothing: antialiased;
}
a { color: var(--marinho); }
a:hover { color: var(--acao); }
h1, h2, h3 { margin: 0; font-weight: 800; }
p { margin: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--laranja); outline-offset: 2px; }

/* ---------- peças comuns ---------- */
.marca { display: flex; align-items: center; gap: 10px; font-size: 22px; font-weight: 800; }
.marca svg { flex-shrink: 0; }
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 0; border-radius: 8px; padding: 13px 22px; font-weight: 600; cursor: pointer;
  text-decoration: none; background: var(--laranja); color: #fff; min-height: 46px;
}
.botao:hover { background: var(--acao); color: #fff; }
.botao[disabled], .botao[aria-disabled="true"] { background: #9AA3B2; cursor: not-allowed; }
.botao.secundario { background: var(--branco); color: var(--marinho); border: 1px solid var(--borda-campo); }
.botao.secundario:hover { background: var(--fundo); color: var(--marinho); }
.botao.escuro { background: var(--marinho); }
.botao.escuro:hover { background: #22315A; }
.botao.verde { background: var(--verde); }
.botao.verde:hover { background: var(--verde-escuro); }
.botao.cheio { width: 100%; }
.link-botao { background: none; border: 0; padding: 8px 4px; font-weight: 600; text-decoration: underline; cursor: pointer; color: var(--marinho); }
.link-botao:hover { color: var(--acao); }

.campo { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: 14px; min-width: 0; }
.campo input, .campo select {
  font-weight: 400; font-size: 15px; border: 1px solid var(--borda-campo); border-radius: 8px;
  padding: 12px 14px; background: var(--branco); width: 100%; min-height: 46px;
}
.campo .dica { font-weight: 400; font-size: 13px; color: var(--texto2); }
.grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.cartao { background: var(--branco); border: 1px solid var(--borda); border-radius: 14px; }
.nota { display: flex; gap: 10px; align-items: flex-start; background: var(--fundo); border-radius: 8px; padding: 12px 14px; font-size: 13px; color: var(--texto2); line-height: 1.5; }
.nota svg { flex-shrink: 0; margin-top: 1px; }
.erro-msg { background: var(--vermelho-claro); color: var(--vermelho); border-radius: 8px; padding: 12px 14px; font-size: 14px; font-weight: 600; }
.ok-msg { background: var(--verde-claro); color: var(--verde-escuro); border-radius: 8px; padding: 12px 14px; font-size: 14px; font-weight: 600; }
.selo { align-self: flex-start; font-size: 13px; font-weight: 700; padding: 6px 12px; border-radius: 999px; }
.selo.vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.selo.laranja { background: var(--laranja-claro); color: var(--acao); }
.selo.verde { background: var(--verde-claro); color: var(--verde-escuro); }
.oculto { display: none !important; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.carregando { min-height: 100vh; display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--texto2); }
.girando { width: 22px; height: 22px; border: 3px solid var(--borda); border-top-color: var(--laranja); border-radius: 50%; animation: gira 0.8s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }

/* ---------- login / ativação ---------- */
.tela-login { min-height: 100vh; display: flex; flex-wrap: wrap; }
.login-lado { flex: 1 1 420px; background: var(--marinho); color: #fff; padding: 56px 48px; display: flex; flex-direction: column; gap: 28px; }
.login-lado .marca { font-size: 26px; }
.login-lado .chamada { margin-top: auto; display: flex; flex-direction: column; gap: 14px; max-width: 460px; }
.login-lado h1 { font-size: 36px; line-height: 1.15; }
.login-lado p { font-size: 17px; color: #C9D1DD; }
.login-lado .rodape { margin-top: auto; font-size: 13px; color: #9AA3B2; }
.login-form-area { flex: 1 1 420px; padding: 56px 24px; display: flex; align-items: center; justify-content: center; }
.login-form { width: 100%; max-width: 420px; padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.login-form .titulo { display: flex; flex-direction: column; gap: 4px; }
.login-form h2 { font-size: 24px; }
.login-form .sub { color: var(--texto2); font-size: 14px; }
.linha-entre { display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 14px; flex-wrap: wrap; }
.linha-entre label { display: flex; gap: 8px; align-items: center; cursor: pointer; }
.primeiro-acesso { border-top: 1px solid var(--linha); padding-top: 16px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; }
.primeiro-acesso span { color: var(--texto2); }

/* ---------- páginas centrais (aceite, boas-vindas, bloqueio) ---------- */
.pagina { min-height: 100vh; padding: 40px 16px; display: flex; flex-direction: column; align-items: center; gap: 24px; }
.pagina > * { width: 100%; max-width: 1100px; }
.pagina.estreita > * { max-width: 1040px; }
.topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.topo .quem { font-size: 14px; color: var(--texto2); }
.cabecalho { display: flex; flex-direction: column; gap: 6px; }
.cabecalho h1 { font-size: 32px; line-height: 1.2; }
.cabecalho p { color: var(--texto2); font-size: 17px; }

/* aceite */
.aceite-corpo { display: flex; flex-wrap: wrap; gap: 20px; align-items: stretch; }
.aceite-lista { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.doc-botao { text-align: left; background: var(--branco); border: 1px solid var(--borda); border-radius: 10px; padding: 16px; display: flex; flex-direction: column; gap: 2px; cursor: pointer; }
.doc-botao b { font-weight: 700; }
.doc-botao .estado { font-size: 13px; color: var(--texto2); }
.doc-botao .estado.lido { color: var(--verde-escuro); font-weight: 600; }
.doc-botao[aria-current="true"] { background: var(--marinho); color: #fff; border-color: var(--marinho); }
.doc-botao[aria-current="true"] .estado { color: #C9D1DD; }
.aceite-texto { flex: 3 1 520px; min-width: 0; padding: 24px 28px; display: flex; flex-direction: column; gap: 14px; }
.aceite-texto .titulo-doc { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.aceite-texto h2 { font-size: 20px; }
.aceite-texto .versao { font-size: 13px; color: var(--texto2); }
.texto-rolagem { height: 340px; overflow-y: auto; border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); padding: 14px 4px 14px 0; font-size: 14px; line-height: 1.6; color: #2A3550; white-space: pre-wrap; }
.aviso-rolar { font-size: 13px; color: var(--texto2); }
.aceite-marcar { padding: 24px 28px; display: flex; flex-direction: column; gap: 14px; }
.aceite-marcar label { display: flex; gap: 12px; align-items: flex-start; cursor: pointer; }
.aceite-marcar label.travado { cursor: not-allowed; color: var(--texto2); }
.aceite-marcar input[type=checkbox] { margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }
.aceite-acoes { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; border-top: 1px solid var(--borda); padding-top: 18px; }
.aceite-acoes .direita { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.aceite-acoes .falta { font-size: 13px; color: var(--texto2); }

/* boas-vindas */
.passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.passos li { background: var(--branco); border: 1px solid var(--borda); border-radius: 10px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; }
.passos .num { width: 32px; height: 32px; border-radius: 50%; background: #E6E9EF; display: flex; align-items: center; justify-content: center; font-weight: 800; flex-shrink: 0; }
.passos .txt { display: flex; flex-direction: column; }
.passos .txt span:first-child { font-weight: 600; }
.passos .txt span:last-child { font-size: 13px; color: var(--texto2); }
.passos li.feito .num { background: var(--verde); color: #fff; }
.passos li.feito .txt span:last-child { color: var(--verde-escuro); }
.passos li[aria-current="step"] { background: var(--marinho); color: #fff; border-color: var(--marinho); }
.passos li[aria-current="step"] .num { background: var(--laranja); color: var(--marinho); }
.passos li[aria-current="step"] .txt span:last-child { color: #C9D1DD; }
.passo-corpo { padding: 32px; display: flex; flex-direction: column; gap: 24px; }
.passo-corpo .titulo { display: flex; flex-direction: column; gap: 4px; }
.passo-corpo h2 { font-size: 24px; }
.passo-corpo .titulo p { color: var(--texto2); }
.opcoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.opcao { border: 1px solid var(--borda-campo); border-radius: 10px; padding: 16px; display: flex; gap: 10px; align-items: flex-start; cursor: pointer; }
.opcao:has(input:checked) { border: 2px solid var(--laranja); background: var(--laranja-claro); padding: 15px; }
.opcao input { margin-top: 3px; }
.opcao span { display: flex; flex-direction: column; gap: 2px; }
.opcao small { font-size: 13px; color: var(--texto2); }
.legenda { font-weight: 600; }
.caixa-cinza { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; background: var(--fundo); border-radius: 10px; padding: 16px; }
.caixa-cinza .txt { display: flex; flex-direction: column; gap: 2px; }
.caixa-cinza .txt span:last-child { font-size: 13px; color: var(--texto2); }
.alternar { display: flex; gap: 8px; }
.alternar button { font-weight: 600; background: var(--branco); color: var(--marinho); border: 1px solid var(--borda-campo); border-radius: 8px; padding: 10px 18px; cursor: pointer; min-height: 44px; }
.alternar button[aria-pressed="true"] { background: var(--marinho); color: #fff; border-color: var(--marinho); }
.passo-acoes { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; border-top: 1px solid var(--borda); padding-top: 20px; }
.dica-baixa { font-size: 14px; color: var(--texto2); }
.bdi-bloco { display: flex; flex-direction: column; gap: 12px; border: 1px solid var(--borda); border-radius: 12px; padding: 18px; }
.bdi-bloco .cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.bdi-bloco h3 { font-size: 17px; }
.bdi-bloco .resultado { font-size: 22px; font-weight: 800; color: var(--acao); }
.grade-6 { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 12px; align-items: end; }

/* bloqueio */
.bloqueio { padding: 36px; display: flex; flex-direction: column; gap: 18px; max-width: 760px; }
.bloqueio h1 { font-size: 30px; line-height: 1.2; }
.bloqueio .explica { font-size: 17px; color: var(--texto2); line-height: 1.55; }
.bloqueio .explica b { color: var(--marinho); }
.info-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; }
.info-grade div { background: var(--fundo); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 4px; }
.info-grade span { font-size: 13px; color: var(--texto2); }
.acoes { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* início */
.faixa { padding: 14px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.faixa .msg { display: flex; gap: 12px; align-items: center; line-height: 1.45; }
.faixa.amarela { background: var(--amarelo); border-bottom: 1px solid var(--amarelo-borda); }
.faixa.amarela svg { stroke: var(--amarelo-texto); }
.faixa.cinza { background: #E6E9EF; border-bottom: 1px solid var(--borda); }
.faixa .botao { padding: 10px 18px; min-height: 40px; font-size: 14px; }
.barra { background: var(--branco); border-bottom: 1px solid var(--borda); padding: 14px 24px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.barra .quem { font-size: 14px; color: var(--texto2); display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.inicio { padding: 28px 24px; max-width: 1240px; margin: 0 auto; display: flex; flex-direction: column; gap: 20px; }
.inicio h1 { font-size: 28px; }
.cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
.cartoes .cartao { padding: 18px; display: flex; flex-direction: column; gap: 6px; }
.cartoes .cartao span { font-size: 13px; color: var(--texto2); }
.cartoes .cartao b { font-size: 20px; }

@media (max-width: 640px) {
  .login-lado { padding: 32px 20px; gap: 16px; flex-basis: 100%; }
  .login-lado .chamada { margin-top: 8px; }
  .login-lado h1 { font-size: 26px; }
  .login-lado .rodape { display: none; }
  .login-form-area { padding: 24px 16px 40px; }
  .login-form { padding: 24px 20px; }
  .pagina { padding: 24px 16px; }
  .cabecalho h1 { font-size: 26px; }
  .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .passos li { padding: 10px 12px; gap: 8px; }
  .passos .num { width: 28px; height: 28px; }
  .passo-corpo, .aceite-texto, .aceite-marcar, .bloqueio { padding: 20px; }
  .texto-rolagem { height: 300px; }
  .bloqueio h1 { font-size: 24px; }
  .faixa, .barra { padding: 12px 16px; }
  .inicio { padding: 20px 16px; }
}

/* ---------- menu das telas internas (Fase 3) ---------- */
.barra-esq { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.menu { display: flex; gap: 4px; flex-wrap: wrap; }
.menu-item { font: inherit; font-size: 14px; font-weight: 600; background: none; border: 0; padding: 8px 12px; border-radius: 8px; cursor: pointer; color: var(--marinho); }
.menu-item:hover { background: var(--fundo); }
.menu-item[aria-current="page"] { background: var(--marinho); color: #fff; }
.menu-item.desligado { color: #9AA3B2; cursor: default; }
.menu-item.desligado:hover { background: none; }

/* ---------- Base SINAPI ---------- */
.inicio.sinapi { max-width: 1320px; gap: 16px; }
.sinapi-topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.sinapi-topo .cabecalho h1 { font-size: 28px; }
.sinapi-topo .cabecalho p { font-size: 15px; }
.alternar button[disabled] { opacity: .45; cursor: not-allowed; }
.sinapi-busca { display: flex; gap: 10px; flex-wrap: wrap; }
.busca { flex: 1 1 380px; display: flex; align-items: center; gap: 10px; background: var(--branco); border: 1px solid var(--borda-campo); border-radius: 10px; padding: 0 14px; }
.busca:focus-within { outline: 2px solid var(--laranja); outline-offset: 1px; }
.busca input { font: inherit; border: 0; outline: 0; padding: 13px 0; flex: 1; min-width: 0; background: none; }
.abas { display: flex; gap: 6px; }
.abas button { font: inherit; font-weight: 600; background: var(--branco); color: var(--marinho); border: 1px solid var(--borda-campo); border-radius: 10px; padding: 0 16px; min-height: 46px; cursor: pointer; }
.abas button[aria-selected="true"] { background: var(--laranja-claro); color: var(--acao); border: 2px solid var(--laranja); padding: 0 15px; }
.sinapi-corpo { display: flex; gap: 16px; flex-wrap: wrap; align-items: flex-start; }
.tabela-area { flex: 3 1 560px; min-width: 0; overflow: hidden; }
.detalhe { flex: 2 1 360px; min-width: 0; padding: 20px; display: flex; flex-direction: column; gap: 14px; position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
.rolar { overflow-x: auto; }
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th { text-align: left; font-size: 13px; color: var(--texto2); background: #F7F8FA; font-weight: 600; padding: 10px 12px; border-bottom: 1px solid var(--borda); }
.tabela td { padding: 11px 12px; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela tbody tr[data-cod] { cursor: pointer; }
.tabela tbody tr[data-cod]:hover { background: #FAFBFC; }
.tabela tbody tr.sel { background: var(--laranja-claro); }
.tabela .num { text-align: right; white-space: nowrap; }
.tabela.pequena { font-size: 13px; }
.tabela.pequena td, .tabela.pequena th { padding: 8px 6px; }
.sem { font-size: 12px; font-weight: 700; color: var(--amarelo-texto); background: var(--amarelo); padding: 2px 6px; border-radius: 6px; }
.etiqueta { display: inline-block; margin-left: 6px; font-size: 11.5px; font-weight: 600; color: var(--texto2); background: var(--fundo); padding: 1px 6px; border-radius: 6px; }
.un { color: var(--texto2); }
.vazio { padding: 24px; color: var(--texto2); margin: 0; }
.paginas { display: flex; justify-content: center; align-items: center; gap: 12px; padding: 12px; font-size: 14px; }
.paginas .botao { min-height: 38px; padding: 8px 14px; }
.rotulo { font-size: 13px; color: var(--texto2); }
.titulo-det { font-size: 16px; line-height: 1.35; }
.info-grade.tres { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.info-grade.tres div { padding: 10px; }
.info-grade.quatro { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.info-grade b { font-size: 16px; }
.info-grade.quatro b { font-size: 22px; }
.info-grade small { font-size: 12px; color: var(--texto2); }
.total-det { display: flex; justify-content: space-between; border-top: 1px solid var(--borda); padding-top: 12px; font-weight: 800; }

/* ---------- importar SINAPI ---------- */
.imp-corpo { display: flex; flex-wrap: wrap; gap: 20px; align-items: stretch; }
.imp-envio { flex: 1 1 360px; min-width: 0; padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.imp-conferir { flex: 2 1 520px; min-width: 0; padding: 24px; display: flex; flex-direction: column; gap: 16px; }
.imp-envio h2, .imp-conferir h2 { font-size: 18px; }
.campo-lido { font-weight: 400; border: 1px solid var(--borda); background: var(--fundo); border-radius: 8px; padding: 12px 14px; min-height: 46px; color: var(--texto2); }
.soltar { border: 2px dashed var(--borda-campo); border-radius: 12px; padding: 22px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center; background: #F7F8FA; cursor: pointer; }
.soltar span { font-size: 13px; color: var(--texto2); }
.soltar:hover, .soltar.em-cima { border-color: var(--laranja); background: var(--laranja-claro); }
.arquivo-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--verde-claro); border-radius: 10px; padding: 12px 14px; font-size: 14px; flex-wrap: wrap; }
.lendo { display: flex; align-items: center; gap: 8px; color: var(--texto2); }
.lendo .girando { width: 16px; height: 16px; border-width: 2px; }
.titulo-linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.checagens { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.checagens li { display: flex; gap: 10px; line-height: 1.45; }
.checagens .ok { color: var(--verde); font-weight: 800; }
.checagens .av { color: #B7791F; font-weight: 800; }

@media (max-width: 640px) {
  .barra-esq { gap: 10px; }
  .menu-item { padding: 8px 10px; }
  .detalhe { position: static; max-height: none; }
  .abas { width: 100%; }
  .abas button { flex: 1; }
  .tabela td, .tabela th { padding: 9px 8px; }
  .info-grade.tres div { padding: 8px; }
}
@media (max-width: 640px) {
  /* Resultados da Base SINAPI viram cartões no celular */
  .tabela-area .tabela thead { display: none; }
  .tabela-area .tabela tr { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 10px; padding: 12px; border-bottom: 1px solid var(--linha); }
  .tabela-area .tabela td { display: block; padding: 0; border: 0; }
  .tabela-area .tabela td:nth-child(1) { order: 1; }
  .tabela-area .tabela td:nth-child(3) { order: 2; color: var(--texto2); }
  .tabela-area .tabela td:nth-child(4) { order: 3; font-weight: 700; }
  .tabela-area .tabela td:nth-child(2) { order: 4; grid-column: 1 / -1; font-size: 13.5px; }
}

/* ---------- Configurações (Fase 4) ---------- */
.inicio.config { max-width: 1100px; }
.abas-config { flex-wrap: wrap; }
.abas-config button { min-height: 42px; }
.salvo { color: var(--verde-escuro); font-weight: 700; align-self: center; }
.tcu { display: flex; flex-direction: column; gap: 10px; }
.tcu-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.tcu-bloco { display: flex; flex-direction: column; gap: 8px; border: 1px solid var(--borda); border-radius: 12px; padding: 14px; }
.ok-txt { color: var(--verde-escuro); font-weight: 700; }
.usuarios { display: flex; flex-direction: column; gap: 20px; }
.tabela tr.inativo td { color: #9AA3B2; }
.tabela select { font: inherit; font-size: 14px; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 6px 8px; background: var(--branco); }
.senha-prov { display: flex; flex-direction: column; gap: 10px; background: var(--verde-claro); border-radius: 10px; padding: 16px; }
.senha-prov pre { margin: 0; white-space: pre-wrap; font-family: ui-monospace, Consolas, monospace; font-size: 14px; background: var(--branco); border-radius: 8px; padding: 12px; }
@media (max-width: 640px) {
  .abas-config button { flex: 1 1 45%; }
}

/* ---------- Orçamentos (Fase 5) ---------- */
.selo.azul { background: #E3ECFA; color: #1E4C9A; }
.selo.cinza { background: #E6E9EF; color: var(--texto2); }
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { font: inherit; font-size: 14px; font-weight: 600; background: var(--branco); border: 1px solid var(--borda-campo); border-radius: 999px; padding: 7px 14px; cursor: pointer; color: var(--marinho); }
.chip[aria-pressed="true"] { background: var(--marinho); color: #fff; border-color: var(--marinho); }
.orcs .lista-orc .etiqueta { margin-left: 8px; }
.orc { padding: 20px 24px 32px; max-width: 1440px; margin: 0 auto; display: flex; flex-direction: column; gap: 16px; }
.orc-aviso { position: sticky; top: 8px; z-index: 5; }
.orc-cab { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; }
.orc-cab-esq { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.orc-titulo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.orc-titulo h1 { font-size: 28px; }
.orc-sub { color: var(--texto2); font-size: 14px; }
.selo-select { font: inherit; font-size: 13px; font-weight: 700; border: 0; border-radius: 999px; padding: 6px 10px; cursor: pointer; }
.selo-select.laranja { background: var(--laranja-claro); color: var(--acao); }
.selo-select.verde { background: var(--verde-claro); color: var(--verde-escuro); }
.selo-select.azul { background: #E3ECFA; color: #1E4C9A; }
.selo-select.vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.selo-select.cinza { background: #E6E9EF; color: var(--texto2); }
.orc-dados { flex-basis: 100%; background: var(--branco); border: 1px solid var(--borda); border-radius: 12px; padding: 18px; display: flex; flex-direction: column; gap: 14px; }
.orc-abas { flex-wrap: wrap; }
.orc-abas button[disabled] { color: #9AA3B2; cursor: not-allowed; }
.orc-param { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 14px 18px; align-items: flex-end; }
.param { display: flex; flex-direction: column; gap: 4px; font-size: 13px; color: var(--texto2); }
.param > b { font-size: 15px; color: var(--marinho); }
.param small { font-size: 12px; }
.param-campo { display: flex; align-items: center; gap: 4px; }
.param-campo b { color: var(--marinho); font-size: 15px; }
.param input { font: inherit; font-size: 15px; font-weight: 600; width: 84px; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 8px 10px; color: var(--marinho); }
.orc-corpo { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.orc-itens { flex: 3 1 640px; min-width: 0; overflow: hidden; }
.orc-painel { flex: 1 1 340px; min-width: 0; max-width: 460px; padding: 18px; display: flex; flex-direction: column; gap: 12px; position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
.orc-painel h2 { font-size: 18px; }
.abas-painel button { flex: 1; min-height: 40px; padding: 0 8px; font-size: 13.5px; }
.orc-tabela td { vertical-align: middle; }
.orc-tabela .etapa-linha td { background: #F7F8FA; border-bottom: 1px solid var(--borda); }
.orc-tabela .vazio-linha td { color: var(--texto2); font-size: 13px; }
.orc-tabela .obs { display: block; color: var(--texto2); font-size: 12px; margin-top: 2px; }
.orc-tabela input.qtd { font: inherit; font-size: 14px; width: 88px; text-align: right; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 6px 8px; }
.link-botao.mini { font-size: 12.5px; padding: 2px 6px; margin-left: 6px; font-weight: 600; }
.acoes-item { white-space: nowrap; }
.icone { font: inherit; background: none; border: 1px solid transparent; border-radius: 6px; width: 30px; height: 30px; cursor: pointer; color: var(--texto2); }
.icone:hover { border-color: var(--borda-campo); color: var(--marinho); }
.editar-linha td { background: var(--laranja-claro); }
.form-item { display: flex; flex-direction: column; gap: 12px; padding: 6px 0; }
.nova-etapa { padding: 12px 14px; border-top: 1px solid var(--linha); }
.orc-totais { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; padding: 16px; border-top: 1px solid var(--borda); background: #FAFBFC; }
.orc-totais div { display: flex; flex-direction: column; gap: 2px; }
.orc-totais span { font-size: 12.5px; color: var(--texto2); }
.orc-totais b { font-size: 17px; }
.orc-totais .venda b { font-size: 20px; color: var(--acao); }
.res-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.res-lista li { display: flex; flex-direction: column; gap: 8px; padding: 10px 0; border-bottom: 1px solid var(--linha); font-size: 13.5px; }
.res-txt small { display: block; color: var(--texto2); margin-top: 2px; }
.res-add { display: flex; gap: 8px; }
.res-add input { font: inherit; width: 90px; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 8px; }
.res-add .botao { min-height: 38px; padding: 8px 14px; font-size: 14px; }
.form-proprio { display: flex; flex-direction: column; gap: 12px; }
@media (max-width: 640px) {
  .orc { padding: 16px 12px 28px; }
  .orc-titulo h1 { font-size: 22px; }
  .orc-param { gap: 10px 16px; }
  .param input { width: 72px; }
  .orc-painel { position: static; max-height: none; max-width: none; }
  .orc-tabela thead { display: none; }
  .orc-tabela tr.item-linha { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 10px 12px; border-bottom: 1px solid var(--linha); }
  .orc-tabela tr.item-linha td { display: block; padding: 0; border: 0; text-align: left; }
  .orc-tabela tr.item-linha td:nth-child(1) { order: 1; font-size: 12px; color: var(--texto2); }
  .orc-tabela tr.item-linha td:nth-child(2) { order: 3; grid-column: 1 / -1; }
  .orc-tabela tr.item-linha td:nth-child(3) { order: 4; font-size: 12px; color: var(--texto2); }
  .orc-tabela tr.item-linha td:nth-child(4) { order: 5; }
  .orc-tabela tr.item-linha td:nth-child(5) { display: none; }
  .orc-tabela tr.item-linha td:nth-child(6) { order: 6; font-size: 12px; color: var(--texto2); }
  .orc-tabela tr.item-linha td:nth-child(7) { order: 2; text-align: right; }
  .orc-tabela tr.item-linha td:nth-child(8) { order: 7; text-align: right; }
  .orc-tabela tr.etapa-linha, .orc-tabela tr.vazio-linha, .orc-tabela tr.editar-linha { display: block; }
  .orc-tabela tr.etapa-linha td, .orc-tabela tr.vazio-linha td, .orc-tabela tr.editar-linha td { display: block; }
  .orc-tabela tr.etapa-linha { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; background: #F7F8FA; }
  .orc-tabela tr.etapa-linha td { border: 0; padding: 10px 12px; }
  .orc-tabela tr.etapa-linha td:empty { display: none; }
}

/* ---------- Assistente IA (Fase 6) ---------- */
.etiqueta.ia { background: var(--laranja-claro); color: var(--acao); }
.ia-conversa { display: flex; flex-direction: column; gap: 8px; max-height: 260px; overflow-y: auto; padding: 4px 2px; }
.bolha { padding: 10px 12px; border-radius: 12px; font-size: 14px; line-height: 1.45; white-space: pre-wrap; max-width: 92%; }
.bolha.eu { align-self: flex-end; background: var(--marinho); color: #fff; border-bottom-right-radius: 4px; }
.bolha.ia { align-self: flex-start; background: var(--fundo); border-bottom-left-radius: 4px; }
.ia-sugestoes { display: flex; flex-direction: column; gap: 8px; }
.sug { border: 1px solid var(--borda); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
.sug.cot { background: #FFFBEF; border-color: var(--amarelo-borda); }
.sug-txt { font-size: 13.5px; display: flex; flex-direction: column; gap: 2px; }
.sug-txt small { color: var(--texto2); }
.sug-txt .just { font-style: italic; }
.sug-acoes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sug-qtd { display: flex; align-items: center; gap: 4px; font-size: 13px; color: var(--texto2); }
.sug-qtd input { font: inherit; width: 80px; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 6px 8px; text-align: right; color: var(--marinho); }
.mini-botao { min-height: 34px; padding: 6px 12px; font-size: 13.5px; }
.ia-perguntas { display: flex; flex-direction: column; gap: 4px; background: var(--laranja-claro); border-radius: 10px; padding: 10px 12px; font-size: 14px; }
.ia-perguntas small { color: var(--texto2); }
.ia-form { display: flex; flex-direction: column; gap: 8px; }
.ia-form textarea { font: inherit; font-size: 14px; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 10px 12px; resize: vertical; min-height: 70px; }
.aviso-ia { background: var(--amarelo); color: var(--amarelo-texto); }

/* ---------- Cronograma, histograma e Curva ABC (Fase 7) ---------- */
#orc-plan { display: flex; flex-direction: column; gap: 16px; }
#orc-plan.oculto { display: none; }
.plan { padding: 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; overflow: hidden; }
.plan h2, .plan-extra h2 { font-size: 18px; }
.plan-extra { padding: 18px; display: flex; flex-direction: column; gap: 12px; min-width: 0; overflow: hidden; margin-bottom: 16px; }
.plan-carregando, .plan-vazio { padding: 28px; display: flex; align-items: center; gap: 10px; color: var(--texto2); }
.plan-cab { display: flex; flex-wrap: wrap; gap: 14px 28px; align-items: flex-end; }
.plan-cab.salvando { opacity: .6; pointer-events: none; }
.plan-num { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--texto2); }
.plan-num b { font-size: 18px; color: var(--marinho); }
.plan-num small { font-size: 12px; }
.campo-curto input { max-width: 190px; }
.campo-mini input { width: 80px; }
.dica-plan { margin: 0; font-size: 13.5px; color: var(--texto2); line-height: 1.5; }
.legenda { display: flex; flex-wrap: wrap; gap: 6px 18px; font-size: 13px; color: var(--texto2); }
.legenda span { display: inline-flex; align-items: center; gap: 6px; }
.leg { display: inline-block; width: 22px; height: 10px; border-radius: 4px; }
.leg.critica { background: var(--laranja); }
.leg.folga { background: #5B6B8C; }
.etiqueta.critica { background: var(--laranja-claro); color: var(--acao); margin-left: 0; }
.gantt th, .gantt td { vertical-align: middle; }
.gantt-nome { min-width: 190px; max-width: 260px; }
.gantt-nome small { display: block; color: var(--texto2); font-size: 12px; margin-top: 2px; font-weight: 400; }
.gantt input.cr-dias { font: inherit; font-size: 14px; width: 62px; text-align: right; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 6px 8px; }
.gantt select.cr-dep { font: inherit; font-size: 13px; max-width: 170px; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 6px; background: var(--branco); }
.gantt-tempo-th, .gantt-tempo { padding-left: 4px !important; padding-right: 12px !important; }
.gantt-semanas { display: flex; }
.gantt-semanas span { flex: none; font-size: 12px; font-weight: 700; color: var(--marinho); border-left: 1px solid var(--borda); padding-left: 4px; overflow: hidden; white-space: nowrap; }
.gantt-semanas small, .fisfin th small { display: block; font-weight: 400; color: var(--texto2); font-size: 11px; }
.gantt-faixa { position: relative; height: 30px; background-image: linear-gradient(to right, var(--borda) 1px, transparent 1px); }
.gantt-barra { position: absolute; top: 6px; height: 18px; border-radius: 4px; background: #5B6B8C; min-width: 4px; touch-action: none; }
.gantt-barra.critica { background: var(--laranja); }
.gantt-barra.movel { cursor: grab; }
.gantt-barra.arrastando { cursor: grabbing; box-shadow: 0 0 0 2px var(--branco), 0 0 0 4px var(--marinho); z-index: 2; }
.gantt-barra .puxador { position: absolute; right: -4px; top: -3px; width: 12px; height: 24px; cursor: ew-resize; }
.gantt-barra .puxador::after { content: ""; position: absolute; left: 4px; top: 6px; width: 3px; height: 12px; border-radius: 2px; background: rgba(255,255,255,.85); }
[data-tip]:not(.gantt-barra) { position: relative; }
[data-tip]:hover::before { content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 0; background: var(--marinho); color: #fff; font-size: 12px; font-weight: 600; padding: 6px 8px; border-radius: 6px; white-space: nowrap; z-index: 5; pointer-events: none; }
.fisfin th, .fisfin td { white-space: nowrap; font-size: 13px; }
.fisfin td:first-child, .fisfin th:first-child { white-space: normal; min-width: 160px; }
.fisfin tfoot th, .fisfin tfoot td { background: #F7F8FA; border-top: 1px solid var(--borda); }
.mini-barra { display: block; height: 4px; background: var(--linha); border-radius: 2px; margin-top: 4px; }
.mini-barra i { display: block; height: 100%; background: var(--marinho); border-radius: 2px; }
.histo { margin: 4px 0 0; }
.histo-area { display: flex; align-items: flex-end; gap: 2px; height: 214px; box-sizing: border-box; padding: 18px 0 24px; overflow-x: auto; overflow-y: hidden; background: linear-gradient(var(--borda-campo), var(--borda-campo)) no-repeat 0 calc(100% - 24px) / 100% 1px; }
.histo-col { flex: 1 0 22px; max-width: 64px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; position: relative; }
.histo-col i { display: block; background: var(--marinho); border-radius: 4px 4px 0 0; min-height: 0; }
.histo-col:hover i { background: var(--acao); }
.histo-col small { position: absolute; bottom: -20px; left: 0; right: 0; text-align: center; font-size: 11px; color: var(--texto2); }
.histo-val { text-align: center; font-size: 12px; font-weight: 700; color: var(--marinho); }
.histo figcaption { margin-top: 4px; font-size: 12.5px; color: var(--texto2); }
.abas-abc button { min-height: 40px; }
.abc-faixas { display: flex; align-items: flex-end; gap: 10px; flex-wrap: wrap; }
.abc-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.abc-card { display: flex; gap: 12px; align-items: center; border: 1px solid var(--borda); border-radius: 10px; padding: 12px; font-size: 13.5px; }
.abc-card small { color: var(--texto2); }
.abc-letra, .classe { display: inline-flex; align-items: center; justify-content: center; font-weight: 800; border-radius: 8px; }
.abc-letra { width: 40px; height: 40px; font-size: 20px; flex: none; }
.classe { width: 26px; height: 24px; font-size: 13px; }
.classe-A .abc-letra, .classe.classe-A { background: var(--laranja-claro); color: var(--acao); border: 1px solid var(--laranja-borda); }
.classe-B .abc-letra, .classe.classe-B { background: var(--amarelo); color: var(--amarelo-texto); border: 1px solid var(--amarelo-borda); }
.classe-C .abc-letra, .classe.classe-C { background: #E6E9EF; color: var(--texto2); border: 1px solid var(--borda); }
.abc td { font-size: 13.5px; }
.abc .obs { display: block; color: var(--texto2); font-size: 12px; }
@media (max-width: 640px) {
  .plan { padding: 14px 12px; }
  .plan-cab { gap: 12px 18px; }
  .plan-num b { font-size: 16px; }
  .gantt-nome { min-width: 150px; }
  .abas-abc { width: 100%; }
}
.gantt th:first-child, .gantt td.gantt-nome, .fisfin th:first-child, .fisfin td:first-child { position: sticky; left: 0; background: var(--branco); z-index: 3; box-shadow: 1px 0 0 var(--linha); }
.gantt thead th:first-child, .fisfin thead th:first-child, .fisfin tfoot th:first-child, .fisfin tfoot td:first-child { background: #F7F8FA; }
.so-celular { display: none; }
@media (max-width: 640px) {
  .so-celular { display: block; }
  .gantt-nome { min-width: 132px; max-width: 150px; }
  .fisfin td:first-child, .fisfin th:first-child { min-width: 120px; }
}

/* ---------- Documento do orçamento e logo (Fase 8) ---------- */
.doc-grade { display: grid; grid-template-columns: minmax(300px, 440px) 1fr; gap: 20px; align-items: start; }
.doc-opcoes { display: flex; flex-direction: column; gap: 14px; }
.doc-opcoes fieldset { border: 0; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.doc-opcoes legend { font-weight: 700; color: var(--marinho); margin-bottom: 8px; font-size: 15px; }
.doc-checks { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; }
.check { display: flex; align-items: center; gap: 8px; font-size: 14px; min-height: 32px; cursor: pointer; }
.check input { width: 18px; height: 18px; accent-color: var(--laranja); }
.doc-opcoes textarea { font: inherit; font-size: 14px; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 10px 12px; resize: vertical; }
.doc-botoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.doc-botoes .botao { min-height: 44px; padding: 8px 16px; }
.botao.zap { background: #1D7A46; border-color: #1D7A46; color: #fff; }
.botao.zap:hover { background: #17633A; }
.aviso-logo { background: var(--amarelo); color: var(--amarelo-texto); border-radius: 8px; padding: 10px 12px; }
.doc-previa { border: 1px solid var(--borda); border-radius: 10px; min-height: 420px; background: #F7F8FA; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.doc-previa iframe { width: 100%; height: 78vh; border: 0; background: #fff; }
.doc-previa .dica-baixa { padding: 24px; text-align: center; }
.logo-caixa { padding: 18px; margin-bottom: 16px; }
.logo-linha { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.logo-previa { width: 220px; height: 90px; border: 1px dashed var(--borda-campo); border-radius: 10px; display: flex; align-items: center; justify-content: center; background: repeating-conic-gradient(#F3F4F6 0% 25%, #fff 0% 50%) 50% / 16px 16px; flex: none; }
.logo-previa img { max-width: 200px; max-height: 76px; object-fit: contain; }
.logo-previa span { color: var(--texto2); font-size: 13px; }
.logo-txt { flex: 1 1 260px; display: flex; flex-direction: column; gap: 6px; }
.logo-txt h2 { font-size: 17px; }
.logo-txt p { margin: 0; font-size: 13.5px; color: var(--texto2); }
.logo-botoes { display: flex; gap: 12px; align-items: center; }
.logo-botoes label.botao { cursor: pointer; }
@media (max-width: 900px) {
  .doc-grade { grid-template-columns: 1fr; }
  .so-computador { display: none !important; }
}
@media (max-width: 640px) {
  .doc-checks { grid-template-columns: 1fr; }
  .doc-botoes .botao { flex: 1 1 45%; }
}

/* ---------- Fluxo de caixa e lançamentos (Fase 9) ---------- */
.inicio.caixa, .inicio.lanc { max-width: 1240px; }
.cx-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.cx-cab h1 { font-size: 30px; }
.cx-cab p { margin: 4px 0 0; color: var(--texto2); }
.cx-filtros { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cx-filtros select { font: inherit; font-weight: 600; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 0 12px; min-height: 44px; background: var(--branco); color: var(--marinho); }
.cx-periodo { display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--borda-campo); border-radius: 10px; background: var(--branco); padding: 0 4px; min-height: 44px; font-weight: 600; }
.cx-periodo span { padding: 0 6px; white-space: nowrap; }
.cx-periodo .icone { font-size: 20px; }
.aviso-pend { background: var(--amarelo); border: 1px solid var(--amarelo-borda); color: var(--amarelo-texto); border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; font-size: 14px; }
.cx-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.cx-kpi { background: var(--branco); border: 1px solid var(--borda); border-radius: 14px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cx-kpi span { font-size: 13px; color: var(--texto2); }
.cx-kpi b { font-size: 24px; color: var(--marinho); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-kpi.escuro { background: var(--marinho); border-color: var(--marinho); }
.cx-kpi.escuro span, .cx-kpi.escuro b { color: #fff; }
.cx-kpi.escuro .link-botao { color: #C9D2E3; font-size: 12px; padding: 0; text-align: left; }
.cx-kpi .atraso { color: var(--vermelho); font-size: 12px; font-weight: 600; }
.cx-saldo { padding: 18px; margin-bottom: 16px; display: flex; flex-direction: column; gap: 12px; }
.cx-saldo p { margin: 0; font-size: 14px; color: var(--texto2); }
.cx-grafico { padding: 20px 22px; margin-bottom: 16px; }
.cx-grafico h2 { font-size: 18px; }
.cx-legenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--texto2); }
.cx-legenda span { display: inline-flex; align-items: center; gap: 6px; }
.leg.real { background: var(--marinho); }
.leg.prev { background: #fff; border: 2px solid var(--marinho); box-sizing: border-box; }
.leg.said { background: #9AA6BF; }
.cx-area { display: flex; gap: 10px; height: 250px; align-items: stretch; margin-top: 14px; overflow-x: auto; border-bottom: 1px solid var(--borda-campo); padding-top: 20px; }
.cx-mes { flex: 1 0 96px; display: flex; flex-direction: column; }
.cx-barras { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 4px; }
.cx-barra { width: 30%; max-width: 46px; border-radius: 4px 4px 0 0; position: relative; }
.cx-barra span { position: absolute; bottom: calc(100% + 3px); left: 50%; transform: translateX(-50%); font-size: 11.5px; font-weight: 700; color: var(--marinho); white-space: nowrap; }
.cx-barra.real { background: var(--marinho); }
.cx-barra.prev { background: #fff; border: 2px solid var(--marinho); border-bottom: 0; box-sizing: border-box; }
.cx-barra.said { background: #9AA6BF; }
.cx-barra.said span { color: var(--texto2); font-weight: 600; }
.cx-mes small { text-align: center; font-size: 13px; color: var(--texto2); padding: 8px 0 4px; }
.cx-mes.atual small { color: var(--marinho); font-weight: 700; }
.cx-tabela { margin-top: 10px; font-size: 13.5px; }
.cx-tabela summary { cursor: pointer; color: var(--texto2); }
.cx-baixo { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.cx-prev, .cx-cats { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.cx-prev h2, .cx-cats h2 { font-size: 18px; }
.cx-tab td small { display: block; color: var(--texto2); font-size: 12px; }
.cx-linha { cursor: pointer; }
.cx-linha:hover td, .cx-linha.aberta td { background: var(--laranja-claro); }
.cx-parc-linha > td { background: #FAFBFC; padding: 12px !important; }
.cx-cat > div { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 4px; }
.cx-cat i { display: block; height: 8px; background: var(--linha); border-radius: 4px; }
.cx-cat em { display: block; height: 100%; background: var(--marinho); border-radius: 4px; }
.parc { display: flex; flex-direction: column; gap: 10px; }
.parc-cab { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; font-size: 13.5px; }
.parc-cab .falta { color: var(--vermelho); }
.parc-cab .sobra { color: var(--amarelo-texto); }
.parc-lista { display: flex; flex-direction: column; gap: 6px; }
.parc-item { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; background: var(--branco); border: 1px solid var(--borda); border-left: 4px solid #9AA6BF; border-radius: 8px; padding: 8px 10px; }
.parc-item.faturada { border-left-color: #1E4C9A; }
.parc-item.recebida { border-left-color: var(--verde); }
.parc-item.cancelada { opacity: .6; }
.parc-item label, .parc-gerar label { display: flex; flex-direction: column; font-size: 11.5px; color: var(--texto2); gap: 2px; }
.parc-item input, .parc-item select, .parc-gerar input { font: inherit; font-size: 13.5px; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 6px 8px; min-width: 0; }
.parc-item > input[name=descricao] { width: 140px; align-self: flex-end; }
.parc-item input[name=valor] { width: 110px; }
.parc-item input[name=nota_numero] { width: 90px; }
.parc-item .so-faturada, .parc-item .so-recebida { display: none; }
.parc-item.mostra-faturada .so-faturada, .parc-item.mostra-recebida .so-recebida { display: flex; }
.parc-acoes { display: flex; gap: 6px; align-items: center; margin-left: auto; }
.parc-gerar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; border-top: 1px dashed var(--borda-campo); padding-top: 10px; }
.parc-gerar input { width: 110px; }
.parc-gerar small { flex-basis: 100%; color: var(--texto2); }
/* lançamentos */
.lanc-novo { padding: 20px 22px; margin-bottom: 16px; display: flex; flex-direction: column; gap: 14px; }
.abas-tipo button { min-height: 42px; border-radius: 999px; }
.abas-tipo button[aria-selected="true"] { background: var(--marinho); color: #fff; border: 2px solid var(--marinho); }
.lanc-caixa { border: 2px dashed var(--borda-campo); border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 8px; }
.lanc-caixa.arrastando { border-color: var(--laranja); background: var(--laranja-claro); }
.lanc-caixa > label { font-weight: 700; color: var(--marinho); }
.lanc-linha { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.lanc-linha input { flex: 1 1 320px; font: inherit; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 12px 14px; min-height: 46px; }
.lanc-linha .botao { min-height: 46px; }
.lanc-linha label.botao { cursor: pointer; }
.foto-cel { display: none !important; }
.lanc-lendo { display: flex; align-items: center; gap: 10px; color: var(--marinho); font-weight: 600; }
.lanc-corpo { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.lanc-esq { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.lanc-dir { display: flex; flex-direction: column; gap: 16px; }
.lanc-fila, .lanc-conf, .lanc-mes, .lanc-regras { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.lanc-fila h2, .lanc-conf h2, .lanc-mes h2, .lanc-regras h2 { font-size: 18px; }
.botao.verde { background: var(--verde); border-color: var(--verde); color: #fff; }
.botao.verde:hover { background: var(--verde-escuro); }
.botao.perigo { background: var(--branco); color: var(--vermelho); border: 1px solid #E3B4AD; }
.lanc-cartao { border: 2px solid var(--laranja-borda); background: #FFFCFA; border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.lanc-topo { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.lanc-topo small { display: block; color: var(--texto2); font-size: 12.5px; margin-top: 2px; }
.lanc-topo strong { font-size: 22px; color: var(--marinho); white-space: nowrap; }
.lanc-campos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lanc-campos .campo { font-size: 13px; }
.lanc-campos input, .lanc-campos select { min-height: 42px; }
.lanc-pergunta { background: var(--laranja-claro); color: var(--acao); border-radius: 8px; padding: 8px 12px; font-weight: 600; font-size: 14px; }
.lanc-itens { background: var(--fundo); border-radius: 8px; padding: 10px 12px; font-size: 13px; color: var(--texto2); }
.lanc-acoes { display: flex; gap: 10px; flex-wrap: wrap; }
.lanc-linha-item { font: inherit; text-align: left; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) minmax(0, 1.4fr) 60px 110px; gap: 10px; align-items: center; background: none; border: 0; border-bottom: 1px solid var(--linha); padding: 11px 8px; cursor: pointer; font-size: 14px; color: var(--texto); }
.lanc-linha-item:hover { background: var(--fundo); }
.lanc-linha-item .n { font-weight: 700; color: var(--marinho); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lanc-linha-item .falta { color: var(--acao); font-weight: 700; }
.lanc-linha-item b { text-align: right; }
.conf { font-size: 11.5px; font-weight: 700; padding: 2px 7px; border-radius: 999px; display: inline-block; }
.conf.verde { background: var(--verde-claro); color: var(--verde-escuro); }
.conf.amarelo { background: var(--amarelo); color: var(--amarelo-texto); }
.conf.vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.lanc-vazio { padding: 16px 0; }
.lanc-mes > div { display: flex; justify-content: space-between; font-size: 14px; }
.lanc-mes span { color: var(--texto2); }
.laranja-txt { color: var(--acao); }
td.entrada { color: var(--verde); }
.regra { background: var(--fundo); border-radius: 8px; padding: 9px 12px; font-size: 13.5px; }
.editor-regras { display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--linha); padding-top: 10px; }
.editor-regras h3 { font-size: 14px; margin: 6px 0 0; }
.regra-ed, .cat-ed { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 13px; }
.regra-ed span { flex-basis: 100%; font-weight: 600; }
.regra-ed select, .cat-ed input, .cat-nova input, .cat-nova select { font: inherit; font-size: 13px; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 5px 6px; min-width: 0; flex: 1 1 120px; }
.cat-ed small { color: var(--texto2); }
.cat-ed.inativa input { color: #9AA3B2; text-decoration: line-through; }
.cat-nova { display: flex; flex-wrap: wrap; gap: 6px; }
@media (max-width: 1100px) {
  .cx-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cx-baixo, .lanc-corpo { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .cx-cab h1 { font-size: 24px; }
  .cx-kpis { grid-template-columns: 1fr 1fr; }
  .cx-kpi.escuro { grid-column: 1 / -1; }
  .cx-kpi b { font-size: 19px; }
  .cx-filtros, .cx-filtros > * { width: 100%; }
  .cx-periodo { justify-content: space-between; }
  .cx-mes { flex: 1 0 74px; }
  .lanc-campos { grid-template-columns: 1fr 1fr; }
  .lanc-desc { grid-column: 1 / -1; }
  .foto-cel { display: inline-flex !important; flex: 1 1 100%; justify-content: center; background: var(--marinho) !important; color: #fff !important; min-height: 56px !important; }
  .lanc-linha .anexar, .lanc-linha button[type=submit] { flex: 1 1 40%; }
  .lanc-linha-item { grid-template-columns: minmax(0, 1fr) auto auto; }
  .lanc-linha-item > span:not(.n):not(.conf) { display: none; }
  .lanc-topo strong { font-size: 19px; }
}
.cx-barra.zero { visibility: hidden; }

/* ---------- Menu lateral e Painel (conforme a prévia aprovada) ---------- */
.app { display: flex; min-height: 100vh; }
.lateral { width: 240px; flex: none; background: var(--marinho); color: #fff; padding: 28px 20px; display: flex; flex-direction: column; gap: 28px; position: sticky; top: 0; height: 100vh; overflow-y: auto; box-sizing: border-box; }
.lat-marca { display: flex; align-items: center; gap: 10px; }
.lat-marca b { font-size: 20px; font-weight: 800; display: block; }
.lat-marca small { font-size: 12px; color: #C9D1DD; display: block; }
.lat-menu { display: flex; flex-direction: column; gap: 4px; }
.lat-item { font: inherit; font-size: 15px; text-align: left; background: none; border: 0; color: #C9D1DD; padding: 12px 14px; border-radius: 8px; cursor: pointer; }
.lat-item:hover { background: #1C2B4E; color: #fff; }
.lat-item[aria-current="page"] { background: #22315A; color: #fff; font-weight: 600; }
.lat-item:focus-visible, .cel-aba:focus-visible { outline: 3px solid var(--laranja); outline-offset: 2px; }
.lat-rodape { margin-top: auto; display: flex; flex-direction: column; gap: 14px; }
.lat-cota { background: #22315A; border-radius: 12px; padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.lat-cota span, .lat-cota small { font-size: 12.5px; color: #C9D1DD; }
.lat-cota b { font-size: 18px; }
.lat-cota i { display: block; height: 6px; background: #3A4A73; border-radius: 3px; }
.lat-cota em { display: block; height: 100%; background: #C9D1DD; border-radius: 3px; }
.lat-quem { display: flex; flex-direction: column; gap: 2px; font-size: 13px; padding: 0 4px; }
.lat-quem small { color: #C9D1DD; }
.lat-quem .link-botao { color: #fff; padding: 4px 0 0; align-self: flex-start; }
.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.principal .inicio { padding: 32px 40px; }
.cel-topo, .cel-abas, .cel-heroi, .cel-so, .cel-botoes { display: none; }
.cel-mais { display: none; }
/* Painel */
.pn-cab { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 16px; }
.pn-cab h1 { font-size: 30px; }
.pn-cab p { margin: 4px 0 0; color: var(--texto2); }
.pn-acoes { display: flex; gap: 12px; align-items: center; }
.pn-acoes .selo { align-self: center; }
.pn-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cx-kpi small { font-size: 12.5px; color: var(--texto2); }
.cx-kpi.escuro small { color: #C9D1DD; }
.verde-txt { color: var(--verde) !important; font-weight: 600; }
.pn-grade { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 20px; align-items: start; margin-top: 20px; }
.pn-dir { display: flex; flex-direction: column; gap: 20px; }
.pn-recentes, .pn-caixa, .pn-pend { padding: 20px 24px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.pn-recentes h2, .pn-caixa h2, .pn-pend h2 { font-size: 19px; }
.pn-tab tr[data-orc], .pn-tab tr[data-crono] { cursor: pointer; }
.pn-tab tr[data-orc]:hover td, .pn-tab tr[data-crono]:hover td { background: var(--laranja-claro); }
.pn-graf { display: flex; gap: 8px; height: 150px; border-bottom: 1px solid var(--borda); }
.pn-mes { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.pn-barras { flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 3px; }
.pn-barras i { width: 38%; max-width: 40px; border-radius: 3px 3px 0 0; display: block; }
.pn-barras .rec { background: var(--marinho); }
.pn-barras .prev { background: #C9D1DD; }
.pn-mes small { text-align: center; font-size: 12px; color: var(--texto2); padding-top: 6px; }
.pn-mes.atual small { color: var(--marinho); font-weight: 700; }
.leg.prev2 { background: #C9D1DD; }
.pn-faixa, .pn-linha { font: inherit; font-size: 14.5px; width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 10px; border-radius: 10px; padding: 12px 14px; text-align: left; color: var(--marinho); box-sizing: border-box; }
.pn-faixa { background: var(--laranja-claro); border: 1px solid var(--laranja-borda); cursor: pointer; }
.pn-faixa > b { color: var(--acao); }
.pn-faixa.ok { background: var(--fundo); border-color: var(--borda); }
.pn-linha { background: var(--branco); border: 1px solid var(--borda); }
button.pn-linha { cursor: pointer; }
.pn-rodape { display: flex; gap: 16px; align-items: center; color: var(--texto2); font-size: 13px; flex-wrap: wrap; }
@media (max-width: 1150px) {
  .pn-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pn-grade { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
  .lateral { display: none; }
  .cel-topo { display: flex; justify-content: space-between; align-items: center; gap: 10px; background: var(--marinho); color: #fff; padding: 12px 16px; }
  .cel-topo small { color: #C9D1DD; font-size: 12.5px; text-align: right; }
  .cel-topo .lat-marca b { font-size: 18px; }
  .principal:has(.painel) .cel-topo { display: none; }
  .cel-abas { display: grid; grid-template-columns: repeat(4, 1fr); position: fixed; bottom: 0; left: 0; right: 0; background: var(--branco); border-top: 1px solid var(--borda); z-index: 50; padding-bottom: env(safe-area-inset-bottom); }
  .cel-aba { font: inherit; background: none; border: 0; padding: 8px 0 10px; display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12.5px; color: var(--texto2); cursor: pointer; }
  .cel-aba[aria-current="page"] { color: var(--marinho); font-weight: 700; }
  .principal { padding-bottom: 72px; }
  .cel-mais:not(.oculto) { display: flex; position: fixed; inset: 0; background: rgba(20, 33, 61, .45); z-index: 60; align-items: flex-end; }
  .cel-mais-caixa { background: var(--branco); width: 100%; border-radius: 16px 16px 0 0; padding: 10px 16px 84px; display: flex; flex-direction: column; }
  .cel-mais-caixa button[data-ir], .cel-mais-caixa .sair { font: inherit; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--linha); padding: 15px 4px; font-size: 16px; font-weight: 600; color: var(--marinho); cursor: pointer; }
  .cel-mais-caixa .sair { color: var(--vermelho); }
  .cel-mais-caixa .link-botao { margin-top: 10px; align-self: center; }
  .principal .inicio { padding: 20px 16px; }
  .painel .pn-cab, .painel .pn-kpis, .painel .pn-grade { display: none; }
  .cel-heroi { display: block; background: var(--marinho); color: #fff; margin: -20px -16px 0; padding: 18px 18px 22px; }
  .cel-heroi > span { color: #C9D1DD; font-size: 13px; }
  .ch-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
  .ch-topo .lat-marca b { font-size: 18px; }
  .ch-saldo { display: block; font-size: 30px; margin: 2px 0 14px; }
  .ch-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .ch-cards div { background: #22315A; border-radius: 10px; padding: 10px 12px; }
  .ch-cards span { display: block; font-size: 12px; color: #C9D1DD; }
  .ch-cards b { font-size: 16px; }
  .cel-botoes { display: flex; gap: 10px; }
  .cel-botoes .botao { flex: 1; }
  .cel-so { display: flex; }
  .pn-cel-lista { flex-direction: column; gap: 10px; }
  .pn-cel-lista h2 { font-size: 15px; color: var(--texto2); }
  .pn-cel-orc { font: inherit; display: flex; justify-content: space-between; align-items: center; gap: 10px; background: var(--branco); border: 1px solid var(--borda); border-radius: 12px; padding: 14px; text-align: left; color: var(--marinho); cursor: pointer; }
  .pn-cel-orc small { display: block; font-size: 12.5px; font-weight: 700; margin-top: 2px; }
  .cor-laranja { color: var(--acao); } .cor-verde { color: var(--verde); } .cor-azul { color: #1E4C9A; } .cor-vermelho { color: var(--vermelho); } .cor-cinza { color: var(--texto2); }
  #painel-corpo { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
}
/* Entrada prevista como na prévia: só o número, na altura do valor */
.cx-barra.prev { background: none; border: 0; }
.cx-barra.prev span { color: var(--marinho); font-weight: 800; bottom: auto; top: -2px; transform: translate(-50%, -100%); }
.leg-prev b { font-weight: 800; color: var(--marinho); }
.pn-faixa.cel-so { display: none; }
.pn-linha > span:last-child, .pn-linha > b { white-space: nowrap; }
@media (max-width: 900px) { .pn-faixa.cel-so { display: flex; } }

/* ---------- 1.0: empresas representadas ---------- */
.emp-sel { font: inherit; text-align: left; width: 100%; background: #1C2B4E; border: 1px solid #33456F; border-radius: 10px; padding: 10px 12px; color: #fff; cursor: pointer; display: flex; flex-direction: column; gap: 2px; margin-top: -10px; }
.emp-sel:hover { border-color: var(--laranja); }
.emp-sel:focus-visible { outline: 3px solid var(--laranja); outline-offset: 2px; }
.emp-sel small { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: #C9D1DD; }
.emp-sel b { display: flex; justify-content: space-between; gap: 8px; font-size: 15px; }
.emp-sel b span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.emp-sel i { font-style: normal; flex: none; }
.emp-menu { position: fixed; z-index: 80; width: min(330px, calc(100vw - 24px)); background: #fff; color: var(--marinho); border: 1px solid var(--borda); border-radius: 12px; box-shadow: 0 18px 40px rgba(20, 33, 61, .2); padding: 8px; display: flex; flex-direction: column; gap: 2px; max-height: 80vh; overflow-y: auto; }
.emp-menu h4 { margin: 6px 10px 6px; font-size: 12px; color: var(--texto2); text-transform: uppercase; letter-spacing: .05em; }
.emp-op { font: inherit; text-align: left; display: flex; gap: 12px; align-items: center; padding: 10px; border-radius: 8px; border: 0; background: none; cursor: pointer; color: inherit; }
.emp-op:hover { background: var(--fundo); }
.emp-op.atual { background: var(--laranja-claro); outline: 2px solid var(--laranja); }
.emp-op i { width: 36px; height: 36px; border-radius: 8px; display: grid; place-items: center; font-style: normal; font-weight: 800; color: #fff; flex: none; font-size: 14px; }
.emp-op span { display: flex; flex-direction: column; min-width: 0; }
.emp-op small { color: var(--texto2); font-size: 12.5px; }
.emp-menu hr { border: 0; border-top: 1px solid var(--linha); margin: 6px 0; }
.emp-link { font: inherit; font-weight: 600; text-align: left; background: none; border: 0; padding: 9px 10px; border-radius: 8px; cursor: pointer; color: var(--marinho); }
.emp-link:hover { background: var(--fundo); color: var(--acao); }
.cel-emp { font: inherit; font-size: 13px; color: #fff; background: #22315A; border: 1px solid #33456F; border-radius: 999px; padding: 5px 12px; max-width: 55vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- 1.0: material × mão de obra ---------- */
.orc-resumo-mo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid var(--borda); }
.orc-resumo-mo div { padding: 12px 16px; display: flex; flex-direction: column; gap: 2px; border-right: 1px solid var(--borda); min-width: 0; }
.orc-resumo-mo div:last-child { border-right: 0; }
.orc-resumo-mo span { font-size: 13px; color: var(--texto2); }
.orc-resumo-mo b { font-size: 20px; font-variant-numeric: tabular-nums; }
.orc-resumo-mo small { font-size: 12px; color: var(--texto2); }
.orc-resumo-mo .venda { background: var(--marinho); color: #fff; }
.orc-resumo-mo .venda span, .orc-resumo-mo .venda small { color: #C9D1DD; }
.tipo-sel { display: inline-block; margin-left: 6px; font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 999px; white-space: nowrap; background: var(--fundo); color: var(--texto2); }
.tipo-sel.mat { background: #E7EEFB; color: #1F4A9B; }
.tipo-sel.mo { background: var(--verde-claro); color: var(--verde-escuro); }
.tipo-sel.am { background: var(--laranja-claro); color: var(--acao); }
.orc-tabela td:first-child { min-width: 200px; }
.cod-item { display: inline-block; font-size: 12px; font-weight: 700; color: var(--texto2); margin-right: 6px; }
.check-destaque { margin-top: 8px; font-weight: 600; }
@media (max-width: 899px) {
  .orc-resumo-mo { grid-template-columns: 1fr 1fr; }
  .orc-resumo-mo .venda { grid-column: 1 / -1; }
  .orc-resumo-mo b { font-size: 17px; }
}

/* ---------- 1.0: base de preço e preços praticados ---------- */
.param-base { min-width: 230px; }
.base-botoes { display: flex; gap: 4px; flex-wrap: wrap; }
.base-botoes button { font: inherit; font-size: 13px; font-weight: 600; padding: 5px 10px; border: 1px solid var(--borda-campo); background: #fff; border-radius: 8px; cursor: pointer; color: var(--marinho); }
.base-botoes button[aria-pressed="true"] { border: 2px solid var(--laranja); background: var(--laranja-claro); color: var(--acao); padding: 4px 9px; }
.base-botoes button:disabled { cursor: default; opacity: .7; }
.param-base select { margin-top: 4px; font-size: 13px; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 4px 6px; background: #fff; max-width: 260px; }
.etiqueta.cli { background: var(--laranja-claro); color: var(--acao); }
.base-novo { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.base-novo legend { font-weight: 700; margin-bottom: 8px; }
.base-opcoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.base-opcoes select { margin-top: 6px; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 6px 8px; background: #fff; max-width: 100%; }
.opcao:has(input:disabled) { opacity: .6; cursor: default; }
.precos { display: flex; flex-direction: column; gap: 18px; }
.pr-grade { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 18px; align-items: start; }
.pr-clientes { display: flex; flex-direction: column; gap: 10px; }
.pr-clientes h2 { font-size: 16px; }
.pr-lista { display: flex; flex-direction: column; gap: 6px; }
.pr-cli { font: inherit; text-align: left; display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 12px 14px; border: 1px solid var(--borda); border-radius: 10px; background: #fff; cursor: pointer; color: inherit; }
.pr-cli:hover { border-color: var(--laranja-borda); }
.pr-cli.on { border: 2px solid var(--laranja); background: var(--laranja-claro); padding: 11px 13px; }
.pr-cli span:first-child { display: flex; flex-direction: column; min-width: 0; }
.pr-cli small { color: var(--texto2); font-size: 12.5px; }
.pr-cli .selo { flex: none; }
.pr-novo { display: flex; gap: 6px; }
.pr-novo input { flex: 1; min-width: 0; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 8px 10px; }
.pr-corpo { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.pr-vazio { padding: 24px; display: flex; flex-direction: column; gap: 6px; }
.pr-envio { border: 2px dashed var(--borda-campo); border-radius: 12px; padding: 22px; text-align: center; background: #fff; display: flex; flex-direction: column; gap: 4px; cursor: pointer; color: var(--texto2); }
.pr-envio b { color: var(--marinho); font-size: 16px; }
.pr-envio small { font-size: 12.5px; }
.pr-envio input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.pr-envio:hover, .pr-envio.sobre, .pr-envio:focus-within { border-color: var(--laranja); background: var(--laranja-claro); }
.pr-envio.off { cursor: default; opacity: .7; }
.pr-ia { background: var(--marinho); color: #fff; border-radius: 12px; padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.pr-ia small { color: #C9D1DD; text-transform: uppercase; letter-spacing: .06em; font-size: 11.5px; font-weight: 700; }
.pr-ia p { color: #EEF1F7; line-height: 1.5; }
.pr-ia span { color: #C9D1DD; font-size: 12.5px; }
.pr-tit { padding: 14px 16px 8px; gap: 10px; flex-wrap: wrap; }
.pr-tit h2 { font-size: 16px; }
.pr-tit input { border: 1px solid var(--borda-campo); border-radius: 8px; padding: 6px 10px; min-width: 0; }
.pr-tab td:first-child { min-width: 180px; }
.pr-tab th, .pr-tab td { padding-left: 10px; padding-right: 10px; }
.pr-ed input { width: 100px; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 4px 6px; text-align: right; }
.pr-imps { padding: 14px 16px; display: flex; flex-direction: column; gap: 8px; }
.pr-imps h2 { font-size: 16px; }
.pr-imps ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pr-imps li { display: flex; justify-content: space-between; gap: 10px; align-items: center; border-top: 1px solid var(--linha); padding-top: 8px; }
.pr-imps li span { display: flex; flex-direction: column; min-width: 0; }
.pr-imps small { color: var(--texto2); font-size: 12.5px; }
.vermelho-txt { color: var(--vermelho); }
.ok-nota { background: var(--verde-claro); border: 1px solid var(--verde); color: var(--verde-escuro); }
@media (max-width: 899px) {
  .pr-grade { grid-template-columns: 1fr; }
  .base-opcoes { grid-template-columns: 1fr; }
}
.abas-painel { flex-wrap: wrap; }
.abas-painel button { flex: 1 1 auto; min-width: 0; padding: 0 6px; font-size: 13px; line-height: 1.2; }

/* ---------- 1.0: cronograma por serviço ---------- */
.cr-botoes { display: flex; gap: 8px; flex-wrap: wrap; margin-left: auto; }
.cr-ajuda { background: var(--fundo); border-radius: 8px; padding: 8px 12px; }
.cr-tab .cr-etapa td { background: #F7F8FA; border-bottom: 1px solid var(--borda); }
.cr-tab .cr-etapa small { display: block; color: var(--texto2); font-size: 12px; }
.cr-tab .cr-n { color: var(--texto2); font-variant-numeric: tabular-nums; width: 36px; }
.cr-tab .gantt-nome { min-width: 220px; max-width: 300px; }
.cr-nome { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 13.5px; }
.cr-pred { width: 96px; font: inherit; font-size: 13.5px; border: 1px solid var(--borda-campo); border-radius: 6px; padding: 5px 7px; }
.cr-pred:focus { border-color: var(--laranja); outline: none; box-shadow: 0 0 0 3px var(--laranja-claro); }
.gantt-barra.resumo { height: 8px; top: 50%; transform: translateY(-50%); background: var(--marinho); border-radius: 2px; opacity: .85; cursor: default; }
.cr-tab td { white-space: nowrap; }
.cr-tab td.gantt-nome { white-space: normal; }
.mais-emp { background: var(--laranja-claro) !important; color: var(--acao) !important; }

/* ---------- 1.0: anexo na IA do orçamento ---------- */
.ia-anexo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ia-clipe { position: relative; cursor: pointer; font-weight: 600; }
.ia-clipe input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.ia-clipe:focus-within { outline: 2px solid var(--laranja); outline-offset: 2px; }
.ia-clipe.off { opacity: .5; cursor: default; }
.ia-chip { display: inline-flex; align-items: center; gap: 4px; background: var(--laranja-claro); color: var(--acao); border: 1px solid var(--laranja-borda); border-radius: 999px; padding: 2px 4px 2px 10px; font-size: 13px; font-weight: 600; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ---------- Versão 1.1 ---------- */
/* Itens: procurar e arrastar */
.orc-busca { display: flex; gap: 10px; align-items: center; padding: 10px 14px; border-bottom: 1px solid var(--linha); }
.orc-busca input { flex: 1; min-width: 0; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 9px 12px; background: #fff; }
.orc-busca small { white-space: nowrap; }
.alca { cursor: grab; color: var(--texto2); font-size: 17px; margin-right: 6px; user-select: none; display: inline-block; padding: 0 2px; }
.alca:hover { color: var(--laranja); }
.orc-tabela.buscando .alca { opacity: .3; cursor: not-allowed; }
.orc-tabela tr.arrastando { opacity: .45; }
.orc-tabela tr.solta-antes td { box-shadow: inset 0 3px 0 var(--laranja); }
.orc-tabela tr.solta-depois td { box-shadow: inset 0 -3px 0 var(--laranja); }
/* Orçamento novo: dados da proposta */
.prop-novo { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.prop-novo legend { font-weight: 700; margin-bottom: 8px; }
.prop-novo textarea, .doc-prop textarea { font: inherit; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 9px 12px; resize: vertical; }
.campo-largo { grid-column: span 2; }
input.auto { background: var(--verde-claro); border-color: #9FD3B4; }
/* Cenários de prazo */
.cen .titulo-linha { flex-wrap: wrap; gap: 10px; }
.cen-novo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.cen-novo input { border: 1px solid var(--borda-campo); border-radius: 8px; padding: 8px 10px; background: #fff; }
.cen-novo input[name=prazo] { width: 80px; text-align: right; }
.cen-novo input[name=nome] { width: 170px; }
.campo-linha { display: flex; gap: 6px; align-items: center; font-weight: 600; font-size: 14px; }
.cen-tab tr.aprovado td { background: var(--verde-claro); }
.cen-acoes { white-space: nowrap; display: flex; gap: 8px; align-items: center; }
.cen-tab small { color: var(--texto2); font-weight: 400; }
/* Mão de obra sem SINAPI */
.est .titulo-linha { flex-wrap: wrap; gap: 10px; }
.est-tab td { vertical-align: top; }
.est-tab .selo { font-size: 12px; padding: 3px 9px; margin-right: 6px; }
.est-linha { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
.est-linha select, .est-linha input { border: 1px solid var(--borda-campo); border-radius: 8px; padding: 7px 9px; background: #fff; }
.est-linha select { max-width: 320px; }
.est-linha input { width: 90px; text-align: right; }
/* Documento: modelos, cores, proposta, texto técnico */
.doc-modelos-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.doc-modelos-grade .opcao { padding: 12px; }
.doc-modelos-grade .opcao:has(input:checked) { padding: 11px; }
.doc-prop { background: #F7F8FA; border-radius: 10px; padding: 12px !important; }
.doc-prop legend small { font-weight: 600; color: var(--texto2); margin-left: 6px; }
.doc-prop .doc-prop-g { grid-template-columns: 1.6fr 1fr; gap: 10px; }
.doc-prop .campo-curto { max-width: 160px; }
.cores-opcoes { display: flex; flex-wrap: wrap; gap: 8px; }
.cor-op { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 6px 10px; background: #fff; font-size: 13px; font-weight: 600; cursor: pointer; }
.cor-op[aria-pressed=true], .cor-op.on { border: 2px solid var(--laranja); padding: 5px 9px; }
.cor-op i { width: 16px; height: 16px; border-radius: 4px; display: inline-block; }
.cor-op input[type=color] { width: 30px; height: 24px; border: 1px solid var(--borda-campo); border-radius: 4px; padding: 0; background: none; cursor: pointer; }
.doc-previa:has(.tec) { display: block; padding: 16px; background: #fff; min-height: 0; overflow: visible; }
.tec { display: flex; flex-direction: column; gap: 10px; }
.tec .titulo-linha { flex-wrap: wrap; gap: 8px; }
.tec .campo input { border: 1px solid var(--borda-campo); border-radius: 8px; padding: 8px 10px; }
.tec-sec { border: 1px solid var(--borda); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.tec-sec-cab { display: flex; gap: 6px; align-items: center; }
.tec-tit { flex: 1; font-weight: 700; border: 1px solid transparent; border-radius: 6px; padding: 4px 6px; }
.tec-tit:hover, .tec-tit:focus { border-color: var(--borda-campo); }
.tec-txt { font: inherit; font-size: 14px; line-height: 1.5; border: 1px solid var(--borda-campo); border-radius: 8px; padding: 8px 10px; resize: vertical; }
/* Configurações › Proposta comercial */
.prop-modelo { display: flex; flex-direction: column; gap: 14px; padding: 22px; }
.prop-modelo .titulo-linha { flex-wrap: wrap; gap: 10px; }
.prop-modelo textarea { font: inherit; border: 1px solid var(--borda-campo); border-radius: 10px; padding: 9px 12px; resize: vertical; }
.marc-lista { background: var(--amarelo); border: 1px solid var(--amarelo-borda); color: var(--amarelo-texto); border-radius: 10px; padding: 10px 14px; font-size: 13.5px; line-height: 2; }
.marc { font-family: ui-monospace, Consolas, monospace; font-size: 12px; background: #E7EEFB; color: #1F4A9B; padding: 1px 6px; border-radius: 6px; font-weight: 700; border: 0; }
button.marc { cursor: pointer; }
button.marc:hover:not(:disabled) { background: #D2E0F7; }
.pm-sub { font-size: 17px; margin-top: 4px; }
.pm-clausula { border: 1px solid var(--borda); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 6px; margin-bottom: 10px; background: #fff; }
.pm-cab { display: flex; gap: 6px; align-items: center; }
.pm-tit { flex: 1; font-weight: 800; border: 1px solid transparent; border-radius: 6px; padding: 5px 6px; }
.pm-tit:hover, .pm-tit:focus { border-color: var(--borda-campo); }
.pm-txt { font-size: 14px; line-height: 1.5; }
.pm-ver { font-size: 13px; color: var(--texto2); line-height: 1.6; background: #F7F8FA; border-radius: 8px; padding: 6px 10px; }
.assinatura-linha { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; font-size: 14px; }
@media (max-width: 760px) {
  .doc-modelos-grade { grid-template-columns: 1fr; }
  .campo-largo { grid-column: auto; }
  .alca { display: none; }
  .cen-novo input[name=nome] { width: 120px; }
}
