:root {
  --fundo: #f3f4f6;
  --cartao: #ffffff;
  --linha: #e3e5e8;
  --texto: #1f2328;
  --suave: #6b7280;
  --eu: #c2410c;          /* Sua vez */
  --eu-fundo: #fff4ec;
  --candidato: #1d4ed8;   /* Candidato */
  --candidato-fundo: #eef3ff;
  --sistema: #6d28d9;     /* Sistema */
  --sistema-fundo: #f3efff;
  --concluido: #15803d;   /* Concluído */
  --concluido-fundo: #edf8f0;
  --alerta: #b91c1c;
  --alerta-fundo: #fdecec;
  --raio: 8px;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--fundo); color: var(--texto);
  font: 14px/1.45 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
/* D-070: uma linha só em qualquer largura — o menu encolhe e rola de lado; os botões nunca são empurrados */
.topo { display: flex; flex-wrap: nowrap; gap: 12px; align-items: center; padding: 10px 20px; white-space: nowrap;
  background: var(--cartao); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 5; }
.topo .marca { font-weight: 600; margin-right: 8px; text-decoration: none; flex: none; }
.topo nav { display: flex; min-width: 0; flex: 0 1 auto; overflow-x: auto; scrollbar-width: none; }
.topo nav::-webkit-scrollbar { display: none; }
.topo .espaco { flex: 1 1 0; min-width: 0; }
.topo .botao, .topo form { flex: none; }
.faixa-filtros { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; padding: 8px 20px;
  background: var(--cartao); border-bottom: 1px solid var(--linha); }
.faixa-filtros:empty { display: none; }
@media (max-width: 720px) { .topo { padding: 8px 12px; gap: 8px; } .topo .marca { display: none; }
  .faixa-filtros { padding: 8px 12px; } .busca input { width: 160px; } }
.topo nav a { text-decoration: none; padding: 6px 10px; border-radius: 6px; color: var(--suave); }
.topo nav a.ativo { color: var(--texto); background: var(--fundo); }
.filtros { display: flex; flex-wrap: wrap; gap: 4px; }
.filtros.origem a { border-style: dashed; }
.filtros a { text-decoration: none; padding: 5px 10px; border-radius: 999px; border: 1px solid var(--linha); color: var(--suave); }
.filtros a.ativo { border-color: var(--texto); color: var(--texto); }
.filtros .n { font-variant-numeric: tabular-nums; margin-left: 4px; }
.busca input { padding: 6px 10px; border: 1px solid var(--linha); border-radius: 6px; width: 220px; }
.espaco { flex: 1; }
.botao { display: inline-block; padding: 7px 12px; border-radius: 6px; border: 1px solid var(--linha); background: var(--cartao);
  cursor: pointer; text-decoration: none; }
