:root {
  --bg: #f4f6f9; --card: #ffffff; --ink: #1d2433; --muted: #5d6779; --line: #dfe3ea;
  --brand: #17375e; --brand-2: #24548f; --accent: #e8eef7;
  --ok-bg: #e2f0d9; --ok: #375623; --warn-bg: #fff2cc; --warn: #7f6000; --err-bg: #f4cccc; --err: #9c0006;
  --gray-bg: #e7e6e6; --gray: #595959;
}
* { box-sizing: border-box; }
body { margin: 0; font: 14px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; background: var(--bg); color: var(--ink); }
a { color: var(--brand-2); text-decoration: none; }
a:hover { text-decoration: underline; }
header.top { background: var(--brand); color: #fff; }
header.top .in { max-width: 1280px; margin: 0 auto; padding: 0 16px; display: flex; align-items: center; gap: 18px; min-height: 52px; flex-wrap: wrap; }
header.top .logo { font-weight: 700; letter-spacing: .3px; color: #fff; white-space: nowrap; }
header.top nav { display: flex; gap: 4px; flex-wrap: wrap; flex: 1; }
header.top nav a { color: #dce6f4; padding: 6px 10px; border-radius: 6px; }
header.top nav a:hover, header.top nav a.on { background: rgba(255,255,255,.14); color: #fff; text-decoration: none; }
header.top .user { font-size: 12.5px; color: #dce6f4; white-space: nowrap; }
header.top .user a { color: #fff; margin-left: 8px; }
.badge { display: inline-block; min-width: 18px; padding: 0 6px; border-radius: 9px; background: #c0392b; color: #fff; font-size: 11px; text-align: center; margin-left: 4px; }
main { max-width: 1280px; margin: 0 auto; padding: 18px 16px 48px; }
h1 { font-size: 20px; margin: 4px 0 14px; }
h2 { font-size: 15px; margin: 0 0 10px; color: var(--brand); text-transform: uppercase; letter-spacing: .4px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 16px; margin-bottom: 16px; }
.grid { display: grid; gap: 16px; }
.g2 { grid-template-columns: repeat(auto-fit, minmax(380px, 1fr)); }
.g4 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.kpi { font-size: 26px; font-weight: 700; color: var(--brand); }
.kpi small { display: block; font-size: 12px; font-weight: 400; color: var(--muted); }
.muted { color: var(--muted); }
.flash { padding: 10px 12px; border-radius: 8px; margin-bottom: 10px; }
.flash.ok { background: var(--ok-bg); color: var(--ok); }
.flash.aviso { background: var(--warn-bg); color: var(--warn); }
.flash.erro { background: var(--err-bg); color: var(--err); }
form.inline { display: inline; }
input[type=text], input[type=password], input[type=date], input[type=datetime-local], input[type=search], select, textarea {
  width: 100%; padding: 8px 10px; border: 1px solid #c9d0db; border-radius: 7px; font: inherit; background: #fff; }
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid #9db8dd; border-color: var(--brand-2); }
label { display: block; font-size: 12.5px; color: var(--muted); margin-bottom: 3px; }
.btn { display: inline-block; padding: 8px 14px; border-radius: 7px; border: 1px solid var(--brand-2); background: var(--brand-2); color: #fff; font: inherit; cursor: pointer; white-space: nowrap; }
.btn:hover { background: var(--brand); text-decoration: none; }
.btn.sec { background: #fff; color: var(--brand-2); }
.btn.sec:hover { background: var(--accent); }
.btn.danger { background: #fff; color: var(--err); border-color: #d9a3a3; }
.btn.sm { padding: 4px 9px; font-size: 12.5px; }
.busca { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; }
.busca .q { flex: 1 1 320px; }
.busca .f { flex: 0 1 200px; }
table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 7px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { font-size: 12px; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .3px; background: #fafbfc; }
tr:hover td { background: #fafcff; }
.tw { overflow-x: auto; }
dl.dados { display: grid; grid-template-columns: 190px 1fr; gap: 6px 12px; margin: 0; }
dl.dados dt { color: var(--muted); }
dl.dados dd { margin: 0; font-weight: 500; }
.pill { display: inline-block; padding: 2px 9px; border-radius: 12px; font-size: 12px; font-weight: 600; }
.p-Ativo, .p-Disponível, .p-Concluído { background: var(--ok-bg); color: var(--ok); }
.p-Inativo, .p-Cancelado { background: var(--gray-bg); color: var(--gray); }
.p-Excluído, .p-Oculto, .p-Indisponível, .p-vencido { background: var(--err-bg); color: var(--err); }
.p-Consultar, .p-Pendente, .p-hoje, .p-avencer { background: var(--warn-bg); color: var(--warn); }
.obs { white-space: pre-wrap; background: #fbfcfe; border: 1px solid var(--line); border-radius: 8px; padding: 10px; font-size: 13.5px; }
.head-emp { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: start; }
.head-emp .acts { display: flex; gap: 6px; flex-wrap: wrap; }
.formgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px 16px; }
.formgrid .full { grid-column: 1 / -1; }
.check { display: flex; gap: 8px; align-items: center; padding-top: 22px; }
.check input { width: 18px; height: 18px; }
.acts-bottom { display: flex; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
.login-box { max-width: 380px; margin: 70px auto; }
.resumo { white-space: pre-wrap; max-width: 620px; }
.tabs { display: flex; gap: 6px; margin-bottom: 12px; }
footer { text-align: center; color: var(--muted); font-size: 12px; padding: 20px; }
@media (max-width: 640px) {
  dl.dados { grid-template-columns: 1fr; }
  dl.dados dt { margin-top: 6px; }
  .g2 { grid-template-columns: 1fr; }
}
/* v1.2: pré-pesquisa, filtros, blocos da empresa */
.ac-wrap { position: relative; }
.ac { position: absolute; left: 0; right: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid var(--line);
  border-radius: 8px; box-shadow: 0 8px 24px rgba(23,55,94,.15); z-index: 50; max-height: 420px; overflow-y: auto; }
.ac-item { display: block; padding: 8px 12px; border-bottom: 1px solid #f0f2f5; color: var(--ink); }
.ac-item:hover, .ac-item.on { background: var(--accent); text-decoration: none; }
.ac-item b { display: block; font-weight: 600; font-size: 13.5px; }
.ac-item span { font-size: 12px; color: var(--muted); }
.ac-vazio { padding: 10px 12px; color: var(--muted); font-size: 13px; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 10px; }
.chip { background: var(--accent); color: var(--brand); border-radius: 12px; padding: 2px 10px; font-size: 12.5px; }
.filtros { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.fgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.filtros fieldset { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin: 0; }
.filtros legend { font-size: 12px; font-weight: 600; color: var(--brand); text-transform: uppercase; padding: 0 4px; }
.fops { max-height: 220px; overflow-y: auto; overflow-x: hidden; padding-right: 6px; }
.fops label input { flex: none; }
.fops .fr { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; }
.fops .fn { flex: none; white-space: nowrap; }
.fops label { display: flex; gap: 6px; align-items: center; font-size: 13px; color: var(--ink); margin: 3px 0; }
.blk-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 10px; }
.blk-head h2 { margin: 0; }
textarea.obs-edit { min-height: 260px; font-size: 13.5px; }
.salvo { font-size: 12px; color: var(--muted); }
.col-dir { display: flex; flex-direction: column; gap: 16px; }
.col-dir .card { margin-bottom: 0; }
.big { font-size: 20px; font-weight: 700; color: var(--brand); }
/* v1.3: Receita, sócios, pasta digital */
.receita { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.receita .btn[disabled] { opacity: .5; cursor: not-allowed; }
.ajuda { position: relative; display: inline-flex; width: 20px; height: 20px; border-radius: 50%; background: var(--accent); color: var(--brand);
  font-weight: 700; font-size: 12px; align-items: center; justify-content: center; cursor: help; flex: none; }
.ajuda:hover::after, .ajuda:focus::after { content: attr(data-tip); position: absolute; left: 50%; bottom: 130%; transform: translateX(calc(-50% + var(--ajuda-dx, 0px)));
  width: min(280px, calc(100vw - 16px)); background: #1d2433; color: #fff; font-weight: 400; font-size: 12.5px; line-height: 1.4; padding: 8px 10px;
  border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.2); z-index: 60; }
.cpf-pend { display: inline-block; font-size: 11.5px; color: var(--warn); background: var(--warn-bg); border-radius: 10px; padding: 1px 8px; }
.end-soc { min-width: 180px; font-size: 13px; }
.st-ok { background: var(--ok-bg); color: var(--ok); }
.st-pend { background: var(--gray-bg); color: var(--gray); }
.st-anl { background: var(--warn-bg); color: var(--warn); }
.st-rej { background: var(--err-bg); color: var(--err); }
.pasta-res { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.barra { height: 8px; background: var(--gray-bg); border-radius: 4px; margin-top: 10px; overflow: hidden; }
.barra div { height: 100%; background: #4f8a3a; }
.anos { display: flex; gap: 12px; flex-wrap: wrap; padding: 6px 0; }
.anos label { display: flex; gap: 4px; align-items: center; color: var(--ink); font-size: 13.5px; margin: 0; }
.doc { padding: 4px 0 8px; }
.doc + .doc { border-top: 1px dashed var(--line); padding-top: 8px; }
.doc-acts { display: flex; gap: 6px; margin-top: 4px; flex-wrap: wrap; }
.motivo { font-size: 12.5px; color: var(--err); margin-top: 2px; }
.linha-doc { padding: 6px 0; border-bottom: 1px solid var(--line); }
.check-docs td { font-size: 13.5px; }
.end-box { margin-top: 4px; }
details summary { cursor: pointer; margin-top: 4px; }
[hidden] { display: none !important; }
input.auto, select.auto { background: #f2f8ee; }
.paginas { display: flex; gap: 10px; align-items: center; margin: 8px 0; }
.nav-ua { font-size: 11.5px; max-width: 320px; }
.socio-card { border-left: 4px solid var(--brand-2); }
.ac-item.socio b::before { content: '👤 '; }
/* v1.4 */
header.top .in2 { display: flex; gap: 10px; align-items: center; padding-bottom: 10px; min-height: 0; }
.busca-topo { position: relative; display: flex; gap: 6px; flex: 1; max-width: 760px; }
.busca-topo input { padding: 7px 10px; border: 0; }
.busca-topo .ac { top: 100%; }
.sel-equipe select { width: auto; padding: 5px 8px; }
/* v1.32: Visão Usuário ao lado do seletor de equipe (só Master) */
.sel-visao { display: inline-flex; align-items: center; gap: 8px; }
.sel-visao select { width: auto; padding: 5px 8px; max-width: 220px; }
.flag-visao { font-size: 13px; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; cursor: pointer; }
.flag-visao[hidden] { display: none; }
.lupa { display: none; background: transparent; border: 0; font-size: 18px; color: #fff; cursor: pointer; }
.sino { position: relative; text-decoration: none; margin-right: 6px; font-size: 15px; }
.sino:hover { text-decoration: none; }
.faixa-msg { background: #fff2cc; border-bottom: 1px solid #e0c36a; }
.faixa-msg .in { max-width: 1280px; margin: 0 auto; padding: 8px 16px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.faixa-msg span { flex: 1; }
@media (max-width: 760px) {
  .busca-topo { display: none; }
  body.busca-aberta .busca-topo { display: flex; max-width: none; }
  .lupa { display: inline-block; }
  body.busca-aberta .lupa { display: none; }
}
.gerente { margin-top: 6px; font-size: 13.5px; }
.sel-mini { width: auto; padding: 2px 6px; font-size: 12.5px; margin-left: 6px; }
.btn-mapa { font-size: 12px; white-space: nowrap; margin-left: 4px; }
.org-btn { margin-left: 6px; }
.cnaes { margin: 0; padding-left: 18px; font-size: 13px; }
.cnaes li { margin: 2px 0; }
table.cred th { background: transparent; text-transform: none; font-size: 13px; color: var(--muted); font-weight: 500; padding-left: 0; width: 38%; }
table.cred td { border-bottom: 1px solid var(--line); }
table.cred td.big { font-size: 18px; }
table.cred tr.fin-linha td { font-size: 13px; }
.logs-link { text-align: right; font-size: 12.5px; margin: -6px 0 10px; }
.logs-link a { color: var(--muted); }
.ag-hoje { background: #f2c94c !important; border-color: #d9ad1f !important; color: #3d3000 !important; }
.ag-vencido { background: #c0392b !important; border-color: #a93226 !important; color: #fff !important; }
.barras { display: flex; gap: 14px; align-items: flex-end; height: 230px; padding: 10px 4px 0; border-bottom: 1px solid var(--line); overflow-x: auto; }
.barra-col { flex: 1; min-width: 56px; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; text-decoration: none; color: var(--ink); }
.barra-col:hover { text-decoration: none; }
.barra-col:hover .barra-v { background: var(--brand); }
.barra-v { width: 70%; max-width: 64px; background: #7fa3cf; border-radius: 4px 4px 0 0; min-height: 2px; transition: background .15s; }
.barra-col.atual .barra-v { background: var(--brand-2); }
.barra-col.atual .barra-rot { font-weight: 700; color: var(--brand); }
.barra-n { font-weight: 700; font-size: 13px; margin-bottom: 4px; }
.barra-rot { font-size: 12px; text-align: center; padding: 6px 0; white-space: nowrap; }
.barra-rot small { display: block; color: var(--muted); font-size: 11px; }
.f-busca { margin-bottom: 6px; padding: 5px 8px; font-size: 13px; }
.form-secao { font-size: 12.5px; font-weight: 700; color: var(--brand); text-transform: uppercase; letter-spacing: .4px; border-top: 1px solid var(--line); padding-top: 12px; margin-top: 4px; }
.radios { display: flex; gap: 18px; flex-wrap: wrap; padding: 6px 0; }
.radios label { display: flex; gap: 6px; align-items: center; color: var(--ink); font-size: 14px; margin: 0; }
.destaque { background: #fff7d6; border: 2px solid #f2c94c; border-radius: 10px; padding: 10px; }
.destaque input { font-size: 17px; font-weight: 600; }
.destaque-dica { font-size: 12px; color: #7f6000; font-weight: 600; margin-left: 4px; }
.travado { opacity: .45; }
.geo-box { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 14px; padding: 10px; border: 1px dashed var(--line); border-radius: 8px; }
.soltar { border: 2px dashed #9db8dd; border-radius: 12px; padding: 30px 16px; text-align: center; cursor: pointer; background: #f8fbff;
  display: flex; flex-direction: column; gap: 6px; transition: background .15s, border-color .15s; }
.soltar b { font-size: 16px; color: var(--brand); }
.soltar.ativa { background: #e5effb; border-color: var(--brand-2); }
.upl-fundo { position: fixed; inset: 0; background: rgba(20,30,50,.45); z-index: 200; display: flex; align-items: center; justify-content: center; padding: 16px; }
.upl-fundo[hidden] { display: none !important; }
.upl-caixa { background: #fff; border-radius: 12px; padding: 20px; width: 100%; max-width: 520px; box-shadow: 0 12px 40px rgba(0,0,0,.25); }
.upl-titulo { font-weight: 700; margin-bottom: 12px; }
.upl-linha { display: flex; gap: 10px; align-items: center; }
.upl-barra { flex: 1; height: 14px; background: var(--gray-bg); border-radius: 7px; overflow: hidden; }
.upl-cheio { height: 100%; width: 0; background: var(--brand-2); transition: width .2s; }
.upl-pct { width: 44px; text-align: right; font-weight: 700; }
.upl-det { margin-top: 6px; font-size: 12.5px; }
.upl-pergunta { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); }
.upl-pergunta p { margin: 0 0 10px; }
.lote-item { border: 1px solid var(--line); border-radius: 10px; padding: 12px; margin-bottom: 12px; }
.lote-item.com-erro { border-color: #d9a3a3; background: #fff8f8; }
.lote-cab { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.nome-arq-completo { font-weight: 700; word-break: break-all; flex: 1; min-width: 200px; }
.lote-incluir { display: flex; gap: 4px; align-items: center; margin: 0; color: var(--ink); }
.nome-arq { word-break: break-all; }
.config-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.cfg-item { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--ink); margin-bottom: 0; }
.cfg-item:hover { text-decoration: none; border-color: var(--brand-2); }
.cfg-item b { font-size: 15px; }
.opcao { padding: 10px 0; border-bottom: 1px solid var(--line); }
label.opcao { display: flex; gap: 8px; align-items: center; color: var(--ink); font-size: 14px; }
.arm-opcao { border: 1px solid var(--line); border-radius: 10px; padding: 14px; margin-bottom: 12px; }
.arm-opcao.on { border-color: #4f8a3a; }
.arm-opcao.desativada { opacity: .6; }
.arm-cab { display: flex; gap: 8px; align-items: center; }
.arm-cab label { display: flex; gap: 6px; align-items: center; margin: 0; color: var(--ink); font-size: 14px; }
.msg.nova { border-left: 4px solid #f2c94c; }
select.ignorada { color: var(--muted); }
h3.sub { font-size: 13.5px; margin: 14px 0 6px; }
.org-cab { margin-bottom: 10px; }
.org-legenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: 12.5px; margin-top: 10px; color: var(--muted); }
.org-legenda .lg { display: inline-block; width: 22px; height: 12px; vertical-align: middle; border-radius: 3px; margin-right: 4px; }
.lg.emp { background: #e8eef7; border: 2px solid #24548f; }
.lg.fora { background: #fff; border: 2px dashed #24548f; }
.lg.pf { background: #e2f0d9; border: 2px solid #4f8a3a; border-radius: 8px; }
.lg.pj { background: #efe6f7; border: 2px solid #7a4fa0; border-radius: 8px; }
.lg.linha { height: 0; border-top: 2px solid #7a8699; border-radius: 0; }
.lg.linha-fora { height: 0; border-top: 2px dashed #a0a8b5; border-radius: 0; }
.org-area { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 10px; height: 72vh; min-height: 420px; overflow: hidden; }
#org { width: 100%; height: 100%; touch-action: none; cursor: grab; user-select: none; }
#org .org-no { cursor: pointer; }
#org-painel { position: absolute; top: 10px; right: 10px; width: 300px; max-width: calc(100% - 20px); background: #fff; border: 1px solid var(--line);
  border-radius: 10px; padding: 14px; box-shadow: 0 8px 24px rgba(23,55,94,.15); }
#org-painel h3 { margin: 4px 0; font-size: 15px; }
#org-painel .fechar { position: absolute; top: 6px; right: 8px; border: 0; background: transparent; font-size: 20px; cursor: pointer; color: var(--muted); }

/* v1.4 – guia do Google Drive */
details.guia{margin:10px 0;padding:8px 12px;border:1px solid #e3e6ea;border-radius:8px;background:#fafbfc}
details.guia summary{cursor:pointer;font-weight:600}
.guia-passos{margin:10px 0;padding:10px 14px;border-left:3px solid #2b6cb0;background:#f4f8fc;border-radius:6px}
.guia-passos ol,details.guia ol,details.guia ul{margin:8px 0 4px 18px;padding:0}
.guia-passos li,details.guia li{margin:6px 0;line-height:1.45}
ol.passos-google li{margin:12px 0}
ol.passos-google .btn.sm{margin-left:6px}
.copiar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:6px}
.copiar code{background:#fff;border:1px solid #d8dde3;padding:6px 8px;border-radius:6px;word-break:break-all}
.geo-ajuda{margin-top:8px;font-size:.92em}

/* v1.5 */
.kpi-link{display:block;color:inherit;text-decoration:none}.kpi-link:hover small{text-decoration:underline}
.em-breve{margin:8px 0 0;display:flex;align-items:center;gap:6px}
.btn[disabled]{opacity:.45;cursor:not-allowed}

.vinc-box{border:1px solid #f0d58c;background:#fff9e8;border-radius:8px;padding:10px 12px;margin:0 0 12px;font-size:14px}
.vinc-op{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px dashed #ecdcae}
.vinc-op .btn{flex:none}
/* v1.5 – endividamento */
table.divida{font-size:13px;width:100%}table.divida td.num,table.divida th.num{text-align:right;white-space:nowrap}
table.divida tfoot th{background:#eef1f5;border-top:2px solid #c9ced6}table.divida td.gar{max-width:260px}
.div-ind{margin:10px 0 0}.sub-h{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7486);margin:6px 0}
.div-form input,.div-form select{padding:6px 7px;font-size:13px;min-width:0}.div-form td{vertical-align:top;padding:4px}
.div-form input.num{width:120px;text-align:right}.div-form td.taxa{white-space:nowrap}.div-form td.taxa input{width:70px}
.div-form td.taxa select{width:auto}.t-val{white-space:nowrap}
.div-tot{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:6px 0 12px}
.div-tot>div{background:#f4f6f9;border-radius:8px;padding:10px 12px}.div-tot small{display:block;color:#6b7486;font-size:11.5px}
.div-tot b{font-size:17px;color:#0d1f3c}.div-acoes{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.div-emp{border:1px solid #e3e6ea;border-radius:8px;margin:6px 0}.div-emp summary{cursor:pointer;padding:9px 12px;display:grid;
  grid-template-columns:minmax(180px,2.2fr) .6fr 1.2fr 1.2fr 1fr .6fr;gap:10px;align-items:center;font-size:13.5px}
.div-emp summary .nome{font-weight:600}.div-emp.restrito{display:flex;justify-content:space-between;padding:9px 12px;font-size:13.5px}
.div-det{padding:4px 12px 12px}
@media(max-width:760px){.div-emp summary{grid-template-columns:1fr 1fr}.div-emp summary .nome{grid-column:1/-1}}
.graf-div{position:relative;margin:6px 0 4px}.graf-div svg{width:100%;height:280px;display:block}
.graf-leg{display:flex;gap:18px;font-size:12.5px;color:#4a5366;margin-bottom:4px}.graf-leg i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:5px}
.graf-tip{position:absolute;pointer-events:none;background:#fff;border:1px solid #d3d8e0;border-radius:6px;padding:7px 9px;font-size:12px;
  box-shadow:0 4px 14px rgba(0,0,0,.1);white-space:nowrap;color:#1d2433}

.regra-senha{display:block;font-size:12px;color:#6b7486;margin-top:4px}.regra-senha.ok{color:#1e7b34}.regra-senha.falta{color:#9c0006}
.captcha{margin:0 0 14px}.captcha-lin{display:flex;align-items:center;gap:8px;margin:4px 0 8px}.captcha-lin img{border:1px solid #d3d8e0;border-radius:6px}
.rod-legal{text-align:center;font-size:12px;margin:18px 0 0}.rod-legal a{color:#8a93a3}

header.top .logo{display:inline-flex;align-items:center;gap:8px}header.top .logo img{height:26px;width:auto;object-fit:contain}
footer a{color:inherit}
.legal{max-width:860px;margin:0 auto;font-size:15px;line-height:1.6}.legal h2{font-size:17px;margin:22px 0 6px}.legal-marca{margin:0}

.sub-docs{padding:0!important}.sub-doc{padding:8px 10px;border-bottom:1px solid #eef0f3}.sub-doc:last-child{border-bottom:0}
.sub-cab{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}

/* v1.6 */
.linha-campos{display:flex;gap:8px;align-items:center}.linha-campos select{width:auto}

/* v1.6 – telefones */
input[type=tel]{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:8px;font:inherit;background:#fff}
input::placeholder,textarea::placeholder{color:#a9b0bc;font-style:italic}
.fones{display:flex;flex-direction:column;gap:6px}.fone-lin{display:flex;gap:6px;align-items:center}.fone-add{align-self:flex-start}
.tel-lista .tel{display:flex;margin:2px 0}

.toast{position:fixed;right:16px;bottom:16px;z-index:60;background:#0d1f3c;color:#fff;padding:10px 14px;border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.2);text-decoration:none}
/* v1.6 – cadastro */
.cad-titulo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.sit{border-radius:999px;padding:3px 26px 3px 12px;font-size:12.5px;font-weight:700;border:0;cursor:pointer;width:auto;text-transform:none;letter-spacing:0;
  appearance:auto;line-height:1.6}
span.sit{padding:3px 12px;display:inline-block}
.sit-ativo{background:#dff3e3;color:#1e7b34}.sit-inativo{background:#eceef2;color:#4a5366}.sit-excluido{background:#f8d7d7;color:#9c0006}
.cad-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px 22px;margin-top:4px}
.cad-grid.cad-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.cad-sec{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}
.cad-sec h3{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#8a93a3;margin:0 0 4px}
.cad-campo{padding:5px 0;min-width:0;overflow-wrap:anywhere}.cad-campo.larga{grid-column:1/-1}
.cad-campo>small{display:block;font-size:11.5px;color:#6b7486;margin-bottom:1px}.cad-campo .vazio{color:#b3bac6}
.cad-campo ul.cnaes{margin:0;padding-left:18px}
.org-btn.desab{opacity:.45;cursor:not-allowed}
.conf-caixa{max-width:460px}.conf-texto{margin-bottom:14px;line-height:1.5}.conf-botoes{display:flex;gap:8px;justify-content:flex-end}

/* v1.6 – gráficos de visitas */
.vis-blocos{align-items:start}.vis-blocos>div{min-width:0}
.vl-tab{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.vl-tab td{text-align:center;padding:3px 2px;border:0}
.vl-tab td.vl-rot{width:150px;text-align:left;color:#4a5366;font-weight:600;white-space:normal}
.vl-tab tr:not(.vl-eixo) td:not(.vl-cel):not(.vl-rot){border-top:1px solid #eef0f3}
.vl-eixo td{color:#6b7486;font-size:11px}.vl-eixo td.atual{color:#0d1f3c;font-weight:700}
.vl-cel{padding:0!important}.vl-graf{position:relative;height:150px;margin:18px 0 4px}
.vl-graf svg{position:absolute;inset:0;width:100%;height:100%}.vl-grade{stroke:#eceef2;stroke-width:1;vector-effect:non-scaling-stroke}
.vl-linha{fill:none;stroke:#0d1f3c;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.vl-pt{position:absolute;width:10px;height:10px;margin:0 0 -5px -5px;border-radius:50%;background:#0d1f3c;border:2px solid #fff;box-shadow:0 0 0 1px #0d1f3c}
.vl-pt.atual{background:#c08a1e;box-shadow:0 0 0 1px #c08a1e}
.vl-pt span{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-size:11px;color:#1d2433;font-weight:600}
.vl-pt:hover{transform:scale(1.3)}
@media(max-width:640px){.vl-tab{min-width:620px}.vl-tab td.vl-rot{width:120px;position:sticky;left:0;background:#fff;z-index:1}}

.filtro-base{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.filtro-base input[type=search]{flex:1;min-width:200px}.filtro-base select{width:auto}
.lista-base th a,.cartoes th a{color:inherit}.paginas{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:12px}
/* v1.6 – faturamento mês a mês */
.fat-tab{width:100%;table-layout:fixed;border-collapse:collapse;min-width:560px}.fat-tab th,.fat-tab td{padding:4px 6px;text-align:center}
.fat-tab .fat-mes{width:120px;text-align:left;font-weight:600;color:#4a5366;position:sticky;left:0;background:#fff;z-index:1}
.fat-tab input.fat-v{width:100%;text-align:right;padding:7px 8px}.fat-tab tfoot th{border-top:2px solid var(--line);font-size:13px;color:#0d1f3c}
.fat-doc{font-weight:400;font-size:11.5px;margin-top:2px}.fat-doc details a{display:block;font-size:11px}
.fat-rodape{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}
/* ===== v1.6: celular (menu, busca, blocos, tabelas em cartões) e fila de envios ===== */
.menu-btn, .busca-fechar { display: none; background: transparent; border: 0; color: #fff; font-size: 22px; cursor: pointer; padding: 4px 8px; line-height: 1; }
.fila-ind { background: #f5c451; color: #3a2a00 !important; border-radius: 12px; padding: 2px 10px; font-weight: 600; margin-right: 8px; text-decoration: none; }
.fila-ind:hover { text-decoration: none; }
.blk-head { flex-wrap: wrap; }
.blk-head .acts, .blk-head > span:last-child { display: flex; flex-wrap: wrap; gap: 6px; }
html, body { max-width: 100%; overflow-x: hidden; }
img, svg { max-width: 100%; }
@media (max-width: 760px) {
  header.top .in { gap: 8px; padding: 6px 12px; min-height: 48px; flex-wrap: nowrap; }
  header.top .logo { flex: 1; }
  .menu-btn { display: inline-block; order: 3; }
  header.top .user { order: 2; font-size: 12px; }
  header.top .user .u-info, header.top .user .u-nome { display: none; }
  header.top nav { display: none; }
  body.menu-aberto header.top nav { display: flex; flex-direction: column; position: absolute; left: 0; right: 0; top: 48px; z-index: 80;
    background: var(--brand); padding: 6px 12px 12px; box-shadow: 0 10px 20px rgba(0,0,0,.25); }
  body.menu-aberto header.top nav a { padding: 11px 10px; font-size: 15px; border-bottom: 1px solid rgba(255,255,255,.08); }
  header.top { position: relative; }
  header.top .in2 { flex-wrap: wrap; padding: 0 12px 8px; }
  .sel-visao { flex: 1 1 100%; } .sel-visao select { flex: 1; max-width: 100%; }
  .sel-equipe { flex: 1; min-width: 0; } .sel-equipe select { width: 100%; max-width: 100%; }
  body.busca-aberta .sel-equipe { display: none; }
  body.busca-aberta .busca-topo { display: flex; flex: 1 1 100%; max-width: none; align-items: center; }
  body.busca-aberta .busca-topo input { flex: 1; min-width: 0; font-size: 16px; padding: 9px 10px; border-radius: 6px; }
  body.busca-aberta .busca-fechar { display: inline-block; }
  .busca-topo .ac { position: absolute; left: 0; right: 0; top: calc(100% + 2px); max-height: 60vh; z-index: 90; }
  main { padding-left: 10px; padding-right: 10px; }
  .card { padding: 14px 14px; }
  .btn { white-space: normal; }
  .blk-head h2 { flex: 1 1 auto; }
  .head-emp .acts .btn { flex: 1 1 auto; text-align: center; }
  .cad-grid, .cad-grid.cad-2 { grid-template-columns: 1fr 1fr; gap: 2px 14px; }
  .cad-campo.larga, .cad-grid.cad-2 .cad-campo { grid-column: 1 / -1; }
  table.cred th { width: auto; }
  /* tabelas que viram cartões */
  table.cartoes, table.cartoes > tbody { display: block; width: 100%; }
  table.cartoes tr.cab, table.cartoes > tbody > tr:first-child:has(> th) { display: none; }
  table.cartoes tr { display: block; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; margin-bottom: 10px; background: #fff; }
  table.cartoes td { display: block; position: relative; border: 0 !important; padding: 4px 0 4px 118px !important; min-height: 22px;
    text-align: left !important; white-space: normal !important; min-width: 0; overflow-wrap: normal; width: auto !important; }
  table.cartoes td::before { content: attr(data-rot); position: absolute; left: 0; top: 6px; width: 112px; font-size: 10.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--muted);
    text-transform: uppercase; font-weight: 600; letter-spacing: .03em; overflow-wrap: normal; }
  table.cartoes td.sem-rot, table.cartoes td[colspan] { padding-left: 0 !important; }
  table.cartoes td.sem-rot { display: block; } table.cartoes td.sem-rot::before { content: none; }
  table.cartoes td:empty { display: none; }
  table.cartoes td[colspan] { display: block; } table.cartoes td[colspan]::before { content: none; }
  .tw:has(> table.cartoes) { overflow: visible; }
}
/* fila de envios */
.fila-item { border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.fila-item .fi-cab { display: flex; justify-content: space-between; gap: 8px; flex-wrap: wrap; align-items: center; }
.fila-item .fi-arqs { font-size: 13px; color: var(--muted); overflow-wrap: anywhere; }
.fila-item .barra { margin-top: 8px; }
.fila-item .fi-acts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.aviso-planilha { border-left: 4px solid #e0b400; background: #fff8dc; padding: 8px 12px; border-radius: 6px; margin: 10px 0; font-size: 13.5px; }
@media (max-width: 760px) {
  table.cartoes > thead { display: none; }
  table.cartoes > tbody { display: block; }
  table.cartoes td .btn { margin-top: 2px; }
}
.check-linha{display:flex;gap:6px;align-items:center;color:var(--ink);font-size:13.5px;margin:4px 0}
.bal-pub{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);font-size:13.5px}.bal-pub ul{margin:4px 0 0;padding-left:18px}.bal-pub li{margin:3px 0}
.por-usuario{cursor:help;border-bottom:1px dotted #9aa3b2}
.ed-nome{cursor:pointer;border-bottom:1px dashed #9aa3b2}.ed-nome:hover{background:var(--accent)}.ed-input{padding:3px 6px;font-size:13.5px;min-width:140px}
.aviso-am{display:inline-block;font-size:12.5px;color:#7a5600;background:#fff4cc;border:1px solid #f0d27a;border-radius:6px;padding:2px 8px;margin-top:3px}
.toast a{color:#fff;text-decoration:none}.toast-fixo{display:flex;gap:10px;align-items:center;background:#7a5600;max-width:calc(100vw - 32px)}.toast-x{background:transparent;border:0;color:#fff;font-size:16px;cursor:pointer}.lote-ind{background:#ffd76a}.lote-faixa .btn{margin-left:6px}

/* v1.7: exclusão sempre afastada dos outros botões */
.zona-excluir{margin:28px 0 8px;padding:14px 16px;border:1px solid #f0c7c7;border-radius:10px;background:#fffafa}
.zona-excluir h3{margin:0 0 6px;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#9c0006}
.zona-excluir p{margin:0 0 10px;font-size:13px}
.doc-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.doc-acts .acao-excluir{margin:0}   /* v1.10: Excluir logo depois de "Editar dados" (pedido do Max) */
.btn.danger-sec{background:#fff;color:#9c0006;border:1px solid #e0b4b4}
.fi-acts .fi-rem{margin-left:auto}.acao-excluir-lin{margin-left:28px}

/* v1.8: balões de confirmação (empilhados no canto) */
#baloes{position:fixed;right:16px;bottom:16px;z-index:70;display:flex;flex-direction:column;gap:8px;align-items:flex-end;max-width:calc(100vw - 32px);pointer-events:none}
#baloes .toast{position:static;pointer-events:auto;display:flex;gap:10px;align-items:center;max-width:460px;line-height:1.35}
.toast.balao-ok{background:#1f6b3a}.toast.balao-aviso{background:#7a5600}.toast.balao-erro{background:#9c1c1c}
.toast .balao-txt{flex:1}
@media (max-width:640px){#baloes{left:16px;right:16px;align-items:stretch}#baloes .toast{max-width:none}}
.dica{position:relative;cursor:help}
.dica:hover::after,.dica:focus::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 6px);width:300px;max-width:80vw;background:#1d2433;color:#fff;
  font-weight:400;font-size:12.5px;line-height:1.4;padding:8px 10px;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.2);z-index:60;white-space:normal}
.ac-item.novo{background:#fff8e1}.ac-item.novo b::before{content:'🔎 '}.ac-item.novo span{color:#1f6b3a;font-weight:600}
.ac-item.invalido{background:#fdecec}.ac-item.invalido b::before{content:'⚠ '}
.nao-loc{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.end-soc a{overflow-wrap:anywhere}.end-soc>div{margin-bottom:2px}.soc-obs{white-space:pre-line}
.lg.linha-grupo{width:22px;height:0;border-top:2px dashed #c08a1e;border-radius:0;background:none;vertical-align:middle}
.abas-base{display:flex;gap:6px;margin:0 0 10px;flex-wrap:wrap}
.abas-base a{padding:8px 14px;border-radius:8px 8px 0 0;border:1px solid var(--line);border-bottom:2px solid transparent;background:#fff;color:var(--ink);text-decoration:none;font-weight:600}
.abas-base a.on{border-bottom-color:var(--brand);color:var(--brand)}
.linhas-campo{display:flex;flex-direction:column;gap:6px}.linha-item{display:flex;gap:6px;align-items:center}.linha-item input{flex:1}.linha-add{align-self:flex-start}
.patrimonio{border-collapse:collapse;margin-top:8px;min-width:280px;max-width:420px;width:100%}.patrimonio th{text-align:left;font-size:11.5px;color:#6b7486;padding:4px 8px;border-bottom:1px solid var(--line)}
.patrimonio td{padding:5px 8px;border-bottom:1px solid var(--line)}.patrimonio .num{text-align:right;white-space:nowrap}.patrimonio .tot td{font-weight:700;border-top:2px solid var(--line)}
.soma-campo{padding:9px 0}
/* v1.8: linha de mercado no Painel */
.mercado{display:flex;gap:6px 16px;flex-wrap:nowrap;overflow-x:auto;align-items:center;cursor:grab;user-select:none;background:#fff;border:1px solid var(--line);border-radius:10px;
  padding:8px 12px;margin:0 0 14px;font-size:12.5px;white-space:nowrap;scrollbar-width:thin}
.mk{display:inline-flex;gap:6px;align-items:center;padding-right:14px;border-right:1px solid var(--line)}
.mk:last-child{border-right:0}.mk b{font-weight:600;color:#4a5366}.mk-v{font-weight:700;color:var(--ink)}.mk-p{font-weight:600}
.mk svg{flex:none;display:block;width:54px;height:18px}
/* v1.9: enviar arrastando o arquivo na linha do documento */
tr.linha-doc-tipo.alvo td{background:#eaf2ff;outline:2px dashed var(--brand);outline-offset:-2px}
.soltar-linha{margin-top:6px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dica-soltar{font-size:11.5px}
@media (hover:none){.dica-soltar{display:none}}
.env-caixa{max-width:860px;width:calc(100vw - 32px);max-height:calc(100vh - 40px);overflow:auto}
.env-cab{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.env-cab .toast-x{color:var(--ink)}
/* v1.9: letreiro das cotações */
.mercado{scrollbar-width:none}.mercado::-webkit-scrollbar{display:none}.mercado.arrastando{cursor:grabbing}
.mk-trilho{display:flex;flex:none}.mk-copia{display:flex;flex:none;gap:6px 16px;padding-right:16px}
.mk-copia .mk:last-child{border-right:1px solid var(--line)}

/* v1.9 – status comercial com cor por etapa (a cor vem da variável --c, definida pelo Master) */
.pill-status{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1.6;
  color:color-mix(in srgb,var(--c,#4a5568) 78%,#000);background:color-mix(in srgb,var(--c,#4a5568) 15%,#fff);
  border:1px solid color-mix(in srgb,var(--c,#4a5568) 55%,#fff);white-space:nowrap}
/* v1.23: no celular o status comercial longo ("Aguardando disponibilidade de…") invadia o campo ao lado (Situação na Receita):
   dentro do Cadastro a etiqueta pode quebrar em linhas e nunca passa da largura da própria coluna */
.cad-campo .pill-status,.cad-campo .pill{white-space:normal;max-width:100%;overflow-wrap:anywhere;border-radius:14px;line-height:1.35;padding:3px 10px}
.cad-campo>div{min-width:0;max-width:100%}
select.sel-status{width:auto;max-width:100%;padding:2px 22px 2px 10px;cursor:pointer;font-family:inherit;height:auto;
  -webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);
  background-position:right 10px top 55%,right 6px top 55%;background-size:4px 4px;background-repeat:no-repeat}
select.sel-status option{color:#1a202c;background:#fff}
.form-status{margin:0 4px}
.tab-status td{vertical-align:middle}
.tab-status input[type=color]{width:46px;height:30px;padding:2px;border-radius:6px}
.tab-status .col-excluir{text-align:right;padding-left:40px}
/* v1.9 – página de serviços externos */
.links-ext{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
/* v1.10 – agenda: retorno da carteira sem contato (sem cor, só o texto) */
.ret-sem{font-weight:600}
/* v1.10 – Pasta digital: botões do topo e janela "Baixar tudo" */
.acts-topo{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start}
.lista-check{display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}
.campos-periodo{margin-top:6px;gap:6px;align-items:center}
.campos-periodo input{width:auto}
/* v1.11 – aviso do que foi lido do arquivo e selo "Sócio" na conferência do lote */
.lido-arquivo{color:var(--ok);font-size:13px;margin:4px 0 0}
.lido-arquivo:empty{display:none}
.selo-socio{font-size:11px;padding:1px 7px;background:#eef4fb;color:#2b6cb0;margin-left:4px}
/* v1.11 – dado validado por documento da Pasta digital */
.validado{color:var(--ok);font-weight:600;font-size:12px;margin-left:4px;cursor:help}
/* v1.11 – ícone do WhatsApp na frente do celular */
/* v1.12: telefone = ícone do WhatsApp + número, na mesma linha */
.tel{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
a.whats{display:inline-flex;align-items:center;text-decoration:none;flex:none}
a.whats:hover svg{transform:scale(1.15)}
/* v1.11 – conferência do lote: documento de outra empresa */
.outra-emp{margin:6px 0 8px;padding:8px 12px;border-left:3px solid #b7791f;background:#fffaf0;border-radius:6px;font-size:13.5px}
.outra-emp .check-linha{margin:4px 0 0}

/* v1.12: CNPJ digitado para documento que parece ser de outra empresa */
.outra-cnpj{display:flex;align-items:center;gap:8px;margin:6px 0}.outra-cnpj label{margin:0;white-space:nowrap}.outra-cnpj input{max-width:220px}
/* v1.12: seções dentro do bloco Crédito (Endividamento bancário, Análise de crédito) */
.sec-credito{margin-top:18px;padding-top:12px;border-top:1px solid var(--line)}
.sec-credito .blk-head{margin-bottom:6px}.sec-credito .blk-head .sub-h{margin:0}
.outra-lido{margin:4px 0 2px}.ok-txt{color:var(--ok);font-weight:600;margin-left:6px}.aviso-txt{color:#9a5b00;font-weight:600;margin-left:6px}
.simples-linha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:13.5px}.simples-linha label{margin:0}.simples-linha select{width:auto;padding:4px 8px}
.tel-lista .tel:not(:has(.whats)){padding-left:24px}   /* v1.12: fixo alinhado com os celulares */
/* v1.13: patrimônio da pessoa física item a item */
.patr-tot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 12px}
.patr-tot>div{border:1px solid var(--line);border-radius:10px;padding:10px 12px}.patr-tot small{display:block;color:var(--muted)}.patr-tot b{font-size:18px}
.patr-tipo{border-top:1px solid var(--line);padding-top:8px;margin-top:8px}.patr-tipo h4{margin:0;font-size:14px}
.patr-item{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line)}
.patr-item .num{white-space:nowrap;text-align:right;display:flex;gap:6px;align-items:flex-start}.patr-obs{white-space:pre-line}
@media(max-width:640px){.patr-tot{grid-template-columns:1fr}.patr-item{flex-direction:column}}
.soc-acts{width:1%}.soc-acts .btn{display:block;margin:2px 0;text-align:center;white-space:nowrap;padding:3px 8px;font-size:12.5px}
.conf-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.conf-cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:4px}.conf-campos{margin-top:6px}
/* v1.15: origem do valor sob o campo do formulário e aviso de informação mais recente da Receita/Cartão CNPJ */
.origem-campo{font-size:12.5px;margin-top:3px}
.pend-receita{border-left:4px solid #b7791f}

/* v1.16: % de cotas bloqueado (qualificação sem cotas) */
input.bloqueado { background: #e9ecf1; color: #8a93a3; cursor: not-allowed; }

/* v1.16: período parcial do faturamento grifado em amarelo */
span.per-parcial{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:1px 8px;font-weight:600}

/* v1.16.1: lista de sugestões própria (ignora acentos) dos campos com opções */
.sug-lista{position:absolute;z-index:30;max-height:240px;overflow-y:auto;min-width:220px;background:#fff;border:1px solid #c9d3df;border-radius:8px;box-shadow:0 6px 18px rgba(0,0,0,.14);margin-top:2px}
.sug-item{padding:6px 10px;cursor:pointer;font-size:14px}
.sug-item:hover,.sug-item.ativo{background:#e8f0fa}

/* Tabela de sócios sem barra de rolagem lateral: o conteúdo quebra linha em vez de alargar a tabela */
.tw-socios { overflow-x: visible; }
.tw-socios table { width: 100%; table-layout: auto; }
.tw-socios th, .tw-socios td { padding-left: 6px; padding-right: 6px; font-size: 13px; }
.tw-socios td { overflow-wrap: normal; }                   /* v1.30: palavra nunca quebra no meio (ex.: "Administrador"); só e-mail/endereço/links longos (regra .qb abaixo) */
.tw-socios th { overflow-wrap: normal; word-break: normal; hyphens: none; font-size: 12px; }   /* cabeçalho: nunca quebra uma palavra ao meio */
.tw-socios td.doc-soc { white-space: normal; min-width: 110px; }
.tw-socios .end-soc { min-width: 140px; max-width: 220px; }

/* v1.17: blocos recolhíveis da Pasta digital */
.grp-tit { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.grp-seta { border: 1px solid var(--line); background: #fff; border-radius: 6px; width: 28px; height: 28px; cursor: pointer; font-size: 15px; line-height: 1; }
.grp-resumo { font-size: 12px; font-weight: 600; }
.grp-origem { font-size: 12.5px; font-weight: 400; }
.grp-card.recolhido .grp-corpo { display: none; }
.grp-card.recolhido .blk-head { margin-bottom: 0; }
.grp-barra { display: flex; gap: 8px; margin: 0 0 10px; }
.baixar-emp { border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; margin-bottom: 10px; background: #fff; }
.baixar-emp h3 { margin: 0 0 6px; font-size: 15px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

/* v1.17: poderes do sócio (diretor, administrador, procurador...) na lista de sócios */
.poderes { font-size: 12px; margin-top: 3px; }
.poderes-ok { color: #2f855a; } .poderes-aviso { color: #b7791f; font-weight: 600; } .poderes-vencido { color: #c53030; font-weight: 600; }

.nowrap { white-space: nowrap; }        /* v1.18: CNPJ/CPF nunca quebra em duas linhas (ex.: importação) */
.g5 { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }

/* v1.18: botão minimalista de copiar */
.btn-copiar { border: 0; background: transparent; color: var(--muted, #718096); cursor: pointer; padding: 2px 4px; margin-left: 4px; border-radius: 4px; line-height: 1; vertical-align: middle; font-size: 12px; }
.btn-copiar:hover { color: var(--azul, #1a4f8b); background: #eef2f7; }
.btn-copiar.copiado { color: #1a7f37; }

/* v1.18: caixa de aviso (dialog) */
dialog.dlg-aviso { border: 1px solid var(--line, #d9dee5); border-radius: 10px; padding: 20px; max-width: 520px; width: calc(100% - 32px); box-shadow: 0 12px 40px rgba(0,0,0,.25); }
dialog.dlg-aviso::backdrop { background: rgba(0,0,0,.45); }


/* v1.19: aviso de carregamento — barra fina no topo, camada que bloqueia cliques repetidos e caixa "Processando…" */
#crm-barra { position: fixed; top: 0; left: 0; height: 3px; width: 0; background: var(--brand-2, #1f5fa8); z-index: 10000; opacity: 0; pointer-events: none; transition: opacity .2s; }
#crm-barra.on { opacity: 1; animation: crm-barra 1.8s ease-in-out infinite; }
@keyframes crm-barra { 0% { width: 0; margin-left: 0; } 50% { width: 55%; margin-left: 20%; } 100% { width: 0; margin-left: 100%; } }
#crm-veu { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; background: transparent; cursor: progress; }
#crm-veu[hidden] { display: none; }
#crm-veu.visivel { background: rgba(255, 255, 255, .65); }
#crm-veu .veu-caixa { display: none; max-width: 420px; margin: 0 16px; padding: 18px 22px; border-radius: 10px; background: #fff; border: 1px solid var(--line, #d8dde3);
  box-shadow: 0 6px 24px rgba(0, 0, 0, .18); text-align: center; }
#crm-veu.visivel .veu-caixa { display: block; }
#crm-veu .veu-roda { position: relative; display: block; width: 28px; height: 28px; margin: 0 auto 10px; }
#crm-veu .veu-roda.com-pct { width: 64px; height: 64px; }
#crm-veu .veu-roda .veu-giro { margin: 0; width: 100%; height: 100%; box-sizing: border-box; }
#crm-veu .veu-pct { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; color: var(--brand, #17375e); }
#crm-veu .veu-giro { display: block; width: 28px; height: 28px; margin: 0 auto 10px; border: 3px solid var(--accent, #dbe7f5); border-top-color: var(--brand-2, #1f5fa8);
  border-radius: 50%; animation: crm-giro .9s linear infinite; }
#crm-veu .veu-sub { display: block; margin-top: 8px; font-size: 13px; color: var(--muted, #667); }
#crm-veu .veu-lib { margin-top: 10px; }
@keyframes crm-giro { to { transform: rotate(360deg); } }
html.crm-carregando, html.crm-carregando * { cursor: progress; }
@media (prefers-reduced-motion: reduce) { #crm-barra.on { animation: none; width: 100%; } #crm-veu .veu-giro { animation: none; } }

/* v1.19: datas, idade e percentuais nunca quebram no meio (ex.: 12/02/202 + 1); só textos longos podem quebrar */
.nq, .tw-socios td.nq { white-space: nowrap; overflow-wrap: normal; word-break: normal; }


/* v1.20: blocos com título — aba azul dentro do bloco, encostada no canto superior esquerdo, sob uma linha azul de 3px;
   botões à direita da mesma linha (bloco-cab). Vale para qualquer .card cujo primeiro filho é um <h2> e para .card.bloco. */
:root { --azul-bloco: #3a6aa5; }
.card:has(> h2:first-child), .card.bloco { border-top: 3px solid var(--azul-bloco); padding-top: 0; }
.card > h2:first-child, .bloco-cab .aba {
  display: inline-block; background: var(--azul-bloco); color: #fff; padding: 5px 18px 6px; margin: 0 0 12px -16px;
  border-radius: 8px 0 10px 0; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; }
.card.bloco { padding: 0; }
.bloco-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.bloco-cab .aba { margin: 0; border-radius: 7px 0 10px 0; }
.bloco-cab .acts, .bloco-cab > .btn { margin: 10px 14px 0 0; }
.bloco-corpo { padding: 12px 16px 16px; }
.card.bloco > .bloco-cab + .bloco-corpo { padding-top: 12px; }

/* v1.20: barra da tela do grupo — Voltar à esquerda, Alterar nome do grupo na outra extremidade */
.barra-grupo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 8px; }
.barra-grupo .esp { flex: 1 1 auto; }

/* v1.20: CNPJ, CPF, datas, telefones, valores e percentuais nunca quebram em listas; textos longos só quebram entre palavras */
.sq { white-space: nowrap; overflow-wrap: normal; word-break: normal; }
table td, table th { overflow-wrap: normal; word-break: normal; hyphens: none; }   /* v1.30: nenhuma palavra de tabela quebra no meio */
.per-par { display: inline-flex; align-items: center; gap: 3px; }
.per-par .per-parte { width: 3.2em; text-align: center; padding-left: 4px; padding-right: 4px; }
.ajuda[hidden] { display: none; }

/* v1.20: Fila de envios — barra azul (arquivo atual) e barra verde (total) */
.fi-rot { display: flex; justify-content: space-between; gap: 8px; margin: 12px 0 4px; font-size: 13px; flex-wrap: wrap; }
.fi-rot span { color: var(--muted); white-space: nowrap; }
.fi-arq { font-weight: 600; overflow-wrap: anywhere; color: var(--ink); }
.fi-trilho { height: 10px; background: #e3e6ea; border-radius: 6px; overflow: hidden; }
.fi-barra { height: 100%; border-radius: 6px; transition: width .3s; }
.fi-barra.az { background: #24548f; } .fi-barra.vd { background: #4f8a3a; }
.fi-lista { margin: 12px 0 0; padding: 0; list-style: none; font-size: 12.5px; color: var(--muted); }
.fi-lista li { padding: 2px 0; overflow-wrap: anywhere; } .fi-lista .ok { color: #4f8a3a; }

/* v1.20: mesmo visual de aba azul nos blocos que usam o cabeçalho "blk-head" (h2 + botões à direita na mesma linha) */
.card:has(> .blk-head:first-child) { border-top: 3px solid var(--azul-bloco); padding-top: 0; }
.card > .blk-head:first-child { align-items: flex-start; margin-bottom: 12px; }
.card > .blk-head:first-child > h2:first-child {
  display: inline-block; flex: 0 0 auto; background: var(--azul-bloco); color: #fff; padding: 5px 18px 6px; margin: 0 0 0 -16px;
  border-radius: 8px 0 10px 0; font-size: 13px; letter-spacing: .04em; text-transform: uppercase; font-weight: 600; }
.card > .blk-head:first-child > :not(h2) { margin-top: 10px; }
.card > .blk-head:first-child > h2 .ajuda { background: rgba(255, 255, 255, .9); }

/* v1.21: links e textos coloridos dentro da aba azul do título (ex.: nome da empresa em "Meus prospects") ficam brancos e legíveis;
   nomes longos quebram entre palavras dentro da própria aba, sem estourar a tela */
.card > h2:first-child, .card > .blk-head:first-child > h2:first-child, .bloco-cab .aba { max-width: calc(100% - 8px); box-sizing: border-box; overflow-wrap: anywhere; }
.card > h2:first-child a, .card > .blk-head:first-child > h2:first-child a, .bloco-cab .aba a,
.card > h2:first-child a:visited, .card > .blk-head:first-child > h2:first-child a:visited { color: #fff; text-decoration: none; border-bottom: 1px dotted rgba(255,255,255,.7); }
.card > h2:first-child a:hover, .card > .blk-head:first-child > h2:first-child a:hover { color: #fff; border-bottom-style: solid; }
.card > h2:first-child .muted, .card > .blk-head:first-child > h2:first-child .muted, .card > h2:first-child small { color: rgba(255,255,255,.85); }

/* v1.21: fila de envios — aviso de falha em andamento (vermelho) */
.fi-falha { margin: 10px 0 0; padding: 6px 10px; border-radius: 6px; background: #fdecea; color: #b00020; font-size: 13px; font-weight: 600; }

/* v1.21: Simples Nacional ao lado do botão Enviar da linha do Balanço (apenas Sim / Não) */
.simples-ao-lado { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin: 8px 0 0; font-size: 13px; }
.simples-ao-lado .sl-rot { font-weight: 600; }
.simples-ao-lado .sl-op { display: inline-flex; align-items: center; gap: 4px; margin: 0; font-size: 13px; }

/* v1.24: razão social, CNPJ e grupo na mesma linha (quebram em telas estreitas) */
.razao-linha{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px}
.razao-linha h1{margin-right:2px}

/* v1.24: linha de documento atualizada após o envio (destaque que some sozinho) */
.linha-atualizada{animation:linhaNova 3s ease-out}
@keyframes linhaNova{from{background:#e6f4ea}to{background:transparent}}

/* v1.25: botão Voltar das telas do menu Configurações */
.voltar-config { margin: 0 0 10px; }
.tabela-tipos table { border-collapse: collapse; }
.tabela-tipos th, .tabela-tipos td { padding: 4px 14px 4px 0; text-align: left; font-size: 13.5px; }
.tabela-tipos td input { transform: scale(1.15); }

/* v1.26 — campo de data com digitação (dd/mm/aaaa) + botão de calendário */
.dt-wrap{display:flex;align-items:stretch;gap:6px;max-width:100%}
.dt-wrap .dt-txt{flex:1 1 auto;min-width:0;max-width:170px}
.dt-wrap .dt-cal{flex:0 0 auto;border:1px solid var(--borda,#c9d3e0);background:#fff;border-radius:8px;padding:0 10px;font-size:18px;line-height:1;cursor:pointer}
.dt-wrap .dt-cal:disabled{opacity:.5;cursor:not-allowed}
/* o campo real fica na página (guarda o valor ISO), mas invisível; o calendário abre sobre ele */
.dt-wrap input.dt-orig{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;border:0;padding:0}
.dt-wrap{position:relative}

/* v1.26 — Enviar vários arquivos: bloco recolhível; em tela de toque trocam a caixa de arrastar por botões grandes */
.lote-det > summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px}
.lote-det > summary::-webkit-details-marker{display:none}
.lote-det > summary h2{margin:0;flex:1}
.lote-det > summary::after{content:'▾';color:var(--brand);font-size:18px}
.lote-det:not([open]) > summary::after{content:'▸'}
.lote-det[open] > summary{margin-bottom:10px}
.lote-toque{display:none}
.lote-pasta-pc{margin:8px 0 0;font-size:13px}
.lote-pasta-pc .link{background:none;border:0;padding:0;color:var(--brand);text-decoration:underline;cursor:pointer;font:inherit}
@media (pointer: coarse){
  .lote-det .soltar{display:none}
  .lote-pasta-pc{display:none}
  .lote-toque{display:flex;flex-direction:column;gap:10px}
  .lote-toque p{margin:0}
  .lote-toque .btn{width:100%;padding:14px 12px;font-size:16px}
}

/* v1.26 — "Download concluído." no centro da tela, com o botão "Mostrar na pasta" e o atalho Ctrl+J animado */
.dl-fundo{position:fixed;inset:0;background:rgba(15,30,60,.45);display:flex;align-items:center;justify-content:center;z-index:9999;padding:16px}
.dl-caixa{background:#fff;border-radius:14px;padding:26px 24px;max-width:420px;width:100%;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.25);display:flex;flex-direction:column;gap:12px}
.dl-tit{font-size:20px;color:var(--brand)}
.dl-dica{font-size:14px;line-height:1.9}
.tecla{display:inline-block;min-width:34px;padding:4px 10px;border:1px solid #9aa7b8;border-bottom-width:4px;border-radius:7px;background:#f4f6fa;font:600 14px/1.3 ui-monospace,Consolas,monospace;color:#1f2d44;margin:0 2px;animation:tecla-baixa 1.6s ease-in-out infinite}
.tecla-b{animation-delay:.12s}
.mais{font-weight:700;margin:0 2px}
@keyframes tecla-baixa{0%,55%,100%{transform:translateY(0);border-bottom-width:4px}65%,85%{transform:translateY(3px);border-bottom-width:1px;background:#dfe7f3}}
@media (prefers-reduced-motion: reduce){.tecla{animation:none}}
/* v1.26 — mapa de ligações */
.lig-item{padding:10px 0;border-top:1px solid #e6ecf4}.lig-item:first-child{border-top:0}
.lig-cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lig-cam{font-size:12.5px;margin:3px 0 6px;overflow-wrap:anywhere}
.lig-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* v1.26 — linhas de risco (processos, PGFN, CEIS/CNEP/CEPIM) */
.rk-tab th{font-weight:600;text-align:left;vertical-align:top;padding-right:12px}
.rk-tab td{vertical-align:top}
.rk-acoes{text-align:right;white-space:nowrap}
.rk-ok{color:#2e7d32}.rk-loc{color:#b45309;font-weight:600;cursor:pointer}
.rk-itens{margin:6px 0 0;padding-left:18px}
.rk-quando{font-size:.8em}
.rk-barra{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.rk-inline{display:inline}
.rk-reg>summary{list-style:none;display:inline-block;cursor:pointer}.rk-reg>summary::-webkit-details-marker{display:none}
.rk-form{display:flex;flex-direction:column;gap:6px;margin-top:6px;min-width:260px;text-align:left}
.rk-form textarea{width:100%}
.rk-sub{margin:14px 0 4px;font-size:1em}
.rk-alerta{background:#fff8e1;border:1px solid #f0c36d;border-radius:6px;padding:8px 10px;margin:8px 0}
@media (max-width:700px){.rk-tab,.rk-tab tbody,.rk-tab tr,.rk-tab th,.rk-tab td{display:block;width:100%}.rk-acoes{text-align:left}.rk-form{min-width:0}}

/* v1.30 — alavancagem: uma informação por linha */
.alav-lin{display:block;margin:2px 0 0}
.div-ind .alav-lin{font-weight:600}
.fat-trava{background:var(--surface-1);color:var(--text-muted);cursor:not-allowed}

/* v1.30: painel inicial — Anotações rápidas e carteira ativa com as empresas inativas na outra metade */
.g-painel { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.g-painel .cart-dupla { display: flex; gap: 16px; flex-wrap: wrap; }
.cart-dupla .cart-meio { flex: 1 1 170px; min-width: 0; }
.cart-dupla .cart-div { flex: 0 0 1px; background: var(--line); align-self: stretch; }
@media (min-width: 900px) { .g-painel { grid-template-columns: 1fr 1.6fr 1fr; } }
@media (max-width: 520px) { .cart-dupla .cart-div { flex: 1 1 100%; height: 1px; } }
.nota-nota, .nota-rapida textarea { width: 100%; box-sizing: border-box; resize: vertical; }
.nota-ok { font-size: 12px; }

/* v1.30: imóvel — demais proprietários */
.op-lin { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
.op-lin input[name=op_doc] { flex: 1 1 180px; min-width: 0; } .op-lin input[name=op_pct] { flex: 0 0 90px; min-width: 0; }
.op-lin .op-nome { flex: 1 1 140px; }
.patr-comp { font-size: 12px; }

/* v1.30: organograma — Mostrar ligações */
.org-lig-ctl { display: inline-flex; align-items: center; gap: 6px; flex-wrap: nowrap; margin: 0; }
.org-lig-ctl select { width: auto; padding: 3px 6px; font-size: 12.5px; border-radius: 7px; }
.org-lig-ctl label { white-space: nowrap; }
/* barra de botões do organograma: grupos alinhados ao centro, botões no tamanho padrão (.btn.sm) */
.head-emp .acts.org-barra { align-items: center; justify-content: flex-end; gap: 8px 14px; }
.org-grp { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.org-grp + .org-grp { padding-left: 14px; border-left: 1px solid var(--line); }
@media (max-width: 700px) { .org-grp + .org-grp { padding-left: 0; border-left: 0; } .head-emp .acts.org-barra { justify-content: flex-start; } }
.org-legenda .lg.ext { border: 2px dashed #7a8699; background: #fff; } .org-legenda .lg.sug { border: 2px dotted #b9c0cc; background: #fff; opacity: .7; }

/* v1.30: únicos trechos de tabela que podem quebrar no meio — textos sem espaço que não têm outro jeito (e-mail, endereço da internet, nome de arquivo) */
table td.qb, table td .qb, table td a[href^="mailto:"], table td a[href^="http"], .tw-socios td.end-soc { overflow-wrap: anywhere; }

/* v1.31: faixa da Visão Usuário */
.visao-faixa { position: sticky; top: 0; z-index: 60; display: flex; gap: 10px 16px; flex-wrap: wrap; align-items: center; justify-content: center;
  background: #fff4d6; border-bottom: 2px solid #e0b64a; color: #5a4300; padding: 6px 12px; font-size: 13.5px; }
.visao-faixa form { margin: 0; }

/* v1.31: flags PJ / PF dos Filtros de busca */
.tipos-busca { display: flex; gap: 8px 22px; flex-wrap: wrap; margin: 4px 0 10px; }
.tipos-busca .tp { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: var(--ink); font-weight: 600; }
.tipos-busca .tp input { width: auto; }

/* v1.31: bloqueio do organograma */
.org-trava { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--ink); white-space: nowrap; cursor: pointer; }
.org-trava input { width: auto; margin: 0; }

/* v1.32: relatório de visitas — cabe na largura da tela (sem rolagem lateral); no celular cada linha vira um cartão */
.rv-mes { margin: 6px 0 12px; } .rv-mes select { width: auto; }
.rv-perfil { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 10px 14px; margin: 10px 0; }
.rv-perfil label, .rv-opcoes label { display: flex; flex-direction: column; font-size: 13px; gap: 3px; }
.rv-acoes { grid-column: 1 / -1; }
.rv-opcoes { display: flex; flex-wrap: wrap; gap: 10px 18px; align-items: flex-end; }
.rv-opcoes > b { flex: 1 1 100%; }
.aviso-km { background: #fff7e0; border: 1px solid #f0d98a; border-radius: 8px; padding: 8px 12px; margin: 8px 0; }
.rv-folha { width: 100%; }
table.rv { table-layout: fixed; font-size: 11.5px; }
table.rv th, table.rv td { padding: 4px 4px; word-break: normal; overflow-wrap: anywhere; }
table.rv input, table.rv textarea, table.rv select { width: 100%; font-size: 11.5px; padding: 3px 4px; box-sizing: border-box; }
table.rv textarea { resize: vertical; min-height: 36px; }
table.rv .num { text-align: right; white-space: nowrap; }
table.rv th { text-transform: none; letter-spacing: 0; font-size: 11px; word-break: normal; overflow-wrap: normal; }
table.rv .c-data { width: 9.5%; } table.rv .c-hist { width: 11%; } table.rv .c-org { width: 11%; } table.rv .c-dst { width: 11%; }
table.rv input[type=date] { padding: 3px 2px; font-size: 11px; }
table.rv .c-km { width: 6.5%; } table.rv .c-val { width: 5.8%; } table.rv .c-tot { width: 7%; } table.rv .c-ac { width: 7%; }
table.rv .c-ac .btn { padding: 3px 6px; font-size: 11px; margin: 1px 0; white-space: normal; }
table.rv .km-st { display: block; color: var(--muted); font-size: 10.5px; line-height: 1.2; }
table.rv tfoot th { background: #eef1f5; border-top: 2px solid #c9ced6; text-transform: none; }
.rv-botoes { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 6px; }
@media (max-width: 900px) {
  table.rv, table.rv thead, table.rv tbody, table.rv tfoot, table.rv tr, table.rv td, table.rv th { display: block; width: 100% !important; }
  table.rv thead { display: none; }
  table.rv tr { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 10px; padding: 6px; background: #fff; }
  table.rv td { border: 0; display: flex; gap: 8px; align-items: center; justify-content: space-between; }
  table.rv td::before { content: attr(data-r); font-size: 11px; color: var(--muted); flex: 0 0 38%; }
  table.rv td > * { flex: 1; }
  table.rv td.c-ac::before { content: ''; flex: 0; }
  table.rv tfoot tr { background: #eef1f5; }
  table.rv tfoot th { border: 0; }
}
table.rv .dt-wrap { gap: 2px; width: 100%; } table.rv .dt-wrap .dt-txt { max-width: none; font-size: 10.5px; padding: 3px 2px; }
table.rv .dt-wrap .dt-cal { padding: 0 4px; font-size: 13px; }

/* v1.33 – relatório de visitas: observações e comprovantes */
.rv-obs { margin: 12px 0 4px; } .rv-obs label { display: block; font-size: 13px; margin-bottom: 4px; }
.rv-obs textarea { width: 100%; box-sizing: border-box; }
dialog.rv-dlg { border: 1px solid #e3e6ea; border-radius: 10px; padding: 16px 18px; width: min(460px, 92vw); box-sizing: border-box; }
dialog.rv-dlg::backdrop { background: rgba(20, 30, 50, .45); }
dialog.rv-dlg label { display: block; margin: 10px 0 3px; font-size: 13px; } dialog.rv-dlg select, dialog.rv-dlg input[type=file] { width: 100%; box-sizing: border-box; }
.rv-comp-item { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid #eef0f3; }
.rv-comp-item a { min-width: 0; overflow-wrap: anywhere; } .rv-comp-item form { margin: 0; flex: none; }

/* v1.34 – relatório de visitas */
table.rv .c-data { width: 9%; } table.rv .c-hist { width: 10%; } table.rv .c-org { width: 11%; } table.rv .c-dst { width: 11%; } table.rv .c-inv { width: 2.6%; text-align: center; }
table.rv .c-km { width: 6.6%; } table.rv .c-val { width: 5.2%; } table.rv .c-tot { width: 6.2%; } table.rv .c-ac { width: 9%; }
table.rv .c-inv .btn { padding: 3px 4px; font-size: 13px; white-space: nowrap; }
table.rv .c-ac .btn, table.rv .c-val .btn, table.rv .ed-end { white-space: nowrap; overflow-wrap: normal; }
table.rv .ed-end { padding: 1px 6px; margin-top: 2px; }
table.rv .iv { display: flex; align-items: center; gap: 3px; font-size: 10.5px; overflow-wrap: normal; word-break: normal; }
table.rv .iv label { display: flex; align-items: center; gap: 2px; margin: 0; } table.rv .iv input { width: auto; }
table.rv .iv .ajuda { width: 15px; height: 15px; font-size: 10px; }
table.rv tr.rv-add td { border: 0; padding: 2px 4px 8px; } table.rv .c-add .btn { white-space: nowrap; }
.rv-end { border: 1px solid #e3e6ea; border-radius: 8px; padding: 6px 10px 10px; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px 12px; }
.rv-end legend { font-size: 13px; font-weight: 600; padding: 0 4px; } .rv-end .l-rua { grid-column: span 2; }
.rv-perfil .l-doc .rot-doc-linha { white-space: nowrap; }
.rv-end2 { display: flex; gap: 10px; } .rv-end2 > div { flex: 1; min-width: 0; } .rv-end2 .e-uf { flex: 0 0 70px; }
dialog.rv-dlg input { width: 100%; box-sizing: border-box; }
@media (max-width: 760px) {
  table.rv td.c-org, table.rv td.c-dst, table.rv td.c-km, table.rv td.c-ac { flex-wrap: wrap; }
  table.rv td.c-org::before, table.rv td.c-dst::before, table.rv td.c-km::before { flex: 0 0 100%; }
  table.rv td.c-org > *, table.rv td.c-dst > * { flex: 1 1 100%; }
  table.rv td.c-ac > * { flex: 0 0 auto; }
  table.rv td.c-inv { justify-content: center; } table.rv td.c-inv::before { content: none; }
  table.rv tr.rv-add { border: 0; background: none; padding: 0; } table.rv td.c-add::before { content: none; }
}

/* v1.35 – relatório de visitas: tela mais larga, seletor também no destino, ✎ único sob o ⇄, flags na coluna de ações, linha desconsiderada */
main:has(table.rv) { max-width: min(1900px, 100%); }                      /* aproveita as laterais da tela (as demais telas seguem em 1280px) */
table.rv .c-org, table.rv .c-dst { width: 13%; } table.rv .c-hist { width: 9%; } table.rv .c-ac { width: 12.5%; }
table.rv td.c-org select, table.rv td.c-dst select { width: 100%; margin-bottom: 3px; }
table.rv td.c-inv { vertical-align: top; padding-top: 26px; }
table.rv td.c-inv .btn { display: block; margin: 0 auto 6px; }
table.rv td.c-ac .ac-l1, table.rv td.c-ac .ac-l2 { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 2px 0; }
table.rv tr.rv-off td:not(.c-ac), table.rv tr.rv-off .ac-l1 { opacity: .38; filter: grayscale(1); }
table.rv tr.rv-off td:not(.c-ac) { background: repeating-linear-gradient(135deg, transparent 0 6px, rgba(0,0,0,.035) 6px 12px); }
dialog.rv-dlg-larga { width: min(900px, 94vw); }
.rv-dg2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; } .rv-dg { border: 1px solid #e3e6ea; border-radius: 8px; padding: 4px 12px 12px; margin: 0; min-width: 0; }
.rv-dg legend { font-weight: 600; font-size: 13px; padding: 0 4px; }
@media (max-width: 760px) { .rv-dg2 { grid-template-columns: 1fr; } table.rv td.c-inv { padding-top: 0; } table.rv td.c-inv .btn { display: inline-block; } }
/* v1.36 – "mapa entendeu" e link do Google Maps sob os endereços/km */
table.rv small.achado { display: block; color: #5b6573; font-size: 10.5px; line-height: 1.25; margin-top: 2px; overflow-wrap: anywhere; }
table.rv td.c-org select, table.rv td.c-dst select { margin: 3px 0 0; }

/* v1.37 – botões ⇄ e ✎ entre os endereços: quadrados (como antes), no alto da linha, alinhados à altura dos campos de endereço */
table.rv td.c-inv { vertical-align: top; padding-top: 6px; width: 3.2%; }
table.rv td.c-inv .btn { display: block; margin: 0 auto 6px; }
@media (max-width: 760px) { table.rv td.c-inv { display: flex; gap: 10px; justify-content: center; } table.rv td.c-inv .btn { margin: 0; } }
/* v1.37 – relatório de visitas: sem limite de largura (em telas grandes sobrava margem dos lados) e o topo acompanha a largura da página */
main:has(table.rv) { max-width: none; }
body:has(table.rv) header.top .in, body:has(table.rv) .faixa-msg .in { max-width: none; }
table.rv th .th-sub { font-weight: 400; font-size: .92em; opacity: .85; }

/* v1.38 – colunas de valores alinhadas: título, campo e total centralizados na mesma coluna; título que quebra nas barras (Táxi/Ônibus/Metrô) sem invadir a coluna vizinha */
table.rv th.c-km, table.rv th.c-val, table.rv th.c-tot { text-align: center; vertical-align: bottom; overflow-wrap: normal; word-break: normal; hyphens: none; }
table.rv td.c-km input, table.rv td.c-val input { text-align: center; }
table.rv td.c-val.num, table.rv td.c-tot.num, table.rv tfoot th.num { text-align: center; }
table.rv th.c-val { padding-left: 2px; padding-right: 2px; }
table.rv th.c-val .th-sub { display: block; }

/* v1.41 — autenticação de dois fatores: passo a passo */
.fa2-passos { max-width: 760px; }
.fa2-passo { display: flex; gap: 14px; align-items: flex-start; }
.fa2-passo h2 { margin: 0 0 6px; }
.fa2-n { flex: none; width: 34px; height: 34px; border-radius: 999px; background: var(--brand); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.fa2-qr { width: 220px; max-width: 100%; border: 1px solid var(--line); border-radius: 8px; padding: 6px; background: #fff; }
.fa2-qr svg { display: block; width: 100%; height: auto; }
.fa2-chave { font-size: 16px; letter-spacing: 2px; background: #eef1f5; padding: 6px 10px; border-radius: 6px; display: inline-block; word-break: break-all; }

/* v1.41 — balão "?" nunca sai da tela: o app.js calcula o deslocamento lateral (--ajuda-dx) e, perto do topo, abre para baixo */
.ajuda.ajuda-abaixo:hover::after, .ajuda.ajuda-abaixo:focus::after { bottom: auto; top: 130%; }

/* v1.41 — telas usam quase toda a largura (margem lateral pequena); abaixo de 1100px nada muda. O relatório de visitas fica exatamente como era. */
@media (min-width: 1100px) {
  main { max-width: none; padding-left: 32px; padding-right: 32px; }
  header.top .in, .faixa-msg .in { max-width: none; padding-left: 32px; padding-right: 32px; }
  main:has(table.rv) { padding-left: 16px; padding-right: 16px; }
  body:has(table.rv) header.top .in, body:has(table.rv) .faixa-msg .in { padding-left: 16px; padding-right: 16px; }
}

/* v1.42: bandeira vermelha "Indisponível" (cliente na carteira de outro gerente) */
.flag-indisp { display: inline-block; background: var(--err-bg); color: var(--err); border: 1px solid var(--err); border-radius: 999px; padding: 0 8px;
  font-size: 11.5px; font-weight: 700; white-space: nowrap; vertical-align: middle; }
.flag-indisp.grande { font-size: 13px; padding: 2px 10px; margin-left: 8px; }

/* v1.42: organograma — destaque da ligação sob o mouse e balão */
#org .org-l, #org .org-r, #org .org-no { transition: opacity .12s; }
#org.hov .org-l:not(.on), #org.hov .org-r:not(.on) { opacity: .12; }
#org.hov .org-no:not(.on) { opacity: .28; }
#org .org-l.on path.vis { stroke: #c2410c; stroke-width: 3.4; stroke-dasharray: none; }
#org .org-no.on rect { stroke: #c2410c; stroke-width: 3.2; }
#org-dica { position: absolute; z-index: 5; pointer-events: none; background: #1e293b; color: #fff; font-size: 12px; line-height: 1.35;
  padding: 6px 10px; border-radius: 7px; max-width: 320px; box-shadow: 0 2px 8px rgba(0,0,0,.25); }

/* v1.42: empresa sem grupo econômico — convite em linhas quebradas no lugar do botão Organograma */
.org-btn.grupo-pend { white-space: normal; line-height: 1.25; text-align: left; padding: 5px 10px; height: auto; display: inline-block; vertical-align: middle; border-color: var(--err); color: var(--err); }
.org-btn.grupo-pend.desab { border-color: var(--line); color: var(--muted); }

/* v1.42: conferência de arquivos — bloco de erros e borda vermelha */
.lote-bloco-erros { margin: 18px 0 6px; padding-top: 10px; border-top: 2px solid var(--err); }
.lote-bloco-erros h2 { color: var(--err); margin: 0 0 4px; font-size: 16px; }
.lote-item.com-erro { border: 2px solid var(--err); background: #fff8f8; }

/* v1.44: abas de clientes (só no computador) — logo abaixo da barra principal */
.abas { background: #e6ebf3; border-bottom: 1px solid #cdd6e3; }
.abas[hidden] { display: none; }
.abas .in { max-width: 1280px; margin: 0 auto; padding: 6px 16px 0; display: flex; align-items: flex-end; gap: 4px; flex-wrap: nowrap; overflow: hidden; }
.abas .aba { display: flex; align-items: center; gap: 4px; padding: 6px 4px 6px 12px; background: #d3dbe8; border-radius: 8px 8px 0 0; color: #35465f; font-size: 13px; min-width: 0; max-width: 230px; border-top: 3px solid transparent; }
.abas .aba a { color: inherit; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.abas .aba.on { background: var(--card, #fff); color: #1f3a5f; font-weight: 600; border-top-color: #2b6cb0; }
.abas .aba-x { border: 0; background: transparent; color: inherit; cursor: pointer; font-size: 16px; line-height: 1; padding: 2px 6px; border-radius: 4px; }
.abas .aba-x:hover { background: #0001; }
.abas .abas-cont { margin-left: auto; align-self: center; color: #6b7a90; font-size: 12px; white-space: nowrap; padding-bottom: 4px; }
.abas-limite { max-width: 460px; }
.abas-lista { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.abas-opcao { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 8px 12px; border: 1px solid #cdd6e3; background: #fff; border-radius: 6px; cursor: pointer; font: inherit; text-align: left; }
.abas-opcao:hover { border-color: #c0392b; }
.abas-opcao .abas-fechar { color: #c0392b; white-space: nowrap; }
@media (max-width: 900px), print { .abas { display: none !important; } }

/* v1.46: telas embutidas (Pasta digital dentro da proposta de crédito): sem barra principal, abas nem rodapé */
html.embutida header.top, html.embutida footer, html.embutida .abas, html.embutida .abas-cont { display: none !important; }
html.embutida body { background: transparent; }
.pasta-embutida { width: 100%; border: 0; display: block; min-height: 300px; }
.prop-pasta > summary { cursor: pointer; font-weight: 600; font-size: 1.1em; list-style: none; }
.prop-pasta > summary::before { content: '▸ '; }
.prop-pasta[open] > summary::before { content: '▾ '; }

/* v1.47: triângulo amarelo (pessoa que já participa de outro grupo econômico) */
.alerta-grupo { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 22px; margin-left: 6px; border-radius: 4px; background: #fff4d6; color: #b26a00; font-weight: 700; cursor: help; position: relative; }

/* v1.48 — balão da recuperação judicial (fluxograma, etapa atual em verde) */
.rj-ajuda { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; margin-left: 8px; border-radius: 50%;
  background: var(--accent); color: var(--brand); font-weight: 700; font-size: 13px; cursor: help; vertical-align: middle; }
.rj-bal { display: none; position: absolute; left: -10px; top: 30px; width: 640px; max-width: 90vw; background: #fff; border: 1px solid #d6dbe6; border-radius: 12px;
  box-shadow: 0 12px 30px rgba(13,31,60,.24); padding: 16px 18px 14px; z-index: 60; font-size: 12.5px; font-weight: 400; color: #1d2433; line-height: 1.45; text-align: left; cursor: default; }
.rj-bal::before { content: ''; position: absolute; top: -7px; left: 14px; width: 12px; height: 12px; background: #fff; border-left: 1px solid #d6dbe6; border-top: 1px solid #d6dbe6; transform: rotate(45deg); }
.rj-ajuda:hover .rj-bal, .rj-ajuda:focus .rj-bal, .rj-ajuda:focus-within .rj-bal { display: block; }
.rj-tit { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.rj-tit b { font-size: 14px; }
.rj-tag { background: #e8f3e4; color: #2e5d1f; border-radius: 999px; padding: 2px 10px; font-size: 11.5px; font-weight: 700; }
.rj-fx { display: flex; flex-direction: column; align-items: center; }
.rj-et { width: 84%; text-align: center; border: 1px solid #e3e7ef; border-radius: 9px; padding: 6px 10px; background: #fafbfd; color: #8a93a3; box-sizing: border-box; }
.rj-et b { display: block; font-size: 12.5px; color: #7a8396; }
.rj-et span { font-size: 11px; display: block; }
.rj-et.ruim { border-color: #f0c9c9; }
.rj-et.atual { background: #e8f3e4; border: 2px solid #2e7d32; color: #1d2433; box-shadow: 0 0 0 3px rgba(46,125,50,.15); }
.rj-et.atual b { color: #1d2433; }
.rj-seta { color: #8a93a3; font-size: 15px; line-height: 16px; align-self: center; }
.rj-seta.dir { align-self: flex-end; margin-right: calc(8% + 25%); }   /* após a Deferida: seta fica sob a caixa da direita */
.rj-duas { display: flex; gap: 10px; width: 84%; }
.rj-duas .rj-et { width: 50%; }
.rj-stay { display: block; margin-top: 10px; background: #fff8e6; border: 1px solid #f0dca4; border-radius: 8px; padding: 8px 10px; font-size: 12px; }
.rj-stay b { color: #7a5b00; }
.rj-nota { display: block; color: #6b7385; font-size: 11px; border-top: 1px solid #e6e9f0; padding-top: 7px; margin-top: 9px; }
.sobrepor-flag { display: flex; align-items: center; gap: 8px; margin: 0 0 4px; }

/* v1.49 — seletor de equipe/usuário com bolinhas de presença discretas */
.sel-bolas-oculto { position: absolute; opacity: 0; pointer-events: none; width: 1px; height: 1px; }
.sel-bolas { position: relative; display: inline-block; }
.sel-bolas-btn { display: inline-flex; align-items: center; gap: 6px; max-width: 260px; padding: 5px 10px; border-radius: 8px; border: 1px solid rgba(255,255,255,.35);
  background: rgba(255,255,255,.12); color: inherit; font: inherit; font-size: 13.5px; cursor: pointer; }
.sel-bolas-btn:disabled { opacity: .6; cursor: not-allowed; }
.sel-bolas-seta { margin-left: auto; font-size: 11px; opacity: .8; }
.sel-bolas-lista { position: absolute; z-index: 80; top: calc(100% + 4px); left: 0; min-width: 100%; max-height: 60vh; overflow: auto; margin: 0; padding: 4px 0;
  list-style: none; background: #fff; color: #1d2433; border: 1px solid #d6dbe6; border-radius: 10px; box-shadow: 0 10px 26px rgba(13,31,60,.22); }
.sel-bolas-lista li { display: flex; align-items: center; gap: 6px; padding: 5px 12px; font-size: 13.5px; cursor: pointer; white-space: nowrap; }
.sel-bolas-lista li.usuario { padding-left: 26px; }
.sel-bolas-lista li:hover, .sel-bolas-lista li[aria-selected="true"] { background: #eef2fa; }
.bola { display: inline-block; flex: 0 0 auto; width: 7px; height: 7px; border-radius: 50%; }
.bola-verde { background: #2fa24f; } .bola-amarela { background: #e3b505; } .bola-cinza { background: #aab1bd; }
.bola-vermelha { background: #d6403a; }

/* v1.51: flag de sócio estrangeiro dentro do quadro do CPF, colado ao título (sem espaço entre os dois) */
.destaque .estrang-flag { padding-top: 0; margin: -2px 0 6px; }
.destaque .estrang-flag label { line-height: 1.25; }
.formgrid > .destaque { align-self: start; }      /* v1.51: o quadro amarelo termina logo após o campo, sem sobra embaixo */
/* v1.51: "Informar o cônjuge:" logo abaixo do nome (colunas 2 em diante); o quadro do CPF ocupa as duas linhas. Em tela estreita volta à linha inteira. */
@media (min-width: 900px) {
  .formgrid .doc-2linhas { grid-row: span 2; }
  .formgrid .conj-sob-nome { grid-column: 2 / -1; align-self: start; }
  .formgrid .conj-sob-nome.conj-vazia { visibility: hidden; }
}
@media (max-width: 899px) {
  .formgrid .conj-sob-nome { grid-column: 1 / -1; }
  .formgrid .conj-sob-nome.conj-vazia { display: none; }
}
/* v1.51: o espaçador quebra a linha sem deixar buraco (os campos de poderes começam sempre numa linha nova, em qualquer largura de tela) */
.formgrid .espaco { grid-column: 1 / -1; height: 0; margin-top: -12px; }

/* v1.52 — Cobrança de títulos */
.cobkpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px}
.cobkpis .k{background:#fff;border:1px solid var(--line,#e1e6ee);border-radius:10px;padding:12px 14px}.cobkpis .k small{color:#5b6b7e;display:block}.cobkpis .k b{font-size:19px}
.cobkpis .red b,.d-at{color:#c62828}.cobkpis .grn b,.d-ok{color:#2e7d32}.cobkpis .amb b,.d-av{color:#b26a00}
.d-ok,.d-av,.d-at{font-weight:700}
.cobfilt{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.cobfilt label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:#5b6b7e}
.p-simples{background:#e8eef7;color:#12305c}.p-fundo{background:#efe5f7;color:#5b2a86}.p-sec{background:#e1f3f1;color:#0b6b62}.p-aguard{background:#fff4d6;color:#7a5b00}
.sc{display:inline-block;min-width:34px;text-align:center;border-radius:6px;padding:2px 6px;font-weight:700;color:#fff}
.s-A{background:#2e7d32}.s-B{background:#7cb342}.s-C{background:#f9a825}.s-D{background:#e65100}.s-n{background:#9aa7b8}
.il{font-weight:700;border-bottom:1px dotted currentColor;cursor:help}.il-ok{color:#2e7d32}.il-av{color:#b26a00}.il-at{color:#c62828}
.dr{text-align:right}
fieldset.fdata{border:1px solid #d3d9e3;border-radius:8px;padding:4px 8px 6px;display:flex;gap:8px;align-items:flex-end;margin:0}fieldset.fdata legend{font-size:12px;color:#5b6b7e;padding:0 4px}
fieldset.fdata input{width:105px}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:900px){.duas{grid-template-columns:1fr}}
.barra{display:flex;align-items:center;gap:8px;margin:5px 0;font-size:12.5px;min-height:20px}.barra .bl{flex:0 0 170px;color:#5b6b7e;white-space:nowrap}.barra .bv{flex:0 0 110px;text-align:right;white-space:nowrap}
.barra .bt{flex:1 1 auto;display:block;background:#eef1f6;border-radius:4px;height:14px;overflow:hidden}.barra .bf{display:block;height:14px;border-radius:4px;background:#12305c;min-width:2px}
.barra .bf.ok{background:#2e7d32}.barra .bf.at{background:#c62828}.barra .bf.av{background:#f9a825}
table.liq th.gr{text-align:center;border-bottom:1px solid #e1e6ee}table.liq td,table.liq th{font-size:12px;white-space:nowrap}table.liq tr.tot td{font-weight:700;background:#f4f6fa}
.sinal{padding:6px 10px;border-radius:7px;margin:4px 0;font-size:13.5px}.sinal-av{background:#fff4d6;color:#7a5b00}.sinal-at{background:#fde4e4;color:#9c0006}
/* v1.52: sino, nome/cargo e Sair na segunda linha do cabeçalho, à direita, alinhados com a busca e o seletor */
header.top .in2 .user { margin-left: auto; display: flex; align-items: center; gap: 8px; }
header.top .in2 .user a { margin-left: 0; }
.cad-sec h3.h-btn{display:flex;justify-content:space-between;align-items:center;gap:8px}  /* v1.53: botão Alterar à direita, como nos demais blocos */
.poderes-nd{color:#9aa3b2;font-weight:400}.poderes-link{font-size:12px;margin-top:1px}
/* v1.53: alerta de sessão encerrada (sessão única): dados da tela borrados e caixa vermelha */
body.sessao-caiu > header, body.sessao-caiu > main, body.sessao-caiu > .faixa-msg { filter: blur(9px); pointer-events: none; user-select: none; }
#sessao-fim { position: fixed; inset: 0; z-index: 9999; background: rgba(20,24,35,.55); display: flex; align-items: center; justify-content: center; }
#sessao-fim[hidden] { display: none; }
#sessao-fim .sf-caixa { background: #fff; border-top: 8px solid #c62828; border-radius: 10px; padding: 26px 30px; max-width: 440px; text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,.4); }
#sessao-fim .sf-ex { width: 64px; height: 64px; border-radius: 50%; background: #c62828; color: #fff; font-size: 40px; font-weight: 800; line-height: 64px; margin: 0 auto 10px; }
#sessao-fim h2 { color: #c62828; margin: 6px 0 8px; }

/* v1.53: botão dentro de cabeçalho de tabela (ex.: "Copiar todos os e-mails") não herda negrito/maiúsculas do <th>;
   fica com o mesmo padrão dos demais botões. */
th .btn{font-weight:400;text-transform:none;letter-spacing:normal;font-size:13px}

/* v1.54: janela de importação das boas-vindas e tutorial (tour) do Painel */
.bv-imp{display:flex;gap:14px;align-items:center;background:#eef4fb;border-radius:12px;padding:14px;margin:10px 0 18px;font-size:14px;color:#34445e;line-height:1.5}.bv-x{font-size:32px}
.tour-sombra{position:fixed;inset:0;z-index:9000;background:transparent}
.tour-hl{position:relative;z-index:9001!important;outline:3px solid #e2b23a;outline-offset:2px;border-radius:10px;box-shadow:0 0 0 9999px rgba(13,31,60,.62)}
.tour-dica{position:fixed;z-index:9002;background:#fff;border-radius:12px;padding:16px 18px;width:min(340px,calc(100vw - 24px));box-shadow:0 12px 40px rgba(0,0,0,.35)}
.tour-dica b{display:block;color:#0d1f3c;margin:2px 0 4px;font-size:15px}.tour-dica small{display:block;color:#4a5366;font-size:13.5px;line-height:1.5}
.tour-dica .n{font-size:11.5px;color:#c08a1e;font-weight:700;letter-spacing:.08em}
.tour-dica .r{display:flex;align-items:center;justify-content:space-between;margin-top:12px}.tour-dica .r a{color:#6b7486;font-size:12.5px;cursor:pointer;text-decoration:underline}

/* v1.54: comemoração do fim do tutorial (fogos.js) */
#fg-cv{position:fixed;inset:0;z-index:8992;pointer-events:none}
.fg-fim{position:fixed;inset:0;z-index:8990;background:radial-gradient(ellipse at 50% 110%,rgba(30,50,110,.85),rgba(4,8,26,.93));animation:fgf .6s both}
.fg-cxw{position:fixed;inset:0;z-index:8995;display:flex;align-items:center;justify-content:center;padding:20px;pointer-events:none}
.fg-cx{pointer-events:auto;background:#fff;border-radius:18px;padding:34px 34px 28px;max-width:480px;text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.5);animation:fgp .8s cubic-bezier(.2,1.4,.4,1) both}
.fg-em{font-size:54px;line-height:1}.fg-cx h2{margin:10px 0 8px;color:#0d1f3c;font-size:26px}.fg-cx p{margin:0 0 20px;color:#4a5366;line-height:1.55;font-size:15.5px}.fg-cx p b{color:#0d1f3c}
.fg-btn{border:0;background:#c08a1e;color:#fff;font-size:16px;font-weight:700;padding:13px 34px;border-radius:10px;cursor:pointer}.fg-btn:hover{background:#a97712}
@keyframes fgf{from{opacity:0}}@keyframes fgp{from{opacity:0;transform:scale(.7) translateY(20px)}}

/* v1.55: cabeçalho do cadastro inicial (só logo e Sair) e faixa da importação do cadastro inicial */
.foco-sair{margin-left:auto;font-size:13px}.foco-sair a{color:#fff;opacity:.85}
.onb-faixa{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:#eef4fb;border:1px solid #cfe0f3;border-radius:10px;padding:10px 14px;margin:0 0 14px;color:#34445e}
.fg-cx h2{text-transform:none;letter-spacing:normal;background:none;padding:0;border:0;display:block;margin:10px 0 8px;color:#0d1f3c}

/* v1.56: ícone "?" com explicação ao passar o mouse, tocar ou focar */
.ajuda{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:#2f5f98;color:#fff;font-size:12px;font-weight:700;cursor:help;text-transform:none;letter-spacing:normal;vertical-align:middle;outline:none}
.ajuda-txt{display:none;position:absolute;left:0;top:24px;z-index:30;width:min(340px,80vw);background:#fff;color:#1f2a37;border:1px solid #c9d3e0;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.18);padding:10px 12px;font-size:13px;font-weight:400;line-height:1.45;text-align:left}
.ajuda:hover .ajuda-txt,.ajuda:focus .ajuda-txt,.ajuda:focus-within .ajuda-txt{display:block}
.dlg-prospects{border:1px solid #c9d3e0;border-radius:12px;padding:16px 18px;max-width:min(560px,92vw);width:100%;max-height:80vh;overflow:auto}
.dlg-prospects::backdrop{background:rgba(20,30,45,.45)}
.grid.g3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.cb-setor{position:relative}
.cb-lista{position:absolute;left:0;right:0;top:100%;z-index:25;background:#fff;border:1px solid #c9d3e0;border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.15);max-height:260px;overflow:auto}
.cb-op{padding:7px 10px;cursor:pointer;font-size:14px}.cb-op:hover{background:#e8eff8}.cb-vazio{padding:8px 10px;color:#6b7686;font-size:14px}
.par-datas .datas-lin{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.par-datas .datas-lin span{color:#6b7686;font-size:14px}.par-datas .datas-lin input{flex:1;min-width:130px}

/* v1.56: Gestão financeira */
.fin-abas{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 14px}.fin-abas a{border:1px solid #dde3ec;background:#fff;border-radius:8px;padding:8px 14px;color:#1f2a37;text-decoration:none}
.fin-abas a.on{background:#2f5f98;color:#fff;border-color:#2f5f98}.fin-abas small{opacity:.8}
.fin-sub{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.fin-sub a{border:1px solid #dde3ec;background:#fff;border-radius:999px;padding:4px 12px;font-size:13px;color:#1f2a37;text-decoration:none}
.fin-sub a.on{background:#e8eff8;border-color:#2f5f98;color:#2f5f98;font-weight:600}
.fin-priv{background:#eaf5ee;border:1px solid #b9dcc6;border-radius:10px;padding:8px 12px;font-size:13px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fin-ver{margin-left:auto}.fin-ver a{border:1px solid #dde3ec;background:#fff;border-radius:999px;padding:2px 10px;margin-left:4px;color:#1f2a37;text-decoration:none}.fin-ver a.on{background:#2f5f98;color:#fff;border-color:#2f5f98}
.fin-mes{margin:6px 0 10px;display:flex;gap:10px;align-items:center}
.vd{color:#1f8a4c}.vm{color:#b3261e}
.barra{height:10px;border-radius:6px;background:#e9edf3;overflow:hidden}.barra i{display:block;height:100%;background:#2f5f98}.barra i.al{background:#c98a00}.barra i.es{background:#b3261e}
.fin-barras{display:flex;align-items:flex-end;gap:10px;height:140px;padding-top:6px}.fin-barras div{flex:1;display:flex;gap:3px;align-items:flex-end;height:100%;position:relative}
.fin-barras i{flex:1;border-radius:4px 4px 0 0;display:block;min-height:2px}.fin-barras i.r{background:#7dc79b}.fin-barras i.d{background:#e79a94}
.fin-barras span{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:11px;color:#6b7686}
.tag{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;background:#e8eff8;color:#2f5f98}.tag-ok{background:#e3f4ea;color:#1f8a4c}.tag-aviso{background:#fff1cf;color:#8a5d00}.tag-erro{background:#fde7e5;color:#b3261e}
.x-mini{border:0;background:transparent;color:#6b7686;cursor:pointer;font-size:14px;padding:0 0 0 4px}
/* v1.57: aviso de acesso pessoal na tela de sessão encerrada; telas de exclusão/reativação de conta */
#sessao-fim .sf-aviso { font-size: 13px; font-weight: 600; color: #8a1c1c; margin-top: -4px; }
.conta-caixa { max-width: 560px; margin: 40px auto; text-align: center; border-top: 8px solid #c62828; }
.conta-caixa h1 { margin-top: 4px; }
.conta-caixa .acts-bottom { justify-content: center; }
.btn.perigo { background: #c62828; border-color: #c62828; color: #fff; }
.btn.perigo[disabled] { opacity: .55; cursor: not-allowed; }
.conta-fim { max-width: 560px; margin: 60px auto; text-align: center; border-top: 8px solid #2f5f98; }
.conta-fim h1 { font-size: 26px; margin: 8px 0; }
/* v1.58: Configurações › IA */
.ia-lin{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ia-lin input{flex:1;min-width:220px}
.ia-texto{width:100%;font-family:ui-monospace,Consolas,monospace;font-size:13px;min-height:150px}
.ia-campos{display:flex;flex-wrap:wrap;gap:4px 18px;margin:6px 0}
.ia-tempos{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px}.ia-tempos div{font-size:13px}.ia-tempos b{display:block;font-size:17px;color:#1f2a37}
.ia-aviso{margin-top:10px;background:#eef3fa;border:1px solid #c9d8ec;border-radius:8px;padding:8px 12px;font-size:13px}

/* v1.62: grupos de opções de escolha única empilhados e alinhados (pleito) */
.opcoes-col { display: flex; flex-direction: column; gap: 8px; max-width: 400px; }
.opcao { display: flex; gap: 8px; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: 8px 12px; cursor: pointer; font-size: 14px; text-transform: none !important; letter-spacing: 0 !important; color: inherit; font-weight: 400; margin: 0; }
.opcao input { width: auto; margin: 0; }
.pleito-grade input, .pleito-grade select { min-width: 0; }

/* v1.62: menu "Cadastros" que expande (Base total, Carteira ativa) */
header.top nav .mn-grupo { position: relative; }
header.top nav .mn-bt { background: transparent; border: 0; font: inherit; color: #dce6f4; padding: 6px 10px; border-radius: 6px; cursor: pointer; }
header.top nav .mn-bt:hover, header.top nav .mn-grupo.on > .mn-bt, header.top nav .mn-grupo.aberto > .mn-bt { background: rgba(255,255,255,.14); color: #fff; }
header.top nav .mn-sub { position: absolute; left: 0; top: 100%; min-width: 180px; background: #1c3a63; border-radius: 8px; padding: 4px; box-shadow: 0 6px 18px rgba(0,0,0,.25); z-index: 90; display: flex; flex-direction: column; }
header.top nav .mn-sub[hidden] { display: none; }
header.top nav .mn-sub a { white-space: nowrap; }
@media (max-width: 760px) {
  body.menu-aberto header.top nav .mn-bt { width: 100%; text-align: left; padding: 11px 10px; font-size: 15px; border-bottom: 1px solid rgba(255,255,255,.08); border-radius: 0; }
  body.menu-aberto header.top nav .mn-sub { position: static; box-shadow: none; background: rgba(255,255,255,.06); border-radius: 0; padding: 0 0 0 14px; }
}

/* v1.66: botão dentro do título do bloco (ex.: "Alterar renda") no mesmo padrão dos demais botões pequenos (sem maiúsculas/negrito do título) */
.cad-sec h3.h-btn .btn{text-transform:none;letter-spacing:normal;font-weight:400;font-size:12.5px;line-height:normal}

/* v1.69: "Ler dados" dos arquivos de faturamento no cabeçalho da grade */
.fat-ler{font-size:11px;padding:1px 6px;margin-left:4px}
.fat-arq{display:flex;gap:4px;align-items:center;justify-content:center;flex-wrap:wrap;margin:2px 0}
.fat-doc .fat-arq a{display:inline}

/* v1.70: chips do filtro dos Relacionamentos comerciais */
.chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.chip{border:1px solid #c9d0db;background:#fff;color:var(--brand-2);border-radius:999px;padding:4px 10px;font:inherit;font-size:12.5px;cursor:pointer}
.chip:hover{background:var(--accent)}
.chip.on{background:var(--brand-2);border-color:var(--brand-2);color:#fff}
.chip .n{opacity:.75;font-size:11.5px}
.chip-sep{color:#a0a8b5}
#rel-limpar{background:none;border:0;padding:0 4px;color:var(--brand);text-decoration:underline;cursor:pointer;font:inherit;font-size:12.5px}
/* v1.70: barra de evolução do "Ler dados", quadro "Conferir antes de entrar na grade" e indicador da Fila da IA */
.leit-prog{text-transform:none;letter-spacing:0;display:inline-flex;flex-direction:column;gap:2px;min-width:120px;max-width:220px;vertical-align:middle;font-size:11px;font-weight:400;text-align:left}
.leit-barra{display:block;height:6px;border-radius:3px;background:var(--gray-bg);overflow:hidden}
.leit-barra i{display:block;height:100%;background:#1f8f86;transition:width .6s ease}
.leit-txt{color:var(--gray);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leit-ok .leit-barra i{background:#2e7d32}.leit-erro .leit-barra i{background:#c62828}
.fat-pend{border:1px solid var(--warn);background:var(--warn-bg);border-radius:8px;padding:8px 10px;margin:8px 0}
.fat-pend-acoes{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.fat-pend-acoes input{width:120px}
.ia-ind{white-space:nowrap}
.fila-ia-barra{display:block;height:8px;border-radius:4px;background:var(--gray-bg);overflow:hidden;max-width:260px}
.fila-ia-barra i{display:block;height:100%;background:#1f8f86}
/* v1.71: Planilhamento de balanço */
.pl-docs{margin:0;padding-left:18px}.pl-docs li{margin:3px 0}
.pl-abas{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin:0 0 8px}
.pl-modo{margin-left:auto;display:flex;gap:10px;font-size:13px}.pl-modo label{display:flex;gap:4px;align-items:center;margin:0}
.pl-tab{width:100%;border-collapse:collapse;font-size:13px}
.pl-tab th{text-align:right;white-space:nowrap;padding:4px 6px}.pl-tab th.pl-rot{text-align:left}
.pl-tab td{padding:2px 6px;border-bottom:1px solid var(--gray-bg)}
.pl-rot{text-align:left;min-width:220px}.pl-in{padding-left:18px !important}
.pl-tot{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.pl-cel{text-align:right}.pl-cel input.pl-v{width:100%;min-width:110px;text-align:right;padding:3px 6px;font-variant-numeric:tabular-nums}
.pl-sub td{font-weight:600}.pl-total td{font-weight:700;border-top:2px solid var(--gray)}
.pl-grupo td{font-weight:700;padding-top:10px;text-transform:uppercase;letter-spacing:.03em}
.pl-dif td{font-style:italic}.pl-erro{color:var(--err);font-weight:700}
.pl-conf input.pl-v{border-color:var(--warn);background:var(--warn-bg)}
.pl-man input.pl-v{border-style:dashed}
.pl-av,.pl-ah{display:none}
#frm[data-modo="av"] .pl-v,#frm[data-modo="av"] .pl-vv,#frm[data-modo="ah"] .pl-v,#frm[data-modo="ah"] .pl-vv{display:none}
#frm[data-modo="av"] .pl-av,#frm[data-modo="ah"] .pl-ah{display:inline}
.pl-cel input.pl-m,.pl-tab input.pl-m{width:100%;min-width:90px;text-align:right;padding:3px 6px}
/* v1.72.1: check verde de arquivo já processado */
.feito-ok{display:inline-block;font-size:11.5px;color:var(--ok);background:var(--ok-bg);border-radius:10px;padding:1px 8px;white-space:nowrap;vertical-align:middle}
.ia-ind.ia-livre{opacity:.7;text-decoration:none;margin-right:8px;font-size:15px}
.ia-ind.ia-livre:hover{opacity:1}
