/* Ferreira Alves – identidade minimalista em escala de cinza */
@font-face { font-family: 'Jost'; font-weight: 300; font-display: swap; src: url(/fonts/jost-latin-300-normal.woff2) format('woff2'); }
@font-face { font-family: 'Jost'; font-weight: 400; font-display: swap; src: url(/fonts/jost-latin-400-normal.woff2) format('woff2'); }
@font-face { font-family: 'Jost'; font-weight: 500; font-display: swap; src: url(/fonts/jost-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Jost'; font-weight: 600; font-display: swap; src: url(/fonts/jost-latin-600-normal.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-weight: 500; font-display: swap; src: url(/fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-weight: 600; font-display: swap; src: url(/fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2'); }

:root {
  --preto: #111111;
  --g900: #1f1f1f;
  --g700: #3d3d3d;
  --g600: #5a5a5a;
  --g500: #767676;
  --g400: #9b9b9b;
  --g300: #c9c9c9;
  --g200: #e3e3e3;
  --g150: #ececec;
  --g100: #f4f4f4;
  --g50: #fafafa;
  --branco: #ffffff;
  --linha: #e6e6e6;
  /* tons pastel (texto escuro correspondente) */
  --p-lavanda: #ece8f6; --p-lavanda-t: #4f4378;
  --p-azul: #e5edf5; --p-azul-t: #3d566f;
  --p-salvia: #e4efe6; --p-salvia-t: #3f5e46; --p-salvia-claro: #f3f8f4;
  --p-menta: #e2f0ee; --p-menta-t: #355e59;
  --p-areia: #f5efdf; --p-areia-t: #6b5a2c;
  --p-pessego: #f8e7db; --p-pessego-t: #7b4b2a;
  --p-rosa: #f6e3e3; --p-rosa-t: #7a3a3a; --p-rosa-claro: #fbf3f3;
  --p-cinza: #efefef; --p-cinza-t: #666666;
  --raio: 4px;
  --sans: 'Jost', 'Century Gothic', 'Segoe UI', system-ui, sans-serif;
  --serif: 'Cormorant Garamond', 'Garamond', 'Times New Roman', serif;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
  color: var(--g900);
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; background: var(--branco); min-height: 100%; }
::selection { background: var(--g200); }
a { color: var(--preto); text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
h1 { font-family: var(--serif); font-size: 30px; font-weight: 500; margin: 0; letter-spacing: .01em; color: var(--preto); line-height: 1.15; }
h2 { font-size: 11.5px; margin: 0 0 14px; font-weight: 500; text-transform: uppercase; letter-spacing: .14em; color: var(--g600); }
h3 { font-family: var(--serif); font-size: 21px; margin: 0 0 12px; font-weight: 500; color: var(--preto); }
h4 { font-size: 11px; margin: 18px 0 8px; text-transform: uppercase; letter-spacing: .14em; color: var(--g500); font-weight: 500; }
code { background: var(--g100); padding: 1px 5px; border-radius: 2px; font-size: 12px; }
.mudo { color: var(--g500); }
.verde { color: var(--preto); } .vermelho { color: var(--preto); font-weight: 500; }
.carregando { padding: 48px; color: var(--g400); text-align: center; letter-spacing: .1em; font-size: 12px; text-transform: uppercase; }
.flex { flex: 1; }

/* ---------- Estrutura ---------- */
.app { display: flex; min-height: 100vh; }
.lateral { width: 244px; background: var(--branco); border-right: 1px solid var(--linha); flex-shrink: 0; position: sticky; top: 0; height: 100vh; overflow-y: auto; display: flex; flex-direction: column; }
.marca { display: block; padding: 28px 24px 22px; }
.marca:hover { text-decoration: none; }
.marca img { width: 100%; max-width: 190px; display: block; }
.lateral nav { padding: 4px 0 28px; }
.lateral .grupo { font-size: 10px; text-transform: uppercase; letter-spacing: .2em; padding: 22px 24px 8px; color: var(--g400); }
.lateral nav a { display: block; padding: 7px 24px 7px 22px; color: var(--g600); font-size: 13.5px; border-left: 2px solid transparent; transition: color .15s, border-color .15s; }
.lateral nav a:hover { color: var(--preto); text-decoration: none; }
.lateral nav a.ativo { color: var(--preto); border-left-color: var(--preto); font-weight: 500; }
.principal { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.topo { height: 64px; background: rgba(255,255,255,.96); backdrop-filter: blur(6px); border-bottom: 1px solid var(--linha); display: flex; align-items: center; gap: 20px; padding: 0 40px; position: sticky; top: 0; z-index: 20; }
.menu-mobile { display: none; flex-direction: column; gap: 4px; padding: 8px; }
.menu-mobile span { display: block; width: 18px; height: 1.5px; background: var(--preto); }
.busca-global { flex: 1; max-width: 460px; position: relative; }
.busca-global input { width: 100%; padding: 8px 2px; border: 0; border-bottom: 1px solid var(--g200); border-radius: 0; background: transparent; font-size: 13.5px; }
.busca-global input:focus { outline: none; border-bottom-color: var(--preto); }
.busca-global .resultados { position: absolute; top: 44px; left: 0; right: 0; background: #fff; border: 1px solid var(--linha); box-shadow: 0 12px 32px rgba(0,0,0,.08); max-height: 420px; overflow-y: auto; }
.busca-global .resultados a { display: block; padding: 10px 14px; color: var(--g900); border-bottom: 1px solid var(--g150); }
.busca-global .resultados a:hover { background: var(--g50); text-decoration: none; }
.busca-global .resultados small { display: inline-block; min-width: 80px; color: var(--g400); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }
.busca-global .resultados span { color: var(--g500); margin-left: 8px; font-size: 12px; }
.busca-global .vazio { padding: 12px 14px; color: var(--g500); }
.usuario { display: flex; align-items: center; gap: 18px; margin-left: auto; }
.usuario .quem { text-align: right; color: var(--g900); line-height: 1.25; }
.usuario .quem:hover { text-decoration: none; }
.usuario .quem small { display: block; color: var(--g500); font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; }
main { padding: 40px 40px 64px; max-width: 1360px; width: 100%; }

/* ---------- Componentes ---------- */
.cabecalho { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 28px; flex-wrap: wrap; padding-bottom: 18px; border-bottom: 1px solid var(--linha); }
.cabecalho .sub { margin: 8px 0 0; color: var(--g500); max-width: 820px; line-height: 1.5; }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.voltar { display: inline-block; margin-bottom: 12px; font-size: 11px; color: var(--g500); text-transform: uppercase; letter-spacing: .14em; }
.cartao { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 24px; margin-bottom: 20px; }
details.cartao summary { cursor: pointer; font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--g600); list-style: none; }
details.cartao summary::before { content: '+'; display: inline-block; width: 16px; }
details.cartao[open] summary::before { content: '–'; }
details.cartao[open] summary { margin-bottom: 18px; }
.obs { white-space: pre-wrap; border-left: 2px solid var(--g300); padding: 4px 14px; margin: 18px 0 0; color: var(--g700); }
.aviso { background: var(--g50); border: 1px solid var(--g200); border-left: 2px solid var(--preto); padding: 12px 16px; margin-bottom: 18px; color: var(--g700); }
.aviso.erro { border-left-color: var(--preto); background: var(--g100); color: var(--preto); }
.dica { color: var(--g500); font-size: 12.5px; line-height: 1.5; }

.btn { display: inline-flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 2px; border: 1px solid var(--g300); background: #fff; color: var(--g900); font: inherit; font-size: 12.5px; letter-spacing: .04em; cursor: pointer; white-space: nowrap; transition: background .15s, border-color .15s, color .15s; }
.btn:hover { border-color: var(--preto); text-decoration: none; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn.primario { background: var(--preto); border-color: var(--preto); color: #fff; }
.btn.primario:hover { background: var(--g700); border-color: var(--g700); }
.btn.perigo { color: var(--g600); border-color: transparent; text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--g300); }
.btn.perigo:hover { color: var(--preto); text-decoration-color: var(--preto); border-color: transparent; }
.btn.pequeno { padding: 4px 11px; font-size: 12px; }
.btn.largo { width: 100%; justify-content: center; padding: 11px; letter-spacing: .14em; text-transform: uppercase; font-size: 11.5px; }
.btn.esquerda { margin-right: auto; }
.icone { background: none; border: 0; cursor: pointer; font-size: 20px; line-height: 1; color: var(--g500); padding: 2px 8px; border-radius: 2px; font-family: var(--sans); }
.icone:hover { color: var(--preto); }

input, select, textarea { font: inherit; color: inherit; padding: 8px 10px; border: 1px solid var(--g200); border-radius: 2px; background: #fff; width: 100%; transition: border-color .15s; }
input:hover, select:hover, textarea:hover { border-color: var(--g300); }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--preto); }
input[type=checkbox] { width: auto; accent-color: var(--preto); }
input[type=file] { border: 0; padding: 0; width: auto; }
select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23555' stroke-width='1.2'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 10px center; padding-right: 28px; }
textarea { resize: vertical; line-height: 1.5; }
input.invalido { border-color: var(--preto); border-style: dashed; }
input:disabled, select:disabled, textarea:disabled { background: var(--g50); color: var(--g500); }
label.check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; white-space: nowrap; color: var(--g700); }
label.mini { display: inline-flex; align-items: center; gap: 8px; color: var(--g500); white-space: nowrap; font-size: 12.5px; }
label.mini input { width: auto; }

.grade-form { display: grid; grid-template-columns: repeat(12, 1fr); gap: 16px 18px; }
.campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.campo > label { font-size: 10.5px; color: var(--g500); font-weight: 500; text-transform: uppercase; letter-spacing: .12em; }
.campo .obrig { color: var(--g400); }
.campo .ajuda { color: var(--g500); font-size: 11.5px; }
.campo .ajuda.destaque { color: var(--preto); }
.prefixo { display: flex; align-items: center; border: 1px solid var(--g200); border-radius: 2px; background: #fff; }
.prefixo:focus-within { border-color: var(--preto); }
.prefixo span { padding: 0 4px 0 10px; color: var(--g500); font-size: 12.5px; }
.prefixo input { border: 0; padding-left: 4px; }
.extras h4 { margin-top: 8px; }

.ref { position: relative; display: flex; }
.ref input[type=text] { padding-right: 30px; }
.ref .limpar { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); font-size: 16px; }
.ref-lista { position: absolute; top: 100%; left: 0; right: 0; z-index: 60; background: #fff; border: 1px solid var(--g300); box-shadow: 0 10px 28px rgba(0,0,0,.08); max-height: 260px; overflow-y: auto; margin-top: 2px; }
.ref-lista .item { padding: 8px 12px; cursor: pointer; }
.ref-lista .item small { display: block; color: var(--g500); font-size: 11.5px; }
.ref-lista .item:hover, .ref-lista .item.ativo { background: var(--g100); }
.ref-lista .vazio { padding: 8px 12px; color: var(--g500); }

.barra-filtros { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 18px; }
.barra-filtros input[type=search] { max-width: 300px; }
.barra-filtros select { width: auto; max-width: 260px; }
.paginacao { display: flex; gap: 12px; align-items: center; justify-content: flex-end; margin-top: 14px; color: var(--g500); font-size: 12.5px; }

.tabela-wrap { overflow-x: auto; border-top: 1px solid var(--g900); }
.tabela { width: 100%; border-collapse: collapse; }
.tabela th { text-align: left; font-weight: 500; font-size: 10.5px; color: var(--g500); text-transform: uppercase; letter-spacing: .12em; padding: 12px 14px; border-bottom: 1px solid var(--linha); white-space: nowrap; background: #fff; }
.tabela td { padding: 12px 14px; border-bottom: 1px solid var(--g150); vertical-align: top; line-height: 1.45; }
.tabela tr.clicavel { cursor: pointer; }
.tabela tr.clicavel:hover td { background: var(--g50); }
.tabela td.vazio { text-align: center; color: var(--g400); padding: 40px; }
.tabela .dir { text-align: right; }
.tabela tfoot td { font-weight: 500; border-top: 1px solid var(--g900); border-bottom: 0; }
.tabela tr.linha-vencida td { background: var(--p-rosa-claro); }
.tabela tr.linha-vencida td:first-child { box-shadow: inset 3px 0 0 #e2bcbc; }
.tabela tr.linha-hoje td { background: #fdfaf2; }
.tabela tr.linha-hoje td:first-child { box-shadow: inset 3px 0 0 #e6d6a8; }
.tabela tr.apagada td { color: var(--g400); }
.num { font-variant-numeric: tabular-nums; }

/* Etiquetas em tons pastel discretos */
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 10.5px; font-weight: 500; letter-spacing: .04em; white-space: nowrap; border: 1px solid transparent; text-transform: uppercase; background: var(--p-cinza); color: var(--p-cinza-t); }
.tag.vermelho { background: var(--p-rosa); color: var(--p-rosa-t); }
.tag.laranja { background: var(--p-pessego); color: var(--p-pessego-t); }
.tag.amarelo { background: var(--p-areia); color: var(--p-areia-t); }
.tag.azul { background: var(--p-azul); color: var(--p-azul-t); }
.tag.verde { background: var(--p-salvia); color: var(--p-salvia-t); }
.tag.roxo { background: var(--p-lavanda); color: var(--p-lavanda-t); }
.tag.cinza { background: var(--p-cinza); color: var(--p-cinza-t); }
.partes { display: inline-block; font-size: 11px; letter-spacing: .06em; color: var(--g700); font-weight: 500; }
.lista-simples .partes { margin-left: 2px; }
b.bloco { display: block; margin-top: 3px; }
/* Modal */
.modal-fundo { position: fixed; inset: 0; background: rgba(17,17,17,.32); display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px; z-index: 100; overflow-y: auto; }
.modal { background: #fff; width: 100%; box-shadow: 0 30px 80px rgba(0,0,0,.18); display: flex; flex-direction: column; max-height: 88vh; border-radius: 2px; }
.modal.sm { max-width: 460px; } .modal.md { max-width: 640px; } .modal.lg { max-width: 900px; }
.modal header { display: flex; align-items: center; justify-content: space-between; padding: 20px 26px; border-bottom: 1px solid var(--linha); }
.modal header h3 { margin: 0; }
.modal-corpo { padding: 26px; overflow-y: auto; }
.modal footer { display: flex; gap: 8px; justify-content: flex-end; padding: 16px 26px; border-top: 1px solid var(--linha); }

#toasts { position: fixed; right: 24px; bottom: 24px; display: flex; flex-direction: column; gap: 8px; z-index: 200; }
.toast { background: var(--preto); color: #fff; padding: 12px 18px; font-size: 13px; max-width: 440px; transition: opacity .4s, transform .4s; letter-spacing: .02em; }
.toast.erro { background: #fff; color: var(--preto); border: 1px solid var(--preto); }
.toast.sair { opacity: 0; transform: translateY(8px); }

/* Painel */
.indicadores { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 0; margin-bottom: 36px; border-top: 1px solid var(--linha); border-left: 1px solid var(--linha); }
.indicador { padding: 18px 20px; display: flex; flex-direction: column; gap: 8px; color: var(--g900); border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); background: #fff; }
a.indicador:hover { text-decoration: none; background: var(--g50); }
.indicador span { color: var(--g500); font-size: 10.5px; text-transform: uppercase; letter-spacing: .12em; }
.indicador b { font-family: var(--sans); font-size: 30px; font-weight: 300; line-height: 1; font-variant-numeric: tabular-nums; }
.indicador.alerta { background: var(--p-rosa); } .indicador.alerta span { color: var(--p-rosa-t); } .indicador.alerta b { color: var(--p-rosa-t); }
a.indicador.alerta:hover { background: #f1d9d9; }
.indicador.atencao b { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 6px; }
.fin-resumo .indicador b { font-family: var(--sans); font-size: 20px; font-weight: 400; }
.painel-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(440px, 1fr)); gap: 36px 40px; }
.painel-bloco { border-top: 1px solid var(--g900); padding-top: 16px; }
.lista-simples { list-style: none; margin: 0; padding: 0; }
.lista-simples li { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--g150); }
.lista-simples li.clicavel { cursor: pointer; }
.lista-simples li.clicavel:hover b { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.lista-simples b { font-weight: 500; }
.lista-simples small { display: block; color: var(--g500); font-size: 12px; margin-top: 3px; }
.lista-simples .data { color: var(--g500); font-size: 12.5px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.mini-indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 0; margin-bottom: 14px; border-left: 1px solid var(--linha); }
.mini-indicadores div { padding: 4px 14px; border-right: 1px solid var(--linha); }
.mini-indicadores span { display: block; color: var(--g500); font-size: 10.5px; text-transform: uppercase; letter-spacing: .12em; margin-bottom: 4px; }
.mini-indicadores b { font-size: 18px; font-weight: 400; }
.link { font-size: 11px; text-transform: uppercase; letter-spacing: .14em; color: var(--g600); }

/* Fichas */
.dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px 28px; margin: 0; }
.dados dt { font-size: 10px; color: var(--g500); text-transform: uppercase; letter-spacing: .14em; }
.dados dd { margin: 4px 0 0; line-height: 1.45; }
.abas { margin-top: 12px; }
.abas-cab { display: flex; gap: 28px; border-bottom: 1px solid var(--linha); overflow-x: auto; overflow-y: hidden; margin-bottom: 20px; scrollbar-width: none; }
.abas-cab button { background: none; border: 0; padding: 12px 0; font: inherit; font-size: 11.5px; text-transform: uppercase; letter-spacing: .12em; color: var(--g500); cursor: pointer; border-bottom: 1px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.abas-cab button:hover { color: var(--preto); }
.abas-cab button.ativa { color: var(--preto); border-bottom-color: var(--preto); }
.abas-cab .contador { color: var(--g400); }
.aba-acoes { display: flex; justify-content: flex-end; gap: 8px; margin-bottom: 14px; }
.aba-acoes:empty { display: none; }

/* Agenda */
.cal-nav .mes-titulo { min-width: 180px; text-align: center; font-family: var(--serif); font-size: 24px; font-weight: 500; }
.calendario { border-top: 1px solid var(--g900); }
.cal-cab, .cal-grade { display: grid; grid-template-columns: repeat(7, 1fr); }
.cal-cab div { padding: 10px 8px; font-size: 10px; color: var(--g500); text-transform: uppercase; letter-spacing: .16em; border-bottom: 1px solid var(--linha); }
.cal-dia { min-height: 118px; border-right: 1px solid var(--g150); border-bottom: 1px solid var(--g150); padding: 6px; cursor: pointer; overflow: hidden; }
.cal-dia:nth-child(7n) { border-right: 0; }
.cal-dia:hover { background: var(--g50); }
.cal-dia.fora .num { color: var(--g300); }
.cal-dia.nao-util { background: var(--g50); }
.cal-dia .num { font-size: 12px; margin-bottom: 6px; display: flex; gap: 6px; align-items: baseline; color: var(--g700); font-variant-numeric: tabular-nums; }
.cal-dia .num small { color: var(--g500); font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cal-dia.hoje { box-shadow: inset 0 2px 0 var(--preto); }
.cal-dia.hoje .num { color: var(--preto); font-weight: 600; }
.cal-item { font-size: 11.5px; padding: 3px 6px; margin-bottom: 3px; border-radius: 3px; border-left: 3px solid transparent; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.cal-item .hora { font-variant-numeric: tabular-nums; opacity: .75; }
.cal-item em { font-style: normal; font-size: 9.5px; font-weight: 600; letter-spacing: .04em; margin-right: 4px; padding: 0 3px; border-radius: 2px; background: rgba(255,255,255,.7); }
.cal-item:hover { filter: brightness(.97); }
/* Cores da agenda (tons pastel): audiência = vermelho, tarefa = laranja, atendimento/reunião = laranja-pêssego, prazo = amarelo */
.cal-item.audiencia, .cor.audiencia { background: #fbdcdc; color: #8a2f2f; border-left-color: #e79a9a; }
.cal-item.reuniao, .cor.reuniao { background: var(--p-azul); color: var(--p-azul-t); border-left-color: #aac0d8; }
.cal-item.atendimento, .cor.atendimento { background: #fde0d0; color: #8c4324; border-left-color: #f0a586; }
.cal-item.tarefa, .cor.tarefa { background: #fdebd0; color: #855313; border-left-color: #f1c07a; }
.cal-item.prazo-normal, .cor.prazo-normal { background: #fdf6cf; color: #736010; border-left-color: #ecd97c; }
.cal-item.prazo-alta, .cor.prazo-alta { background: #fbeca4; color: #6b5708; border-left-color: #e2c53f; }
.cal-item.prazo-fatal, .cor.prazo-fatal { background: #f9e27a; color: #5e4c05; border-left-color: #c9a30f; font-weight: 600; }
.cal-item.cancelado { text-decoration: line-through; opacity: .55; }
.legenda { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 14px; font-size: 11.5px; color: var(--g600); }
.legenda span { display: inline-flex; align-items: center; gap: 6px; }
.cor { display: inline-block; width: 14px; height: 10px; border-radius: 2px; border-left: 3px solid; }
.camadas { gap: 18px; margin-top: -6px; }

/* Financeiro */
.resumo-fin { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); border-top: 1px solid var(--linha); border-left: 1px solid var(--linha); margin-bottom: 30px; }
.resumo-fin .col { padding: 16px 20px; border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); display: flex; flex-direction: column; gap: 6px; }
.resumo-fin .col span { font-size: 10.5px; text-transform: uppercase; letter-spacing: .12em; color: var(--g500); }
.resumo-fin .col b { font-size: 22px; font-weight: 400; font-variant-numeric: tabular-nums; }
.resumo-fin .col small { color: var(--g500); font-size: 12px; }
.resumo-fin .col.entrada { background: var(--p-salvia-claro); }
.resumo-fin .col.saida { background: var(--p-rosa-claro); }
.secao-fin { margin-bottom: 34px; }
.secao-cab { display: flex; align-items: baseline; gap: 14px; padding: 10px 14px; margin-bottom: 0; border-radius: 3px 3px 0 0; }
.secao-cab h3 { margin: 0; font-size: 22px; }
.secao-cab span { color: var(--g600); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.secao-cab .btn { margin-left: auto; }
.secao-fin.entrada .secao-cab { background: var(--p-salvia-claro); border-bottom: 2px solid #b9d3bf; }
.secao-fin.saida .secao-cab { background: var(--p-rosa-claro); border-bottom: 2px solid #e2bcbc; }
.secao-fin .tabela-wrap { border-top: 0; }
.grupo-fin { margin-top: 6px; }
.grupo-cab { display: flex; justify-content: space-between; padding: 10px 14px 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; color: var(--g600); border-bottom: 1px solid var(--linha); }
.grupo-cab b { font-weight: 500; color: var(--g900); font-variant-numeric: tabular-nums; letter-spacing: 0; font-size: 13px; text-transform: none; }
.tabela.fin td { vertical-align: middle; }
.vazio-fin { padding: 18px 14px; }
.pequeno { font-size: 11.5px; }
.fin-entrada b { color: var(--p-salvia-t); } .fin-saida b { color: var(--p-rosa-t); }

/* Google */
.google-btn.conectado::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #8fbf9a; display: inline-block; }
ol.passos { padding-left: 20px; line-height: 1.6; color: var(--g700); }
ol.passos li { margin-bottom: 6px; }
/* Editor de documentos */
.editor { border: 1px solid var(--linha); }
.editor-barra { display: flex; flex-wrap: wrap; gap: 2px; align-items: center; padding: 8px 10px; border-bottom: 1px solid var(--linha); background: #fff; position: sticky; top: 64px; z-index: 5; }
.editor-barra button { background: none; border: 1px solid transparent; border-radius: 2px; min-width: 32px; height: 30px; cursor: pointer; font-size: 13px; color: var(--g700); display: inline-flex; align-items: center; justify-content: center; font-family: var(--sans); }
.editor-barra button.texto { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; padding: 0 8px; }
.editor-barra button:hover { border-color: var(--g300); color: var(--preto); }
.editor-barra .sep { width: 1px; height: 18px; background: var(--g200); margin: 0 6px; }
.editor-barra select { width: auto; padding: 5px 28px 5px 10px; font-size: 12px; }
.folha-wrap { background: var(--g100); padding: 36px 24px; overflow-x: auto; }
.pagina-a4 { background: #fff; width: 21cm; max-width: 100%; min-height: 29.7cm; margin: 0 auto; padding: 1.2cm 3cm 1cm; box-shadow: 0 1px 3px rgba(0,0,0,.08), 0 8px 30px rgba(0,0,0,.06); display: flex; flex-direction: column; }
.timbre-cab { text-align: center; margin-bottom: 1.1cm; user-select: none; }
.timbre-cab img { width: 5.5cm; }
.timbre-rod { margin-top: auto; padding-top: 6pt; border-top: .5pt solid var(--g300); text-align: center; font-size: 7.5pt; color: var(--g500); line-height: 1.45; font-family: 'Century Gothic', var(--sans); user-select: none; }
.folha { flex: 1; min-height: 20cm; padding-bottom: 1cm; font-family: 'Century Gothic', 'Jost', sans-serif; font-size: 11pt; line-height: 1.15; color: #000; outline: none; }
.folha p { text-align: justify; margin: 0 0 8pt; }
.folha h2 { font-family: inherit; font-size: 12pt; text-transform: none; letter-spacing: 0; color: #000; font-weight: 700; margin: 0 0 14pt; }
.folha h3 { font-family: inherit; font-size: 11pt; font-weight: 700; color: #000; }
.folha table { width: 100%; }
.doc-pagina .cartao .grade-form { margin-top: 4px; }

/* Cálculos */
.calc .tabela input { padding: 6px 8px; }
.calc .parcelas td { padding: 6px 8px; }
.linha-botoes { display: flex; gap: 10px; align-items: center; margin-top: 18px; flex-wrap: wrap; }
.resumo-calc { max-width: 500px; margin: 20px 0 0 auto; }
.resumo-calc tr.total td { font-weight: 600; font-size: 15px; border-top: 1px solid var(--g900); border-bottom: 0; }
.destaque-prazo .grande { font-family: var(--serif); font-size: 28px; margin-bottom: 8px; }
.destaque-prazo .grande b { font-weight: 600; }
.atalhos-prazo { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; color: var(--g500); font-size: 12px; }
.grade-indices { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 0; max-height: 380px; overflow-y: auto; border-top: 1px solid var(--linha); border-left: 1px solid var(--linha); }
.grade-indices div { padding: 6px 10px; border-right: 1px solid var(--linha); border-bottom: 1px solid var(--linha); font-variant-numeric: tabular-nums; }
.grade-indices small { display: block; color: var(--g500); font-size: 10.5px; }

/* Transcrições */
.zona-arquivo { border: 1px dashed var(--g300); padding: 34px; text-align: center; cursor: pointer; display: flex; flex-direction: column; gap: 6px; margin-bottom: 18px; transition: border-color .15s, background .15s; }
.zona-arquivo:hover, .zona-arquivo.arrastando { border-color: var(--preto); background: var(--g50); }
.zona-arquivo b { font-weight: 500; }
.zona-arquivo small { color: var(--g500); }
.zona-arquivo .nome-arquivo { color: var(--preto); font-weight: 500; margin-top: 6px; }
.texto-transcricao { min-height: 60vh; font-family: Consolas, 'Courier New', monospace; font-size: 13px; line-height: 1.7; }
.parcial { white-space: pre-wrap; font-size: 13px; max-height: 300px; overflow-y: auto; color: var(--g600); }
.barra-progresso { height: 2px; background: var(--g200); overflow: hidden; margin: 10px 0; }
.barra-progresso div { height: 100%; background: var(--preto); transition: width .4s; }

/* Acesso */
.acesso { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px; background: #fff; }
.cartao-acesso { width: 100%; max-width: 380px; }
.marca-acesso { text-align: center; margin-bottom: 44px; }
.marca-acesso img { width: 100%; max-width: 300px; }
.marca-acesso p { color: var(--g400); margin: 22px 0 0; font-size: 10.5px; text-transform: uppercase; letter-spacing: .3em; }
.cartao-acesso form { display: flex; flex-direction: column; gap: 18px; }
.cartao-acesso label { display: flex; flex-direction: column; gap: 6px; font-size: 10.5px; color: var(--g500); text-transform: uppercase; letter-spacing: .12em; }
.cartao-acesso label input { text-transform: none; letter-spacing: normal; font-size: 14px; border: 0; border-bottom: 1px solid var(--g300); border-radius: 0; padding: 8px 0; }
.cartao-acesso label input:focus { border-bottom-color: var(--preto); }
.cartao-acesso .btn.largo { margin-top: 10px; }
.cartao-acesso .explica { border-left: 2px solid var(--preto); padding: 4px 14px; font-size: 13px; color: var(--g700); margin: 0 0 24px; line-height: 1.5; }
.erro-form { color: var(--preto); margin: 0; text-align: center; font-weight: 500; }

/* ---------- Responsivo ---------- */
@media (max-width: 900px) {
  .lateral { position: fixed; left: -260px; z-index: 50; transition: left .2s; box-shadow: 0 0 40px rgba(0,0,0,.12); }
  body.menu-aberto .lateral { left: 0; }
  .menu-mobile { display: flex; }
  .topo { padding: 0 16px; gap: 10px; }
  .usuario .quem { display: none; }
  main { padding: 24px 16px 48px; }
  h1 { font-size: 25px; }
  .grade-form { grid-template-columns: 1fr; }
  .grade-form .campo { grid-column: auto !important; }
  .painel-grade { grid-template-columns: 1fr; }
  .cal-dia { min-height: 72px; }
  .cal-item { font-size: 10px; }
  .pagina-a4 { padding: .8cm 1cm; min-height: 0; }
  .folha { min-height: 10cm; }
  .folha-wrap { padding: 10px; }
}

@media print {
  .lateral, .topo, .acoes, .barra-filtros, .voltar, .editor-barra { display: none !important; }
  main { padding: 0; }
}

/* Verificação em duas etapas */
.codigos-rec { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; margin: 14px 0; }
.codigos-rec code { font-size: 14px; padding: 6px 10px; text-align: center; letter-spacing: .08em; }
code.chave { font-size: 14px; letter-spacing: .08em; padding: 3px 8px; user-select: all; }

/* Teses */
.teses-layout { display: grid; grid-template-columns: 220px 1fr; gap: 28px; align-items: start; }
.areas { display: flex; flex-direction: column; gap: 2px; position: sticky; top: 16px; }
.areas a { display: flex; justify-content: space-between; gap: 8px; padding: 7px 10px; border-radius: 6px; color: var(--g700); text-decoration: none; font-size: 14px; }
.areas a span { color: var(--g400); font-size: 12px; }
.areas a:hover { background: var(--g100); }
.areas a.ativo { background: var(--p-lavanda); color: var(--p-lavanda-t); }
.areas a.ativo span { color: var(--p-lavanda-t); }
.grupo-teses { margin-bottom: 26px; }
.grupo-teses h2 { font-size: 20px; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--linha); }
.cartao-tese { display: block; padding: 14px 16px; margin-bottom: 8px; border: 1px solid var(--linha); border-radius: 8px; background: var(--branco); color: inherit; text-decoration: none; }
.cartao-tese:hover { border-color: var(--g300); background: var(--g50); }
.cartao-tese p { margin: 6px 0; color: var(--g600); font-size: 14px; line-height: 1.5; }
.cartao-tese small { color: var(--g500); }
.topo-tese { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.topo-tese b { flex: 1; font-weight: 500; }
.bloco-tese + .bloco-tese { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--linha); }
.bloco-cab { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.bloco-cab h4 { margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--g500); font-weight: 500; }
.texto-tese { white-space: pre-wrap; line-height: 1.65; margin: 8px 0 0; }
.secao-juris { margin-top: 28px; }
.secao-juris .secao-cab { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 8px; background: var(--p-lavanda); color: var(--p-lavanda-t); margin-bottom: 12px; }
.secao-juris .secao-cab h3 { margin: 0; color: inherit; }
.secao-juris .resumo-juris { flex: 1; font-size: 13px; }
.cartao-juris { padding: 14px 16px; margin-bottom: 10px; border: 1px solid var(--linha); border-left: 3px solid var(--p-salvia-t); border-radius: 8px; background: var(--branco); }
.cartao-juris.contraria { border-left-color: var(--p-rosa-t); background: var(--p-rosa-claro); }
.ementa { white-space: pre-wrap; font-size: 14px; line-height: 1.6; color: var(--g700); margin: 10px 0; text-align: justify; }
.cartao-juris .linha-botoes { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.cartao-juris .flex { flex: 1; }
@media (max-width: 760px) {
  .teses-layout { grid-template-columns: 1fr; gap: 14px; }
  .areas { position: static; flex-direction: row; flex-wrap: wrap; }
}

/* Preenchimento inteligente */
.preencher { border: 1px solid var(--linha); border-radius: var(--raio); background: var(--p-lavanda); margin-bottom: 18px; }
.preencher summary { cursor: pointer; padding: 11px 16px; display: flex; align-items: baseline; gap: 10px; color: var(--p-lavanda-t); font-weight: 500; list-style: none; }
.preencher summary::-webkit-details-marker { display: none; }
.preencher summary::before { content: '+'; width: 12px; font-weight: 400; }
.preencher[open] summary::before { content: '\2212'; }
.preencher summary small { margin-left: auto; font-weight: 400; font-size: 11px; letter-spacing: .04em; opacity: .8; }
.preencher > :not(summary) { margin-left: 16px; margin-right: 16px; }
.preencher .ajuda { margin-top: 0; color: var(--p-lavanda-t); font-size: 13px; }
.preencher textarea { width: calc(100% - 32px); background: var(--branco); }
.preencher .linha-botoes { padding: 10px 0 14px; }
.status-preencher { margin: -6px 0 18px; padding: 10px 14px; border-radius: var(--raio); background: var(--p-salvia-claro); border: 1px solid var(--p-salvia); color: var(--p-salvia-t); font-size: 13px; }
.status-preencher p { margin: 0 0 4px; }
.status-preencher .aviso { margin: 6px 0; padding: 6px 10px; font-size: 13px; }
.status-preencher .btn { margin-top: 6px; }
.campo.preenchido input, .campo.preenchido select, .campo.preenchido textarea, .campo.preenchido .ref input[type=text] { background: var(--p-salvia-claro); border-color: var(--p-salvia-t); }

/* Painel: bloco "Hoje" (agenda do dia + urgências) no topo */
.painel-hoje { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 0; margin-bottom: 32px; border: 1px solid var(--g900); }
.hoje-col { padding: 18px 22px 16px; min-width: 0; }
.hoje-col + .hoje-col { border-left: 1px solid var(--linha); background: var(--p-rosa-claro); }
.hoje-col h2 { margin: 0 0 10px; display: flex; align-items: baseline; gap: 10px; }
.hoje-col h2 small { font: 400 12px var(--sans); color: var(--g500); letter-spacing: .04em; }
.hoje-col ul { list-style: none; margin: 0; padding: 0; max-height: 380px; overflow-y: auto; }
.hoje-col li { display: flex; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--g150); }
.hoje-col li:last-child { border-bottom: none; }
.hoje-col li.clicavel { cursor: pointer; }
.hoje-col li.clicavel:hover b { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.hoje-col li > div { flex: 1; min-width: 0; }
.hoje-col b { font-weight: 500; }
.hoje-col small { display: block; color: var(--g500); font-size: 12px; margin-top: 3px; }
.agenda-dia .hora { width: 52px; flex: none; font-size: 17px; font-weight: 500; font-variant-numeric: tabular-nums; line-height: 1.2; }
.agenda-dia .hora small { font-size: 11px; margin-top: 1px; }
.agenda-dia li.passou { opacity: .45; }
.agenda-dia li.proximo { background: var(--p-lavanda); margin: 0 -10px; padding-left: 10px; padding-right: 10px; border-radius: var(--raio); border-bottom-color: transparent; }
.tag.preto { background: var(--preto); color: #fff; }
.hoje-col .amanha { margin: 10px 0 0; font-size: 12.5px; }
.urgencias li { padding-left: 10px; border-left: 3px solid transparent; }
.urgencias li.nivel-1 { border-left-color: var(--p-rosa-t); }
.urgencias li.nivel-2 { border-left-color: var(--p-pessego-t); }
.urgencias li.nivel-3 { border-left-color: var(--p-areia-t); }
.urgencias .tipo { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--g500); margin-right: 2px; }
.urgencias .data.fin-saida { color: var(--p-rosa-t); } .urgencias .data.fin-entrada { color: var(--p-salvia-t); }
.urgencias .data { color: var(--g500); font-size: 12.5px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.tudo-em-dia { margin: 6px 0; padding: 14px; background: var(--p-salvia-claro); border: 1px solid var(--p-salvia); color: var(--p-salvia-t); border-radius: var(--raio); font-size: 13.5px; }
@media (max-width: 900px) { .painel-hoje { grid-template-columns: 1fr; } .hoje-col + .hoje-col { border-left: none; border-top: 1px solid var(--linha); } }

/* Tarefas vinculadas a um prazo (dentro do formulário do prazo) */
.tarefas-prazo { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--linha); }
.tarefas-prazo .linha-titulo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.tarefas-prazo h4 { margin: 0; }
.tarefas-prazo ul { list-style: none; margin: 0; padding: 0; }
.tarefas-prazo li { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; padding: 7px 8px; border-bottom: 1px solid var(--linha); cursor: pointer; }
.tarefas-prazo li:hover { background: var(--p-cinza); }
.tarefas-prazo li.apagada .desc { text-decoration: line-through; color: var(--g600); }
.tarefas-prazo li small { margin-left: auto; color: var(--g600); }
.tarefas-prazo .mudo { font-size: 13px; }

/* Receber da agenda do Google */
.agenda-entrada .fontes { list-style: none; margin: 0 0 16px; padding: 0; }
.agenda-entrada .fontes li { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--linha); }
.agenda-entrada .fontes small { display: block; color: var(--g600); font-size: 12px; margin-top: 2px; }
.agenda-entrada .fontes span { white-space: nowrap; }
.agenda-entrada .preencher .grade-form, .agenda-entrada .preencher .passos { margin-top: 8px; }
.google-slot { display: inline-flex; gap: 8px; flex-wrap: wrap; }

/* Converter registro em outro tipo */
.converter .chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.converter .ajuda { color: var(--g600); font-size: 13px; }
.converter .check { display: flex; gap: 8px; align-items: center; margin-top: 10px; }

/* Botão "+" (adicionar qualquer coisa) */
.fab { position: fixed; right: 28px; bottom: 28px; z-index: 50; width: 56px; height: 56px; border-radius: 50%; border: none; background: var(--preto); color: #fff; font: 300 32px/1 var(--sans); cursor: pointer; box-shadow: 0 6px 18px rgba(0, 0, 0, .22); display: flex; align-items: center; justify-content: center; padding-bottom: 3px; transition: transform .15s, background .15s; }
.fab:hover { background: var(--g700); transform: scale(1.06); }
.fab:focus-visible { outline: 3px solid var(--p-lavanda-t); outline-offset: 3px; }
.adicionar-rapido .ajuda { margin-top: 0; color: var(--g600); font-size: 13px; }
.adicionar-rapido textarea { width: 100%; }
.adicionar-rapido .tipos { margin-top: 14px; }
.adicionar-rapido .tipos p { margin: 0 0 8px; font-size: 13px; }
.adicionar-rapido .tipos small { color: var(--g600); }
.adicionar-rapido .chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { padding: 5px 12px; border-radius: 14px; border: 1px solid var(--g300); background: #fff; font: inherit; font-size: 12.5px; cursor: pointer; color: var(--g900); }
.chip:hover { border-color: var(--g700); }
.chip.ativo { background: var(--p-lavanda); border-color: var(--p-lavanda-t); color: var(--p-lavanda-t); font-weight: 500; }
@media (max-width: 760px) { .fab { right: 16px; bottom: 16px; width: 52px; height: 52px; } }
@media print { .fab { display: none; } }

/* Extrair teses de uma peça */
.envio-peca .area-arquivo { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 26px 16px; border: 1px dashed var(--g300); border-radius: var(--raio); cursor: pointer; text-align: center; color: var(--g600); }
.envio-peca .area-arquivo:hover, .envio-peca .area-arquivo.arrastando { border-color: var(--p-lavanda-t); background: var(--p-lavanda); }
.envio-peca .area-arquivo.com-arquivo { border-style: solid; border-color: var(--p-salvia-t); background: var(--p-salvia-claro); }
.envio-peca .area-arquivo b { font-weight: 500; color: var(--g900); }
.envio-peca .area-arquivo span { font-size: 13px; }
.envio-peca .nome-arquivo { color: var(--p-salvia-t); font-weight: 500; }
.envio-peca .ou { display: flex; align-items: center; gap: 12px; margin: 16px 0 10px; color: var(--g500); font-size: 12px; text-transform: uppercase; letter-spacing: .08em; }
.envio-peca .ou::before, .envio-peca .ou::after { content: ''; flex: 1; border-top: 1px solid var(--linha); }
.envio-peca textarea { width: 100%; }
.envio-peca .linha-botoes { margin-top: 12px; }
.carregando-peca { padding: 20px 4px; }
.dados-peca { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px 24px; }
.dados-peca div { display: flex; flex-direction: column; gap: 2px; }
.dados-peca small { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--g500); }
.bloco-peca summary { cursor: pointer; font-family: 'Cormorant Garamond', serif; font-size: 20px; font-weight: 600; }
.bloco-peca .bloco-cab { margin-top: 8px; }
.tese-extraida { border-left: 3px solid var(--p-lavanda-t); }
.tese-extraida.processual { border-left-color: var(--g300); margin: 14px 0 0; }
.tese-extraida.salva { opacity: .55; }
.tese-extraida > .topo-tese { margin-bottom: 14px; }
.tese-extraida > .topo-tese select { max-width: 60%; }
.tese-extraida .sub-juris { margin: 18px 0 8px; font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: var(--g500); font-weight: 500; }
.juri-extraida { display: grid; grid-template-columns: 26px 1fr; gap: 6px; padding: 10px 0; border-top: 1px solid var(--linha); }
.juri-extraida select { width: auto; padding: 2px 6px; font-size: 12px; }
.juri-extraida .ementa { margin: 6px 0 0; font-size: 13px; }
.barra-salvar { position: sticky; bottom: 0; display: flex; align-items: center; gap: 12px; padding: 14px 18px; margin-top: 10px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 -4px 14px rgba(0,0,0,.04); }
@media (max-width: 760px) {
  .tese-extraida > .topo-tese select { max-width: 100%; }
}