.botao.principal { background: var(--texto); color: #fff; border-color: var(--texto); }
.botao.perigo { color: var(--alerta); border-color: #f0b4b4; }
.botao:disabled { opacity: .45; cursor: not-allowed; }
.sino { position: relative; }
.sino .qtd { background: var(--alerta); color: #fff; border-radius: 999px; padding: 0 6px; font-size: 12px; margin-left: 4px; }
.faixa { padding: 8px 20px; background: var(--alerta-fundo); color: var(--alerta); border-bottom: 1px solid #f3c8c8; }
.faixa.ensaio { background: #fffbea; color: #7a5a00; border-color: #efe2a8; }

/* D-067: o quadro cabe na tela; cada coluna rola sozinha, com o cabeçalho fixo */
.quadro { display: flex; gap: 10px; padding: 12px 16px; overflow-x: auto; align-items: stretch;
  height: calc(100vh - var(--topo, 120px)); min-height: 420px; }
.coluna { flex: 1 1 0; min-width: 185px; max-width: 300px; background: #eceef1; border-radius: var(--raio);
  display: flex; flex-direction: column; min-height: 0; }
.coluna h2 { font-size: 13px; font-weight: 600; margin: 0; padding: 9px 10px 7px; display: flex; justify-content: space-between;
  color: var(--suave); position: sticky; top: 0; background: inherit; border-radius: var(--raio) var(--raio) 0 0; z-index: 1; }
.coluna .cartoes { overflow-y: auto; padding: 0 7px 7px; flex: 1; min-height: 0; }
/* D-141: a data que ordena a coluna e o sentido; no cartão, a data usada */
.ordem { display: flex; gap: 4px; align-items: center; padding: 0 8px 6px; font-size: 11px; color: var(--suave); }
.ordem select { font-size: 11px; padding: 2px 4px; min-width: 0; flex: 1 1 auto; border-radius: 6px; }
.ordem .inverter { font-size: 12px; padding: 1px 6px; border-radius: 6px; cursor: pointer; flex: none; }
.ordem .sentido { flex: none; white-space: nowrap; }
.card .data-ordem { font-size: 11px; color: var(--suave); margin-top: 2px; }
.coluna.destaque { background: var(--eu-fundo); outline: 2px solid #f5c7a9; }
.coluna.destaque h2 { color: var(--eu); }
.coluna.alvo { outline: 2px dashed var(--concluido); }
.recolhidas { flex: 0 0 160px; display: flex; flex-direction: column; gap: 8px; overflow-y: auto; }
.recolhidas details { background: #eceef1; border-radius: var(--raio); padding: 8px; }
.recolhidas summary { cursor: pointer; color: var(--suave); font-weight: 600; font-size: 13px; }

.card { display: block; background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 7px 9px;
  margin-bottom: 6px; text-decoration: none; cursor: pointer; font-size: 13px; line-height: 1.35;
  overflow-wrap: normal; word-break: normal; hyphens: manual; }
.card:hover { border-color: #c9ccd1; }
.card.do-atual { opacity: .6; }
.card.do-atual:hover { opacity: 1; }
.card .t { font-weight: 600; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 2px 6px; }
.card .t .nome { min-width: 0; }
.card .sub { color: var(--suave); font-size: 12px; }
.card .espera-cartao { font-size: 12px; color: var(--texto); margin-top: 2px; }
.card .pessoas { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: 12px; margin: 3px 0 0; color: var(--suave); }
.card .etiquetas { margin-top: 3px; }
.ok { color: var(--concluido); } .falta { color: #9aa0a6; }
.card .ultima { font-size: 12px; color: var(--suave); font-style: italic; margin: 3px 0 0; }
.vez { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; white-space: nowrap; }
.vez.EU { color: var(--eu); background: var(--eu-fundo); }
.vez.CANDIDATO { color: var(--candidato); background: var(--candidato-fundo); }
.vez.SISTEMA { color: var(--sistema); background: var(--sistema-fundo); }
.vez.CONCLUIDO { color: var(--concluido); background: var(--concluido-fundo); }
.alerta { display: inline-block; font-size: 11px; color: var(--alerta); background: var(--alerta-fundo); border-radius: 4px;
  padding: 0 6px; margin: 2px 2px 0 0; }

.ficha { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 16px; padding: 16px 20px; }
@media (max-width: 1000px) { .ficha { grid-template-columns: 1fr; } }
.bloco { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px 16px; margin-bottom: 16px; }
.bloco h2 { font-size: 15px; margin: 0 0 10px; }
.bloco h3 { font-size: 13px; margin: 12px 0 6px; color: var(--suave); text-transform: uppercase; letter-spacing: .03em; }
.cabeca { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: baseline; }
.cabeca h1 { font-size: 20px; margin: 0; }
.dl { display: grid; grid-template-columns: 170px 1fr; gap: 4px 12px; }
.dl dt { color: var(--suave); } .dl dd { margin: 0; }
.selo { display: inline-block; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 999px; }
.selo.sim { color: var(--concluido); background: var(--concluido-fundo); }
.selo.nao { color: var(--alerta); background: var(--alerta-fundo); }
.regua { position: relative; height: 10px; background: #eceef1; border-radius: 5px; margin: 6px 0 2px; max-width: 360px; }
.regua .valor { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 5px; background: #9aa0a6; }
.regua .valor.bom { background: var(--concluido); } .regua .valor.baixo { background: var(--alerta); }
.regua .marca { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--texto); }
.fotos { display: flex; flex-wrap: wrap; gap: 10px; }
.foto { width: 150px; font-size: 12px; }
.foto img { width: 150px; height: 150px; object-fit: cover; border-radius: 6px; border: 1px solid var(--linha); cursor: zoom-in; background: #eee; }
.pessoa { border-top: 1px solid var(--linha); padding-top: 10px; margin-top: 10px; }
.pessoa:first-of-type { border-top: 0; margin-top: 0; padding-top: 0; }
.lateral { position: sticky; top: 70px; align-self: start; }
.pergunta { border-left: 3px solid var(--eu); }
.pergunta form { margin: 8px 0; }
.pergunta textarea, .resposta textarea { width: 100%; min-height: 64px; border: 1px solid var(--linha); border-radius: 6px; padding: 8px; }
.linha-tempo { max-height: 520px; overflow-y: auto; font-size: 13px; }
.msg { margin: 6px 0; padding: 7px 10px; border-radius: 8px; max-width: 90%; white-space: pre-wrap; }
.msg.entrada { background: #f1f2f4; }
.msg.saida { background: #eef3ff; margin-left: auto; }
.msg .quem { font-size: 11px; color: var(--suave); }
.evento { font-size: 12px; color: var(--suave); margin: 4px 0; }
.tabela { width: 100%; border-collapse: collapse; font-size: 13px; }
.tabela td, .tabela th { border-bottom: 1px solid var(--linha); padding: 5px 6px; text-align: left; vertical-align: top; }
.aceite pre { background: var(--fundo); padding: 10px; border-radius: 6px; white-space: pre-wrap; }
.erro { color: var(--alerta); background: var(--alerta-fundo); padding: 8px 12px; border-radius: 6px; margin: 0 0 12px; }

dialog { border: 1px solid var(--linha); border-radius: 10px; padding: 18px; width: min(520px, 92vw); }
dialog::backdrop { background: rgba(0,0,0,.35); }
.ampliada { max-width: 92vw; max-height: 86vh; }
.entrar { max-width: 360px; margin: 12vh auto; background: var(--cartao); border: 1px solid var(--linha); border-radius: 10px; padding: 24px; }
.entrar label { display: block; margin: 10px 0 4px; color: var(--suave); }
.entrar input { width: 100%; padding: 8px 10px; border: 1px solid var(--linha); border-radius: 6px; }
.lista-pend { list-style: none; padding: 0; margin: 0; }
.lista-pend li { background: var(--cartao); border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px; margin-bottom: 8px; }
.pagina { padding: 16px 20px; }
.selo-prioridade { display: inline-block; font-size: 11px; font-weight: 700; color: #fff; background: var(--alerta);
  border-radius: 4px; padding: 1px 6px; margin: 2px 4px 2px 0; }
.selo-marca { display: inline-block; font-size: 11px; color: var(--texto, #1f2937); background: #fef3c7;
  border: 1px solid #f59e0b; border-radius: 999px; padding: 1px 8px; margin: 2px 4px 0 0; }
.rg-por-dia { font-size: 13px; color: #6b7280; margin: 6px 0 10px; }

/* D-067: avisos numa linha só, recolhida; vermelho só para o que pede ação agora */
.avisos { background: #f8f9fa; border-bottom: 1px solid var(--linha); padding: 6px 20px; font-size: 13px; color: var(--suave); }
.avisos.urgente { background: var(--alerta-fundo); color: var(--alerta); border-color: #f3c8c8; }
.avisos summary { cursor: pointer; }
.avisos ul { margin: 6px 0 2px; padding-left: 18px; }
.avisos li { margin: 2px 0; color: var(--suave); }
.avisos li.urgente { color: var(--alerta); font-weight: 600; }
.avisos .desde { font-weight: 400; color: #9aa0a6; font-size: 12px; }

/* D-066: na ficha, documento e rosto lado a lado, grandes, clique amplia */
.lado-a-lado { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 8px 0 10px; }
.lado-a-lado figure { margin: 0; }
.lado-a-lado img { width: 100%; height: 340px; object-fit: contain; background: #eceef1; border-radius: 8px;
  border: 1px solid var(--linha); cursor: zoom-in; }
.lado-a-lado figcaption { font-size: 12px; color: var(--suave); margin-top: 4px; }
.lado-a-lado .vazio { height: 340px; display: flex; align-items: center; justify-content: center; background: #f6f7f8;
  border: 1px dashed var(--linha); border-radius: 8px; color: var(--suave); font-size: 13px; }
.espera { border-left: 4px solid var(--suave); }
.espera.acao { border-left-color: var(--eu); }
.espera.travado { border-left-color: #9aa0a6; background: #fafafa; }
.espera p { margin: 0; font-size: 15px; }
.destaque-processo { border-left: 4px solid var(--alerta); background: var(--alerta-fundo); }
.destaque-processo p { margin: 0; color: var(--alerta); }
.travado-motivo { color: var(--suave); font-size: 13px; margin: 6px 0; }

/* D-072: a página Fluxo */
.fluxo .suave { color: var(--suave); }
.fluxo .indice { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 8px 0 16px; font-size: 13px; }
.fluxo .passo h3 { font-size: 13px; color: var(--suave); margin: 12px 0 6px; font-weight: 600; }
.fluxo .balao { background: #e7f6e7; border-radius: 10px; padding: 8px 12px; margin: 6px 0; max-width: 640px;
  white-space: pre-wrap; overflow-wrap: anywhere; }
.fluxo .balao .botoes { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 6px; white-space: normal; }
.fluxo .balao .para { font-size: 12px; color: var(--suave); margin-top: 4px; white-space: normal; }
.fluxo .pilula { display: inline-block; border: 1px solid var(--linha); border-radius: 999px; padding: 2px 10px;
  background: var(--cartao); font-size: 13px; }
.fluxo .efeito { margin: 4px 0; color: var(--texto); }
.fluxo .nota { font-size: 13px; color: var(--suave); }
.fluxo .desvios td.se { width: 32%; font-weight: 500; vertical-align: top; }
.fluxo .etiqueta { font-size: 12px; font-weight: 400; color: var(--suave); border: 1px solid var(--linha);
  border-radius: 999px; padding: 1px 8px; }

/* D-073: a página Troca */
.troca-lista .suave { color: var(--suave); font-size: 12px; }
.troca-lista tr.verde td.estado { color: #15803d; }
.troca-lista tr.vermelho td.estado { color: var(--alerta); }
.troca-lista tr.nao-medido td.estado { color: #9aa0a6; }
.troca-lista td.estado { font-size: 18px; width: 24px; }
.troca-lista form { margin: 8px 0 12px; }

/* D-076: o que a pessoa vai receber, embaixo de cada botão */
.previa { font-size: 12px; color: var(--suave); margin: 4px 0 10px; white-space: pre-wrap; overflow-wrap: anywhere; }
.previa .canal { font-weight: 600; color: var(--texto); }
.previa .canal.fora { color: var(--alerta); }

/* D-085: mensagem que foi por modelo */
.etiqueta-modelo { font-size: 11px; color: var(--suave); border: 1px solid var(--linha); border-radius: 999px; padding: 0 6px; }
