:root {
  --primaria: #1e5a96;
  --primaria-escura: #15426f;
  --fundo: #f3f5f9;
  --cartao: #ffffff;
  --borda: #dde3ec;
  --texto: #22304a;
  --texto-suave: #64748b;
  --vermelho: #c0392b;
  --vermelho-fundo: #fdecea;
  --amarelo-fundo: #fef7e0;
  --amarelo-borda: #f0c94a;
  --verde: #1e7e34;
  --verde-fundo: #e8f5ec;
  --hoje-fundo: #e3eefc;
  --raio: 10px;
  --sombra: 0 1px 3px rgba(23, 43, 77, .12);
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  font-family: "Segoe UI", system-ui, -apple-system, Arial, sans-serif;
  background: var(--fundo);
  color: var(--texto);
  font-size: 14.5px;
  line-height: 1.45;
}
main { max-width: 1280px; margin: 0 auto; padding: 18px 20px 60px; }
h2 { margin: 0 0 6px; font-size: 1.25rem; }
h3 { margin: 0 0 10px; font-size: 1.02rem; }
code { background: #eef2f8; padding: 1px 5px; border-radius: 4px; }
.mini { color: var(--texto-suave); font-size: .82rem; margin: 6px 0 0; }

/* topo */
.topo {
  background: var(--primaria);
  color: #fff;
  display: flex;
  align-items: center;
  gap: 26px;
  padding: 0 20px;
  box-shadow: var(--sombra);
  position: sticky; top: 0; z-index: 40;
}
.marca { font-weight: 700; font-size: .95rem; line-height: 1.15; padding: 8px 0; white-space: nowrap; display: flex; align-items: center; gap: 10px; }
.marca img { height: 34px; width: auto; display: block; }
.marca-sufixo { color: #d6e4f5; font-weight: 500; font-size: .9rem; padding-left: 12px; border-left: 1px solid rgba(255, 255, 255, .35); }
.marca-login { display: flex; align-items: center; justify-content: center; gap: 12px; line-height: 1.2; }
.marca-login img { height: 52px; width: auto; }
.topo nav { display: flex; gap: 4px; }
.aba-nav {
  background: none; border: none; color: #d6e4f5; font: inherit;
  padding: 15px 14px 12px; cursor: pointer; border-bottom: 3px solid transparent;
}
.aba-nav:hover { color: #fff; }
.aba-nav.ativa { color: #fff; font-weight: 600; border-bottom-color: #fff; }
.aba-nav.sair { text-decoration: none; }
.topo nav + * { margin-left: auto; }
.topo-usuario { color: #d6e4f5; font-size: .85rem; white-space: nowrap; }
a.aba-nav { text-decoration: none; }

/* responsáveis (vários por prazo) */
.resp-badges { display: inline-flex; align-items: center; gap: 3px; flex-wrap: wrap; }
.avatar {
  display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px;
  border-radius: 50%; background: var(--primaria); color: #fff; font-size: .68rem; font-weight: 700;
  letter-spacing: .3px; flex-shrink: 0;
}
.resp-nomes { font-size: .8rem; color: var(--texto-suave); margin-left: 3px; }
.campo-resp { margin-bottom: 10px; }
.campo-resp .rotulo { display: block; font-size: .82rem; color: var(--texto-suave); margin-bottom: 4px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip {
  display: inline-flex !important; flex-direction: row !important; align-items: center; gap: 6px;
  padding: 5px 10px; border: 1px solid var(--borda); border-radius: 999px; background: #fff;
  cursor: pointer; font-size: .85rem !important; color: var(--texto) !important; margin: 0 !important; width: auto !important;
}
.chip.marcado { background: var(--hoje-fundo); border-color: var(--primaria); color: var(--primaria) !important; }
.chip input { width: auto !important; margin: 0; }
.chips-acoes { display: flex; gap: 2px; margin-bottom: 4px; }
.chips-acoes .btn.texto { padding: 2px 6px; font-size: .78rem; }
@media print { .resp-nomes { display: inline; } }

/* administração */
.admin-grade { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, 1fr); gap: 16px; align-items: start; }
.admin-usuarios { grid-row: span 2; }
@media (max-width: 1000px) { .admin-grade { grid-template-columns: 1fr; } .admin-usuarios { grid-row: auto; } }
code.quebra { display: block; word-break: break-all; padding: 8px; }
.login p a { color: var(--primaria); }

/* tela de login */
.login { max-width: 420px; margin: 60px auto; }
.login .cartao { padding: 26px; }
.login h2 { margin-bottom: 14px; }
.login label { display: flex; flex-direction: column; gap: 3px; font-size: .82rem; color: var(--texto-suave); margin-bottom: 12px; }
.login input { width: 100%; }
.login .erro { color: var(--vermelho); margin: 0 0 10px; }

/* botões */
.btn {
  font: inherit; border-radius: 8px; padding: 8px 14px; cursor: pointer;
  border: 1px solid transparent; white-space: nowrap;
}
.btn.primario { background: var(--primaria); color: #fff; }
.btn.primario:hover { background: var(--primaria-escura); }
.btn.secundario { background: #fff; color: var(--primaria); border-color: #bdd0e6; }
.btn.secundario:hover { background: #f0f5fb; }
.btn.perigo { background: #fff; color: var(--vermelho); border-color: #e8b4ae; }
.btn.perigo:hover { background: var(--vermelho-fundo); }
.btn.texto { background: none; border: none; color: var(--primaria); padding: 4px 8px; }
.btn.texto:hover { text-decoration: underline; }
.btn.concluir { background: var(--verde); color: #fff; border-color: var(--verde); padding: 5px 10px; font-size: .85rem; }
.btn.concluir:hover { background: #166329; }
.btn:disabled { opacity: .55; cursor: wait; }
.largura-total { width: 100%; }

/* barra do topo das telas */
.barra-topo {
  display: flex; justify-content: space-between; align-items: center;
  gap: 14px; flex-wrap: wrap; margin-bottom: 12px;
}
.acoes-topo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.menu-wrap { position: relative; }
.menu {
  position: absolute; right: 0; top: calc(100% + 4px); background: #fff;
  border: 1px solid var(--borda); border-radius: 8px; box-shadow: var(--sombra);
  min-width: 190px; z-index: 30; overflow: hidden;
}
.menu button {
  display: block; width: 100%; text-align: left; background: none; border: none;
  font: inherit; padding: 10px 14px; cursor: pointer;
}
.menu button:hover { background: #f0f5fb; }

/* abas internas */
.abas { display: flex; gap: 4px; border-bottom: 2px solid var(--borda); }
.aba {
  background: none; border: none; font: inherit; padding: 9px 16px; cursor: pointer;
  color: var(--texto-suave); border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.aba.ativa { color: var(--primaria); font-weight: 600; border-bottom-color: var(--primaria); }

/* filtros */
.filtros {
  display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: end;
  background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 12px 14px; margin-bottom: 14px; box-shadow: var(--sombra);
}
.filtros.compacto { padding: 8px 10px; margin-bottom: 10px; box-shadow: none; }
.filtros label { display: flex; flex-direction: column; gap: 3px; font-size: .8rem; color: var(--texto-suave); }
.filtros .busca { flex: 1; min-width: 220px; }
input, select, textarea {
  font: inherit; color: var(--texto); background: #fff;
  border: 1px solid var(--borda); border-radius: 7px; padding: 7px 9px;
}
input:focus, select:focus, textarea:focus { outline: 2px solid #9cc0e8; border-color: var(--primaria); }
label.check { flex-direction: row !important; align-items: center; gap: 8px; font-size: .9rem !important; color: var(--texto) !important; }
label.check input { width: auto; }

/* tabela */
.tabela { width: 100%; border-collapse: collapse; background: var(--cartao); border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); }
.tabela th {
  text-align: left; font-size: .78rem; text-transform: uppercase; letter-spacing: .4px;
  color: var(--texto-suave); background: #f7f9fc; padding: 10px 12px; border-bottom: 1px solid var(--borda);
}
.tabela td { padding: 10px 12px; border-bottom: 1px solid #edf1f7; vertical-align: top; }
.tabela tr:last-child td { border-bottom: none; }
/* Prazos e audiências: vencido = rosa, vencendo hoje = amarelo, o resto intercala cinza claro e branco */
#view-agenda .tabela tbody tr:nth-child(even) td { background: #f1f4f8; }
.tabela tr.vencido td { background: var(--vermelho-fundo) !important; }
.tabela tr.hoje td { background: var(--amarelo-fundo) !important; }
.tabela tr.finalizado td { color: var(--texto-suave); }
/* baixa pedida pelo gerente, à espera da confirmação do administrador */
.baixa-pendente {
  display: inline-block; margin-top: 4px; padding: 2px 9px; border-radius: 10px; font-size: .76rem; font-weight: 500;
  background: var(--amarelo-fundo); color: #8a6d1a; border: 1px solid var(--amarelo-borda); white-space: normal;
}
[hidden] { display: none !important; }
.aviso-pendentes {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0 0 10px;
  padding: 8px 12px; border-radius: 8px; background: var(--amarelo-fundo); border: 1px solid var(--amarelo-borda); font-size: .9rem;
}
.fin-abas-barra { margin-bottom: 6px; }
.ctr-acoes-texto { justify-content: flex-start !important; margin-top: -4px; }
.ctr-tipo { display: flex; gap: 18px; flex-wrap: wrap; }
.ctr-modelos { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 4px; }
.ctr-solta {
  margin: 0 0 12px; padding: 18px 16px; border: 2px dashed var(--borda); border-radius: var(--raio); text-align: center;
  color: var(--texto-suave); font-size: .9rem; background: var(--cartao); transition: border-color .15s, background .15s;
}
.ctr-solta.arrastando, #view-financeiro.arrastando .ctr-solta { border-color: var(--primaria); background: var(--hoje-fundo); color: var(--primaria); }
.ctr-origem { display: inline-block; font-size: .7rem; text-transform: uppercase; letter-spacing: .3px; padding: 1px 7px; border-radius: 999px; background: var(--amarelo-fundo); color: #8a6d1a; margin-left: 4px; vertical-align: middle; }
.ctr-encontrados { font-size: .8rem; color: var(--texto-suave); margin: -4px 0 10px; }
/* página do processo */
.proc-topo h2 { margin: 2px 0; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.proc-topo .sub { margin: 0; }
.proc-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 14px; margin-bottom: 14px; }
.proc-grade .cartao h3, .proc-andamentos h3 { margin-top: 0; }
.proc-polo h4 { margin: 10px 0 4px; font-size: .78rem; text-transform: uppercase; letter-spacing: .4px; color: var(--texto-suave); }
.proc-nossa-parte > div:first-child b { color: var(--primaria); }
.proc-tag-nossa { background: var(--verde-fundo) !important; color: var(--verde) !important; border-color: #bfe3c9 !important; }
.proc-lista { list-style: none; margin: 0; padding: 0; }
.proc-linha { display: grid; grid-template-columns: 118px 24px 1fr auto; gap: 8px; align-items: start; padding: 7px 4px; border-bottom: 1px solid var(--borda); font-size: .92rem; }
.proc-linha:last-child { border-bottom: 0; }
.proc-quando { color: var(--texto-suave); font-size: .82rem; white-space: nowrap; padding-top: 2px; }
.proc-icone { text-align: center; }
.proc-nosso { background: var(--verde-fundo); border-radius: 6px; }
.proc-tag-nosso { color: var(--verde); font-weight: 600; }
.proc-mov .proc-texto b { font-weight: 500; }
.proc-andamentos .barra-topo { margin-bottom: 8px; }
.proc-andamentos .abas { border-bottom: 0; }
.proc-andamentos .aba { padding: 4px 10px; font-size: .85rem; }
.ctr-encontrados b { color: var(--verde); }
.ctr-modelos .btn { font-size: .8rem; padding: 4px 10px; }
.ctr-tipo label.check { margin: 0; }
.ctr-tipo-chip { display: inline-block; font-size: .7rem; text-transform: uppercase; letter-spacing: .3px; padding: 1px 7px; border-radius: 999px; background: #eef2f7; color: var(--texto-suave); margin-right: 4px; vertical-align: middle; }
.ctr-status { display: inline-block; font-size: .78rem; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--borda); white-space: nowrap; }
.ctr-status.pendente { background: var(--amarelo-fundo); color: #8a6d1a; border-color: var(--amarelo-borda); }
.ctr-status.assinado { background: var(--verde-fundo); color: var(--verde); border-color: #bfe3c9; }
.ctr-resumo-lista { margin: 8px 0; padding-left: 18px; }
.ctr-resumo-lista li { margin: 3px 0; }
.ctr-parcelas { margin: 8px 0 12px; }
.ctr-parcelas td, .ctr-parcelas th { padding: 5px 8px; }
.adm-papel { font: inherit; font-size: .85rem; padding: 3px 6px; border: 1px solid var(--borda); border-radius: 6px; background: #fff; color: var(--texto); }
.tabela .acoes { white-space: nowrap; text-align: right; }
.tabela .acoes button { margin-left: 2px; }
.data-prazo { font-weight: 600; white-space: nowrap; }
/* Processo / Parte, Tribunal e Descrição em negrito como a coluna Prazo; a parte (linha menor) fica normal */
.tabela td.negrito { font-weight: 600; }
.tabela td.negrito .sub { font-weight: 400; }
.data-prazo .alerta { color: var(--vermelho); margin-right: 4px; }
.sub { color: var(--texto-suave); font-size: .82rem; }
.vazio { background: var(--cartao); border: 1px dashed var(--borda); border-radius: var(--raio); padding: 34px; text-align: center; color: var(--texto-suave); }

/* layout lista (cartões) */
.lista-cabecalho { margin: 2px 0 12px; font-size: 1rem; }
.cartao-item {
  background: var(--cartao); border: 1px solid var(--borda); border-left: 5px solid var(--primaria);
  border-radius: var(--raio); box-shadow: var(--sombra); padding: 12px 16px; margin-bottom: 10px;
  display: flex; gap: 16px; align-items: flex-start;
}
.cartao-item.audiencia { border-left-color: #7c3aed; }
.cartao-item.vencido { border-left-color: var(--vermelho); background: var(--vermelho-fundo); }
.cartao-item.hoje { background: var(--amarelo-fundo); border-left-color: var(--amarelo-borda); }
.cartao-item .quando { min-width: 92px; text-align: center; }
.cartao-item .quando .dia { font-size: 1.15rem; font-weight: 700; display: block; }
.cartao-item .quando .tipo-rotulo { font-size: .72rem; text-transform: uppercase; letter-spacing: .5px; color: var(--texto-suave); }
.cartao-item .corpo { flex: 1; }
.cartao-item .acoes { white-space: nowrap; }

/* cartões genéricos */
.cartao {
  background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio);
  box-shadow: var(--sombra); padding: 16px; margin-bottom: 14px;
}
.cartao label { display: flex; flex-direction: column; gap: 3px; font-size: .82rem; color: var(--texto-suave); margin-bottom: 10px; }

/* publicações */
.pub-grade { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.pub-lateral { position: sticky; top: 70px; }
@media (max-width: 1000px) { .pub-grade { grid-template-columns: 1fr; } .pub-lateral { position: static; } }

.pub-cartao {
  background: var(--cartao); border: 1px solid var(--borda); border-radius: var(--raio);
  box-shadow: var(--sombra); margin-bottom: 12px; padding: 14px 16px;
}
.pub-cartao.resolvida { opacity: .75; }
.pub-cabecalho { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.pub-cabecalho .titulo { font-weight: 600; }
.pub-cabecalho .titulo .nome { color: var(--primaria); }
.pub-selo {
  font-size: .72rem; padding: 2px 8px; border-radius: 99px; font-weight: 600;
  background: var(--amarelo-fundo); color: #8a6d1a; border: 1px solid var(--amarelo-borda);
}
.pub-selo.resolvida { background: var(--verde-fundo); color: var(--verde); border-color: #bfe3c9; }
.pub-campos { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 16px; margin: 8px 0; }
.pub-campos div { font-size: .83rem; }
.pub-campos b { color: var(--texto-suave); font-weight: 600; font-size: .76rem; display: block; text-transform: uppercase; letter-spacing: .3px; }
.pub-campos .pub-destaque { font-weight: 700; color: var(--texto); }
.pub-texto {
  background: #f8fafc; border: 1px solid #eef2f7; border-radius: 8px; padding: 10px 12px;
  font-size: .86rem; white-space: pre-wrap; max-height: 150px; overflow: hidden; position: relative;
}
.pub-texto.aberto { max-height: none; }
mark { background: #ffe58a; padding: 0 2px; border-radius: 3px; }
.pub-acoes { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; align-items: center; }
.pub-check { margin-right: 6px; }
.aviso-filtro {
  background: var(--hoje-fundo); border: 1px solid #bcd6f2; border-radius: 8px;
  padding: 8px 12px; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center;
}
.barra-lote {
  background: #fff8e6; border: 1px solid var(--amarelo-borda); border-radius: 8px;
  padding: 8px 12px; margin-bottom: 10px; display: flex; gap: 10px; align-items: center;
}

/* calendário */
.cal-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.cal-grade { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
.cal-grade .cab { font-size: .7rem; color: var(--texto-suave); text-align: center; padding: 3px 0; }
.cal-dia {
  position: relative; border: none; background: none; font: inherit; font-size: .85rem;
  padding: 7px 0; text-align: center; border-radius: 7px; cursor: default; color: var(--texto);
}
.cal-dia.tem { cursor: pointer; background: #eef4fb; font-weight: 600; }
.cal-dia.tem:hover { background: #dcebfa; }
.cal-dia.selecionado { background: var(--primaria); color: #fff; }
.cal-dia .ponto {
  position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%);
  width: 5px; height: 5px; border-radius: 50%; background: var(--vermelho);
}
.cal-dia.selecionado .ponto { background: #fff; }
.cal-dia.hoje { outline: 1px solid var(--primaria); }

/* pauta de julgamentos */
.pauta-tabela td b { color: var(--texto-suave); font-weight: 600; font-size: .74rem; text-transform: uppercase; letter-spacing: .3px; margin-right: 4px; }
.pauta-tabela .data-prazo { white-space: normal; }
.th-ordenar {
  background: none; border: none; padding: 0; font: inherit; color: inherit; cursor: pointer;
  text-transform: inherit; letter-spacing: inherit; white-space: nowrap;
}
.th-ordenar:hover { color: var(--primaria); text-decoration: underline; }
.th-ordenar.ativa { color: var(--primaria); font-weight: 700; }

/* financeiro (agenda CPD): Sálvia = pago, Tangerina = em atraso */
:root { --salvia: #33b679; --salvia-fundo: #e6f5ec; --salvia-texto: #1b6b45;
        --laranja: #f4511e; --laranja-fundo: #fdebe4; --laranja-texto: #b53a10; }
.fin-resumo { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 14px; }
@media (max-width: 1100px) { .fin-resumo { grid-template-columns: 1fr 1fr 1fr; } }
@media (max-width: 760px) { .fin-resumo { grid-template-columns: 1fr 1fr; } }
.fin-card.st-mes { border-left-color: var(--texto); background: #f6f8fb; }
.usuario-comum .so-admin { display: none !important; }
.fin-card { background: var(--cartao); border: 1px solid var(--borda); border-left: 5px solid var(--borda); border-radius: var(--raio); padding: 12px 14px; box-shadow: var(--sombra); }
.fin-card.st-pago { border-left-color: var(--salvia); }
.fin-card.st-atraso { border-left-color: var(--laranja); }
.fin-card.st-aberto { border-left-color: var(--primaria); }
.fin-card.st-total { border-left-color: var(--laranja-texto); background: var(--laranja-fundo); }
.fin-card-rotulo { font-size: .76rem; text-transform: uppercase; letter-spacing: .4px; color: var(--texto-suave); }
.fin-card-valor { font-size: 1.35rem; font-weight: 700; margin: 2px 0; }
.fin-topo { flex-wrap: wrap; gap: 8px; }
.fin-nav { display: flex; align-items: center; gap: 8px; }
.fin-nav h3 { margin: 0; min-width: 200px; text-align: center; text-transform: capitalize; }
.fin-legenda { display: flex; gap: 6px; flex-wrap: wrap; }
.fin-chip { display: inline-block; font-size: .75rem; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--borda); background: #fff; }
.fin-chip.st-pago { background: var(--salvia-fundo); color: var(--salvia-texto); border-color: var(--salvia); }
.fin-chip.st-atraso { background: var(--laranja-fundo); color: var(--laranja-texto); border-color: var(--laranja); }
.fin-chip.st-aberto { background: var(--hoje-fundo); color: var(--primaria); border-color: #bdd0e6; }
/* minmax(0, 1fr): a coluna não cresce por causa de um nome comprido; o texto quebra dentro da célula */
.fin-grade { gap: 4px; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.fin-dia { min-height: 96px; min-width: 0; background: var(--cartao); border: 1px solid var(--borda); border-radius: 8px; padding: 4px; display: flex; flex-direction: column; gap: 3px; }
.fin-dia.vazio-dia { background: transparent; border-color: transparent; }
.fin-dia.hoje { outline: 2px solid var(--primaria); }
.fin-dia-num { display: flex; justify-content: space-between; align-items: baseline; font-size: .8rem; font-weight: 600; color: var(--texto-suave); padding: 0 2px; }
.fin-dia-num .sub { font-size: .7rem; font-weight: 500; }
.fin-item {
  display: block; width: 100%; text-align: left; font: inherit; font-size: .74rem; line-height: 1.25;
  border: 1px solid var(--borda); border-left-width: 4px; border-radius: 6px; padding: 3px 5px;
  background: #f6f8fb; color: var(--texto); cursor: pointer; overflow: hidden; white-space: normal; overflow-wrap: anywhere;
}
.fin-item:hover { filter: brightness(.96); }
.fin-item b { font-weight: 700; display: block; }
.fin-item .fin-cliente { display: block; }
.fin-item.st-pago { background: var(--salvia-fundo); border-left-color: var(--salvia); color: var(--salvia-texto); }
.fin-item.st-atraso { background: var(--laranja-fundo); border-left-color: var(--laranja); color: var(--laranja-texto); }
.fin-item.st-aberto { border-left-color: var(--primaria); }
.fin-descricao { white-space: pre-wrap; font: inherit; font-size: .82rem; background: #f6f8fb; border: 1px solid var(--borda); border-radius: 8px; padding: 10px; max-height: 260px; overflow: auto; }
.fin-acoes { flex-wrap: wrap; justify-content: flex-start !important; }
.fin-acao.st-pago.primario { background: var(--salvia); border-color: var(--salvia); }
.fin-acao.st-atraso.primario { background: var(--laranja); border-color: var(--laranja); }

/* processos e clientes */
.cad-tabela tr { cursor: pointer; }
.cad-tabela .acoes { white-space: nowrap; cursor: default; }
.cad-titulo { font-weight: 600; }
.cad-tag { display: inline-block; font-size: .7rem; padding: 1px 7px; border-radius: 999px; background: var(--hoje-fundo); color: var(--primaria); margin-left: 4px; vertical-align: middle; }
.cad-link { color: var(--primaria); cursor: pointer; text-decoration: underline; background: none; border: none; font: inherit; padding: 0; }
.cad-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 16px; margin: 8px 0 12px; }
.cad-campos div { font-size: .88rem; }
.cad-campos b { color: var(--texto-suave); font-weight: 600; font-size: .74rem; display: block; text-transform: uppercase; letter-spacing: .3px; }
.cad-campos .largo { grid-column: 1 / -1; }
.cad-lista { margin: 0 0 12px; padding: 0; list-style: none; }
.cad-lista li { padding: 6px 0; border-bottom: 1px solid #edf1f7; font-size: .88rem; }
.cad-lista li:last-child { border-bottom: none; }
.cad-linha-dinamica { display: grid; grid-template-columns: 1fr 150px auto; gap: 6px; align-items: end; margin-bottom: 6px; }
.cad-linha-dinamica label { margin-bottom: 0; }
.cad-endereco { border: 1px solid var(--borda); border-radius: 8px; padding: 10px; margin-bottom: 10px; background: #f8fafc; }
.cad-endereco .form-grade { gap: 6px 10px; }
.cad-endereco .remover { float: right; }
.cad-secao { font-size: .78rem; text-transform: uppercase; letter-spacing: .4px; color: var(--texto-suave); margin: 14px 0 6px; font-weight: 600; }
.tipo-radios { display: flex; gap: 16px; margin-bottom: 10px; }
.tipo-radios label { flex-direction: row !important; align-items: center; gap: 6px; }
.tipo-radios input { width: auto !important; }

/* monitoramento */
.mon-item { border-bottom: 1px solid #edf1f7; padding: 8px 0; font-size: .85rem; }
.mon-item:last-child { border-bottom: none; }
.mon-item .nome { font-weight: 600; }
.ok { color: var(--verde); }
.erro { color: var(--vermelho); }

/* calculadora */
.calc-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 1000px) { .calc-grade { grid-template-columns: 1fr; } }
.form-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; }
.form-grade label { display: flex; flex-direction: column; gap: 3px; font-size: .82rem; color: var(--texto-suave); }
.form-grade .check, .form-grade .acoes-form { grid-column: 1 / -1; }
.acoes-form { display: flex; gap: 10px; margin-top: 4px; }
.form-linha { display: flex; gap: 8px; flex-wrap: wrap; margin: 10px 0; }
.form-linha input[type="text"] { flex: 1; min-width: 140px; }

.resultado-caixa {
  background: var(--verde-fundo); border: 1px solid #bfe3c9; border-radius: var(--raio);
  padding: 14px 16px; margin: 14px 0;
}
.resultado-caixa .venc { font-size: 1.35rem; font-weight: 700; color: var(--verde); }
.dias-lista { margin-top: 10px; max-height: 420px; overflow: auto; border: 1px solid var(--borda); border-radius: 8px; }
.dia-linha {
  display: flex; gap: 10px; align-items: baseline; padding: 6px 12px;
  border-bottom: 1px solid #f0f3f8; font-size: .86rem;
}
.dia-linha:last-child { border-bottom: none; }
.dia-linha.contado { background: #f2faf4; }
.dia-linha.desconsiderado { background: #fdf3f2; }
.dia-linha .data { min-width: 150px; font-weight: 600; }
.dia-linha.contado .data { color: var(--verde); }
.dia-linha.desconsiderado .data { color: var(--vermelho); }
.dia-linha .num { min-width: 55px; color: var(--texto-suave); }
.dia-linha .motivo { color: var(--texto-suave); }
.dia-linha.vencimento { outline: 2px solid var(--verde); }

.tabela-rolagem { max-height: 420px; overflow: auto; }
.tabela-rolagem .tabela { box-shadow: none; }

/* configurações */
.config-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; align-items: start; }
.config-grade .cartao label { margin-bottom: 12px; }
.config-grade .cartao label input[type="text"], .config-grade .cartao label input[type="number"] { width: 100%; }
.config-salvar { display: flex; align-items: center; gap: 12px; }
.config-grade .cartao label select { width: 100%; }
.lista-usuarios { list-style: none; padding: 0; margin: 4px 0 0; }
.lista-usuarios li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 0; border-top: 1px solid var(--borda); }
.lista-usuarios li.inativo .nome { color: var(--texto-suave); }
.lista-usuarios .acoes { white-space: nowrap; }
.encerrado { max-width: 520px; margin: 80px auto; text-align: center; color: var(--texto-suave); }
.encerrado h2 { color: var(--texto); margin-bottom: 8px; }
.config-log { grid-column: 1 / -1; }

/* painel lateral */
.painel-fundo { position: fixed; inset: 0; background: rgba(15, 30, 55, .45); z-index: 50; }
.painel {
  position: fixed; top: 0; right: 0; bottom: 0; width: 430px; max-width: 95vw;
  background: #fff; z-index: 51; box-shadow: -4px 0 18px rgba(0, 0, 0, .18);
  padding: 18px 20px; overflow: auto;
}
.painel-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.painel label { display: flex; flex-direction: column; gap: 3px; font-size: .82rem; color: var(--texto-suave); margin-bottom: 11px; }
.painel input, .painel select, .painel textarea { width: 100%; }
.painel .acoes-form { justify-content: flex-end; }
.sugestao-aviso {
  background: var(--amarelo-fundo); border: 1px solid var(--amarelo-borda);
  border-radius: 8px; padding: 8px 10px; font-size: .84rem; margin-bottom: 10px;
}

/* toasts */
#toasts { position: fixed; bottom: 18px; right: 18px; z-index: 80; display: flex; flex-direction: column; gap: 8px; }
.toast {
  background: #233047; color: #fff; border-radius: 8px; padding: 10px 16px;
  box-shadow: var(--sombra); max-width: 380px; font-size: .9rem;
}
.toast.erro { background: var(--vermelho); }
.toast.sucesso { background: var(--verde); }

/* impressão */
.apenas-impressao { display: none; }
@media print {
  .no-print, .topo, .painel, .painel-fundo, #toasts { display: none !important; }
  .apenas-impressao { display: block; margin-bottom: 10px; }
  body { background: #fff; font-size: 11.5px; color: #000; }
  main { max-width: none; padding: 0; }
  .tabela, .cartao-item, .pub-cartao { box-shadow: none; border: 1px solid #999; }
  .tabela th { background: #eee !important; color: #000; }
  .tabela tr.vencido td, .tabela tr.hoje td, #view-agenda .tabela tbody tr:nth-child(even) td { background: #fff !important; }
  .cartao-item { break-inside: avoid; }
  .acoes { display: none !important; }
  .pub-lateral { display: none !important; }
}
