:root {
  --azul-escuro: #1b2a4a;
  --azul-escuro-2: #24365e;
  --dourado: #a9822f;
  --dourado-claro: #c9a961;
  --fundo: #f5f4f1;
  --texto: #29292c;
  --texto-suave: #6b6b70;
  --borda: #dcdad4;
  --branco: #ffffff;
  --sucesso: #2e7d4f;
  --erro: #b3392c;
  --alerta: #b3811c;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background: var(--fundo);
  color: var(--texto);
}

a { color: var(--azul-escuro); }

.topo {
  background: var(--azul-escuro);
  color: var(--branco);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 24px;
  height: 60px;
}

.topo .marca {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.25rem;
  letter-spacing: 0.02em;
  color: var(--branco);
  text-decoration: none;
}

.topo .marca span { color: var(--dourado-claro); }

.topo .marca .logo-escritorio { max-height: 36px; display: block; }

.topo .marca .marca-logo { height: 40px; display: block; }

.topo nav { display: flex; gap: 4px; }

.topo nav a {
  color: #d8ddea;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 0.92rem;
}

.menu-mais { position: relative; }

.menu-mais summary {
  color: #d8ddea;
  text-decoration: none;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 0.92rem;
  cursor: pointer;
  list-style: none;
}

.menu-mais summary::-webkit-details-marker { display: none; }

.menu-mais[open] summary, .menu-mais summary.ativo {
  background: rgba(255, 255, 255, 0.12);
  color: var(--branco);
}

.menu-mais-lista {
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--branco);
  border: 1px solid var(--borda);
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  padding: 6px;
  min-width: 160px;
  z-index: 20;
  display: flex;
  flex-direction: column;
}

.topo .menu-mais-lista a {
  color: var(--texto);
  text-decoration: none;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 0.9rem;
}

.topo .menu-mais-lista a:hover { background: var(--fundo); }

.topo nav a:hover, .topo nav a.ativo {
  background: rgba(255, 255, 255, 0.12);
  color: var(--branco);
}

.topo .usuario {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.88rem;
  color: #c7cde0;
}

.topo .usuario a { color: #c7cde0; }

.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 28px 24px 60px;
}

.cabecalho-pagina {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.cabecalho-pagina h1 {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.5rem;
  margin: 0;
  color: var(--azul-escuro);
}

.card {
  background: var(--branco);
  border: 1px solid var(--borda);
  border-radius: 10px;
  padding: 20px;
  margin-bottom: 20px;
}

.grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

.stat {
  background: var(--branco);
  border: 1px solid var(--borda);
  border-left: 4px solid var(--azul-escuro);
  border-radius: 8px;
  padding: 16px 18px;
}

.stat.atrasado { border-left-color: var(--erro); }
.stat.alerta { border-left-color: var(--alerta); }

.stat .numero { font-size: 1.8rem; font-weight: 700; color: var(--azul-escuro); }
.stat.atrasado .numero { color: var(--erro); }
.stat .rotulo { font-size: 0.85rem; color: var(--texto-suave); }

table { width: 100%; border-collapse: collapse; font-size: 0.92rem; }

th, td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--borda);
}

th { color: var(--texto-suave); font-weight: 600; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.03em; }

