/* Licitações IA: design system 2026 (CNS Inteligência)
   Títulos em Manrope, interface em DM Sans. Os nomes antigos de variável (--primaria, --sutil...) continuam valendo. */
:root {
  --navy: #0b1930; --navy2: #112642; --azul: #2f62f6; --azul2: #486ff7; --ciano: #61d9df;
  --fundo: #f5f7fb; --cartao: #ffffff; --texto: #101e34; --sutil: #5e6c82; --linha: #e3e9f2; --linha2: #edf1f6;
  --primaria: #2f62f6; --primaria-escura: #2453d8; --primaria-suave: #eaf0ff;
  --verde: #0d7352; --verde-suave: #e6f8f0; --laranja: #9a4a08; --laranja-suave: #fff2e5;
  --vermelho: #b52f2f; --vermelho-suave: #fdecec; --roxo: #6a4fc6; --roxo-suave: #f1edfb;
  --menu: #0b1930; --menu-texto: #a8b9ce;
  --raio: 14px; --raio-p: 10px; --sombra: 0 10px 32px rgba(19, 42, 75, .05); --sombra-alta: 0 24px 60px rgba(11, 25, 48, .18);
  --titulo: Manrope, "DM Sans", system-ui, sans-serif; --corpo: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body { margin: 0; font: 14px/1.5 var(--corpo); background: var(--fundo); color: var(--texto); -webkit-font-smoothing: antialiased; }
a { color: var(--primaria); cursor: pointer; text-decoration: none; }
a:hover { color: var(--primaria-escura); }
h1, h2, h3, h4 { font-family: var(--titulo); letter-spacing: -.02em; color: var(--texto); }
h1 { font-size: 26px; font-weight: 800; margin: 0 0 4px; letter-spacing: -.035em; }
h2 { font-size: 17px; font-weight: 700; margin: 0 0 12px; }
h3 { font-size: 15px; font-weight: 700; margin: 16px 0 8px; }
.sutil { color: var(--sutil); } .erro { color: var(--vermelho); min-height: 1em; }
svg { flex-shrink: 0; vertical-align: middle; }
:focus-visible { outline: 3px solid #69b7ff; outline-offset: 2px; }

/* ---------- formulários ---------- */
input, select, textarea { font: inherit; color: inherit; background: #fff; border: 1px solid #d9e1ec; border-radius: var(--raio-p); padding: 10px 12px; width: 100%; transition: border-color .15s, box-shadow .15s; }
input:hover, select:hover, textarea:hover { border-color: #c3cfe0; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--azul2); box-shadow: 0 0 0 3px rgba(47, 98, 246, .15); }
input::placeholder, textarea::placeholder { color: #9aa7b8; }
input[type=checkbox], input[type=radio] { width: auto; accent-color: var(--azul); }
textarea { min-height: 80px; resize: vertical; }
label { display: block; font-weight: 600; font-size: 13px; margin: 12px 0 4px; color: #2a3b55; }
label input, label select, label textarea { margin-top: 5px; font-weight: 400; }
label.check { display: flex; gap: 9px; align-items: flex-start; font-weight: 400; } label.check input { width: auto; margin-top: 3px; }
select[multiple] { padding: 4px; min-height: 90px; }

/* ---------- botões ---------- */
button { font: inherit; font-weight: 600; border: 1px solid #d9e1ec; background: #fff; color: #1d2f4b; border-radius: var(--raio-p); padding: 9px 14px; cursor: pointer; transition: background .15s, border-color .15s, color .15s, box-shadow .15s, transform .15s; min-height: 38px; }
button:hover { border-color: var(--azul2); color: var(--primaria); }
button.primario { background: var(--azul); border-color: var(--azul); color: #fff; box-shadow: 0 8px 18px rgba(47, 98, 246, .18); }
button.primario:hover { background: var(--primaria-escura); border-color: var(--primaria-escura); color: #fff; }
button.secundario { background: var(--primaria-suave); border-color: transparent; color: #2453d8; }
button.perigo { color: var(--vermelho); } button.perigo:hover { border-color: var(--vermelho); background: var(--vermelho-suave); }
button.pequeno { padding: 5px 10px; font-size: 12px; min-height: 30px; border-radius: 8px; }
button.grande { padding: 14px 22px; font-size: 15px; border-radius: 12px; }
button:disabled { opacity: .5; cursor: default; }
.cartao { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; box-shadow: var(--sombra); }

/* ---------- marca ---------- */
.marca-simbolo { height: 30px; width: 30px; display: inline-flex; align-items: flex-end; gap: 3px; padding: 5px 4px; border-radius: 9px; background: var(--azul); transform: rotate(-4deg); }
.marca-simbolo i { display: block; width: 6px; background: #fff; border-radius: 4px 4px 1px 1px; }
.marca-simbolo i:nth-child(1) { height: 9px; opacity: .6 } .marca-simbolo i:nth-child(2) { height: 14px; opacity: .86 } .marca-simbolo i:nth-child(3) { height: 20px }
.marca-nome { font: 800 20px var(--titulo); letter-spacing: -.04em; white-space: nowrap; }
.marca-nome b { color: #6f94ff; margin-left: 2px; font-weight: 800; }
#publico .marca-nome b { color: #2f62f6; }
.marca { display: inline-flex; align-items: center; gap: 10px; color: #fff; }

/* =================================================================== área interna */
.app { display: grid; grid-template-columns: 252px minmax(0, 1fr); min-height: 100vh; }
.menu { background: linear-gradient(175deg, #0a1930, #101f39); color: var(--menu-texto); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; z-index: 30; }
.menu .marca { padding: 22px 20px 18px; }
.empresa-atual { display: flex; gap: 10px; align-items: center; border: 1px solid #2a3c58; background: #142844; border-radius: 12px; padding: 10px 12px; margin: 0 14px 14px; }
.empresa-atual > span { width: 32px; height: 32px; display: grid; place-items: center; color: #dbe5ff; background: #2a56c6; border-radius: 9px; font: 800 13px var(--titulo); flex-shrink: 0; }
.empresa-atual div { min-width: 0; }
.empresa-atual b, .empresa-atual small { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.empresa-atual b { font-size: 12px; color: #fff; } .empresa-atual small { font-size: 11px; color: #8da1bd; margin-top: 2px; }
.menu nav { display: flex; flex-direction: column; gap: 1px; flex: 1; overflow-y: auto; padding: 0 12px 12px; scrollbar-width: thin; scrollbar-color: #33445f transparent; }
.menu nav a { color: var(--menu-texto); padding: 9px 11px; border-radius: 10px; display: flex; align-items: center; gap: 11px; font-size: 13px; font-weight: 600; transition: background .15s, color .15s; }
.menu nav a svg { opacity: .85; }
.menu nav a span.rot { flex: 1; }
.menu nav a:hover { background: #1b3150; color: #fff; }
.menu nav a.ativo { background: var(--azul); color: #fff; box-shadow: 0 6px 16px rgba(32, 75, 195, .28); }
.menu nav a.ativo svg { opacity: 1; }
.menu .grupo { font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: #5f7596; margin: 16px 11px 6px; }
.menu .grupo:first-child { margin-top: 2px; }
.cont { background: #24467f; color: #dae8ff; border-radius: 8px; font-size: 11px; font-weight: 700; padding: 1px 7px; }
.menu nav a.ativo .cont { background: #fff; color: var(--azul); }
.cont:empty { display: none; }
.rodape-menu { font-size: 12px; padding: 14px 18px 18px; border-top: 1px solid rgba(255, 255, 255, .07); }
.rodape-menu #quem { color: #8da1bd; margin-bottom: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rodape-menu a { color: #c3d1e6; font-weight: 600; }
.rodape-menu a:hover { color: #fff; }

.app-main { min-width: 0; display: flex; flex-direction: column; }
.barra-topo { height: 66px; background: rgba(255, 255, 255, .92); backdrop-filter: blur(8px); border-bottom: 1px solid var(--linha); display: flex; align-items: center; gap: 14px; padding: 0 30px; position: sticky; top: 0; z-index: 15; }
.barra-topo .trilha { color: #5e6c82; font-size: 13px; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.barra-topo .trilha i { font-style: normal; color: #8a97ab; margin: 0 8px; }
.barra-topo .trilha b { color: #20314b; }
.bolha { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: #deebff; color: #2350a5; font: 800 12px var(--titulo); border: 0; padding: 0; min-height: 0; }
.bolha:hover { background: #cfe0ff; color: #2350a5; }
#btn-menu { display: none; border: 0; background: none; padding: 6px; min-height: 0; color: #19314c; }
.menu-sombra { display: none; }
main { padding: 28px 30px 70px; min-width: 0; width: 100%; max-width: 1640px; margin: 0 auto; }
.faixa { background: var(--laranja-suave); color: var(--laranja); border: 1px solid #fbe0c4; border-radius: var(--raio-p); padding: 10px 14px; margin-bottom: 16px; font-weight: 500; }
.faixa a { font-weight: 700; }

/* cabeçalho de cada tela */
.topo { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; flex-wrap: wrap; margin-bottom: 20px; }
.topo h1 { font-size: 28px; }
.topo select, .topo input { width: auto; min-width: 150px; }
.sobretitulo { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; color: #3a5ca8; text-transform: uppercase; margin-bottom: 6px; }
.linha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.grade { display: grid; gap: 16px; }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* indicadores */
.kpi .valor { font: 800 28px/1.15 var(--titulo); letter-spacing: -.045em; color: var(--texto); }
.kpi .rot { color: var(--sutil); font-size: 12.5px; margin-top: 4px; }
.cartao.kpi { position: relative; }
.barra { height: 7px; background: #e9eff9; border-radius: 8px; overflow: hidden; } .barra > i { display: block; height: 100%; background: linear-gradient(90deg, #275de8, #70a5ff); border-radius: inherit; }
span.barra { display: block; margin: 4px 0 10px; }
.lista-rank div { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; margin-bottom: 12px; font-size: 12.5px; }
.lista-rank div > span:first-child { color: #4a5b73; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.lista-rank .barra { grid-column: 1 / -1; }

/* filtros e abas */
.filtros { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; box-shadow: var(--sombra); }
.filtros input, .filtros select { padding: 8px 10px; }
.filtros input:first-child { grid-column: span 2; padding-left: 34px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2390a1b8' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E") no-repeat 11px center; }
.abas { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.abas button { border-radius: 999px; padding: 7px 15px; min-height: 34px; font-size: 13px; background: #fff; }
.abas button.ativo { background: var(--navy2); color: #fff; border-color: var(--navy2); }

/* selos (badges) */
.selo { display: inline-flex; align-items: center; font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 7px; margin: 0 4px 4px 0; background: var(--primaria-suave); color: #2453d8; white-space: nowrap; line-height: 1.3; }
.selo.verde { background: var(--verde-suave); color: var(--verde); } .selo.laranja { background: var(--laranja-suave); color: var(--laranja); }
.selo.vermelho { background: var(--vermelho-suave); color: var(--vermelho); } .selo.roxo { background: var(--roxo-suave); color: var(--roxo); }
.prazo-curto { color: var(--vermelho); font-weight: 700; }

/* lista de avisos */
.aviso { display: grid; grid-template-columns: 22px 1fr auto; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--linha2); transition: background .15s; }
.aviso:hover { background: #fafcff; }
.aviso:last-child { border-bottom: 0; }
.aviso.nao-lido { background: linear-gradient(90deg, #eef3ff, #fff 45%); box-shadow: inset 3px 0 0 var(--azul); }
.aviso .titulo { font-weight: 700; cursor: pointer; color: #1a2c47; line-height: 1.4; }
.aviso .titulo:hover { color: var(--primaria); }
.aviso .meta { color: var(--sutil); font-size: 12.5px; margin-top: 4px; }
.aviso .meta b { color: #1f3452; }
.aviso .trecho { font-size: 12.5px; margin-top: 8px; color: #56677f; border-left: 3px solid #cddbfb; padding: 2px 0 2px 10px; }
.aviso .acoes { display: flex; gap: 5px; align-items: flex-start; flex-wrap: wrap; justify-content: flex-end; max-width: 250px; }
.aviso .acoes select { width: auto; padding: 4px 8px; font-size: 12px; border-radius: 8px; min-height: 30px; }
.aviso input[type=checkbox] { margin-top: 3px; width: 16px; height: 16px; }
.estrela { cursor: pointer; font-size: 18px; color: #7f8ca0; background: none; border: 0; padding: 0 4px; min-height: 30px; box-shadow: none; }
.estrela:hover { color: #e3a008; background: none; }
.estrela.on { color: #e3a008; }
.paginacao { display: flex; gap: 8px; align-items: center; justify-content: flex-end; padding: 14px 0; }
.massa { position: sticky; top: 74px; z-index: 5; background: var(--navy2); color: #fff; border: 0; border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; box-shadow: var(--sombra-alta); }
.massa button { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .2); color: #fff; min-height: 32px; padding: 5px 12px; }
.massa button:hover { background: rgba(255, 255, 255, .2); color: #fff; }
.massa select { width: auto; min-height: 32px; padding: 5px 10px; }

/* tabelas */
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--linha2); vertical-align: top; font-size: 13px; }
th { color: #5e6c82; font-weight: 800; font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; background: #fbfcfe; white-space: nowrap; }
tr:last-child td { border-bottom: 0; }
tbody tr:hover td, table tr:hover td { background: #fafcff; }
.num { text-align: right; white-space: nowrap; }
tr.clicavel { cursor: pointer; }
tr.clicavel:hover td { background: #f3f7ff; }

/* funil (kanban) */
.funil { display: grid; grid-template-columns: repeat(6, minmax(230px, 1fr)); gap: 14px; overflow-x: auto; padding-bottom: 10px; }
.coluna { background: #edf1f7; border: 1px solid transparent; border-radius: var(--raio); padding: 12px; min-height: 260px; transition: background .15s, border-color .15s; }
.coluna h3 { margin: 2px 2px 12px; display: flex; align-items: center; gap: 8px; font-size: 13px; }
.coluna h3::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--azul); }
.coluna:nth-child(2) h3::before { background: #9b78db; } .coluna:nth-child(3) h3::before { background: #e7a64f; }
.coluna:nth-child(4) h3::before { background: #2dbb90; } .coluna:nth-child(5) h3::before { background: #e06b6b; } .coluna:nth-child(6) h3::before { background: #9aa7b8; }
.coluna h3 .sutil { margin-left: auto; background: #fff; border-radius: 6px; padding: 1px 8px; font-size: 11px; }
.coluna.alvo { border-color: var(--azul2); background: var(--primaria-suave); }
.ficha { border: 1px solid #e0e6ee; background: #fff; border-radius: 11px; padding: 13px; margin-bottom: 10px; font-size: 12px; color: var(--sutil); cursor: grab; box-shadow: var(--sombra); transition: border-color .15s, transform .15s; }
.ficha:hover { border-color: #a3bbf6; transform: translateY(-1px); }
.ficha b { display: block; font-size: 12.5px; color: #1d2f4b; margin-bottom: 6px; line-height: 1.45; cursor: pointer; }

/* catálogo */
.produto { display: grid; grid-template-columns: 1.1fr 1.4fr 1.4fr 120px auto; gap: 10px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--linha2); }
.etiquetas { display: flex; flex-wrap: wrap; gap: 5px; border: 1px solid #d9e1ec; border-radius: var(--raio-p); padding: 5px; min-height: 40px; background: #fff; }
.etiquetas span { background: var(--primaria-suave); color: #2453d8; border-radius: 6px; padding: 2px 8px; font-size: 12px; font-weight: 600; }
.etiquetas.neg span { background: var(--vermelho-suave); color: var(--vermelho); }
.etiquetas span i { cursor: pointer; font-style: normal; margin-left: 5px; }
.etiquetas input { border: 0; padding: 3px; flex: 1; min-width: 90px; box-shadow: none; }
.previa { background: var(--primaria-suave); border-radius: var(--raio-p); padding: 9px 12px; font-size: 12.5px; margin-top: 8px; color: #2a3f66; }

/* gaveta lateral e modal */
.gaveta { position: fixed; inset: 0; z-index: 40; }
.gaveta-fundo { position: absolute; inset: 0; background: rgba(8, 19, 36, .55); backdrop-filter: blur(2px); }
.gaveta-corpo { position: absolute; right: 0; top: 0; bottom: 0; width: min(780px, 100%); background: var(--fundo); overflow: auto; padding: 24px 28px; box-shadow: -25px 0 65px rgba(0, 0, 0, .16); animation: entrar-dir .2s ease-out; }
.gaveta-corpo > h2:first-of-type, .gaveta-corpo h2 { font-size: 21px; line-height: 1.35; }
@keyframes entrar-dir { from { transform: translateX(30px); opacity: .4; } }
.modal { position: fixed; inset: 0; z-index: 50; background: rgba(8, 19, 36, .55); backdrop-filter: blur(2px); display: grid; place-items: center; padding: 16px; }
.modal-corpo { width: 100%; max-width: 540px; max-height: 90vh; overflow: auto; border-radius: 18px; padding: 28px; box-shadow: var(--sombra-alta); }
.aviso-rapido { position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%); background: var(--navy); color: #fff; padding: 12px 18px; border-radius: 12px; z-index: 60; box-shadow: var(--sombra-alta); font-weight: 600; max-width: calc(100vw - 32px); }
.dl { display: grid; grid-template-columns: 170px 1fr; gap: 8px 14px; font-size: 13px; }
.dl dt { color: var(--sutil); } .dl dd { margin: 0; }
pre.msg { white-space: pre-wrap; background: #f8fafd; padding: 12px; border-radius: var(--raio-p); border: 1px solid var(--linha); font: 13px/1.55 var(--corpo); }
.vazio { text-align: center; padding: 40px 20px; color: var(--sutil); }
.vazio::before { content: ""; display: block; width: 46px; height: 46px; margin: 0 auto 12px; border-radius: 14px; background: var(--primaria-suave) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%232f62f6' stroke-width='1.8' stroke-linecap='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='m16 16 5 5'/%3E%3C/svg%3E") no-repeat center; }

/* IA: análise de edital, perguntas, peças, mercado */
.bloco-ia { border-color: #e2dcf7; background: linear-gradient(180deg, #fbfaff, #fff 120px); }
.cartao-ia { margin-top: 12px; }
.cartao-ia ul, .msg-ia ul { margin: 4px 0 8px; padding-left: 20px; }
.resumo-ia { background: var(--roxo-suave); border-radius: var(--raio-p); padding: 12px 14px; color: #2e2457; }
.ref { display: inline-block; font-size: 11px; font-weight: 700; color: var(--roxo); background: var(--roxo-suave); border-radius: 6px; padding: 1px 7px; white-space: nowrap; }
.checklist ul { margin-top: 2px; }
.msg-ia { border-top: 1px solid var(--linha2); padding: 12px 0; }
.msg-ia .perg { font-weight: 700; margin-bottom: 6px; color: #1d2f4b; }
.msg-ia .resp p { margin: 4px 0; }
.trecho-ia { margin: 8px 0; padding: 8px 12px; border-left: 3px solid var(--roxo); background: #faf9fe; border-radius: 0 8px 8px 0; font-size: 12.5px; }
.sugestoes { margin-top: 8px; }
.arquivos-lidos { margin-top: 12px; font-size: 13px; }
.arquivos-lidos summary { cursor: pointer; color: var(--sutil); }
.colunas { display: flex; align-items: flex-end; gap: 5px; height: 160px; padding-top: 6px; }
.colunas > div { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; min-width: 0; }
.colunas i { display: block; width: 100%; max-width: 38px; background: linear-gradient(#5d90fa, #2359dc); border-radius: 6px 6px 2px 2px; }
.colunas span { font-size: 10.5px; color: var(--sutil); margin-top: 5px; white-space: nowrap; }
.txt-verde { color: var(--verde); } .txt-vermelho { color: var(--vermelho); }

/* carregando */
.carregando { height: 4px; border-radius: 4px; margin: 10px 0 14px; background: linear-gradient(90deg, transparent, var(--azul), transparent); background-size: 200% 100%; animation: carregar 1.2s linear infinite; }
@keyframes carregar { from { background-position: 200% 0; } to { background-position: -200% 0; } }
#tela > p.sutil:only-child { display: flex; align-items: center; gap: 10px; padding: 30px 0; }
#tela > p.sutil:only-child::before { content: ""; width: 16px; height: 16px; border: 2px solid var(--azul); border-right-color: transparent; border-radius: 50%; animation: gira .8s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }

/* mapa, proposta, acompanhamento, contratos, atas */
.mapa-caixa { display: grid; grid-template-columns: 1fr 340px; gap: 16px; }
#mapa { height: 70vh; min-height: 420px; overflow: hidden; }
.mapa-lista { max-height: 70vh; overflow: auto; } .mapa-item { border-top: 1px solid var(--linha2); padding: 10px 0; }
.leaflet-container { font: inherit; }
.filtros-mapa select, .filtros-mapa input { width: auto; }
.tabela-proposta input { padding: 5px 7px; } .tabela-proposta input[type=checkbox] { width: auto; }
.tabela-proposta td:nth-child(3) { min-width: 280px; }
.mov { padding: 11px 12px; border-bottom: 1px solid var(--linha2); cursor: pointer; border-radius: 8px; }
.mov:hover { background: #f3f7ff; }
.mov.nova { box-shadow: inset 3px 0 0 var(--laranja); background: #fffaf4; }
.linha-tempo > div { padding: 7px 0 7px 14px; border-left: 2px solid var(--linha); margin-left: 4px; position: relative; }
.linha-tempo > div::before { content: ""; position: absolute; left: -5px; top: 13px; width: 8px; height: 8px; border-radius: 50%; background: #c3cfe0; }
.linha-tempo > div.imp { border-left-color: #f2c79a; } .linha-tempo > div.imp::before { background: var(--laranja); }

/* ---------- painel (dashboard) ---------- */
.boas-vindas { position: relative; padding: 28px 32px; background: linear-gradient(110deg, #112d5c, #1d55c8 86%, #3775f5); border-radius: 18px; color: #fff; overflow: hidden; margin-bottom: 18px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: center; }
.boas-vindas::before { content: ""; position: absolute; inset: 0; opacity: .1; background-image: linear-gradient(#fff 1px, transparent 1px), linear-gradient(90deg, #fff 1px, transparent 1px); background-size: 37px 37px; -webkit-mask-image: linear-gradient(to left, #000, transparent); mask-image: linear-gradient(to left, #000, transparent); }
.boas-vindas > * { position: relative; }
.boas-vindas small { display: flex; align-items: center; gap: 10px; color: #a0d0ff; font-size: 10.5px; letter-spacing: .15em; font-weight: 800; }
.boas-vindas small i { width: 7px; height: 7px; background: #52dcb9; border-radius: 50%; box-shadow: 0 0 0 5px rgba(82, 220, 185, .15); }
.boas-vindas h2 { color: #fff; font-size: 23px; line-height: 1.3; margin: 10px 0 8px; font-weight: 800; }
.boas-vindas p { color: #c3d5f5; margin: 0 0 16px; max-width: 640px; }
.boas-vindas .linha button { background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .25); color: #fff; }
.boas-vindas .linha button:hover { background: rgba(255, 255, 255, .24); }
.boas-vindas .linha button.claro { background: #fff; color: #1d4fc4; border-color: #fff; }
.radar { width: 170px; height: 170px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 50%; display: grid; place-items: center; color: #85b2ff; background: repeating-radial-gradient(circle, transparent 0 27px, rgba(255, 255, 255, .13) 28px 29px, transparent 30px 42px); position: relative; }
.radar::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 300deg, rgba(97, 217, 223, .28), transparent 40%); animation: gira 6s linear infinite; }
.indicadores { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.indicador { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 18px 20px; }
.indicador > div { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; }
.indicador > div > span { font-size: 12px; color: var(--sutil); font-weight: 700; }
.indicador strong { font: 800 clamp(22px, 2vw, 30px)/1.2 var(--titulo); letter-spacing: -.05em; display: block; margin-top: 6px; }
.indicador small { display: block; color: var(--sutil); font-size: 11.5px; margin-top: 3px; }
.tom { display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; width: 38px; height: 38px; flex-shrink: 0; }
.tom.azul { background: #eaf0ff; color: #2e67e8; } .tom.roxo { background: #f1edfd; color: #8666d7; }
.tom.verde { background: #e8f9f2; color: #1fa57a; } .tom.ambar { background: #fff5e7; color: #d98c26; }
.painel-colunas { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(280px, .8fr); gap: 18px; align-items: start; }
.painel-colunas > div { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.bloco { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; }
.bloco-topo { padding: 18px 20px 14px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.bloco-topo h2 { font-size: 15px; margin: 0; }
.bloco-topo p { font-size: 12px; color: var(--sutil); margin: 3px 0 0; }
.bloco-corpo { padding: 0 20px 18px; }
.link-seta { display: inline-flex; gap: 6px; align-items: center; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.oport { display: flex; align-items: center; gap: 14px; width: 100%; padding: 13px 20px; border-top: 1px solid var(--linha2); cursor: pointer; color: inherit; transition: background .15s; }
.oport:hover { background: #f8faff; color: inherit; }
.oport-ico { width: 38px; height: 38px; background: #eef3ff; border-radius: 10px; display: grid; place-items: center; color: #4272e3; flex-shrink: 0; }
.oport-info { flex: 1; min-width: 0; }
.oport-info b, .oport-valor b { display: block; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: #1d2f4b; }
.oport-info small, .oport-valor small { display: block; color: var(--sutil); font-size: 11.5px; margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.oport-valor { text-align: right; min-width: 110px; }
.dias { border-radius: 9px; padding: 6px 9px; font-weight: 800; font-size: 11.5px; text-align: center; white-space: nowrap; background: #eff4ff; color: #2453c9; }
.dias.urgente { background: var(--vermelho-suave); color: var(--vermelho); } .dias.breve { background: var(--laranja-suave); color: var(--laranja); }
.prazo-item { display: flex; align-items: center; gap: 13px; margin: 0 20px; padding: 13px 0; border-top: 1px solid var(--linha2); cursor: pointer; }
.prazo-item > span { border-radius: 10px; padding: 7px 10px; background: #eef3ff; color: #2f63ed; text-align: center; min-width: 52px; }
.prazo-item > span.urgente { background: var(--vermelho-suave); color: var(--vermelho); }
.prazo-item > span b { display: block; font: 800 17px/1.1 var(--titulo); }
.prazo-item > span small { display: block; font-size: 9.5px; font-weight: 800; letter-spacing: .06em; }
.prazo-item > div { min-width: 0; } .prazo-item > div b { display: block; font-size: 12.5px; color: #1d2f4b; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.prazo-item > div small { color: var(--sutil); font-size: 11.5px; }
.cartao-ia-painel { background: linear-gradient(125deg, #192f69, #2f52b9); border-radius: var(--raio); color: #fff; padding: 22px; }
.cartao-ia-painel > span { display: grid; place-items: center; width: 40px; height: 40px; color: #d8c6ff; background: rgba(255, 255, 255, .13); border-radius: 11px; margin-bottom: 14px; }
.cartao-ia-painel small { color: #a6bff8; letter-spacing: .13em; font-weight: 800; font-size: 10px; }
.cartao-ia-painel h3 { color: #fff; font-size: 17px; line-height: 1.4; margin: 8px 0; }
.cartao-ia-painel p { font-size: 12.5px; color: #c0cef5; margin: 0 0 12px; }
.cartao-ia-painel a { color: #fff; font-weight: 700; font-size: 12.5px; display: inline-flex; gap: 8px; align-items: center; }
.funil-mini > div:not(.bloco-topo) { display: flex; justify-content: space-between; padding: 7px 20px; font-size: 12.5px; color: var(--sutil); }
.funil-mini b { color: #22364f; }
.efetivo { display: flex; align-items: baseline; gap: 10px; padding: 0 20px 6px; }
.efetivo strong { font: 800 30px var(--titulo); letter-spacing: -.05em; color: var(--azul); }
.efetivo span { color: var(--sutil); font-size: 12px; }
.rankings { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }

/* =================================================================== página pública */
.publico { background: #fff; color: var(--texto); }
.publico section { scroll-margin-top: 80px; }
.pub-topo { position: sticky; top: 0; z-index: 20; background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); border-bottom: 1px solid #edf1f7; }
.pub-topo-in { height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 20px; max-width: 1280px; padding: 0 28px; margin: auto; }
.pub-topo .marca { color: var(--navy); }
.pub-nav { display: flex; align-items: center; gap: 32px; }
.pub-nav a { color: #45556c; font-weight: 700; font-size: 13.5px; }
.pub-nav a:hover { color: var(--azul); }
.pub-acoes { display: flex; gap: 10px; align-items: center; }
.pub-acoes #pub-entrar { border: 0; background: none; color: #152847; font-weight: 700; box-shadow: none; }
.pub-acoes #pub-entrar:hover { color: var(--azul); }
.btn-escuro { background: var(--navy2) !important; color: #fff !important; border-color: var(--navy2) !important; display: inline-flex; align-items: center; gap: 9px; }
.btn-escuro:hover { background: #1b355c !important; }
#pub-menu-btn { display: none; border: 0; background: none; padding: 6px; color: var(--navy); min-height: 0; }
.botao-link { display: inline-flex; align-items: center; gap: 10px; border-radius: 12px; padding: 14px 22px; font-weight: 700; font-size: 15px; border: 1px solid rgba(255, 255, 255, .22); color: #fff; background: rgba(255, 255, 255, .05); }
.botao-link:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.pub-hero { position: relative; background: radial-gradient(ellipse at 72% 30%, #19385f 0, transparent 45%), linear-gradient(125deg, #08162b, #0d203b 70%, #0a1830); color: #fff; overflow: hidden; }
.pub-hero::before { content: ""; position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(#6485ba 1px, transparent 1px), linear-gradient(90deg, #6485ba 1px, transparent 1px); background-size: 56px 56px; -webkit-mask-image: linear-gradient(to left, #000, transparent 70%); mask-image: linear-gradient(to left, #000, transparent 70%); }
.pub-hero::after { content: ""; position: absolute; width: 650px; height: 650px; right: -150px; top: -250px; background: radial-gradient(circle, rgba(48, 115, 245, .22), transparent 67%); pointer-events: none; }
.pub-hero-in { position: relative; z-index: 1; max-width: 1280px; margin: auto; padding: 92px 28px 100px; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 64px; }
.selo-topo { display: inline-flex; gap: 10px; align-items: center; color: #a4e8e8; font-size: 11px; letter-spacing: .16em; font-weight: 800; }
.selo-topo i { width: 7px; height: 7px; background: #52dcb9; border-radius: 50%; box-shadow: 0 0 0 5px rgba(82, 220, 185, .12); }
.pub-hero h1 { color: #fff; font-size: clamp(38px, 4vw, 58px); line-height: 1.12; letter-spacing: -.055em; margin: 22px 0; }
.pub-hero h1 em { color: #8ca9ff; font-style: normal; }
.pub-hero p { max-width: 560px; font-size: 16.5px; color: #b9c8dc; line-height: 1.7; margin: 0 0 30px; }
.pub-hero .linha { gap: 12px; }
.pub-hero button.primario { padding: 15px 24px; font-size: 15px; border-radius: 12px; display: inline-flex; align-items: center; gap: 10px; }
.pub-hero .nota { display: flex; gap: 8px; align-items: center; color: #94a9c4; font-size: 12.5px; margin-top: 22px; }
.demo { position: relative; width: 100%; max-width: 540px; justify-self: end; background: #f6f8fd; border: 1px solid rgba(255, 255, 255, .35); border-radius: 17px; box-shadow: 0 35px 90px rgba(0, 0, 0, .4); color: #162740; transform: perspective(1100px) rotateY(-5deg) rotateX(2deg); }
.demo-topo { height: 42px; padding: 0 18px; display: flex; align-items: center; gap: 11px; background: #fff; border-bottom: 1px solid #e7ecf3; border-radius: 17px 17px 0 0; }
.demo-topo > span { display: flex; gap: 5px; } .demo-topo i { height: 7px; width: 7px; border-radius: 50%; background: #cbd3e0; }
.demo-topo b { font-size: 11px; } .demo-topo small { margin-left: auto; color: #5e6c82; font-size: 9px; letter-spacing: .08em; font-weight: 700; }
.demo-corpo { padding: 22px; }
.demo-kpi { position: relative; border-radius: 13px; background: linear-gradient(105deg, #193a6f, #3268ec); color: #fff; padding: 20px 24px; margin-bottom: 12px; overflow: hidden; }
.demo-kpi::after { content: ""; position: absolute; width: 170px; height: 170px; right: -30px; top: -50px; border: 22px solid rgba(255, 255, 255, .08); border-radius: 50%; }
.demo-kpi small { display: block; color: #d2e0ff; font-size: 11.5px; }
.demo-kpi strong { display: block; font: 800 40px/1.2 var(--titulo); letter-spacing: -.05em; }
.demo-kpi span { color: #baf9d9; font-size: 11px; font-weight: 700; }
.demo-linha { display: flex; align-items: center; gap: 14px; padding: 13px 14px; background: #fff; border: 1px solid #e7edf5; border-radius: 10px; margin-top: 8px; }
.demo-linha > span:first-child { width: 30px; height: 30px; border-radius: 8px; background: #eef3ff; color: #4272e3; display: grid; place-items: center; }
.demo-linha > div { flex: 1; min-width: 0; }
.demo-linha b { display: block; font-size: 11.5px; } .demo-linha small { display: block; color: #5e6c82; margin-top: 3px; font-size: 10.5px; }
.demo-linha em { font-style: normal; font-size: 10px; font-weight: 800; color: #0d7352; background: #e6f8f0; padding: 4px 7px; border-radius: 6px; }
.demo-flutuante { position: absolute; display: flex; align-items: center; gap: 10px; right: -22px; bottom: 70px; padding: 13px 14px; background: #fff; border-radius: 13px; box-shadow: 0 20px 50px rgba(0, 0, 0, .22); color: #2566ed; }
.demo-flutuante > span { color: #172c4b; display: flex; flex-direction: column; }
.demo-flutuante b { font-size: 11.5px; } .demo-flutuante small { font-size: 10.5px; color: #5e6c82; margin-top: 2px; }
.demo-legenda { position: absolute; right: 6px; bottom: -28px; color: #a3b3cf; font-size: 10.5px; }
.prova { background: #f9fbff; border-bottom: 1px solid #edf1f7; }
.prova-in { max-width: 1280px; margin: auto; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 24px 28px; color: #50637e; flex-wrap: wrap; }
.prova-in > span { font-size: 10.5px; letter-spacing: .12em; font-weight: 800; max-width: 190px; line-height: 1.6; color: #5e6c82; }
.prova-in > div { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; }
.prova-in > div b { font: 800 18px var(--titulo); color: var(--navy); }
.prova-in svg { color: #3869ed; }
.pub-secao { max-width: 1280px; margin: 0 auto; padding: 100px 28px; }
.cabeca { max-width: 740px; margin-bottom: 46px; }
.cabeca.centro { text-align: center; margin: 0 auto 50px; }
.cabeca small, .fluxo small, .chamada small { font-size: 11px; font-weight: 800; letter-spacing: .15em; color: #2c66ec; }
.cabeca h2 { font-size: clamp(32px, 3.2vw, 46px); line-height: 1.18; margin: 14px 0; font-weight: 800; letter-spacing: -.045em; }
.cabeca h2 span { color: #607caa; }
.cabeca p { color: #56657b; font-size: 16px; margin: 0 auto; max-width: 620px; }
.pilares { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pilar { position: relative; padding: 32px; min-height: 440px; border-radius: 22px; overflow: hidden; }
.pilar.p1 { background: #ecf3ff; } .pilar.p2 { background: #f1effc; } .pilar.p3 { background: #fff3e9; }
.pilar-ico { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 15px; background: #fff; color: #3768e8; box-shadow: 0 6px 15px rgba(40, 60, 100, .04); margin-bottom: 26px; }
.pilar > small { color: #4c5f80; font-size: 10.5px; letter-spacing: .13em; font-weight: 800; }
.pilar h3 { font-size: 22px; line-height: 1.32; margin: 12px 0; }
.pilar p { font-size: 14px; color: #5d6e85; max-width: 320px; line-height: 1.6; }
.ilu-radar { position: absolute; bottom: -75px; right: -65px; width: 270px; height: 270px; border-radius: 50%; border: 1px solid #c2d5fb; background: repeating-radial-gradient(circle, transparent 0 37px, #c3d8fa 38px 39px, transparent 40px 57px); }
.ilu-radar::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 280deg, rgba(49, 103, 245, .14), transparent 45%); }
.ilu-radar > i { position: absolute; width: 11px; height: 11px; background: #4171f6; border: 3px solid #fff; border-radius: 50%; z-index: 2; }
.ilu-radar > i:nth-of-type(1) { top: 58px; left: 60px } .ilu-radar > i:nth-of-type(2) { top: 119px; left: 28px } .ilu-radar > i:nth-of-type(3) { top: 38px; left: 180px }
.ilu-radar b { position: absolute; top: 112px; left: 112px; color: #3565e8; z-index: 1; }
.ilu-doc { position: absolute; bottom: -25px; right: -25px; left: 80px; background: #fff; border: 1px solid #e4e4f1; border-radius: 13px; padding: 19px; transform: rotate(-5deg); box-shadow: 0 15px 30px rgba(50, 60, 130, .07); }
.ilu-doc div { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 800; border-bottom: 1px solid #edf0f5; padding-bottom: 12px; margin-bottom: 15px; }
.ilu-doc div span { margin-left: auto; color: #6946ca; background: #f0ecfc; padding: 3px 6px; border-radius: 4px; font-size: 9px; }
.ilu-doc > i { display: block; height: 7px; background: #e9edf6; width: 90%; margin: 11px 0; border-radius: 10px; }
.ilu-doc > i:nth-of-type(2) { width: 70% } .ilu-doc > i.curto { width: 45% }
.ilu-doc b { font-size: 10.5px; color: #1f6b4c; display: flex; gap: 6px; align-items: center; background: #ecfbf4; border-radius: 6px; padding: 9px; margin-top: 15px; }
.ilu-quadro { position: absolute; bottom: -16px; left: 24px; right: 24px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; transform: rotate(-3deg); }
.ilu-quadro > div { height: 120px; border-radius: 9px; padding: 10px; background: #fff; box-shadow: 0 8px 16px rgba(100, 65, 30, .06); }
.ilu-quadro b { font-size: 9.5px; color: #5e6c82; }
.ilu-quadro i { display: block; background: #f1f4f9; height: 23px; margin: 10px 0; border-radius: 5px; border-left: 3px solid #a0b9ef; }
.ilu-quadro > div:nth-child(2) i { border-color: #c19ee2 } .ilu-quadro > div:nth-child(3) i { border-color: #edb47e }
.fluxo { background: #0d203d; color: #fff; padding: 96px 28px; }
.fluxo-in { max-width: 1238px; margin: auto; display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 110px; }
.fluxo small { color: #88aeff; }
.fluxo h2 { color: #fff; font-size: clamp(32px, 3.4vw, 46px); line-height: 1.22; margin: 18px 0; font-weight: 800; letter-spacing: -.045em; }
.fluxo p { font-size: 16px; color: #aebfd8; max-width: 490px; }
.fluxo button { margin-top: 18px; background: #fff; color: #11213a; border-color: #fff; padding: 13px 20px; display: inline-flex; align-items: center; gap: 10px; border-radius: 12px; }
.fluxo ol { list-style: none; margin: 0; padding: 0; }
.fluxo li { display: flex; gap: 20px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(255, 255, 255, .13); }
.fluxo li > b { font: 800 21px var(--titulo); color: #6c9bfc; }
.fluxo li > span { flex: 1; }
.fluxo li strong { display: block; font-size: 15.5px; }
.fluxo li small { display: block; color: #99aac6; letter-spacing: 0; font-size: 13px; font-weight: 400; margin-top: 5px; }
.fluxo li > svg { color: #4edbb2; }
.recursos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.recursos > div { padding: 26px; border: 1px solid var(--linha); border-radius: 18px; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.recursos > div:hover { border-color: #c9d7f6; box-shadow: var(--sombra); transform: translateY(-2px); }
.recursos svg { color: #3868ee; margin-bottom: 18px; }
.recursos h3 { font-size: 16px; margin: 0 0 8px; }
.recursos p { color: var(--sutil); font-size: 13.5px; margin: 0; line-height: 1.6; }
.precos { background: #f7f9fd; padding: 100px 28px; }
.planos { max-width: 1200px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: auto; }
@media (max-width: 1100px) and (min-width: 761px) { .planos { grid-template-columns: 1fr 1fr; } }
.planos article { background: #fff; border: 1px solid #e3e8f2; border-radius: 22px; padding: 34px; position: relative; display: flex; flex-direction: column; }
.planos article.destaque { border: 2px solid #416af4; box-shadow: 0 20px 48px rgba(50, 91, 220, .1); }
.planos .popular { position: absolute; right: 26px; top: -14px; padding: 7px 12px; border-radius: 7px; background: #3769f6; color: #fff; font-weight: 800; font-size: 10px; letter-spacing: .06em; }
.planos .plano-nome { font-size: 11px; font-weight: 800; letter-spacing: .12em; color: #3166ee; }
.planos h3 { font-size: 22px; margin: 10px 0 6px; }
.planos article > p { color: #56657b; font-size: 13.5px; margin: 0; }
.pub-preco { font: 800 34px var(--titulo); letter-spacing: -.04em; margin: 20px 0; }
.pub-preco span { color: #5e6c82; font-size: 14px; font-weight: 500; letter-spacing: 0; }
.planos ul { border-top: 1px solid #e8edf5; padding: 18px 0 0; margin: 24px 0 0; list-style: none; flex: 1; }
.planos li { display: flex; align-items: flex-start; gap: 11px; font-size: 13.5px; margin: 12px 0; color: #41536e; }
.planos li svg { color: #2dba92; margin-top: 1px; }
.planos button { width: 100%; padding: 13px; border-radius: 12px; }
.chamada { background: linear-gradient(110deg, #12346b, #255ee3); }
.chamada-in { max-width: 1280px; margin: auto; padding: 66px 28px; display: flex; align-items: center; justify-content: space-between; gap: 40px; color: #fff; }
.chamada small { color: #a9c4ff; }
.chamada h2 { color: #fff; font-size: 34px; max-width: 700px; margin: 12px 0 0; font-weight: 800; letter-spacing: -.04em; line-height: 1.25; }
.chamada button { background: #fff; color: #11213a; border-color: #fff; padding: 15px 24px; font-size: 15px; border-radius: 12px; display: inline-flex; gap: 10px; align-items: center; }
.cadastro-caixa { display: grid; grid-template-columns: 1fr 470px; gap: 40px; align-items: start; }
.cadastro-lado { background: linear-gradient(160deg, #0d203d, #173a75); color: #fff; border-radius: 22px; padding: 38px; }
.cadastro-lado h2 { color: #fff; font-size: 30px; line-height: 1.2; font-weight: 800; letter-spacing: -.04em; margin: 12px 0 14px; }
.cadastro-lado p { color: #b8c8e2; }
.cadastro-lado ul { list-style: none; padding: 0; margin: 22px 0 0; }
.cadastro-lado li { display: flex; gap: 10px; align-items: flex-start; margin: 13px 0; color: #dbe6f7; }
.cadastro-lado li svg { color: #4edbb2; margin-top: 2px; }
.pub-form { padding: 28px; border-radius: 22px; box-shadow: 0 20px 50px rgba(19, 42, 75, .08); }
.pub-form button.primario { width: 100%; margin-top: 18px; padding: 13px; border-radius: 12px; }
.abas-pub { display: flex; gap: 4px; margin-bottom: 10px; background: #f1f4f9; border-radius: 12px; padding: 4px; }
.abas-pub a { flex: 1; text-align: center; padding: 9px; color: var(--sutil); font-weight: 700; border-radius: 9px; }
.abas-pub a.ativo { color: var(--navy); background: #fff; box-shadow: 0 2px 8px rgba(19, 42, 75, .08); }
.pub-rodape { border-top: 1px solid #e6eaf1; }
.pub-rodape-in { max-width: 1280px; margin: auto; padding: 44px 28px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 30px; font-size: 13px; color: #56657b; }
.pub-rodape .marca { color: var(--navy); margin-bottom: 14px; }
.pub-rodape-in nav { display: flex; flex-wrap: wrap; gap: 8px 22px; justify-content: flex-end; align-content: flex-start; }
.pub-rodape-in nav a { font-weight: 700; }
.pub-rodape-in .legal { grid-column: 1 / -1; border-top: 1px solid #edf1f7; padding-top: 18px; display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; font-size: 12px; color: #5e6c82; }

/* =================================================================== responsivo */
@media (max-width: 1180px) {
  .indicadores { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .painel-colunas { grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); }
  .oport-valor { display: none; }
  .pub-hero-in { gap: 36px; }
  .filtros { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .app { grid-template-columns: 1fr; }
  .menu { position: fixed; top: 0; left: 0; bottom: 0; width: 272px; transform: translateX(-100%); transition: transform .22s ease; box-shadow: 20px 0 50px rgba(0, 0, 0, .25); }
  body.menu-aberto .menu { transform: translateX(0); }
  body.menu-aberto .menu-sombra { display: block; position: fixed; inset: 0; z-index: 25; background: rgba(8, 19, 36, .5); }
  #btn-menu { display: inline-flex; }
  .barra-topo { padding: 0 18px; }
  main { padding: 22px 18px 60px; }
  .painel-colunas { grid-template-columns: 1fr; }
  .g4, .g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .g2 { grid-template-columns: 1fr; }
  .pub-hero-in { grid-template-columns: 1fr; padding: 70px 28px 100px; }
  .demo { justify-self: start; }
  .fluxo-in { grid-template-columns: 1fr; gap: 40px; }
  .pilares, .recursos { grid-template-columns: 1fr 1fr; }
  .pilar { min-height: 400px; }
  .cadastro-caixa { grid-template-columns: 1fr; }
  .mapa-caixa { grid-template-columns: 1fr; } #mapa { height: 55vh; }
  .pub-nav { gap: 20px; }
}
@media (max-width: 760px) {
  .pub-nav, .pub-acoes .btn-escuro { display: none; }
  #pub-menu-btn { display: inline-flex; }
  .pub-topo.aberto .pub-nav { display: flex; flex-direction: column; align-items: stretch; gap: 0; position: absolute; left: 0; right: 0; top: 74px; background: #fff; box-shadow: 0 14px 30px rgba(20, 39, 74, .1); padding: 8px 18px 16px; }
  .pub-topo.aberto .pub-nav a { padding: 13px 8px; border-bottom: 1px solid #f0f3f8; }
  .pub-topo-in { padding: 0 18px; height: 66px; }
  .pub-topo.aberto .pub-nav { top: 66px; }
  .pub-hero-in { padding: 54px 20px 90px; }
  .pub-hero h1 { font-size: clamp(34px, 9vw, 46px); }
  .pub-hero p { font-size: 15px; }
  .pub-hero .linha { flex-direction: column; align-items: stretch; }
  .pub-hero .linha > * { justify-content: center; }
  .demo { transform: none; }
  .demo-flutuante { right: 10px; left: 10px; bottom: -34px; }
  .demo-legenda { bottom: -62px; }
  .prova-in { padding: 26px 20px; }
  .prova-in > span { width: 100%; max-width: none; }
  .prova-in > div { width: calc(50% - 12px); font-size: 12px; }
  .pub-secao { padding: 70px 20px; }
  .pilares, .recursos, .planos { grid-template-columns: 1fr; }
  .pilar { min-height: 380px; padding: 26px; }
  .fluxo { padding: 70px 22px; }
  .precos { padding: 70px 20px; }
  .chamada-in { flex-direction: column; align-items: flex-start; padding: 56px 22px; }
  .chamada h2 { font-size: 27px; }
  .cadastro-lado { padding: 28px; } .pub-form { padding: 22px; }
  .pub-rodape-in { grid-template-columns: 1fr; padding: 36px 20px; } .pub-rodape-in nav { justify-content: flex-start; }
  main { padding: 18px 14px 60px; }
  .topo h1 { font-size: 24px; }
  .topo > .linha, .topo > div:last-child { width: 100%; }
  .topo select, .topo input { flex: 1; min-width: 0; }
  .boas-vindas { grid-template-columns: 1fr; padding: 24px; }
  .boas-vindas .radar { display: none; }
  .boas-vindas h2 { font-size: 20px; }
  .rankings { grid-template-columns: 1fr; }
  .indicadores { gap: 10px; }
  .indicador { padding: 15px; }
  .indicador .tom { width: 32px; height: 32px; }
  .g4, .g3 { grid-template-columns: 1fr 1fr; }
  .filtros { grid-template-columns: 1fr 1fr; }
  .filtros input:first-child { grid-column: 1 / -1; }
  .aviso { grid-template-columns: 22px 1fr; padding: 14px; }
  .aviso .acoes { grid-column: 2; justify-content: flex-start; max-width: none; }
  .produto { grid-template-columns: 1fr; }
  .dl { grid-template-columns: 1fr; gap: 2px 0; } .dl dd { margin-bottom: 8px; }
  .cartao { padding: 16px; overflow-x: auto; }
  .cartao table { min-width: 560px; }
  .gaveta-corpo { padding: 18px 16px; }
  .modal-corpo { padding: 22px; }
  .barra-topo { height: 60px; }
  button { min-height: 40px; } button.pequeno { min-height: 34px; }
  .massa { top: 66px; }
}
@media (max-width: 420px) {
  .g4, .g3, .indicadores { grid-template-columns: 1fr; }
  .prova-in > div { width: 100%; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
@media print {
  .menu, .barra-topo, .nao-imprimir, .faixa, .menu-sombra { display: none !important; }
  .app { display: block; } main { padding: 0; }
  body { background: #fff; color: #000; }
  .cartao { break-inside: avoid; border-color: #ccc; box-shadow: none; }
  .detalhe-rel { max-height: none !important; overflow: visible !important; }
  .colunas i, .barra i, .tr-barra i { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
/* ícones (sprite em index.html) */
.ic { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.ic.g { width: 22px; height: 22px; } .ic.p { width: 15px; height: 15px; } .ic.xg { width: 30px; height: 30px; }
/* planos dentro do app (Minha assinatura) */
.grade .destaque { border: 2px solid var(--azul); box-shadow: 0 16px 40px rgba(50, 91, 220, .1); }
.pub-planos .cartao { display: flex; flex-direction: column; } .pub-planos .cartao ul { padding-left: 18px; flex: 1; } .pub-planos .cartao li { margin: 5px 0; }
.so-celular { display: none; }
@media (max-width: 760px) { .pub-topo.aberto .pub-nav a.so-celular { display: block; color: var(--azul); } }
.pub-preco b { font-weight: 800; }

/* =================================================================== modo escuro
   Igual ao sistema antigo: segue a preferência do sistema operacional (não existia escolha manual). */
@media (prefers-color-scheme: dark) {
  :root {
    --fundo: #0b1220; --cartao: #121b2b; --texto: #e6ecf5; --sutil: #96a3b9; --linha: #243149; --linha2: #1c2840;
    --primaria: #6b91ff; --primaria-escura: #8aa8ff; --primaria-suave: #1b2a4b;
    --verde: #45d39b; --verde-suave: #11342a; --laranja: #f2a65e; --laranja-suave: #3a2711;
    --vermelho: #f37f7f; --vermelho-suave: #3d1b1f; --roxo: #b096f7; --roxo-suave: #2a2248;
    --sombra: 0 10px 32px rgba(0, 0, 0, .25); --sombra-alta: 0 24px 60px rgba(0, 0, 0, .5);
    color-scheme: dark;
  }
  input, select, textarea, .etiquetas, .filtros input:first-child { background-color: #0f1726; border-color: #2b3a55; color: var(--texto); }
  input:hover, select:hover, textarea:hover { border-color: #3a4d6e; }
  input::placeholder, textarea::placeholder { color: #6f7f98; }
  label { color: #c6d1e2; }
  button { background: #172338; border-color: #2b3a55; color: #dbe4f2; }
  button:hover { color: #9db8ff; border-color: #5b86ff; }
  button.primario { background: #2f62f6; border-color: #2f62f6; color: #fff; }
  button.primario:hover { background: #4673f7; color: #fff; }
  button.secundario { background: #1b2a4b; color: #a9c0ff; }
  .barra-topo { background: rgba(14, 21, 34, .92); }
  .barra-topo .trilha b, .aviso .titulo, .aviso .meta b, .ficha b, .oport-info b, .oport-valor b, .prazo-item > div b, .funil-mini b, .msg-ia .perg { color: var(--texto); }
  .bolha { background: #1b2a4b; color: #a9c0ff; } .bolha:hover { background: #24375f; color: #c7d6ff; }
  .faixa { border-color: #5a3d1a; }
  .filtros, .abas button, .indicador, .bloco, .ficha { background: var(--cartao); }
  .abas button.ativo { background: var(--primaria); border-color: var(--primaria); color: #0b1220; }
  .selo { color: #a9c0ff; }
  .aviso:hover, tbody tr:hover td, table tr:hover td, .oport:hover { background: #162135; }
  .aviso.nao-lido { background: linear-gradient(90deg, #17264a, var(--cartao) 45%); }
  .aviso .trecho { color: #a7b3c7; border-left-color: #2e4675; }
  th { background: #0f1828; color: #8796ae; }
  tr.clicavel:hover td, .mov:hover { background: #18284a; }
  .mov.nova { background: #2a1f12; }
  .coluna { background: #0f1828; } .coluna h3 .sutil { background: var(--cartao); }
  .ficha { border-color: var(--linha); }
  .estrela { color: #7d8ca5; }
  .etiquetas span, .previa { color: #b8caff; }
  pre.msg { background: #0f1726; }
  .bloco-ia { border-color: #3a2f66; background: linear-gradient(180deg, #19163a, var(--cartao) 120px); }
  .resumo-ia { color: #ddd3ff; } .trecho-ia { background: #161a33; }
  .indicador > div > span, .lista-rank div > span:first-child, .funil-mini > div:not(.bloco-topo) { color: #a2afc3; }
  .indicador small, .oport-info small, .oport-valor small, .prazo-item > div small { color: #7f8ea6; }
  .tom.azul { background: #1b2a4b; color: #8eaaff; } .tom.roxo { background: #2a2248; color: #b9a3f7; }
  .tom.verde { background: #11342a; color: #4fd6a0; } .tom.ambar { background: #3a2a11; color: #f2b45e; }
  .oport-ico, .prazo-item > span, .dias { background: #1b2a4b; color: #8eaaff; }
  .prazo-item > span.urgente, .dias.urgente { background: var(--vermelho-suave); color: var(--vermelho); } .dias.breve { background: var(--laranja-suave); color: var(--laranja); }
  .barra { background: #1f2b42; }
  .vazio::before { background-color: #1b2a4b; }
  .massa { background: #1b2a4b; }
  .leaflet-container { background: #0f1726; }
  /* página pública */
  .publico { background: var(--fundo); }
  .pub-topo { background: rgba(11, 18, 32, .92); border-bottom-color: #1c2840; }
  .pub-topo .marca, .pub-rodape .marca, #pub-menu-btn { color: #fff; }
  .pub-nav a { color: #b6c3d8; }
  .pub-acoes #pub-entrar { color: #e6ecf5; background: none; }
  .btn-escuro { background: #2f62f6 !important; border-color: #2f62f6 !important; }
  .prova { background: #0e1626; border-bottom-color: #1c2840; } .prova-in { color: #a2afc3; } .prova-in > div b { color: #fff; }
  .cabeca h2 span { color: #8ea6d6; } .cabeca p, .recursos p, .pilar p, .planos article > p { color: #a2afc3; }
  .pilar.p1 { background: #13213d; } .pilar.p2 { background: #1d1a38; } .pilar.p3 { background: #2a1f17; }
  .pilar-ico { background: #0f1726; color: #8eaaff; }
  .ilu-doc, .ilu-quadro > div { background: #172338; border-color: #2b3a55; } .ilu-doc > i, .ilu-quadro i { background: #22314b; }
  .ilu-radar { border-color: #2b4677; background: repeating-radial-gradient(circle, transparent 0 37px, #2b4677 38px 39px, transparent 40px 57px); }
  .recursos > div { background: var(--cartao); border-color: var(--linha); } .recursos > div:hover { border-color: #3a5288; }
  .precos { background: #0e1626; }
  .planos article { background: var(--cartao); border-color: var(--linha); } .planos article.destaque { border-color: #5b86ff; }
  .cabeca small, .fluxo small, .chamada small, .planos article > span { color: #8eaaff; } .pilar small { color: #a2afc3; } .ilu-quadro b { color: #a2afc3; }
  .planos li { color: #c6d1e2; } .planos ul { border-top-color: var(--linha); }
  .abas-pub { background: #0f1726; } .abas-pub a.ativo { background: #1b2a4b; color: #fff; }
  .pub-rodape { border-top-color: #1c2840; } .pub-rodape-in { color: #96a3b9; } .pub-rodape-in .legal { border-top-color: #1c2840; color: #7f8ea6; }
  .pub-topo.aberto .pub-nav { background: #0e1626; } .pub-topo.aberto .pub-nav a { border-bottom-color: #1c2840; }
}
@media (prefers-color-scheme: dark) { .prova-in span, .pub-preco span { color: #a2afc3; } #publico .marca-nome b, .planos .plano-nome { color: #8eaaff; } .estrela { color: #8090aa; } .dias { color: #9db6ff; } .sobretitulo { color: #8aa6e8; } .barra-topo .trilha { color: #96a3b9; } .barra-topo .trilha i { color: #5d6c86; } .empresa-atual > span { background: #2a56c6; } }

/* ---------- melhorias 11/2026: resultados, nota, disputa, previsões, suporte ---------- */
.resultado { margin: 18px 0; }
.resultado-grade { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--linha); border-top: 1px solid var(--linha); }
.resultado-grade > div { background: var(--cartao); padding: 16px 20px; display: flex; flex-direction: column; gap: 4px; }
.resultado-grade small { color: var(--sutil); font-size: 12px; font-weight: 600; }
.resultado-grade strong { font: 800 26px/1.15 var(--titulo); letter-spacing: -.03em; color: var(--texto); }
.resultado-grade span { color: var(--sutil); font-size: 12px; line-height: 1.45; }
.como-calcula { padding: 10px 20px 14px; border-top: 1px solid var(--linha); font-size: 13px; }
.como-calcula summary { cursor: pointer; color: var(--primaria); font-weight: 600; }
.como-calcula p { margin: 8px 0 0; }
.nota-vale { margin: 0 0 12px; }
.vale-topo { display: flex; gap: 18px; align-items: center; }
.vale-topo h3 { margin: 2px 0 4px; font-size: 18px; }
.vale-topo p { margin: 0; font-size: 13px; }
.vale-nota { flex: none; width: 76px; height: 76px; border-radius: 50%; display: grid; place-content: center; text-align: center; border: 5px solid; }
.vale-nota b { font: 800 26px/1 var(--titulo); }
.vale-nota small { font-size: 10px; color: var(--sutil); }
.vale-nota.bom { border-color: #15936a; color: #0d7352; } .vale-nota.medio { border-color: #d98a1c; color: #9a4a08; } .vale-nota.ruim { border-color: #c93a3a; color: #b52f2f; }
.fatores { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 6px; }
.fatores li { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.45; }
.fatores li > span { flex: none; min-width: 34px; text-align: center; font-weight: 800; font-size: 12px; border-radius: 6px; padding: 2px 4px; background: var(--fundo); color: var(--sutil); }
.fatores li.bom > span { background: var(--verde-suave); color: var(--verde); } .fatores li.ruim > span { background: var(--vermelho-suave); color: var(--vermelho); }
.disputa h2 { margin-top: 0; }
.disputa label small { display: block; font-size: 11.5px; margin-top: 2px; }
.tab-disputa input { width: 110px; text-align: right; padding: 6px 8px; }
.tab-disputa td.bom { color: var(--verde); font-weight: 700; } .tab-disputa td.ruim { color: var(--vermelho); font-weight: 700; }
.roteiro { margin-top: 14px; font-size: 13.5px; } .roteiro summary { cursor: pointer; font-weight: 700; } .roteiro ol { padding-left: 20px; margin: 10px 0; } .roteiro li { margin: 5px 0; }
.lista-prev { display: grid; gap: 12px; }
.prev h3 { font-size: 15px; margin: 8px 0 4px; line-height: 1.4; }
.prev-topo { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: 12.5px; }
.prev-dados { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 10px 0; font-size: 13px; color: var(--sutil); }
.prev-dados b { color: var(--texto); }
.rodape-menu .suporte { display: block; margin-bottom: 10px; padding: 9px 12px; border-radius: 10px; background: rgba(37, 211, 102, .14); color: #d6ffe6; font-weight: 700; text-decoration: none; }
.rodape-menu .suporte small { display: block; font-weight: 500; color: #a9d8bb; margin-top: 2px; }
#publico .suporte { display: inline-block; margin-right: 14px; color: var(--verde); font-weight: 700; }
@media (max-width: 980px) { .resultado-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .resultado-grade { grid-template-columns: 1fr; } .vale-topo { align-items: flex-start; } .vale-nota { width: 62px; height: 62px; } .tab-disputa input { width: 86px; } }
@media (prefers-color-scheme: dark) {
  .resultado-grade > div { background: var(--cartao); }
  .vale-nota.bom { border-color: #2fb787; color: #6ee0b4; } .vale-nota.medio { border-color: #e0a040; color: #f2c27a; } .vale-nota.ruim { border-color: #e06060; color: #ff9b9b; }
  .fatores li.bom > span { background: #12362b; color: #6ee0b4; } .fatores li.ruim > span { background: #3a1c1f; color: #ff9b9b; }
  .tab-disputa td.bom { color: #6ee0b4; } .tab-disputa td.ruim { color: #ff9b9b; }
  #publico .suporte { color: #6ee0b4; }
}
.modal-corpo:has(.disputa) { max-width: 1120px; }
.tab-disputa td:nth-child(2) { min-width: 240px; max-width: 420px; }
.tab-disputa th { white-space: nowrap; }
.chat-pregoeiro .chat-lista{list-style:none;margin:10px 0 0;padding:0;max-height:320px;overflow:auto;border-top:1px solid var(--borda,#e3e6ea)}
.chat-pregoeiro .chat-lista li{padding:8px 2px;border-bottom:1px solid var(--borda,#e3e6ea);font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.chat-pregoeiro .chat-lista li.importante{background:color-mix(in srgb,#d97706 12%,transparent);border-left:3px solid #d97706;padding-left:8px}
.chat-pregoeiro .chat-lista small{color:var(--sutil,#5b6470)}
.nb-barras{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;align-items:end;height:180px;margin-top:12px}
.nb-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px;min-width:0}
.nb-col span{display:block;width:70%;max-width:56px;background:var(--primaria,#2563eb);border-radius:6px 6px 2px 2px}
.nb-col b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.nb-col small{color:var(--sutil);font-size:12px}
.nb-alerta{border-left:4px solid var(--vermelho);margin-bottom:12px}
.nb-neg{color:var(--vermelho)}
.preco-ganha h3 b{color:var(--verde)}
.raio-x{list-style:none;margin:8px 0 4px;padding:0}
.raio-x li{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--linha);font-size:14px;overflow-wrap:anywhere}
.raio-x li>span:last-child{margin-left:auto;color:var(--sutil);white-space:nowrap}
.preco-ganha details{margin-top:8px}
.preco-ganha summary{cursor:pointer}
.cad-portais{display:grid;gap:10px}
.cad-portal{padding:12px 14px}
.cad-portal summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}
.cad-portal summary::-webkit-details-marker{display:none}
.cad-num{flex:0 0 28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--primaria-suave);color:var(--primaria);font-weight:800}
.cad-nome{flex:1;min-width:0;display:flex;flex-direction:column}
.cad-nome small,.cad-check small{color:var(--sutil);font-size:12.5px;display:block}
.cad-guia{margin-top:10px;border-top:1px solid var(--linha);padding-top:10px}
.cad-guia h4{margin:12px 0 4px;font-size:14px}
.cad-guia ul{margin:0;padding-left:18px;font-size:14px;line-height:1.5}
.cad-guia-topo{display:flex;flex-wrap:wrap;gap:10px 22px}
.cad-guia-topo small{display:block;color:var(--sutil);font-size:12px}
.cad-check{list-style:none;margin:8px 0 0;padding:0}
.cad-check li{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--linha);font-size:14px}
.cad-check li>span:nth-child(2){flex:1;min-width:0}
.cad-check .selo{flex:0 0 auto;min-width:74px;text-align:center}
.cad-campo{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--linha);font-size:14px}
.cad-campo span{flex:0 0 190px;color:var(--sutil)}
.cad-campo b{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:600}
@media (max-width:640px){.cad-campo{flex-wrap:wrap}.cad-campo span{flex-basis:100%}}
