/* Radar Jurídico — identidade Parreira & Bueno (cores do guia "Além da Escala") */
@font-face { font-family: "Poppins"; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-400-normal.9212f6f9860f.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 400; font-display: swap; src: url("../fonts/poppins-latin-ext-400-normal.aa42a9a3d4fc.woff2") format("woff2"); unicode-range: U+0100-024F; }
@font-face { font-family: "Poppins"; font-weight: 500; font-display: swap; src: url("../fonts/poppins-latin-500-normal.a09f2fccfee3.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 600; font-display: swap; src: url("../fonts/poppins-latin-600-normal.72993dddf88a.woff2") format("woff2"); }
@font-face { font-family: "Poppins"; font-weight: 700; font-display: swap; src: url("../fonts/poppins-latin-700-normal.25b0e113ca7c.woff2") format("woff2"); }
@font-face { font-family: "Lora"; font-style: normal; font-display: swap; src: url("../fonts/lora-latin-400-normal.6a24bfe835a2.woff2") format("woff2"); }
@font-face { font-family: "Lora"; font-style: italic; font-display: swap; src: url("../fonts/lora-latin-400-italic.cd0b01795373.woff2") format("woff2"); }

:root {
  --marinho: #000C2A;
  --marinho-2: #0B1A3F;
  --dourado: #D08A2C;
  --dourado-claro: #FBEFDD;
  --azul: #2C5AA0;
  --azul-claro: #E3ECF8;
  --fundo: #EEF1F5;
  --linha: #CED2D8;
  --texto: #1B2233;
  --texto-2: #5B6475;
  --vermelho: #A63A3A;
  --vermelho-claro: #F8E5E5;
  --verde: #2F7A4F;
  --verde-claro: #E3F2E9;
  --raio: 10px;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: "Poppins", system-ui, sans-serif; font-size: 14px; color: var(--texto); background: var(--fundo); line-height: 1.5; }
a { color: var(--azul); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3 { color: var(--marinho); line-height: 1.2; margin: 0 0 .6em; }
h1 { font-size: 24px; font-weight: 700; }
h2 { font-size: 18px; font-weight: 600; }
h3 { font-size: 15px; font-weight: 600; }
.sobretitulo { font-size: 11px; letter-spacing: .3em; text-transform: uppercase; color: var(--texto-2); margin-bottom: 4px; }
.serifa { font-family: "Lora", Georgia, serif; font-style: italic; }
.muted { color: var(--texto-2); }
.pequeno { font-size: 12px; }

/* Layout */
.layout { display: flex; min-height: 100vh; }
.lateral { width: 274px; background: var(--marinho); color: #fff; display: flex; flex-direction: column; position: fixed; left: 0; top: 0; bottom: 0; border-right: 4px solid var(--dourado); z-index: 1100; }
.lateral-marca { padding: 26px 22px 18px; border-bottom: 1px solid rgba(255,255,255,.08); }
.logo-lateral { width: 100%; height: auto; display: block; }
.produto { margin-top: 14px; font-size: 11px; letter-spacing: .38em; color: var(--dourado); font-weight: 600; }
.menu { display: flex; flex-direction: column; padding: 14px 10px; gap: 2px; flex: 1; overflow-y: auto; }
.menu a { color: #D6DCE8; padding: 10px 14px; border-radius: 8px; font-size: 13.5px; display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.menu a:hover { background: rgba(255,255,255,.06); text-decoration: none; color: #fff; }
.menu a.ativo { background: rgba(208,138,44,.16); color: #fff; box-shadow: inset 3px 0 0 var(--dourado); }
.menu a.futuro { color: #8F9AB0; }
.selo { font-size: 9.5px; letter-spacing: .08em; text-transform: uppercase; border: 1px solid #56617A; color: #A9B2C5; border-radius: 20px; padding: 1px 7px; white-space: nowrap; }
.lateral-rodape { padding: 14px 16px 18px; border-top: 1px solid rgba(255,255,255,.08); }
.assinatura { display: flex; justify-content: center; padding: 4px 0; }
.assinatura img { width: 100%; max-width: 210px; height: auto; display: block; }
.versao { margin-top: 8px; font-size: 10.5px; color: #6F7A92; text-align: center; letter-spacing: .1em; }
.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; margin-left: 274px; }
.topo { background: #fff; border-bottom: 1px solid var(--linha); padding: 14px 28px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.topo-titulo { font-weight: 600; color: var(--marinho); }
.topo-usuario { display: flex; align-items: center; gap: 14px; font-size: 13px; color: var(--texto-2); }
.topo-usuario form { margin: 0; }
.conteudo { padding: 26px 28px 60px; max-width: 1480px; width: 100%; }

/* Componentes */
.cartao { background: #fff; border-radius: var(--raio); border: 1px solid #E2E6EC; padding: 20px 22px; margin-bottom: 18px; }
.cartao > h2:first-child, .cartao > h3:first-child { margin-top: 0; }
.grade { display: grid; gap: 18px; }
.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g-2-1 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
@media (max-width: 1100px) { .g4 { grid-template-columns: repeat(2, 1fr); } .g3, .g-2-1, .g2 { grid-template-columns: 1fr; } }
@media (max-width: 860px) { .layout { flex-direction: column; } .lateral { width: 100%; height: auto; position: static; border-right: 0; border-bottom: 4px solid var(--dourado); } .principal { margin-left: 0; } .logo-lateral { max-width: 260px; } }
.indicador { background: #fff; border: 1px solid #E2E6EC; border-radius: var(--raio); padding: 16px 18px; border-top: 3px solid var(--marinho); }
.indicador.destaque { border-top-color: var(--dourado); }
.indicador .valor { font-size: 30px; font-weight: 700; color: var(--marinho); line-height: 1.1; }
.indicador .rotulo { font-size: 12px; color: var(--texto-2); margin-top: 4px; }
.vazio { text-align: center; padding: 34px 20px; color: var(--texto-2); border: 1px dashed var(--linha); border-radius: var(--raio); background: #FAFBFC; }

.btn { display: inline-block; border: 0; border-radius: 8px; padding: 9px 16px; font: 500 13px "Poppins", sans-serif; cursor: pointer; background: var(--marinho); color: #fff; text-decoration: none; }
.btn:hover { background: var(--marinho-2); text-decoration: none; }
.btn-ouro { background: var(--dourado); color: #fff; }
.btn-ouro:hover { background: #B8761F; }
.btn-sec { background: #fff; color: var(--marinho); border: 1px solid var(--linha); }
.btn-sec:hover { background: var(--fundo); }
.btn-perigo { background: var(--vermelho); }
.btn-peq { padding: 5px 10px; font-size: 12px; }
.btn-link { background: none; border: 0; color: var(--azul); cursor: pointer; font: inherit; padding: 0; }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }

table.tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabela th { text-align: left; font-weight: 600; color: var(--texto-2); font-size: 11.5px; text-transform: uppercase; letter-spacing: .05em; border-bottom: 2px solid var(--linha); padding: 8px 10px; }
.tabela td { border-bottom: 1px solid #E8EBF0; padding: 9px 10px; vertical-align: top; }
.tabela tr:hover td { background: #F7F9FB; }
.tabela-rolagem { overflow-x: auto; }

.etiqueta { display: inline-block; font-size: 11px; font-weight: 600; padding: 2px 9px; border-radius: 20px; background: var(--azul-claro); color: var(--azul); white-space: nowrap; }
.etiqueta.ouro { background: var(--dourado-claro); color: #8A5A16; }
.etiqueta.marinho { background: var(--marinho); color: #fff; }
.etiqueta.vermelho { background: var(--vermelho-claro); color: var(--vermelho); }
.etiqueta.verde { background: var(--verde-claro); color: var(--verde); }
.etiqueta.cinza { background: #ECEEF2; color: #5B6475; }
.etiqueta.teste { background: #FFE9A8; color: #6B4E00; border: 1px dashed #B58A00; }
.p1 { background: var(--vermelho-claro); color: var(--vermelho); }
.p2 { background: var(--dourado-claro); color: #8A5A16; }
.p3 { background: #ECEEF2; color: #5B6475; }

.mensagens { margin-bottom: 16px; }
.msg { padding: 11px 16px; border-radius: 8px; margin-bottom: 8px; background: var(--azul-claro); color: var(--marinho); border-left: 4px solid var(--azul); }
.msg-success { background: var(--verde-claro); border-left-color: var(--verde); }
.msg-error { background: var(--vermelho-claro); border-left-color: var(--vermelho); color: #6B1F1F; }
.msg-warning { background: var(--dourado-claro); border-left-color: var(--dourado); }
.aviso { background: var(--dourado-claro); border-left: 4px solid var(--dourado); padding: 12px 16px; border-radius: 8px; margin-bottom: 16px; color: #5A3B0E; }
.aviso-fino { font-size: 12px; color: var(--texto-2); border-left: 3px solid var(--dourado); padding-left: 10px; }
.citacao { font-family: "Lora", Georgia, serif; font-style: italic; border-left: 4px solid var(--dourado); padding: 4px 0 4px 16px; color: var(--marinho); }

/* Formulários */
form .campo { margin-bottom: 12px; }
label { display: block; font-size: 12px; font-weight: 500; color: var(--texto-2); margin-bottom: 4px; }
input[type=text], input[type=password], input[type=email], input[type=number], input[type=date], input[type=datetime-local], input[type=url], input[type=search], select, textarea {
  width: 100%; border: 1px solid var(--linha); border-radius: 8px; padding: 8px 10px; font: 13px "Poppins", sans-serif; background: #fff; color: var(--texto); }
input:focus, select:focus, textarea:focus { outline: 2px solid rgba(44,90,160,.25); border-color: var(--azul); }
input[type=file] { font: 13px "Poppins", sans-serif; }
.filtros { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px 12px; align-items: end; }
.filtros .largo { grid-column: span 2; }
.errorlist { color: var(--vermelho); font-size: 12px; margin: 4px 0; padding-left: 16px; }
.helptext { font-size: 11.5px; color: var(--texto-2); }
ul.checks { list-style: none; padding: 0; margin: 0; }
ul.checks label { display: flex; gap: 6px; align-items: center; color: var(--texto); font-weight: 400; font-size: 13px; }

/* Detalhe */
.dl { display: grid; grid-template-columns: 180px 1fr; gap: 6px 14px; margin: 0; }
.dl dt { color: var(--texto-2); font-size: 12px; }
.dl dd { margin: 0; }
.evidencia { border: 1px solid #E2E6EC; border-radius: 8px; padding: 12px 14px; margin-bottom: 10px; }
.evidencia.fato { border-left: 4px solid var(--azul); }
.evidencia.analise_espacial { border-left: 4px solid var(--marinho); }
.evidencia.hipotese, .evidencia.interpretacao { border-left: 4px solid var(--dourado); }
.evidencia.nao_confirmado { border-left: 4px solid var(--vermelho); }
.linha-tempo { list-style: none; margin: 0; padding: 0; }
.linha-tempo li { border-left: 2px solid var(--linha); padding: 0 0 12px 14px; position: relative; font-size: 12.5px; }
.linha-tempo li::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--dourado); position: absolute; left: -5px; top: 5px; }
pre.texto { white-space: pre-wrap; font: inherit; margin: 0; }
details summary { cursor: pointer; font-weight: 500; color: var(--marinho); }

/* Mapa */
.mapa { height: 460px; border-radius: var(--raio); border: 1px solid var(--linha); background: #DDE3EA; }
.mapa.alto { height: 620px; }
.mapa.baixo { height: 320px; }
.mapa-aviso { font-size: 12px; color: var(--texto-2); margin-top: 6px; min-height: 18px; }
.leaflet-container { font-family: "Poppins", sans-serif; }
.popup-titulo { font-weight: 600; color: var(--marinho); }

/* Barras simples (distribuição) */
.barra-linha { display: grid; grid-template-columns: 200px 1fr 40px; gap: 10px; align-items: center; font-size: 12.5px; margin-bottom: 6px; }
.barra { background: #E8EBF0; border-radius: 4px; height: 10px; overflow: hidden; }
.barra > span { display: block; height: 100%; background: var(--marinho); }
.paginacao { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 14px; font-size: 13px; }

/* Login */
body.login { background: var(--marinho); min-height: 100vh; display: flex; }
.login-wrap { display: grid; grid-template-columns: 1.1fr 1fr; width: 100%; min-height: 100vh; }
.login-marca { padding: 60px 64px; display: flex; flex-direction: column; justify-content: space-between; color: #fff; border-right: 4px solid var(--dourado); }
.login-marca img { width: 100%; max-width: 420px; }
.login-marca .grande { font-size: 44px; font-weight: 700; line-height: 1.05; margin: 40px 0 16px; }
.login-marca .blocos { display: flex; gap: 8px; margin: 26px 0; }
.login-marca .blocos span { width: 38px; height: 50px; border-radius: 7px; background: #13224A; }
.login-marca .blocos span.o { background: var(--dourado); }
.login-form { background: var(--fundo); display: flex; align-items: center; justify-content: center; padding: 40px; }
.login-caixa { background: #fff; border-radius: 14px; padding: 38px 36px; width: 100%; max-width: 400px; box-shadow: 0 10px 40px rgba(0,12,42,.12); }
.login-caixa .logo-claro { width: 100%; margin-bottom: 26px; }
.login-caixa .assinatura-login { margin-top: 26px; display: flex; justify-content: center; }
.login-caixa .assinatura-login img { height: 30px; }
@media (max-width: 860px) { .login-wrap { grid-template-columns: 1fr; } .login-marca { display: none; } }
.mt { margin-top: 18px; } .mb0 { margin-bottom: 0; } .direita { text-align: right; } .oculto { display: none; }
.lista-sugestoes { border: 1px solid var(--linha); border-radius: 8px; background: #fff; margin-top: 2px; max-height: 220px; overflow-y: auto; position: absolute; z-index: 1000; width: 100%; }
.lista-sugestoes button { display: block; width: 100%; text-align: left; border: 0; background: #fff; padding: 7px 10px; font: 13px "Poppins", sans-serif; cursor: pointer; }
.lista-sugestoes button:hover { background: var(--fundo); }
.relativo { position: relative; }

.login-rodape { display: flex; justify-content: space-between; align-items: center; gap: 16px; color: #8F9AB0; }
.login-rodape img { width: 200px; max-width: 45%; height: auto; }

/* ---------- Captação: páginas públicas do diagnóstico ---------- */
body.publico { background: var(--fundo); }
.pub-topo { background: var(--marinho); color: #fff; padding: 18px 24px; }
.pub-topo-in { max-width: 860px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.pub-topo img { height: 52px; }
.pub-topo .blocos-mini { display: flex; gap: 4px; }
.pub-topo .blocos-mini span { width: 10px; height: 10px; background: #fff; display: block; }
.pub-topo .blocos-mini span.o { background: var(--dourado); }
.pub-faixa { background: var(--marinho); color: #fff; padding: 8px 24px 34px; }
.pub-faixa-in { max-width: 860px; margin: 0 auto; }
.pub-faixa h1 { color: #fff; font-size: 30px; margin-bottom: 10px; }
.pub-faixa .sobretitulo { color: var(--dourado); }
.pub-faixa p { color: #D9DEE8; max-width: 720px; }
.pub-corpo { max-width: 860px; margin: -18px auto 0; padding: 0 16px 30px; }
.pub-rodape { max-width: 860px; margin: 0 auto; padding: 10px 16px 30px; display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; color: var(--texto-2); font-size: 12px; }
.pub-rodape img { height: 20px; }
.pergunta { border-bottom: 1px solid #E8EBF0; padding: 14px 0; display: grid; grid-template-columns: 34px 1fr auto; gap: 12px; align-items: start; }
.pergunta:last-child { border-bottom: 0; }
.pergunta .num { width: 30px; height: 30px; border-radius: 50%; background: var(--marinho); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 13px; }
.pergunta .cap { font-size: 11px; color: var(--texto-2); margin-top: 3px; }
.pergunta ul, .opcoes-radio ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 14px; }
.pergunta ul li label, .opcoes-radio label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; white-space: nowrap; }
.pergunta.com-erro { background: var(--vermelho-claro); }
.form-pub .campo { margin-bottom: 12px; }
.form-pub label { display: block; font-weight: 500; font-size: 13px; margin-bottom: 4px; }
.form-pub input[type=text], .form-pub input[type=email], .form-pub input[type=number], .form-pub select { width: 100%; padding: 9px 11px; border: 1px solid var(--linha); border-radius: 8px; font: inherit; background: #fff; }
.consentimento { background: var(--dourado-claro); border-radius: 8px; padding: 14px 16px; display: flex; gap: 10px; align-items: flex-start; }
.consentimento input { margin-top: 4px; }
.isca { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.resultado-faixa { border-left: 5px solid var(--dourado); }
.resultado-faixa.risco_alto { border-left-color: var(--vermelho); }
.resultado-faixa.bem_encaminhada { border-left-color: var(--verde); }
.placar { font-size: 44px; font-weight: 700; color: var(--marinho); line-height: 1; }
.placar small { font-size: 18px; color: var(--texto-2); font-weight: 500; }
.calc td, .calc th { text-align: right; }
.calc td:first-child, .calc th:first-child { text-align: left; }
@media (max-width: 640px) { .pergunta { grid-template-columns: 30px 1fr; } .pergunta ul { grid-column: 2; } .pub-faixa h1 { font-size: 24px; } }

/* ---------- Captação: funil interno ---------- */
.funil { display: grid; grid-template-columns: repeat(8, minmax(170px, 1fr)); gap: 10px; overflow-x: auto; padding-bottom: 6px; }
.funil-col { background: #fff; border: 1px solid #E2E6EC; border-radius: var(--raio); padding: 10px; min-height: 160px; }
.funil-col h3 { font-size: 12px; display: flex; justify-content: space-between; border-bottom: 2px solid var(--marinho); padding-bottom: 6px; }
.funil-col.fim h3 { border-bottom-color: var(--linha); }
.funil-card { display: block; border: 1px solid #E8EBF0; border-radius: 8px; padding: 8px 9px; margin-bottom: 7px; font-size: 12px; color: var(--texto); }
.funil-card:hover { border-color: var(--dourado); text-decoration: none; }
.funil-card strong { display: block; color: var(--marinho); font-size: 12.5px; }
.funil-card.p1 { border-left: 3px solid var(--vermelho); }
.funil-card.p2 { border-left: 3px solid var(--dourado); }
.funil-card.p3 { border-left: 3px solid var(--linha); }
.resp-sim { color: var(--verde); font-weight: 600; }
.resp-nao { color: var(--vermelho); font-weight: 600; }
.link-publico { font-family: monospace; background: var(--fundo); padding: 3px 7px; border-radius: 5px; word-break: break-all; }
.dl.estreita { grid-template-columns: 110px 1fr; }
.pergunta div[id^="id_p"] { display: flex; gap: 14px; } .pergunta div[id^="id_p"] label { display: inline-flex; gap: 6px; align-items: center; cursor: pointer; }
.dl dd { overflow-wrap: anywhere; }
@media (max-width: 640px) { .pub-topo img { height: auto; max-width: 72%; } .pub-topo .blocos-mini span { width: 7px; height: 7px; } }