tr:hover td { background: #faf9f7; }

.badge {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: 0.78rem;
  font-weight: 600;
  background: #e7e5df;
  color: var(--texto);
}

.badge.ativo { background: #dcefe2; color: var(--sucesso); }
.badge.suspenso { background: #f7e6c8; color: var(--alerta); }
.badge.arquivado, .badge.encerrado { background: #e3e2df; color: var(--texto-suave); }
.badge.pendente { background: #f7e6c8; color: var(--alerta); }
.badge.cumprido { background: #dcefe2; color: var(--sucesso); }
.badge.perdido, .badge.atrasado { background: #f6dad5; color: var(--erro); }
.badge.pago { background: #dcefe2; color: var(--sucesso); }

.btn {
  display: inline-block;
  padding: 9px 16px;
  border-radius: 6px;
  border: 1px solid var(--azul-escuro);
  background: var(--azul-escuro);
  color: var(--branco);
  text-decoration: none;
  font-size: 0.9rem;
  cursor: pointer;
}

.btn:hover { background: var(--azul-escuro-2); }

.btn.secundario {
  background: transparent;
  color: var(--azul-escuro);
}

.btn.secundario:hover { background: #eceaf3; }

.btn.perigo {
  background: transparent;
  border-color: var(--erro);
  color: var(--erro);
}

.btn.perigo:hover { background: #fbeae7; }

.btn.pequeno { padding: 5px 10px; font-size: 0.8rem; }

form.form-padrao { max-width: 720px; }

.campo { margin-bottom: 16px; }

.campo label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--texto);
}

.linha-campos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}

input[type=text], input[type=email], input[type=password], input[type=date],
input[type=time], input[type=number], input[type=file], select, textarea {
  width: 100%;
  padding: 9px 11px;
  border: 1px solid var(--borda);
  border-radius: 6px;
  font-size: 0.92rem;
  font-family: inherit;
  background: var(--branco);
  color: var(--texto);
}

textarea { resize: vertical; min-height: 80px; }

input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--azul-escuro);
  box-shadow: 0 0 0 2px rgba(27, 42, 74, 0.12);
}

.checkbox-linha { display: flex; align-items: center; gap: 8px; }
.checkbox-linha input { width: auto; }

.busca-form { display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; }
.busca-form input, .busca-form select { width: auto; min-width: 200px; }

.flashes { list-style: none; padding: 0; margin: 0 0 18px; }

.flashes li {
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 8px;
  font-size: 0.9rem;
}

.flashes li.success { background: #dcefe2; color: var(--sucesso); }
.flashes li.error { background: #f6dad5; color: var(--erro); }
.flashes li.info { background: #e4e9f5; color: var(--azul-escuro); }

.vazio { color: var(--texto-suave); font-style: italic; padding: 20px 0; }

.secao-titulo {
  font-size: 1.05rem;
  color: var(--azul-escuro);
  margin: 0 0 12px;
  font-family: Georgia, "Times New Roman", serif;
}

.info-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.info-lista .item .rotulo { font-size: 0.78rem; color: var(--texto-suave); text-transform: uppercase; letter-spacing: 0.03em; }
.info-lista .item .valor { font-size: 0.95rem; margin-top: 2px; }

.acoes-linha { display: flex; gap: 8px; align-items: center; }

.pagina-login {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--azul-escuro);
}

.caixa-login {
  background: var(--branco);
  padding: 40px;
  border-radius: 12px;
  width: 100%;
  max-width: 380px;
}

.caixa-login h1 {
  font-family: Georgia, "Times New Roman", serif;
  text-align: center;
  color: var(--azul-escuro);
  margin-top: 0;
}

.caixa-login .logo-login {
  display: block;
  width: 100%;
  height: auto;
  margin-bottom: 28px;
}

.caixa-login .btn { width: 100%; text-align: center; }

.tabela-calendario { table-layout: fixed; }
.tabela-calendario th { text-align: center; }

.dia-calendario {
  vertical-align: top;
  height: 100px;
  padding: 6px;
  border: 1px solid var(--borda);
}

.dia-calendario.dia-vazio { background: #fafaf8; }
.dia-calendario.dia-hoje { background: #fdf6ec; }

.numero-dia { font-weight: 600; font-size: 0.85rem; margin-bottom: 4px; color: var(--texto-suave); }

.evento-calendario {
  display: block;
  font-size: 0.75rem;
  background: #e4e9f5;
  color: var(--azul-escuro);
  padding: 2px 6px;
  border-radius: 4px;
  margin-bottom: 3px;
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.evento-calendario.evento-audiencia { background: #f7e6c8; color: var(--alerta); }

.editor-toolbar {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
  align-items: center;
  padding: 6px;
  background: var(--fundo);
  border: 1px solid var(--borda);
  border-radius: 6px 6px 0 0;
  border-bottom: none;
}

.btn-editor {
  border: 1px solid var(--borda);
  background: var(--branco);
  border-radius: 4px;
  padding: 5px 10px;
  font-size: 0.85rem;
  cursor: pointer;
  min-width: 30px;
}

.btn-editor:hover { background: #eceaf3; }

.separador-editor { width: 1px; height: 20px; background: var(--borda); margin: 0 4px; }

.editor-conteudo {
  min-height: 260px;
  border: 1px solid var(--borda);
  border-radius: 0 0 6px 6px;
  padding: 12px;
  font-size: 0.92rem;
  background: var(--branco);
  overflow-y: auto;
}

.editor-conteudo:focus { outline: none; border-color: var(--azul-escuro); }
.editor-conteudo p { margin: 0 0 10px; }

.kanban {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  align-items: start;
}

.kanban-coluna {
  background: var(--branco);
  border: 1px solid var(--borda);
  border-radius: 10px;
  padding: 14px;
}

.kanban-titulo {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1rem;
  color: var(--azul-escuro);
  margin: 0 0 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.kanban-contagem {
  background: var(--fundo);
  color: var(--texto-suave);
  border-radius: 10px;
  padding: 1px 8px;
  font-size: 0.78rem;
  font-family: -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
}

.kanban-cartao {
  background: var(--fundo);
  border: 1px solid var(--borda);
  border-radius: 8px;
  padding: 10px 12px;
  margin-bottom: 10px;
}

.kanban-cartao-titulo { font-weight: 600; font-size: 0.92rem; margin-bottom: 4px; }
.kanban-cartao-descricao { font-size: 0.85rem; color: var(--texto-suave); margin-bottom: 6px; }
.kanban-cartao-processo { display: block; font-size: 0.8rem; margin-bottom: 6px; }
.kanban-cartao-rodape { font-size: 0.78rem; color: var(--texto-suave); margin-bottom: 8px; }
.kanban-cartao-acoes { display: flex; gap: 4px; flex-wrap: wrap; }

@media (max-width: 768px) {
  .kanban { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .topo {
    flex-direction: column;
    align-items: stretch;
    height: auto;
    padding: 12px 16px;
    gap: 10px;
  }

  .topo .marca { align-self: flex-start; }

  .topo nav {
    flex-wrap: wrap;
    gap: 2px;
  }

  .topo nav a { padding: 8px 10px; font-size: 0.85rem; }

  .topo .usuario {
    justify-content: space-between;
    width: 100%;
  }

  .container { padding: 18px 14px 40px; }

  .cabecalho-pagina { flex-direction: column; align-items: flex-start; }

  .grid-cards { grid-template-columns: 1fr; }

  .linha-campos { grid-template-columns: 1fr; }

  .busca-form { flex-direction: column; align-items: stretch; }
  .busca-form input, .busca-form select { width: 100%; }

  /* Tabelas não cabem na tela — deixa rolar de lado em vez de espremer ou
     quebrar o layout. */
  .card { overflow-x: auto; }

  table { font-size: 0.85rem; }
  th, td { padding: 8px; }

  .info-lista { grid-template-columns: 1fr; }

  .dia-calendario { height: 72px; padding: 4px; }
  .numero-dia { font-size: 0.75rem; }
  .evento-calendario { font-size: 0.68rem; padding: 1px 4px; }

  .acoes-linha { flex-wrap: wrap; }
}
