/* Talon — design system fiel aos mockups (seção 7 do Relatório Técnico). */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap");

:root {
  /* Design system Talon (ref. ESPECIFICACAO-PAINEL) — cores com dono */
  --navy:#0F1B2E; --navy2:#0F1B2E; --tinta:#0F1B2E; --ink:#0F1B2E;
  --cinza:#64748B; --cinza2:#94A3B8; --muted:#64748B; --faint:#94A3B8;
  --borda:#E7EDF5; --linha:#F0F4F9; --fundo:#F5F7FA; --branco:#FFFFFF; --card:#FFFFFF;
  --azul:#2E63EB; --azul-esc:#1B4FD8; --azul-cl:#EEF3FE; --blue-l:#7FA3F7;
  --teal:#12A594; --teal-cl:#EAF8F5; --teal-viv:#12A594;
  --roxo:#8B5CF6; --roxo-cl:#F5F1FE; --roxo-l:#C4B5FD;
  --verm:#E11D48; --verm-cl:#FFF1F4; --ambar:#E07B00; --ambar-cl:#FFF6E9;
  --slate:#B6C2D4; --ouro:#D9A441; --gold:#D9A441;
  --sombra:0 1px 2px rgba(15,27,46,.04); --sombra-md:0 12px 30px rgba(15,27,46,.10); --sombra-azul:0 6px 16px -8px rgba(46,99,235,.85);
  --sombra-card:0 4px 16px -8px rgba(15,27,46,.18); --raio-card:16px;
  /* aliases da especificação */
  --bg:#F5F7FA; --line:#E7EDF5; --line2:#F0F4F9; --sidebar:#0F1B2E;
  --blue:#2E63EB; --blue-bg:#EEF3FE; --amber:#E07B00; --amber-bg:#FFF6E9;
  --violet:#8B5CF6; --violet-l:#C4B5FD; --violet-bg:#F5F1FE; --teal-bg:#EAF8F5;
  --red:#E11D48; --red-bg:#FFF1F4;
}
* { box-sizing:border-box; }
html,body { margin:0; height:100%; }
body { font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; color:var(--tinta); background:var(--fundo); font-size:14px; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; } button { font-family:inherit; cursor:pointer; }
::-webkit-scrollbar{ width:9px; height:9px;} ::-webkit-scrollbar-thumb{ background:#cbd5e6; border-radius:5px;} ::-webkit-scrollbar-track{ background:transparent;}

.app { display:grid; grid-template-columns:76px minmax(0,1fr); min-height:100vh; }   /* minmax(0,…): conteúdo largo rola dentro, não alarga a página */

/* ---------- Sidebar (navy) ---------- */
/* Barra lateral: rail de ícones que EXPANDE no hover mostrando os rótulos */
.sidebar { background:#0F1B2E; padding:16px 12px 18px; position:sticky; top:0; height:100vh; width:76px; display:flex; flex-direction:column; align-items:stretch; overflow:hidden; z-index:40; transition:width .18s ease, box-shadow .18s ease; }
.sidebar:hover { width:230px; box-shadow:8px 0 30px rgba(0,0,0,.22); }
.logo { display:flex; align-items:center; justify-content:center; margin:2px 0 18px; padding:6px; width:52px; height:52px; background:#fff; border-radius:14px; box-shadow:0 2px 10px rgba(0,0,0,.18); flex:none; align-self:center; }
.logo .logo-img { width:auto; max-width:42px; height:auto; display:block; }
.logo b.logo-fallback { display:none; font-size:13px; font-weight:800; letter-spacing:.04em;
  background:linear-gradient(180deg,#F6DC94,#D3A64E 55%,#9A6B22); -webkit-background-clip:text; background-clip:text; color:transparent; }
.nav { display:flex; flex-direction:column; align-items:stretch; gap:7px; width:100%; }
.nav a { display:flex; align-items:center; justify-content:center; height:48px; padding:0 13px; border-radius:14px; color:rgba(255,255,255,.6); gap:14px; transition:background .14s, color .14s; }
.sidebar:hover .nav a { justify-content:flex-start; }
.nav a svg { width:21px; height:21px; stroke-width:1.9; flex:none; }
.nav a:hover { background:rgba(255,255,255,.09); color:#fff; }
.nav a.ativo { background:linear-gradient(135deg,var(--azul),#4F84FF); color:#fff; box-shadow:var(--sombra-azul); }
.nav a span { white-space:nowrap; font-size:14px; font-weight:600; opacity:0; max-width:0; overflow:hidden; transition:opacity .12s ease, max-width .18s ease; }
.sidebar:hover .nav a span { opacity:1; max-width:150px; }

/* ---------- Topbar ---------- */
.topbar { height:70px; display:flex; align-items:center; gap:16px; padding:0 32px; }
.voltar-topo { display:flex; align-items:center; gap:5px; height:36px; padding:0 14px; border:1px solid var(--borda); border-radius:10px; background:#fff; color:var(--navy); font-weight:700; font-size:13.5px; font-family:inherit; cursor:pointer; box-shadow:var(--sombra); flex:none; transition:border-color .12s, background .12s; }
.voltar-topo:hover { border-color:var(--azul); background:var(--azul-cl); color:var(--azul); }
.topbar-dir { margin-left:auto; }
.crumbs { font-size:14.5px; color:var(--cinza2); display:flex; align-items:center; gap:9px; }
.crumbs a { color:var(--azul); font-weight:600; } .crumbs .sep{ color:var(--cinza2);} .crumbs .atual { color:var(--navy); font-weight:700; }
.topbar-dir { display:flex; align-items:center; gap:20px; color:var(--cinza); }
.topbar-dir .sino { position:relative; display:flex; color:var(--cinza); }
.topbar-dir .sino:hover { color:var(--azul); }
.alerta-prazos { display:flex; align-items:center; gap:10px; padding:8px 14px; border-radius:12px; font-size:13px; font-weight:700; text-decoration:none; border:1.5px solid transparent; transition:filter .12s; }
.alerta-prazos:hover { filter:brightness(.97); }
.alerta-prazos .ap-ico { width:18px; height:18px; flex:none; }
.alerta-prazos .ap-tit { font-weight:800; letter-spacing:.02em; text-transform:uppercase; font-size:11.5px; }
.alerta-prazos .ap-seg { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
.alerta-prazos .ap-seg b { font-size:17px; font-weight:800; line-height:1; }
.alerta-prazos .ap-sep { width:1px; height:16px; background:currentColor; opacity:.28; }
.alerta-prazos.sev-venc { background:var(--verm-cl); border-color:var(--verm); color:var(--verm); }
.alerta-prazos.sev-prox { background:var(--ambar-cl); border-color:var(--ambar); color:#B45309; }
.alerta-prazos.sev-ok { background:var(--teal-cl); border-color:var(--teal); color:var(--teal); }
/* indicador fixo de cancelamentos de AF (mesma família visual dos prazos) */
.alerta-tac { display:flex; align-items:center; gap:10px; padding:8px 14px; border-radius:12px; font-size:13px; font-weight:700; text-decoration:none; border:1.5px solid var(--violet); background:var(--violet-bg); color:var(--violet); transition:filter .12s; }
.alerta-tac:hover { filter:brightness(.97); }
.alerta-tac .ap-ico { width:18px; height:18px; flex:none; }
.alerta-tac .ap-tit { font-weight:800; letter-spacing:.02em; text-transform:uppercase; font-size:11.5px; }
.alerta-tac .ap-seg { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
.alerta-tac .ap-seg b { font-size:17px; font-weight:800; line-height:1; }
.alerta-prazos .ap-v { color:var(--verm); } .alerta-prazos .ap-h { color:#B45309; }
.topbar-dir .badge { position:absolute; top:-6px; right:-7px; background:var(--verm); color:#fff; font-size:11px; font-weight:700; border-radius:50%; width:18px; height:18px; display:grid; place-items:center; }
.topbar-user { display:flex; align-items:center; gap:10px; font-size:15px; font-weight:500; color:var(--tinta); }

.conteudo { max-width:none; margin:0; padding:4px clamp(16px,2.2vw,44px) 52px; width:100%; }
.pg-head { margin-bottom:24px; }
h1.titulo { font-size:40px; font-weight:800; letter-spacing:-.03em; color:var(--navy); margin:0; }
.subtitulo { font-size:16px; color:var(--cinza); margin:7px 0 0; }
.grid-lateral { display:grid; grid-template-columns:minmax(0,1fr) 352px; gap:22px; align-items:start; }
.tw { overflow-x:auto; }

/* ---------- KPIs (impacto: ícone vibrante + número grande + acento) ---------- */
.kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(244px,1fr)); gap:20px; margin-bottom:26px; }
.kpi { position:relative; display:flex; align-items:center; gap:18px; border:1px solid var(--borda); border-radius:18px; padding:24px 24px 24px 28px; background:var(--branco); box-shadow:var(--sombra); overflow:hidden; transition:transform .14s, box-shadow .14s; }
.kpi:hover { transform:translateY(-3px); box-shadow:var(--sombra-md); }
.kpi.clic { cursor:pointer; } .kpi.clic .leg { color:var(--azul); font-weight:600; }
.prio-card { transition:transform .12s, box-shadow .12s; } .prio-card:hover { transform:translateY(-2px); box-shadow:var(--sombra-md); }
.kpi::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; }
.kpi .circ { width:60px; height:60px; border-radius:16px; display:grid; place-items:center; flex:none; color:#fff; box-shadow:0 6px 16px rgba(11,31,58,.18); }
.kpi .circ svg { width:27px; height:27px; }
.kpi .rot { font-size:12.5px; font-weight:700; color:var(--cinza); margin-bottom:3px; text-transform:uppercase; letter-spacing:.03em; }
.kpi .num { font-size:44px; font-weight:800; line-height:1; letter-spacing:-.035em; }
.kpi .leg { font-size:12.5px; color:var(--cinza2); margin-top:5px; }
.k-azul::before{ background:var(--azul);} .k-azul .circ{ background:linear-gradient(135deg,var(--azul),#5A8BFF);} .k-azul .num{ color:var(--azul);}
.k-teal::before{ background:var(--teal);} .k-teal .circ{ background:linear-gradient(135deg,var(--teal),#14B8A6);} .k-teal .num{ color:var(--teal);}
.k-verm::before{ background:var(--verm);} .k-verm .circ{ background:linear-gradient(135deg,var(--verm),#FB7185);} .k-verm .num{ color:var(--verm);}
.k-ambar::before{ background:var(--ambar);} .k-ambar .circ{ background:linear-gradient(135deg,#F59E0B,#FBBF24);} .k-ambar .num{ color:#B45309;}
.k-roxo::before{ background:var(--roxo);} .k-roxo .circ{ background:linear-gradient(135deg,var(--roxo),#A78BFA);} .k-roxo .num{ color:var(--roxo);}
.kpi.solido .circ{ color:#fff;}

/* ---------- Cartões ---------- */
.card { border:1px solid var(--borda); border-radius:16px; background:var(--branco); box-shadow:var(--sombra); }
.card-head { display:flex; align-items:center; justify-content:space-between; padding:20px 24px 4px; }
.card-title { font-size:20px; font-weight:650; color:var(--navy); }
.card-head .link { font-size:13.5px; color:var(--azul); font-weight:500; }
.painel-tit { font-size:19px; font-weight:650; color:var(--navy); padding:20px 22px 8px; }

/* ---------- Tabela ---------- */
table { width:100%; border-collapse:collapse; }
thead th { text-align:left; font-size:13px; font-weight:500; color:var(--cinza); padding:14px; border-bottom:1px solid var(--linha); white-space:nowrap; }
tbody td { font-size:14px; color:var(--tinta); padding:16px 14px; border-bottom:1px solid var(--linha); vertical-align:middle; white-space:nowrap; }
tbody tr:last-child td{ border-bottom:none;} tbody tr:hover{ background:#FAFBFD;}
td:first-child,th:first-child{ padding-left:24px;} td:last-child,th:last-child{ padding-right:24px;}
.rodape-tab { display:flex; align-items:center; justify-content:space-between; padding:18px 24px; color:var(--cinza); font-size:13.5px; }
.forte{ font-weight:600; color:var(--navy);}

/* ---------- Pílulas / chips / avatares ---------- */
.pill { display:inline-flex; align-items:center; gap:5px; padding:5px 12px; border-radius:8px; font-size:12.5px; font-weight:600; }
.p-azul{ background:var(--azul-cl); color:var(--azul-esc);} .p-azulS{ background:var(--azul); color:#fff;}
.p-teal{ background:var(--teal-cl); color:var(--teal);} .p-roxo{ background:var(--roxo-cl); color:var(--roxo);}
.p-verm{ background:var(--verm-cl); color:#B91C1C;} .p-ambar{ background:var(--ambar-cl); color:#B45309;} .p-cinza{ background:var(--linha); color:var(--cinza);}
.p-verdeS{ background:var(--teal-cl); color:var(--teal);}
.chip { display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border-radius:8px; font-size:12.5px; font-weight:600; }
.chip svg{ width:14px; height:14px;}
.c-ok{ background:var(--teal-cl); color:var(--teal);} .c-venc{ background:var(--verm-cl); color:#B91C1C;} .c-hoje{ background:var(--ambar-cl); color:#B45309;}
.avatar { width:30px; height:30px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:12px; font-weight:600; flex:none; }
.a-roxo{ background:var(--roxo);} .a-azul{ background:var(--azul);} .a-cinza{ background:var(--cinza2);}
.cel-resp{ display:flex; align-items:center; gap:9px;}

/* ---------- Botões ---------- */
.btn { display:inline-flex; align-items:center; gap:7px; font-weight:600; border-radius:10px; border:1.5px solid transparent; font-size:13.5px; padding:8px 15px; }
.btn svg{ width:16px; height:16px;}
.btn.primario{ background:var(--azul); color:#fff;} .btn.primario:hover{ background:var(--azul-esc);}
.btn.contorno{ background:#fff; border-color:var(--azul); color:var(--azul);} .btn.contorno:hover{ background:var(--azul-cl);}
.btn.contorno.teal{ border-color:var(--teal); color:var(--teal);} .btn.contorno.cinza{ border-color:var(--borda); color:var(--cinza);}
.btn.ghost{ color:var(--azul);} .btn.sm{ padding:6px 11px; font-size:12.5px;} .btn:disabled{ opacity:.45; cursor:not-allowed;}

/* ---------- Progresso ---------- */
.prog{ min-width:130px;} .prog .pct{ font-size:12.5px; color:var(--cinza); margin-bottom:4px;}
.prog .barra{ height:6px; background:var(--linha); border-radius:99px; overflow:hidden;} .prog .barra i{ display:block; height:100%; background:var(--teal); border-radius:99px;}

/* ---------- Painel lateral ---------- */
.linha-painel{ display:flex; align-items:center; gap:12px; padding:15px 22px; border-top:1px solid var(--linha);}
.linha-painel:first-of-type{ border-top:none;}
.linha-painel .ico{ width:34px; height:34px; border-radius:9px; display:grid; place-items:center; flex:none;} .linha-painel .ico svg{ width:17px; height:17px;}
.linha-painel .txt{ color:var(--tinta); font-size:14px;} .linha-painel .n-dir{ margin-left:auto; font-size:22px; font-weight:700; color:var(--navy);}

/* ---------- Filtros ---------- */
.abas{ display:flex; gap:36px; border-bottom:1px solid var(--linha); margin-bottom:22px;}
.abas a{ font-size:15.5px; color:var(--cinza); padding:0 0 14px; position:relative; cursor:pointer;}
.abas a.ativo{ color:var(--azul); font-weight:600;} .abas a.ativo.teal{ color:var(--teal);}
.abas a.ativo::after{ content:""; position:absolute; left:0; right:0; bottom:-1px; height:2.5px; background:currentColor; border-radius:2px;}
.barra-filtros{ display:flex; gap:12px; align-items:center; margin-bottom:20px; flex-wrap:wrap;}
.segmento{ display:flex; border:1px solid var(--borda); border-radius:10px; overflow:hidden; height:42px;}
.segmento button{ border:none; background:#fff; padding:0 16px; font-size:14px; color:var(--cinza); border-right:1px solid var(--borda); display:flex; align-items:center; gap:7px;}
.segmento button:last-child{ border-right:none;} .segmento button .cont{ font-size:12px; color:var(--cinza2);}
.segmento button.ativo{ background:var(--azul); color:#fff;} .segmento button.ativo .cont{ color:#cfe0ff;}
.prio-filtro{ display:flex; align-items:center; gap:8px; margin:-6px 0 18px; flex-wrap:wrap; }
.chip-prio{ border:1px solid var(--borda); background:#fff; border-radius:99px; padding:6px 14px; font-size:13px; color:var(--cinza); font-weight:500; }
.chip-prio:hover{ border-color:var(--azul); color:var(--azul); }
.chip-prio.ativo{ background:var(--azul); color:#fff; border-color:var(--azul); }
.busca-wrap{ position:relative; flex:1; min-width:240px; display:flex; align-items:center;}
.busca-wrap>svg{ position:absolute; left:14px; width:17px; height:17px; color:var(--cinza2);}
.busca{ width:100%; height:42px; border:1px solid var(--borda); border-radius:10px; padding:0 14px 0 40px; font-size:14px; background:#fff; color:var(--tinta);}
.filtro-wrap{ display:flex; align-items:center; gap:10px; }
.filtro-lb{ font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza); }
.sit-filtro{ height:46px; border:1px solid var(--borda); border-radius:13px; padding:0 34px 0 14px; font-size:14px; font-weight:600; background:#fff; color:var(--tinta); cursor:pointer; box-shadow:var(--sombra); min-width:300px;}
.sit-filtro:focus{ outline:none; border-color:var(--azul); box-shadow:var(--sombra), 0 0 0 3px var(--azul-cl);}
.busca:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 3px var(--azul-cl);}
.mono-vazio{ padding:44px; text-align:center; color:var(--cinza2);} .carregando{ padding:64px; text-align:center; color:var(--cinza2);}

/* ---------- Cartões por empreendimento (Visão Geral) ---------- */
.emp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(304px,1fr)); gap:16px; padding:14px 22px 24px; }
.emp-card { border:1px solid var(--borda); border-radius:16px; padding:18px; cursor:pointer; background:var(--branco); transition:transform .12s, box-shadow .12s, border-color .12s; }
.emp-card:hover { transform:translateY(-3px); box-shadow:var(--sombra-md); border-color:var(--azul); }
.ec-head { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:14px; }
.ec-head b { font-size:17px; color:var(--navy); font-weight:800; }
.ec-body { display:flex; align-items:center; gap:18px; }
.ec-nums { display:flex; flex-direction:column; gap:9px; flex:1; }
.ec-nums div { display:flex; align-items:baseline; gap:9px; }
.ec-nums div b { font-size:19px; font-weight:800; min-width:44px; }
.ec-nums div span { font-size:12px; color:var(--cinza); }
.ec-foot { margin-top:16px; padding-top:14px; border-top:1px solid var(--linha); color:var(--azul); font-weight:600; font-size:13px; display:flex; align-items:center; gap:5px; }
.ec-foot svg { width:15px; height:15px; }
.ec-stack { margin-bottom:16px; }

/* ---------- Esteira de evolução (5 cenários) ---------- */
.stack { display:flex; width:100%; border-radius:8px; overflow:hidden; background:var(--linha); }
.stack-seg { display:flex; align-items:center; justify-content:center; color:#fff; font-size:11px; font-weight:800; min-width:2px; transition:width .5s ease; }
.evol-card .card-head { margin-bottom:0; }
.evol-barra { padding:20px 24px 4px; }
.evol-esteira { display:flex; align-items:stretch; gap:0; padding:14px 20px 26px; overflow-x:auto; }
.evol-tile { flex:1 1 0; min-width:150px; text-align:center; padding:8px 10px; display:flex; flex-direction:column; align-items:center; gap:7px; }
.evol-ico { width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center; font-size:23px; box-shadow:var(--sombra-md); }
.evol-num { font-size:30px; font-weight:800; letter-spacing:-.02em; line-height:1; }
.evol-rot { font-size:13px; font-weight:700; color:var(--navy); }
.evol-mini { width:100%; max-width:120px; height:5px; border-radius:3px; background:var(--linha); overflow:hidden; }
.evol-mini i { display:block; height:100%; border-radius:3px; }
.evol-pct { font-size:11px; color:var(--cinza); line-height:1.35; }
.evol-arrow { align-self:center; color:var(--cinza2); font-size:20px; font-weight:700; flex:none; padding:0 2px; }
.evol-tile.tem-partes { min-width:196px; }
.evol-partes { width:100%; display:flex; flex-direction:column; gap:5px; margin-top:2px; }
.evol-parte { display:flex; align-items:center; gap:7px; font-size:11.5px; color:var(--tinta); background:var(--fundo); border:1px solid var(--borda); border-radius:8px; padding:5px 9px; }
.evol-parte .pt { width:9px; height:9px; border-radius:3px; flex:none; }
.evol-parte .pr { flex:1; text-align:left; color:var(--cinza); }
.evol-parte b { font-weight:800; color:var(--navy); font-size:13px; }

/* ---------- Painel executivo: zonas, panorama ---------- */
.sec-head { display:flex; align-items:baseline; gap:12px; margin:26px 2px 14px; }
.sec-head h2 { font-size:18px; font-weight:800; color:var(--navy); letter-spacing:-.01em; }
.sec-head span { font-size:13px; color:var(--cinza2); }
.panorama { display:flex; align-items:center; gap:34px; padding:24px 28px; flex-wrap:wrap; }
.pan-ring { display:flex; align-items:center; gap:18px; flex:none; }
.pan-leg { font-size:13.5px; color:var(--cinza); line-height:1.5; }
.pan-leg b { font-size:22px; font-weight:800; color:var(--navy); }
.pan-stats { flex:1; min-width:280px; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
@media (max-width:640px){ .pan-stats { grid-template-columns:repeat(2,1fr); } }
.pan-stat { display:block; padding:12px 14px; border-radius:13px; background:var(--fundo); border:1px solid var(--borda); text-decoration:none; transition:transform .1s, box-shadow .1s, border-color .1s; }
.pan-stat.clic { cursor:pointer; } .pan-stat.clic:hover { transform:translateY(-2px); box-shadow:var(--sombra-md); border-color:var(--azul); }
.ps-val { font-size:26px; font-weight:800; letter-spacing:-.02em; line-height:1; }
.ps-rot { font-size:13px; font-weight:700; color:var(--navy); margin-top:5px; }
.ps-leg { font-size:11.5px; color:var(--cinza2); margin-top:2px; }

/* ---------- Jornada: barra-resumo dos 3 macro-grupos ---------- */
.jornada-bar { display:flex; gap:5px; padding:18px 22px 4px; }
.jb-seg { display:flex; flex-direction:column; justify-content:center; gap:2px; padding:12px 14px; border-radius:10px; color:#fff; min-width:0; overflow:hidden; }
.jb-seg b { font-size:22px; font-weight:800; line-height:1; }
.jb-seg span { font-size:11.5px; opacity:.92; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jb-azul { background:linear-gradient(135deg,#2E6BFF,#5b86ff); } .jb-roxo { background:linear-gradient(135deg,#7C3AED,#9a63f0); } .jb-teal { background:linear-gradient(135deg,#0D9488,#14b8a6); }

/* ---------- Pipeline em barras horizontais ---------- */
.plb-wrap { padding:16px 24px 22px; display:flex; flex-direction:column; gap:11px; }
.plb { display:flex; align-items:center; gap:12px; border-radius:8px; padding:3px 4px; transition:background .1s; }
.plb.clic { cursor:pointer; } .plb.clic:hover { background:var(--fundo); }
.plb-rot { width:118px; flex:none; font-size:13px; font-weight:600; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.plb-track { flex:1; height:20px; border-radius:6px; background:var(--linha); overflow:hidden; }
.plb-track i { display:block; height:100%; border-radius:6px; transition:width .5s ease; min-width:3px; }
.plb-n { width:46px; flex:none; text-align:right; font-weight:800; color:var(--navy); font-size:15px; }
.plb-resp { width:28px; height:22px; flex:none; border-radius:6px; font-size:10px; font-weight:800; display:flex; align-items:center; justify-content:center; }

/* ---------- Evolução mensal empilhada por fase ---------- */
.ev-legenda { display:flex; flex-wrap:wrap; gap:8px 16px; padding:4px 24px 18px; }
.ev-legenda span { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--cinza); }
.ev-legenda i { width:11px; height:11px; border-radius:3px; flex:none; }
.ev-stack { width:100%; max-width:52px; border-radius:7px 7px 0 0; overflow:hidden; display:flex; flex-direction:column-reverse; }
.ev-stack i { display:block; width:100%; }

/* ---------- Painel gerencial: pipeline / tempo médio / evolução ---------- */
.pipe-row { display:flex; align-items:stretch; gap:0; padding:18px 18px 22px; overflow-x:auto; }
.pipe-cell { flex:1 1 0; min-width:98px; text-align:center; padding:10px 8px; border-radius:12px; display:flex; flex-direction:column; align-items:center; gap:6px; transition:background .1s, transform .1s; }
.pipe-cell.clic { cursor:pointer; }
.pipe-cell.clic:hover { background:var(--fundo); transform:translateY(-2px); }
.pipe-n { font-size:28px; font-weight:800; letter-spacing:-.02em; line-height:1; }
.pipe-rot { font-size:12px; font-weight:700; color:var(--navy); }
.pipe-bar { width:100%; max-width:74px; height:5px; border-radius:3px; background:var(--linha); overflow:hidden; }
.pipe-bar i { display:block; height:100%; border-radius:3px; }
.pipe-dias { font-size:10.5px; color:var(--cinza2); }
.pipe-dias.gargalo { color:var(--verm); font-weight:800; }
.pipe-seta { align-self:center; color:var(--cinza2); font-size:18px; font-weight:700; flex:none; padding:0 2px; }
.tm-wrap { padding:16px 24px 22px; display:flex; flex-direction:column; gap:12px; }
.tm-lin { display:flex; align-items:center; gap:14px; cursor:pointer; }
.tm-lin:hover .tm-rot { color:var(--azul); }
.tm-rot { width:120px; flex:none; font-size:13px; font-weight:600; color:var(--navy); }
.tm-barra { flex:1; height:18px; border-radius:6px; background:var(--linha); overflow:hidden; }
.tm-barra i { display:block; height:100%; border-radius:6px; transition:width .5s ease; }
.tm-val { width:44px; flex:none; text-align:right; font-weight:800; color:var(--navy); font-size:14px; }
.tm-vazio { padding:22px 24px; color:var(--cinza); font-size:13.5px; line-height:1.6; background:var(--fundo); border-radius:12px; margin:14px 20px; }
.carga-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; padding:16px 22px 22px; }
.carga-card { border:1px solid var(--borda); border-radius:16px; padding:18px; cursor:pointer; background:var(--branco); transition:transform .12s, box-shadow .12s, border-color .12s; }
.carga-card:hover { transform:translateY(-3px); box-shadow:var(--sombra-md); border-color:var(--azul); }
.cc-top { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.cc-top .avatar { width:34px; height:34px; font-size:14px; }
.cc-top b { font-size:16px; color:var(--navy); font-weight:800; flex:1; }
.cc-total { font-size:22px; font-weight:800; color:var(--navy); }
.cc-nums { display:flex; gap:24px; }
.cc-nums div b { font-size:22px; font-weight:800; }
.cc-nums div span { display:block; font-size:12px; color:var(--cinza); }
.cc-foot { margin-top:15px; padding-top:13px; border-top:1px solid var(--linha); color:var(--azul); font-weight:600; font-size:13px; display:flex; align-items:center; gap:5px; }
.cc-foot svg { width:15px; height:15px; }
.ev-wrap { padding:18px 24px 14px; display:flex; align-items:flex-end; gap:16px; min-height:180px; }
.ev-col { flex:1; max-width:64px; display:flex; flex-direction:column; align-items:center; gap:6px; justify-content:flex-end; }
.ev-bar { width:100%; border-radius:8px 8px 0 0; background:linear-gradient(180deg,var(--azul),var(--roxo)); min-height:6px; }
.ev-lab { font-size:11px; color:var(--cinza); } .ev-n { font-size:13px; font-weight:800; color:var(--navy); }
.tab-glob { table-layout:auto; }
.tab-glob th:nth-child(1){ width:9%; } .tab-glob th:nth-child(2){ width:16%; } .tab-glob th:nth-child(3){ width:auto; }

/* ---------- Agenda em calendário ---------- */
.ag-cal-wrap { display:grid; grid-template-columns:1.3fr 1fr; gap:18px; align-items:start; }
@media (max-width:1000px){ .ag-cal-wrap { grid-template-columns:1fr; } }
.cal-card { padding:18px 20px 14px; }
.cal-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.cal-mes { font-size:18px; font-weight:800; color:var(--navy); }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-dow { text-align:center; font-size:11px; font-weight:700; color:var(--cinza2); text-transform:uppercase; letter-spacing:.04em; padding-bottom:4px; }
.cal-cell { position:relative; min-height:58px; border:1px solid var(--linha); border-radius:10px; padding:6px 8px; background:var(--branco); display:flex; flex-direction:column; }
.cal-cell.vazia { border:none; background:transparent; }
.cal-num { font-size:13px; font-weight:600; color:var(--tinta); }
.cal-cell.passado { background:var(--fundo); } .cal-cell.passado .cal-num { color:var(--cinza2); }
.cal-cell.hoje { border-color:var(--azul); box-shadow:0 0 0 1px var(--azul) inset; }
.cal-cell.hoje .cal-num { color:var(--azul); font-weight:800; }
.cal-cell.tem { cursor:pointer; transition:transform .1s, box-shadow .1s; }
.cal-cell.tem:hover { transform:translateY(-2px); box-shadow:var(--sombra-md); }
.cal-cell.sel { border-color:var(--roxo); box-shadow:0 0 0 2px var(--roxo) inset; }
.cal-badge { position:absolute; right:6px; bottom:6px; min-width:22px; height:22px; padding:0 6px; border-radius:11px; background:var(--azul); color:#fff; font-size:12px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.cal-badge.v { background:var(--verm); } .cal-badge.h { background:var(--ambar); }
.cal-leg { display:flex; gap:16px; justify-content:center; margin-top:14px; font-size:12px; color:var(--cinza); }
.cal-leg i.lg { display:inline-block; width:11px; height:11px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.cal-leg i.lg.v { background:var(--verm); } .cal-leg i.lg.h { background:var(--ambar); } .cal-leg i.lg.n { background:var(--azul); }

/* ---------- Evolução em cadeia (Ativos → Quitados → Transferidas) ---------- */
.cascata { display:flex; align-items:stretch; gap:0; padding:18px 20px 24px; }
.cascata-grupo { flex:1 1 0; min-width:0; background:var(--fundo); border:1px solid var(--borda); border-radius:14px; padding:16px 16px 14px; display:flex; flex-direction:column; }
.cascata-grupo.cg-azul { border-top:3px solid var(--azul); }
.cascata-grupo.cg-roxo { border-top:3px solid var(--roxo); }
.cascata-grupo.cg-teal { border-top:3px solid var(--teal); }
.cg-head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.cg-nome { font-size:14px; font-weight:800; color:var(--navy); }
.cg-total { font-size:26px; font-weight:800; letter-spacing:-.02em; color:var(--navy); }
.cg-sub { font-size:11.5px; color:var(--cinza2); margin:2px 0 12px; }
.cg-etapas { display:flex; flex-direction:column; gap:11px; }
.cg-etapa { display:flex; flex-direction:column; gap:6px; }
.cg-etapa.clic { cursor:pointer; }
.cg-etapa.clic:hover .cg-rot { color:var(--azul); }
.cg-lin { display:flex; align-items:center; gap:8px; }
.cg-dot { width:10px; height:10px; border-radius:3px; flex:none; }
.cg-rot { flex:1; min-width:0; font-size:12.5px; color:var(--tinta); font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cg-n { font-size:16px; font-weight:800; color:var(--navy); flex:none; }
.cg-bar { display:block; height:6px; border-radius:3px; min-width:3px; transition:width .5s ease; }
.cascata-seta { align-self:center; color:var(--cinza2); font-size:22px; font-weight:700; flex:none; padding:0 8px; }
@media (max-width:900px){ .cascata { flex-direction:column; } .cascata-seta { transform:rotate(90deg); padding:6px 0; } }

/* ---------- Medição: anéis lado a lado ---------- */
.medicao-rings { display:flex; gap:20px; padding:16px 24px 26px; flex-wrap:wrap; }
.ring-bloco { flex:1; min-width:190px; display:flex; align-items:center; gap:16px; }
.ring-leg { font-size:13px; color:var(--cinza); line-height:1.5; }
.ring-leg b { font-size:20px; font-weight:800; color:var(--navy); }

/* ---------- Distribuição de unidades por empreendimento ---------- */
.dist-emp { padding:16px 24px 22px; display:flex; flex-direction:column; gap:13px; }
.dist-lin { display:flex; align-items:center; gap:14px; cursor:pointer; }
.dist-lin:hover .dist-nome { color:var(--azul); }
.dist-nome { width:160px; flex:none; font-weight:700; color:var(--navy); font-size:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.dist-barra { flex:1; height:22px; border-radius:7px; background:var(--linha); overflow:hidden; }
.dist-barra i { display:block; height:100%; border-radius:7px; background:linear-gradient(90deg,var(--azul),var(--roxo)); transition:width .5s ease; }
.dist-n { width:56px; flex:none; text-align:right; font-weight:800; color:var(--navy); font-size:15px; }

/* ---------- Listagem de unidades: grid de cartões ---------- */
.uni-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(288px,1fr)); gap:16px; }
.uni-card { border:1px solid var(--borda); border-radius:16px; background:var(--branco); box-shadow:var(--sombra); padding:18px 18px 0; cursor:pointer; transition:transform .12s, box-shadow .12s, border-color .12s; display:flex; flex-direction:column; }
.uni-card:hover { transform:translateY(-3px); box-shadow:var(--sombra-md); border-color:var(--azul); }
.uc-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.uc-cod { font-size:19px; font-weight:800; color:var(--navy); letter-spacing:-.01em; }
.uc-cli { color:var(--cinza); font-size:13.5px; margin:5px 0 13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.uc-badges { display:flex; gap:7px; flex-wrap:wrap; }
.uc-fin { display:flex; justify-content:space-between; gap:10px; margin-top:15px; }
.uc-fin div span { font-size:10px; color:var(--cinza2); text-transform:uppercase; letter-spacing:.04em; display:block; }
.uc-fin div b { font-size:14px; color:var(--navy); font-weight:800; }
.uc-foot { margin-top:15px; padding:13px 0; border-top:1px solid var(--linha); color:var(--azul); font-weight:600; font-size:13px; display:flex; align-items:center; gap:5px; }
.uc-foot svg { width:15px; height:15px; }

/* ---------- Listagem de unidades: tabela sem rolagem horizontal ---------- */
.tab-uni { width:100%; border-collapse:collapse; table-layout:fixed; background:var(--branco); border:1px solid var(--borda); border-radius:14px; overflow:hidden; box-shadow:var(--sombra); }
.tab-uni thead th { text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); font-weight:700; padding:13px 14px; background:var(--fundo); border-bottom:1px solid var(--borda); white-space:nowrap; }
.tab-uni tbody td { padding:12px 14px; border-bottom:1px solid var(--linha); font-size:13.5px; color:var(--tinta); vertical-align:middle; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tab-uni tbody tr:last-child td { border-bottom:none; }
.tab-uni tbody tr.clic { cursor:pointer; transition:background .1s; }
.tab-uni tbody tr.clic:hover { background:var(--azul-cl); }
.tab-uni .ct-cod { font-weight:800; color:var(--navy); font-size:14.5px; }
.tab-uni .ct-cli { color:var(--tinta); font-weight:500; }
.tab-uni .ct-prazo { font-weight:700; color:var(--navy); }
.tab-uni .ct-ir { text-align:right; color:var(--cinza2); }
.tab-uni .ct-ir svg { width:16px; height:16px; }
.tab-uni .pill { max-width:100%; overflow:hidden; text-overflow:ellipsis; }
/* larguras de coluna (soma controlada p/ evitar rolagem) */
.tab-uni col, .tab-uni th:nth-child(1){ width:8.5%; } .tab-uni th:nth-child(2){ width:22%; }
.tab-uni th:nth-child(3){ width:12%; } .tab-uni th:nth-child(4){ width:13%; }
.tab-uni th:nth-child(5){ width:14%; } .tab-uni th:nth-child(6){ width:15%; }
.tab-uni th:nth-child(7){ width:9%; } .tab-uni th:nth-child(8){ width:6.5%; }

/* ---------- Barra de filtros (melhorada) ---------- */
.barra-filtros { gap:14px; }
.segmento { background:var(--branco); border:1px solid var(--borda); border-radius:13px; padding:4px; height:auto; gap:3px; box-shadow:var(--sombra); overflow:visible; }
.segmento button { border:none; border-right:none; border-radius:9px; padding:9px 15px; height:auto; font-weight:600; color:var(--cinza); }
.segmento button:hover { background:var(--linha); color:var(--tinta); }
.segmento button.ativo { background:var(--azul); color:#fff; box-shadow:var(--sombra-azul); } .segmento button.ativo .cont{ color:#cfe0ff; }
.busca { height:46px; border-radius:13px; box-shadow:var(--sombra); font-size:14.5px; }
.busca:focus { box-shadow:var(--sombra), 0 0 0 3px var(--azul-cl); }
.busca-wrap > svg { left:16px; }
.chip-prio { box-shadow:var(--sombra); }

/* ---------- Configurações ---------- */
.cfg-lin { display:grid; grid-template-columns:1fr 150px 180px; align-items:center; gap:14px; padding:11px 0; border-top:1px solid var(--linha); }
.cfg-lin.cfg-cab { border-top:none; color:var(--cinza); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.03em; }
.cfg-rot { font-weight:600; color:var(--navy); }
.cfg-lin select, .cfg-lin input { height:38px; border:1px solid var(--borda); border-radius:9px; padding:0 10px; font-size:14px; font-family:inherit; background:#fff; color:var(--tinta); }
.cfg-lin input[type=number] { width:90px; }

/* ---------- Agenda ---------- */
.ag-item { display:grid; grid-template-columns:120px 1fr 180px 160px 20px; align-items:center; gap:14px; padding:14px 22px; border-top:1px solid var(--linha); color:var(--tinta); }
.ag-item:first-child { border-top:none; } .ag-item:hover { background:#FAFBFD; }
.ag-un { font-weight:600; color:var(--navy); } .ag-un span { display:block; font-size:12px; color:var(--cinza2); font-weight:400; }
.ag-ac b { color:var(--navy); font-weight:600; font-size:14px; } .ag-ac span { display:block; font-size:12.5px; color:var(--cinza); }
.ag-resp { display:flex; align-items:center; gap:8px; font-size:13px; }
.ag-item > div:last-child svg { width:16px; height:16px; color:var(--cinza2); }
@media (max-width:900px){ .ag-item{ grid-template-columns:100px 1fr auto; } .ag-resp,.ag-item>div:last-child{ display:none; } }

/* ---------- Gráficos ---------- */
.charts-2{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; margin-bottom:22px;}
.donut-wrap{ display:flex; align-items:center; gap:24px; padding:18px 24px 24px;}
.legenda{ display:flex; flex-direction:column; gap:11px; flex:1;}
.legenda .item{ display:flex; align-items:center; gap:10px; font-size:13.5px;}
.legenda .dot{ width:11px; height:11px; border-radius:3px; flex:none;}
.legenda .lab{ color:var(--tinta);} .legenda .n{ margin-left:auto; font-weight:600; color:var(--navy);} .legenda .pc{ color:var(--cinza2); width:40px; text-align:right;}
.barras-emp{ padding:16px 24px 6px; display:flex; flex-direction:column; gap:18px;}
.barra-emp .cab{ display:flex; justify-content:space-between; font-size:13.5px; margin-bottom:7px;} .barra-emp .cab b{ color:var(--navy);} .barra-emp .cab span{ color:var(--cinza2);}
.barra-stack{ height:13px; border-radius:99px; overflow:hidden; display:flex; background:var(--linha);} .barra-stack i{ height:100%;}
.mini-leg{ display:flex; gap:18px; padding:4px 24px 18px; flex-wrap:wrap;} .mini-leg .item{ display:flex; align-items:center; gap:7px; font-size:12.5px; color:var(--cinza);} .mini-leg .dot{ width:10px; height:10px; border-radius:3px;}

/* ---------- Hero de acesso às unidades ---------- */
.hero-acesso { display:flex; align-items:center; justify-content:space-between; gap:24px; background:linear-gradient(120deg,#0B1F3A 0%,#14346E 60%,#1B4FD8 130%); border-radius:20px; padding:28px 32px; margin-bottom:24px; box-shadow:var(--sombra-md); flex-wrap:wrap; }
.hero-acesso .txt h3 { color:#fff; font-size:23px; font-weight:800; margin:0; letter-spacing:-.02em; }
.hero-acesso .txt p { color:rgba(255,255,255,.72); margin:6px 0 0; font-size:14px; }
.hero-acesso .nums { display:flex; gap:30px; margin-top:16px; }
.hero-acesso .nums div b { color:#fff; font-size:26px; font-weight:800; display:block; line-height:1.1; }
.hero-acesso .nums div span { color:rgba(255,255,255,.6); font-size:12px; text-transform:uppercase; letter-spacing:.04em; }
.hero-acesso .cta { background:#fff; color:var(--navy); font-weight:700; padding:15px 26px; border-radius:13px; font-size:15px; display:flex; align-items:center; gap:9px; white-space:nowrap; border:none; box-shadow:0 8px 22px rgba(0,0,0,.22); }
.hero-acesso .cta svg { width:18px; height:18px; } .hero-acesso .cta:hover { background:#EAF1FF; transform:translateY(-1px); }

/* ---------- Equipe (carga) ---------- */
.equipe-lin { display:flex; align-items:center; gap:12px; padding:14px 22px; border-top:1px solid var(--linha); }
.equipe-lin:first-of-type { border-top:none; }
.carga-barra { height:7px; background:var(--linha); border-radius:99px; overflow:hidden; }
.carga-barra i { display:block; height:100%; border-radius:99px; }

/* ---------- Situação (blocos de números, sem linha) ---------- */
.stat-tit { font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:14px; }
.stat-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr)); gap:12px; }
.stat-tile { position:relative; overflow:hidden; border:1px solid var(--borda); border-radius:13px; padding:16px 18px; background:var(--branco); }
.stat-tile b { font-size:28px; font-weight:800; letter-spacing:-.025em; display:block; line-height:1; }
.stat-tile span { font-size:12.5px; color:var(--cinza); margin-top:7px; display:block; }
.stat-tile .stat-bar { position:absolute; left:0; bottom:0; height:3px; opacity:.5; border-radius:0 2px 0 0; }

/* ---------- Funis ---------- */
.funil-tit { font-size:12.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; margin-bottom:16px; }
.funil-linha { display:flex; }
.funil-linha > div { flex:1; text-align:center; }
.funil-rot { font-size:12.5px; color:var(--cinza); padding-bottom:12px; }
.funil-trilha { position:relative; }
.funil-trilha::before { content:""; position:absolute; top:50%; left:9%; right:9%; height:2px; background:var(--cor); opacity:.35; transform:translateY(-50%); }
.funil-dot { display:inline-block; width:14px; height:14px; border-radius:50%; background:var(--cor); position:relative; z-index:1; }
.funil-num { font-size:22px; font-weight:700; color:var(--cor); padding-top:12px; }

/* ---------- Pontos de atenção ---------- */
.ponto{ display:flex; align-items:center; gap:13px; padding:15px 22px; border-top:1px solid var(--linha);} .ponto:first-of-type{ border-top:none;}
.ponto .marca{ width:4px; align-self:stretch; border-radius:99px; flex:none;} .ponto .corpo{ flex:1; min-width:0;}
.ponto .corpo b{ font-size:14px; color:var(--navy); display:block;} .ponto .corpo span{ font-size:12.5px; color:var(--cinza);}
.ponto-bar{ display:block; height:3px; border-radius:2px; margin-top:9px; opacity:.55; max-width:180px; }
.sev-alta .ponto-bar{ background:var(--verm);} .sev-media .ponto-bar{ background:var(--ambar);} .sev-baixa .ponto-bar{ background:var(--azul);}
.ponto .n{ font-size:22px; font-weight:800; flex:none;}
.sev-alta .marca{ background:var(--verm);} .sev-alta .n{ color:var(--verm);}
.sev-media .marca{ background:var(--ambar);} .sev-media .n{ color:#B45309;}
.sev-baixa .marca{ background:var(--azul);} .sev-baixa .n{ color:var(--azul);}

/* ---------- Modal ---------- */
.modal-ov { position:fixed; inset:0; background:rgba(11,31,58,.45); display:grid; place-items:center; z-index:100; padding:20px; }
.modal { background:#fff; border-radius:16px; width:460px; max-width:94vw; max-height:90vh; display:flex; flex-direction:column; box-shadow:0 24px 60px rgba(16,24,40,.28); overflow:hidden; }
.modal-wide { width:760px; }
.modal-head { padding:18px 22px; font-size:19px; font-weight:650; color:var(--navy); border-bottom:1px solid var(--linha); display:flex; justify-content:space-between; align-items:center; flex:none; }
.modal-x { border:none; background:none; font-size:26px; color:var(--cinza2); line-height:1; cursor:pointer; }
.modal-body { padding:20px 22px; display:flex; flex-direction:column; gap:14px; overflow-y:auto; flex:1 1 auto; }
.modal-foot { padding:16px 22px; border-top:1px solid var(--linha); display:flex; justify-content:flex-end; gap:10px; flex:none; background:#fff; }
.modal:has(.pf-grid):not(.modal-wide) { width:600px; }   /* formulários em grade (módulo Judicial) */

/* ---------- Gaveta de ação (slide-over) ---------- */
.gaveta-ov { position:fixed; inset:0; background:rgba(11,31,58,.4); z-index:120; display:flex; justify-content:flex-end; }
.gaveta { width:460px; max-width:96vw; height:100%; background:#fff; box-shadow:-12px 0 40px rgba(16,24,40,.2); display:flex; flex-direction:column; animation:desliza .18s ease; }
@keyframes desliza { from{ transform:translateX(30px); opacity:.6;} to{ transform:none; opacity:1;} }
.gaveta-head { padding:20px 24px; border-bottom:1px solid var(--linha); }
.gaveta-head .verbo { font-size:20px; font-weight:700; color:var(--navy); }
.gaveta-head .ctx { font-size:13px; color:var(--cinza); margin-top:3px; }
.gaveta-body { padding:20px 24px; overflow-y:auto; flex:1; display:flex; flex-direction:column; gap:14px; }
.gaveta-foot { padding:16px 24px; border-top:1px solid var(--linha); display:flex; gap:10px; }
.gaveta-foot .btn { flex:1; justify-content:center; }
.mais-det { border:none; background:none; color:var(--azul); font-weight:600; font-size:13px; padding:4px 0; text-align:left; display:flex; align-items:center; gap:6px; }
.mais-det svg { width:15px; height:15px; flex:none; }
.reuso { background:var(--azul-cl); border-radius:10px; padding:12px 14px; font-size:12.5px; color:var(--navy); display:flex; flex-direction:column; gap:4px; }
.reuso b { font-weight:600; } .reuso .lin { color:var(--cinza); }
.upload-zone { border:1.5px dashed var(--borda); border-radius:12px; padding:22px; text-align:center; color:var(--cinza); font-size:13px; background:var(--slate50, #f8fafc); cursor:pointer; }
.upload-zone:hover { border-color:var(--azul); color:var(--azul); }
.upload-zone .hint { font-size:12px; color:var(--cinza2); margin-top:4px; }

/* ---------- Cartão de ação principal ---------- */
.acao-card { border:1px solid var(--borda); border-radius:16px; box-shadow:var(--sombra); padding:24px; }
.acao-titulo { font-size:24px; font-weight:700; color:var(--navy); letter-spacing:-.01em; }
/* etapa ativa — card com presença */
.acao-card.acao-ativa { position:relative; border-left:4px solid var(--azul); background:linear-gradient(180deg,#F7FAFF 0%,#fff 58%); }
.acao-ativa .acao-eyebrow { display:inline-flex; align-items:center; gap:6px; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--azul); background:var(--azul-cl); padding:4px 11px; border-radius:99px; margin-bottom:10px; }
.acao-ativa .acao-titulo { font-size:22px; }
.acao-ativa .btn-primario-grande { background:linear-gradient(135deg,var(--azul),#4F86F2); box-shadow:0 10px 20px -8px rgba(46,107,255,.55); font-size:15.5px; padding:14px; }
.acao-ativa .btn-primario-grande:hover { background:linear-gradient(135deg,var(--azul-esc),var(--azul)); }
.acao-ativa .btn-primario-grande::after { content:"→"; font-size:17px; margin-left:2px; }
.acao-sub { font-size:14px; color:var(--cinza); margin-top:2px; }
.acao-linha { display:flex; align-items:center; gap:26px; margin:14px 0 18px; flex-wrap:wrap; font-size:13.5px; }
.acao-linha .item { display:flex; align-items:center; gap:8px; color:var(--tinta); }
.acao-linha .rot { color:var(--cinza); }
.prazo-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:8px; font-size:12.5px; font-weight:600; }
.prazo-ok { background:var(--teal-cl); color:var(--teal);} .prazo-hoje{ background:var(--ambar-cl); color:#B45309;} .prazo-venc{ background:var(--verm-cl); color:#B91C1C;}
.btn-reag { margin-left:8px; border:1px solid var(--borda); background:#fff; color:var(--azul); font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:7px; cursor:pointer; line-height:1.4; }
.btn-reag:hover { border-color:var(--azul); background:var(--azul-cl); }
.btn-primario-grande { width:100%; justify-content:center; font-size:15px; padding:13px; border-radius:11px; background:var(--azul); color:#fff; border:none; font-weight:600; display:flex; align-items:center; gap:8px; }
.btn-primario-grande:hover { background:var(--azul-esc); }
.aux-botoes { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:12px; }
.aux-botoes .btn { font-size:12.5px; padding:7px 12px; }
.aux-botoes .aux-sep { margin-left:auto; }   /* empurra as ações da etapa para a direita */
.aux-botoes .btn.etapa-acao { background:var(--azul-cl); border:1px solid var(--azul); color:var(--azul); font-weight:700; }
.aux-botoes .btn.etapa-acao:hover { background:var(--azul); color:#fff; }

/* escolha (cartões de rota/status) */
.escolha { display:grid; gap:12px; margin:4px 0 18px; }
.escolha.c2 { grid-template-columns:1fr 1fr; } .escolha.c3 { grid-template-columns:1fr 1fr 1fr; }
.escolha-card { border:1.5px solid var(--borda); border-radius:12px; padding:16px; cursor:pointer; position:relative; transition:all .12s; background:#fff; }
.escolha-card:hover { border-color:var(--azul); }
.escolha-card.sel { border-color:var(--azul); box-shadow:0 0 0 3px var(--azul-cl); }
.escolha-card .ec-ico { width:38px; height:38px; border-radius:10px; display:grid; place-items:center; margin-bottom:10px; }
.escolha-card .ec-ico svg { width:20px; height:20px; }
.escolha-card b { font-size:15px; color:var(--navy); display:block; margin-bottom:3px; }
.escolha-card span { font-size:12.5px; color:var(--cinza); line-height:1.35; }
.escolha-card .radio { position:absolute; top:14px; right:14px; width:18px; height:18px; border-radius:50%; border:2px solid var(--borda); }
.escolha-card.sel .radio { border-color:var(--azul); background:radial-gradient(circle,#fff 34%,var(--azul) 38%); }

/* checklist / procedimento */
.checklist { display:flex; flex-direction:column; gap:12px; margin:8px 0 16px; }
.check-item { display:flex; align-items:flex-start; gap:11px; }
.check-item .cx { width:22px; height:22px; border-radius:50%; background:var(--teal); color:#fff; display:grid; place-items:center; flex:none; } .check-item .cx svg{ width:13px; height:13px; }
.check-item b { font-size:14px; color:var(--tinta); font-weight:500; } .check-item span { font-size:12.5px; color:var(--cinza); display:block; }
.procedimento { display:flex; flex-direction:column; gap:14px; }
.proc-item { display:flex; gap:12px; } .proc-item .pn{ width:24px; height:24px; border-radius:50%; background:var(--azul-cl); color:var(--azul); font-size:12px; font-weight:700; display:grid; place-items:center; flex:none; }
.proc-item b { font-size:14px; color:var(--navy); } .proc-item span { font-size:12.5px; color:var(--cinza); display:block; }

/* painel timeline lateral */
.painel-tl { display:flex; flex-direction:column; }
.tl-item { display:flex; gap:12px; padding:12px 0; position:relative; }
.tl-item .pt { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; flex:none; font-size:12px; font-weight:700; z-index:1; }
.tl-item.feito .pt{ background:var(--teal); color:#fff;} .tl-item.atual .pt{ background:var(--azul); color:#fff;} .tl-item.pendente .pt{ background:var(--linha); color:var(--cinza2);}
.tl-item::before { content:""; position:absolute; left:12px; top:26px; bottom:-6px; width:2px; background:var(--linha); }
.tl-item:last-child::before { display:none; }
.tl-item b { font-size:13.5px; color:var(--navy); } .tl-item span { font-size:12.5px; color:var(--cinza); display:block; }
.tl-item .selo { font-size:11px; font-weight:600; padding:2px 8px; border-radius:99px; background:var(--azul-cl); color:var(--azul); }
/* sub-fase da timeline (ex.: os 4 passos do ITBI dentro do Recolhimento) */
.tl-item.tl-sub .pt { width:18px; height:18px; font-size:9px; }
.tl-item.tl-sub::before { left:24px; }
.tl-item.tl-sub b { font-size:12.5px; font-weight:600; }
.tl-item.tl-sub span { font-size:11.5px; }
.proximo-card { background:var(--teal-cl); border-radius:14px; padding:20px; display:flex; align-items:center; gap:14px; }
.proximo-card .cx { width:44px; height:44px; border-radius:50%; background:var(--teal); color:#fff; display:grid; place-items:center; flex:none;} .proximo-card .cx svg{ width:24px; height:24px;}
.proximo-card .rot { font-size:12.5px; color:var(--teal); } .proximo-card b { font-size:17px; color:var(--navy); display:block; } .proximo-card span { font-size:12.5px; color:var(--cinza); }
.banner-info { display:flex; align-items:center; gap:10px; background:var(--azul-cl); border-radius:12px; padding:14px 18px; font-size:13.5px; color:var(--navy); margin-top:16px; }
.banner-info svg { width:18px; height:18px; color:var(--azul); flex:none; }

/* pergunta lateral (Houve exigência?) */
.pergunta .botoes { display:flex; gap:10px; padding:0 4px 4px; }
.pergunta .botoes .btn { flex:1; justify-content:center; }
.btn.contorno-ambar { border:1.5px solid var(--ambar); color:#B45309; background:#fff;} .btn.contorno-teal{ border:1.5px solid var(--teal); color:var(--teal); background:#fff;}

/* Mais ações */
.mais-acoes-wrap { position:relative; }
.mais-acoes-menu { position:absolute; right:0; top:44px; background:#fff; border:1px solid var(--borda); border-radius:12px; box-shadow:var(--sombra-md); padding:6px; z-index:40; min-width:200px; }
.mais-acoes-menu button { display:flex; width:100%; align-items:center; gap:9px; padding:9px 12px; border:none; background:none; font-size:13.5px; color:var(--tinta); border-radius:8px; text-align:left; } .mais-acoes-menu button:hover{ background:var(--linha); }

/* ---------- Faixa financeira (ficha) ---------- */
.fin-strip { display:flex; gap:32px; flex-wrap:wrap; align-items:center; padding:18px 24px; margin-bottom:22px; }
.fin-tile .fin-rot { font-size:11px; color:var(--cinza); text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
.fin-tile .fin-val { font-size:20px; font-weight:800; color:var(--navy); letter-spacing:-.02em; margin-top:4px; }
.fin-base { margin-left:auto; color:var(--cinza2); font-size:12px; }
.fin-custas { padding:8px 14px; border-radius:12px; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.fin-custas .fin-val { font-size:15px; display:flex; align-items:center; gap:6px; }
.fin-custas-ico { display:inline-flex; align-items:center; justify-content:center; width:19px; height:19px; border-radius:50%; color:#fff; font-size:12px; font-weight:800; }
.fin-custas.c-teal { background:var(--teal-cl); } .fin-custas.c-teal .fin-val { color:var(--teal); } .fin-custas.c-teal .fin-custas-ico { background:var(--teal); }
.fin-custas.c-ambar { background:var(--ambar-cl); } .fin-custas.c-ambar .fin-val { color:#B45309; } .fin-custas.c-ambar .fin-custas-ico { background:var(--ambar); }
.fin-custas.c-verm { background:var(--verm-cl); } .fin-custas.c-verm .fin-val { color:var(--verm); } .fin-custas.c-verm .fin-custas-ico { background:var(--verm); }

/* Relatório do fluxo do contrato (imprimível) */
.rel-ov { position:fixed; inset:0; background:rgba(15,27,46,.55); z-index:1000; overflow:auto; padding:26px 16px; }
.rel-doc { max-width:900px; margin:0 auto; }
.rel-bar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:14px; }
.rel-bar-lbl { color:#fff; font-size:12.5px; font-weight:600; opacity:.9; }
.rel-cols { display:flex; flex-wrap:wrap; gap:6px 16px; background:#fff; border-radius:12px; padding:14px 18px; margin-bottom:14px; box-shadow:0 8px 24px -14px rgba(0,0,0,.4); }
.rc-chk { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--navy); cursor:pointer; white-space:nowrap; }
.rc-chk input { accent-color:var(--azul); cursor:pointer; }
#rel-tab-wrap { overflow-x:auto; }
.rel-page { background:#fff; color:#0F1B2E; border-radius:12px; padding:38px 42px; box-shadow:0 20px 50px -18px rgba(0,0,0,.5); }
.rp-head { display:flex; justify-content:space-between; align-items:flex-start; border-bottom:2px solid #0F1B2E; padding-bottom:14px; }
.rp-tit { font-size:22px; font-weight:800; letter-spacing:-.02em; }
.rp-op { font-size:13px; color:#5B6B82; margin-top:3px; }
.rp-emit { font-size:12px; color:#5B6B82; }
.rp-id, .rp-resumo { display:flex; flex-wrap:wrap; gap:22px; margin-top:18px; }
.rp-resumo { background:#F5F7FA; border-radius:10px; padding:14px 18px; margin-top:14px; }
.rp-id > div span, .rp-resumo > div span { display:block; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#8494A8; }
.rp-id > div b, .rp-resumo > div b { font-size:15px; font-weight:800; }
.rp-sec { font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#2E63EB; margin:26px 0 10px; padding-bottom:6px; border-bottom:1px solid #E2E8F0; }
.rp-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px 22px; }
.rp-cell span { display:block; font-size:11px; color:#8494A8; font-weight:700; }
.rp-cell b { font-size:14px; font-weight:700; }
.rp-tab { width:100%; border-collapse:collapse; font-size:12.5px; }
.rp-tab th { text-align:left; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:#8494A8; padding:8px 10px; border-bottom:1.5px solid #CBD5E1; }
.rp-tab td { padding:9px 10px; border-bottom:1px solid #EEF2F7; vertical-align:top; }
.rp-tab .rp-data { white-space:nowrap; font-variant-numeric:tabular-nums; color:#5B6B82; }
.rp-tag { display:inline-block; color:#fff; font-size:10.5px; font-weight:700; padding:2px 8px; border-radius:99px; }
.rp-et { font-size:11px; color:#5B6B82; margin-top:4px; }
.rp-sub { font-size:11px; color:#8494A8; margin-top:3px; }
.rp-resp { white-space:nowrap; color:#5B6B82; }
.rp-dias { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; font-weight:700; color:#0F1B2E; }
.rp-foot { margin-top:24px; padding-top:12px; border-top:1px solid #E2E8F0; font-size:11px; color:#8494A8; }
@media print {
  body > *:not(.rel-ov) { display:none !important; }
  .rel-ov { position:static; background:#fff; padding:0; overflow:visible; }
  .rel-doc { max-width:none; }
  .no-print { display:none !important; }
  .rel-page { box-shadow:none; border-radius:0; padding:0; }
  .rp-tab { font-size:11px; }
}

/* Selo grande de custas (ao lado do nº do contrato) */
.ficha-titrow { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:7px; }
.custas-badge { display:inline-flex; align-items:center; gap:9px; padding:9px 18px 9px 11px; border-radius:999px; font-size:16px; font-weight:800; letter-spacing:-.01em; }
.custas-badge .cb-ico { width:24px; height:24px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:14px; font-weight:800; }
.custas-badge.cb-ok { background:var(--teal-cl); color:var(--teal); } .custas-badge.cb-ok .cb-ico { background:var(--teal); }
.custas-badge.cb-warn { background:var(--ambar-cl); color:#B45309; } .custas-badge.cb-warn .cb-ico { background:var(--ambar); }
.custas-badge.cb-no { background:var(--verm-cl); color:var(--verm); } .custas-badge.cb-no .cb-ico { background:var(--verm); }

/* Painel "Situação do contrato" — layout próprio, destacado dos demais blocos */
.reg-panel { display:grid; grid-template-columns:minmax(230px,.85fr) 2fr; gap:0; border-radius:16px; margin-bottom:18px; overflow:hidden;
  border:1px solid var(--borda); box-shadow:0 6px 20px -10px rgba(15,27,46,.22); }
.reg-panel .reg-main { padding:22px 24px; display:flex; flex-direction:column; gap:12px; justify-content:center;
  background:linear-gradient(155deg,#16233d,#0F1B2E 75%); color:#fff; position:relative; }
.reg-panel .reg-main::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--slate); }
.reg-panel.cenbg-transferida .reg-main::before { background:var(--teal); }
.reg-panel.cenbg-af_sem_custas .reg-main::before { background:var(--amber); }
.reg-panel.cenbg-af_custas_pagas .reg-main::before { background:var(--blue); }
.reg-panel.cenbg-af_escritura_sem_registro .reg-main::before,
.reg-panel.cenbg-quitado_sem_escritura .reg-main::before,
.reg-panel.cenbg-quitado_escritura_sem_registro .reg-main::before { background:var(--violet); }
.reg-cap { font-size:11px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:rgba(255,255,255,.6); }
.reg-cen { align-self:flex-start; font-size:16px; font-weight:800; color:#fff; padding:6px 15px; border-radius:999px; letter-spacing:-.01em; background:var(--slate); }
.reg-cen.cen-transferida { background:var(--teal); }
.reg-cen.cen-af_sem_custas { background:var(--amber); }
.reg-cen.cen-af_custas_pagas { background:var(--blue); }
.reg-cen.cen-af_escritura_sem_registro { background:var(--violet); }
.reg-cen.cen-quitado_sem_escritura { background:var(--violet); }
.reg-cen.cen-quitado_escritura_sem_registro { background:#7C6FE0; }
.reg-cen.cen-cvc { background:var(--slate); }
.reg-cen.cen-estoque { background:#94A3B8; }
.reg-transf { display:inline-flex; align-items:center; gap:10px; font-size:17px; font-weight:800; letter-spacing:-.01em; }
.reg-transf .rt-ico { width:26px; height:26px; border-radius:50%; display:grid; place-items:center; font-size:14px; color:#fff; flex:none; }
.reg-transf.t-sim { color:#6EE7C7; } .reg-transf.t-sim .rt-ico { background:var(--teal); }
.reg-transf.t-nao { color:#FCA5A5; } .reg-transf.t-nao .rt-ico { background:var(--red); }
.reg-facts { background:var(--card); display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:0; }
.reg-facts .rf { padding:15px 22px; border-right:1px solid var(--linha); border-bottom:1px solid var(--linha); }
.reg-facts .rf span { display:block; font-size:11px; color:var(--cinza); text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
.reg-facts .rf b { display:block; font-size:16px; font-weight:800; color:var(--navy); letter-spacing:-.01em; margin-top:5px; }
.reg-facts .rf-custas { grid-column:1 / -1; background:#F8FAFC; }
.rf-edit { margin-left:8px; border:1px solid var(--blue); background:var(--azul-cl); color:var(--blue); font-weight:700; font-size:11px; padding:2px 8px; border-radius:7px; cursor:pointer; font-family:inherit; }
.rf-edit:hover { background:var(--blue); color:#fff; }
.rf-custas .rf-custas-l { display:flex; flex-wrap:wrap; gap:6px 22px; margin-top:6px; }
.rf-custas .cx-i { font-size:13px; color:var(--cinza); } .rf-custas .cx-i b { display:inline; font-size:15px; color:var(--navy); margin:0 0 0 4px; }
.rf-custas .cx-break { font-size:11.5px; color:var(--faint); margin-top:8px; }
.rf-custas .dif-ok { color:var(--teal); } .rf-custas .dif-mais { color:var(--blue); } .rf-custas .dif-menos { color:var(--amber); }
@media (max-width:820px){ .reg-panel { grid-template-columns:1fr; } }

/* ---------- Ficha do contrato ---------- */
/* Hero + Situação como dois cards irmãos lado a lado */
.ficha-linha{ display:grid; grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr); gap:18px; align-items:start; margin-bottom:18px;}
.ficha-topo{ display:flex; flex-direction:column; gap:16px; margin-bottom:0;}
.ficha-topo-main{ display:flex; align-items:flex-start; justify-content:space-between; gap:20px; flex-wrap:wrap; width:100%;}
/* Coluna direita = Situação + Custas, encaixando na altura do hero (align stretch) */
.ficha-linha{ align-items:stretch; }
.ficha-col-dir{ display:flex; flex-direction:column; gap:14px; min-width:0; }
/* Card de Situação do contrato */
.sit-card{ padding:15px 18px; background:var(--card); }
.sit-card .reg-situacao{ align-items:center; }
.sit-facts{ margin-top:10px; display:flex; flex-direction:column; }
.sit-facts .rf{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:7px 0; border-bottom:1px solid var(--linha); }
.sit-facts .rf:last-child{ border-bottom:0; }
.sit-facts .rf span{ display:block; margin:0; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--cinza); }
.sit-facts .rf b{ display:block; margin:0; font-size:12.5px; font-weight:800; color:var(--navy); text-align:right; }
/* Custas MINIATURIZADO na coluna (equação horizontal sem quebra) */
.ficha-col-dir .card.cx-card{ margin:0; padding:13px 16px; flex:1 1 auto; display:flex; flex-direction:column; }
.ficha-col-dir .cx-head{ padding-bottom:0; }
.ficha-col-dir .cx-tit{ font-size:13px; }
.ficha-col-dir .cx-eq{ margin-top:9px; }
.ficha-col-dir .cx-eq .cxe{ padding:7px 8px; }
.ficha-col-dir .cx-eq .cxe > span{ font-size:8.5px; letter-spacing:.02em; }
.ficha-col-dir .cx-eq .cxe > b{ font-size:14px; white-space:nowrap; }
.ficha-col-dir .cx-eq .cxe > small{ display:none; }
.ficha-col-dir .cx-eq .cxe-op{ display:none; }
.ficha-col-dir .cx-eq .cxe{ border-right:1px solid #EAF0F8; }
.ficha-col-dir .cx-eq .cxe-saldo{ border-right:0; }
.ficha-col-dir .cx-itens{ margin-top:7px; gap:6px; }
.ficha-col-dir .cx-card.rf-custas .cxi{ padding:6px 8px; }
.ficha-col-dir .cx-card.rf-custas .cxi-rot{ font-size:10px; }
.ficha-col-dir .cx-card.rf-custas .cxi-tag{ font-size:8px; padding:1px 5px; }
.ficha-col-dir .cx-card.rf-custas .cxi-val{ font-size:12px; margin:2px 0 4px; }
.ficha-col-dir .cx-card.rf-custas .cxi-bar{ height:4px; }
.ficha-col-dir .cx-rodape{ margin-top:auto; }
.ficha-col-dir .cx-cob-wrap .pc-cob{ height:5px; }
.ficha-col-dir .cx-cob-wrap small{ font-size:10px; margin-top:3px; }
@media (max-width:900px){ .ficha-linha{ grid-template-columns:1fr; } }
.fin-strip.fin-hero{ width:100%; margin:0; padding:16px 0 2px; border-top:1px solid rgba(15,27,46,.10); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px 20px; align-items:start;}
.fin-strip.fin-hero .fin-val{ font-size:17px; margin-top:3px;}
.fin-strip.fin-hero .fin-rot{ font-size:10px;}
.fin-strip.fin-hero .fin-base{ margin:0; grid-column:4; justify-self:end; align-self:end;}
.ficha-topo h1.titulo{ font-size:30px;}
.ficha-num{ color:var(--cinza2); font-weight:700; }
.lead-nome{ font-size:16px; font-weight:700; color:var(--navy); }
/* Situação do contrato dentro do hero (titularidade em destaque + dados registrais) */
.reg-hero{ width:100%; border-top:1px solid rgba(15,27,46,.10); padding-top:14px; display:flex; flex-direction:column; gap:12px;}
.reg-situacao{ display:inline-flex; align-items:center; gap:11px;}
.reg-situacao > div{ display:flex; flex-direction:column; line-height:1.25;}
.reg-situacao .rs-cap{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza2);}
.reg-situacao b{ font-size:16px; font-weight:800; letter-spacing:-.01em;}
.reg-situacao .rs-ico{ width:24px; height:24px; border-radius:50%; display:grid; place-items:center; color:#fff; font-size:13px; flex:none;}
.reg-situacao.sit-ok b{ color:var(--teal);} .reg-situacao.sit-ok .rs-ico{ background:var(--teal);}
.reg-situacao.sit-empresa b{ color:#B45309;} .reg-situacao.sit-empresa .rs-ico{ background:var(--amber);}
.reg-situacao.sit-sem b{ color:var(--verm);} .reg-situacao.sit-sem .rs-ico{ background:var(--red);}
.reg-facts-hero{ border:1px solid var(--linha); border-radius:12px; overflow:hidden; background:var(--card);}
.reg-facts-hero .rf:last-child{ border-right:0;}
.ficha-topo .selos{ display:flex; gap:9px; margin-top:14px; flex-wrap:wrap;}
.info-row{ display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:0; border:1px solid var(--borda); border-radius:16px; box-shadow:var(--sombra); margin-bottom:22px; overflow:hidden;}
.info-cel{ display:flex; align-items:center; gap:13px; padding:20px 22px; border-right:1px solid var(--linha);}
.info-cel:last-child{ border-right:none;}
.info-cel .ic{ width:44px; height:44px; border-radius:11px; background:var(--linha); display:grid; place-items:center; color:var(--cinza); flex:none;} .info-cel .ic svg{ width:20px; height:20px;}
.info-cel .rot{ font-size:12.5px; color:var(--cinza);} .info-cel .val{ font-size:17px; font-weight:650; color:var(--navy);}

.stepper{ display:flex; flex-direction:column; align-items:stretch; gap:20px; border:1px solid var(--borda); border-radius:16px; box-shadow:var(--sombra); padding:20px 22px 26px; margin-bottom:22px; position:relative; overflow:hidden; }
.stepper::before{ content:""; position:absolute; left:0; top:0; right:0; height:4px; background:linear-gradient(90deg,var(--teal),var(--azul)); }
.stepper-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:18px; flex-wrap:wrap; }
.stepper-head .sh-cap{ display:block; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--cinza2); }
.stepper-head .sh-atual{ font-size:17px; font-weight:800; color:var(--navy); letter-spacing:-.01em; }
.stepper-head .sh-prog{ display:flex; flex-direction:column; gap:6px; min-width:200px; flex:1; max-width:320px; }
.stepper-head .sh-prog > span{ font-size:11.5px; color:var(--cinza); font-weight:700; text-align:right; }
.stepper-head .sh-bar{ height:8px; background:var(--linha); border-radius:99px; overflow:hidden; }
.stepper-head .sh-bar i{ display:block; height:100%; background:linear-gradient(90deg,var(--teal),#14B8A6); border-radius:99px; transition:width .5s ease; }
.stepper-row{ display:flex; align-items:flex-start; }
.step{ display:flex; flex-direction:column; align-items:center; gap:9px; flex:1; position:relative; text-align:center; min-width:64px; }
@keyframes stepPulse{ 0%{ box-shadow:0 0 0 0 rgba(46,107,255,.4), 0 6px 14px rgba(46,107,255,.4);} 70%{ box-shadow:0 0 0 11px rgba(46,107,255,0), 0 6px 14px rgba(46,107,255,.4);} 100%{ box-shadow:0 0 0 0 rgba(46,107,255,0), 0 6px 14px rgba(46,107,255,.4);} }
.step .bola{ width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-size:15px; font-weight:800; z-index:1; background:#fff; color:var(--cinza2); border:2px solid var(--linha); transition:all .15s; }
.step .bola svg{ width:19px; height:19px;}
.step .rot{ font-size:12.5px; color:var(--cinza); font-weight:600; margin-top:2px;}
.step::before{ content:""; position:absolute; top:20px; left:-50%; width:100%; height:3px; background:var(--linha); z-index:0;}
.step:first-child::before{ display:none;}
.step.feito .bola{ background:linear-gradient(135deg,var(--teal),#14B8A6); color:#fff; border-color:transparent; box-shadow:0 4px 12px rgba(13,148,136,.32);} .step.feito::before{ background:var(--teal);}
.step.atual .bola{ background:linear-gradient(135deg,var(--azul),#5A8BFF); color:#fff; border-color:transparent; animation:stepPulse 2.1s ease-out infinite;} .step.atual::before{ background:var(--teal);}
.step.atual .rot{ color:var(--azul); font-weight:700;}

.form-etapa{ display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; margin:16px 0 18px;}
.campo{ display:flex; flex-direction:column; gap:5px; font-size:13px;}
.campo>span{ color:var(--cinza); font-weight:600; font-size:12.5px;}
.campo input,.campo select,.campo textarea{ height:40px; border:1px solid var(--borda); border-radius:9px; padding:0 12px; font-size:14px; font-family:inherit; background:#fff; color:var(--tinta);}
.campo textarea{ height:auto; padding:9px 12px; resize:vertical;}
.campo input:focus,.campo select:focus,.campo textarea:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 3px var(--azul-cl);}
/* campo de moeda (R$) */
.moeda-wrap{ position:relative; display:flex; align-items:center;}
.moeda-wrap .moeda-pre{ position:absolute; left:12px; font-size:14px; font-weight:700; color:var(--cinza); pointer-events:none;}
.moeda-wrap input{ width:100%; padding-left:34px !important; text-align:right; font-variant-numeric:tabular-nums; font-weight:600;}
.campo-check{ flex-direction:row; align-items:center; gap:9px; grid-column:1 / -1;}
.campo-check input{ width:18px; height:18px; accent-color:var(--azul);}
.campo-check>span{ color:var(--tinta); font-weight:500; font-size:14px;}
.duas-col{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; align-items:start; margin-bottom:22px;}
.acao-tit{ font-size:13px; color:var(--cinza); text-transform:uppercase; letter-spacing:.04em; font-weight:600;}
.acao-verbo{ font-size:26px; font-weight:700; color:var(--navy); margin:2px 0 16px;}
.acao-meta{ display:flex; gap:28px; align-items:center; margin-bottom:18px; flex-wrap:wrap; font-size:13.5px;}
.acao-meta .rot{ font-size:12px; color:var(--cinza); display:block; margin-bottom:3px;}
.acao-botoes{ display:flex; gap:10px; flex-wrap:wrap;}
.passo-num{ display:flex; align-items:center; gap:14px; padding:12px 0; border-bottom:1px solid var(--linha);} .passo-num:last-child{ border-bottom:none;}
.passo-num .b{ width:28px; height:28px; border-radius:50%; background:var(--linha); color:var(--cinza); display:grid; place-items:center; font-size:13px; font-weight:700; flex:none;}
.doc-lin{ display:flex; align-items:center; gap:12px; padding:14px 0; border-bottom:1px solid var(--linha);} .doc-lin:last-child{ border-bottom:none;}
.doc-lin .ic{ width:38px; height:38px; border-radius:10px; display:grid; place-items:center; flex:none;}
.mov-lin{ display:flex; align-items:center; gap:12px; padding:12px 0;}
.mov-lin.mov-com{ align-items:flex-start; }
.mov-etapa{ display:inline-block; background:var(--azul-cl); color:var(--azul); font-size:10.5px; font-weight:800; padding:1px 7px; border-radius:6px; margin-right:6px; vertical-align:middle; }
/* filtros de coluna (estilo Excel) */
.tab-uni thead .col-filtros th{ padding:6px 8px 10px; background:var(--card); border-bottom:1.5px solid var(--linha); }
.tab-uni .col-filtros .col-f-hint{ font-size:11px; font-weight:700; color:var(--cinza2); text-transform:none; letter-spacing:0; }
.tab-uni select.col-f{ width:100%; height:30px; border:1px solid var(--borda); border-radius:7px; padding:0 6px; font-size:12px; font-weight:600; background:#fff; color:var(--tinta); cursor:pointer; }
.tab-uni select.col-f:focus{ outline:none; border-color:var(--azul); box-shadow:0 0 0 2px var(--azul-cl); }
.tab-uni .col-vazio{ text-align:center; padding:26px; color:var(--cinza); }
.col-limpar{ display:inline-flex; align-items:center; gap:5px; border:1px solid var(--verm); background:var(--verm-cl); color:var(--verm); font-size:11.5px; font-weight:700; padding:5px 11px; border-radius:8px; cursor:pointer; font-family:inherit; white-space:nowrap; }
.col-limpar:hover{ background:var(--verm); color:#fff; }
.th-sort{ cursor:pointer; user-select:none; transition:color .12s; }
.th-sort:hover{ color:var(--azul); }
.th-sort.ativo{ color:var(--azul); }
.th-sort .sort-arw{ font-size:10px; opacity:.6; margin-left:2px; }
.th-sort.ativo .sort-arw{ opacity:1; }
/* Lista larga — layout limpo, menos poluído */
.tab-scroll{ overflow-x:auto; border:1px solid var(--borda); border-radius:14px; box-shadow:var(--sombra); background:var(--branco); }
.tab-larga{ min-width:1080px; table-layout:auto; border:0; border-radius:0; box-shadow:none; }
.tab-larga thead th{ padding:10px 12px; background:#FAFBFD; font-size:10px; color:#8494A8; }
.tab-larga tbody td{ padding:11px 12px; border-bottom:1px solid #EEF2F7; white-space:nowrap; font-size:12px; }
.tab-larga tbody tr.clic:hover{ background:#F6F9FE; }
.tab-larga .ct-cod{ font-size:13px; }
.tab-larga .ct-cli{ max-width:200px; overflow:hidden; text-overflow:ellipsis; color:var(--tinta); font-weight:500; }
.tab-larga .ct-sit{ color:var(--cinza); font-weight:600; }
.tab-larga .ct-tit{ color:var(--cinza); font-weight:500; font-size:11.5px; }
.tab-larga .ct-etapa{ font-weight:700; color:var(--navy); }
.tab-larga td:nth-child(3){ font-size:11.5px; }   /* Situação do Contrato — rótulo exato da planilha */
/* Situação do Contrato: bolinha + texto (sem pill saturado) */
.cen-dot{ display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.cen-dot.c-ambar{ background:var(--amber); } .cen-dot.c-azul{ background:var(--blue); } .cen-dot.c-roxo{ background:var(--violet); } .cen-dot.c-teal{ background:var(--teal); } .cen-dot.c-slate{ background:var(--slate); }
.tab-larga td:nth-child(3){ font-weight:600; color:var(--navy); }
/* Custas: tag discreta */
.tag{ display:inline-flex; align-items:center; gap:4px; font-size:12px; font-weight:700; }
.tag.t-ok{ color:var(--teal); } .tag.t-warn{ color:#B45309; } .tag.t-no{ color:var(--cinza2); font-weight:600; }
/* Operação: tag suave */
.op-tag{ display:inline-block; font-size:11.5px; font-weight:700; padding:3px 10px; border-radius:7px; background:#EEF2F8; color:var(--cinza); }
.op-tag.opaf{ background:var(--azul-cl); color:var(--azul); }
.op-tag.opescriturar{ background:var(--violet-bg); color:var(--violet); }
.op-tag.opregistrar{ background:var(--azul-cl); color:var(--azul); }
.op-tag.optransferido{ background:var(--teal-bg); color:var(--teal); }
/* Prioridade: bolinha + texto */
.prio-tag{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; }
.prio-tag .prio-dot{ width:8px; height:8px; border-radius:50%; }
.prio-tag.pr-alta{ color:var(--red); } .prio-tag.pr-alta .prio-dot{ background:var(--red); }
.prio-tag.pr-media{ color:#B45309; } .prio-tag.pr-media .prio-dot{ background:var(--amber); }
.prio-tag.pr-baixa{ color:var(--blue); } .prio-tag.pr-baixa .prio-dot{ background:var(--blue); }
.prio-none{ color:var(--cinza2); }
.mov-lin .pt{ width:22px; height:22px; border-radius:50%; background:var(--teal); display:grid; place-items:center; color:#fff; flex:none;} .mov-lin .pt svg{ width:13px; height:13px;}

@media (max-width:1180px){ .grid-lateral,.charts-2,.duas-col{ grid-template-columns:minmax(0,1fr);} }
@media (max-width:820px){ .stepper-row{ overflow-x:auto; padding-bottom:4px;} }

/* =================================================================== */
/*  DESIGN SYSTEM 2.0 — padrão do Painel Gerencial (ref. especificação) */
/* =================================================================== */
body { color:var(--ink); background:var(--bg); }
h1 { font-size:30px; font-weight:700; letter-spacing:-.025em; }
.titulo { font-size:30px; font-weight:700; letter-spacing:-.025em; color:var(--ink); }
.subtitulo, .lead { font-size:13.5px; color:var(--muted); }
.eyebrow { display:inline-block; font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--hd-e1,#7C3AED); background:var(--hd-pill,rgba(139,92,246,.14)); padding:3px 11px; border-radius:99px; margin-bottom:9px; }
.eyebrow a { color:inherit; text-decoration:none; }
/* faixa contínua atrás do cabeçalho da página — cor própria por seção (via variáveis) */
:root { --hd-a:rgba(139,92,246,.12); --hd-b:rgba(18,165,148,.09); --hd-e1:#7C3AED; --hd-e2:#12A594; --hd-pill:rgba(139,92,246,.14); }
.hd { position:relative; background:linear-gradient(100deg, var(--hd-a) 0%, var(--hd-b) 100%); border:1px solid var(--line); border-radius:16px; padding:20px 24px; margin-bottom:14px; overflow:hidden; }
.hd::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,var(--hd-e1),var(--hd-e2)); }
/* paletas por seção */
.hd.hd-emp      { --hd-a:rgba(18,165,148,.13); --hd-b:rgba(16,185,129,.07); --hd-e1:#0E9384; --hd-e2:#10B981; --hd-pill:rgba(18,165,148,.15); }
.hd.hd-agenda   { --hd-a:rgba(224,123,0,.13);  --hd-b:rgba(245,158,11,.07); --hd-e1:#C2410C; --hd-e2:#F59E0B; --hd-pill:rgba(224,123,0,.15); }
.hd.hd-config   { --hd-a:rgba(100,116,139,.14); --hd-b:rgba(37,64,107,.08); --hd-e1:#475569; --hd-e2:#26406B; --hd-pill:rgba(100,116,139,.16); }
.hd.hd-contratos{ --hd-a:rgba(37,99,235,.12);  --hd-b:rgba(99,102,241,.07); --hd-e1:#2563EB; --hd-e2:#6366F1; --hd-pill:rgba(37,99,235,.14); }
.hd.hd-contrato { --hd-a:rgba(139,92,246,.12); --hd-b:rgba(37,99,235,.07);  --hd-e1:#7C3AED; --hd-e2:#2563EB; --hd-pill:rgba(139,92,246,.14); }
.hd.hd-judicial { --hd-a:rgba(185,28,28,.12); --hd-b:rgba(194,65,12,.08); --hd-e1:#B91C1C; --hd-e2:#C2410C; --hd-pill:rgba(185,28,28,.14); }

/* Módulo Judicial */
.jud-emps { display:flex; gap:8px; flex-wrap:wrap; }
.jud-emp { font-size:13px; font-weight:700; padding:8px 14px; border-radius:10px; border:1px solid var(--line); background:#fff; color:var(--muted); cursor:pointer; transition:.12s; }
.jud-emp:hover { border-color:#B91C1C; color:#B91C1C; }
.jud-emp.ativo { background:#B91C1C; color:#fff; border-color:#B91C1C; box-shadow:0 3px 10px rgba(185,28,28,.28); }
.jud-card { margin-bottom:6px; }
.jud-tab-wrap { overflow-x:auto; padding:2px 8px 12px; }
.jud-tab { width:100%; border-collapse:collapse; font-size:13px; }
.jud-tab th { text-align:left; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); padding:8px 12px; border-bottom:1px solid var(--line); white-space:nowrap; }
.jud-tab td { padding:10px 12px; border-bottom:1px solid var(--line2,#f0f2f6); color:var(--ink); vertical-align:middle; }
.jud-tab tbody tr:hover { background:#fafbfd; }
.jud-tab td.tr, .jud-tab th.tr { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.jud-tab td.mono { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px; color:var(--muted); white-space:nowrap; }
.jud-tab td .jsub { font-size:11px; color:var(--cinza2); margin-top:1px; }
.jud-tab td.jgo { color:var(--cinza2); font-size:18px; text-align:center; width:24px; }
.jud-tab tbody tr[data-proc]:hover, .jud-tab tbody tr[data-jemp2]:hover { background:#FEF2F2; }
.hd.hd-inadimplencia { --hd-a:rgba(217,119,6,.13); --hd-b:rgba(194,65,12,.08); --hd-e1:#B45309; --hd-e2:#C2410C; --hd-pill:rgba(217,119,6,.15); }
.jud-emp.ina:hover { border-color:#C2410C; color:#C2410C; }
.jud-emp.ina.ativo { background:#C2410C; border-color:#C2410C; box-shadow:0 3px 10px rgba(194,65,12,.28); }

/* barras horizontais */
.jbars { padding:6px 20px 16px; display:flex; flex-direction:column; gap:9px; }
.jbar { display:grid; grid-template-columns:minmax(120px,1.4fr) 3fr auto auto; align-items:center; gap:10px; font-size:12.5px; }
.jbar-rot { color:var(--ink); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jbar-trk { height:9px; background:var(--linha,#eef1f6); border-radius:6px; overflow:hidden; }
.jbar-trk i { display:block; height:100%; border-radius:6px; }
.jbar-n { font-weight:800; color:var(--ink); font-variant-numeric:tabular-nums; min-width:26px; text-align:right; }
.jbar-v { font-size:11.5px; color:var(--cinza2); font-variant-numeric:tabular-nums; white-space:nowrap; min-width:90px; text-align:right; }

/* timeline de movimentações do processo */
.mov-timeline { padding:8px 20px 18px; display:flex; flex-direction:column; }
.mov-item { display:grid; grid-template-columns:110px 1fr; gap:14px; padding:10px 0; border-bottom:1px solid var(--line2,#f0f2f6); position:relative; }
.mov-item:last-child { border-bottom:0; }
.mov-data { font-size:12px; font-weight:700; color:#B91C1C; white-space:nowrap; }
.mov-desc { font-size:13px; color:var(--ink); line-height:1.45; }

/* combo evolução mês a mês */
.combo-wrap { padding:8px 10px 2px; }
.combo-leg { display:flex; gap:18px; padding:2px 16px 12px; font-size:12px; color:var(--muted); flex-wrap:wrap; }
.combo-leg span { display:inline-flex; align-items:center; gap:6px; }
.combo-leg i { width:11px; height:11px; border-radius:3px; display:inline-block; }
/* tempo em curso */
.tc-list { padding:10px 18px 14px; display:flex; flex-direction:column; gap:11px; }
.tc-row { display:grid; grid-template-columns:minmax(92px,auto) 1fr auto auto; align-items:center; gap:10px; font-size:12.5px; }
.tc-rot { color:var(--ink); font-weight:600; white-space:nowrap; }
.tc-trk { height:12px; background:var(--linha,#eef1f6); border-radius:6px; overflow:hidden; }
.tc-trk i { display:block; height:100%; border-radius:6px; }
.tc-n { font-weight:800; min-width:22px; text-align:right; font-variant-numeric:tabular-nums; }
.tc-v { font-size:11.5px; color:var(--cinza2); min-width:78px; text-align:right; white-space:nowrap; }
.tc-nota { font-size:11.5px; color:var(--cinza2); padding-top:6px; }
/* formulário de processo (modal) */
.pf-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px 14px; }
@media (max-width:560px){ .pf-grid { grid-template-columns:1fr; } }

/* ===== Página do processo (detalhe executivo) ===== */
.proc-hero { background:linear-gradient(135deg,#0F1B2E 0%,#26406B 120%); border:none; color:#fff; padding:24px 28px; overflow:visible; }
.proc-hero::before { display:none; }
.proc-hero .eyebrow { display:inline-block; }
.proc-hero-top { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; flex-wrap:wrap; }
.btn-hero { background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.28); color:#fff; padding:10px 15px; border-radius:10px; font-weight:700; font-size:13px; cursor:pointer; white-space:nowrap; transition:.12s; }
.btn-hero:hover { background:rgba(255,255,255,.22); }
.proc-nome { font-size:30px; font-weight:800; color:#fff; margin:10px 0 0; line-height:1.12; letter-spacing:-.01em; }
.proc-nome-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:10px; }
.proc-nome-row .proc-nome { margin:0; }
.proc-nome-arq { color:#94A9C4; }
.tag-encerrado { background:rgba(255,255,255,.24); color:#fff; font-size:12px; font-weight:800; padding:4px 13px; border-radius:99px; text-transform:uppercase; letter-spacing:.04em; }
.tag-encerrado.tag-extinto { background:#DC2626; }
.tag-lote { font-size:12px; font-weight:800; padding:4px 13px; border-radius:99px; text-transform:uppercase; letter-spacing:.04em; }
.tag-lote.tag-distratado { background:#F59E0B; color:#3A2A00; }
.tag-lote.tag-ndistratado { background:#059669; color:#fff; }
.proc-cnj { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:15px; color:rgba(255,255,255,.72); margin-top:4px; }
.pill.pp-ativo { background:#2563EB; color:#fff; }
.pill.pp-passivo { background:#8B5CF6; color:#fff; }
.pill.pp-sent { background:#7C3AED; color:#fff; }
.pill.pp-semsent { background:rgba(255,255,255,.16); color:rgba(255,255,255,.85); }
.pill.pp-reconv { background:#B45309; color:#fff; }
.pill.pp-distrato { background:#9F1239; color:#fff; }
.proc-grupo { margin-top:20px; }
.proc-stats { display:grid; gap:12px; }
.proc-stats-status { grid-template-columns:repeat(2,1fr); }
.proc-stats-fin { grid-template-columns:repeat(4,1fr); margin-top:10px; }
.proc-fin-cap { font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.55); margin:18px 0 2px; }
@media (max-width:900px){ .proc-stats-fin { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .proc-stats-status, .proc-stats-fin { grid-template-columns:1fr; } }
.proc-stat { background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:14px 16px; }
/* tiles de situação: neutros, discretos */
.proc-stat-info { background:rgba(255,255,255,.05); }
.proc-stat-info .ps-val { color:#EAF0FF; font-size:17px; }
.ps-ico { margin-right:7px; opacity:.75; }
/* tiles financeiros: fundo tingido + valor colorido + ponto da cor */
.ps-dot { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.proc-stat-azul  { background:rgba(59,130,246,.15);  border-color:rgba(96,165,250,.4); }
.proc-stat-verde { background:rgba(16,185,129,.15);  border-color:rgba(52,211,153,.42); }
.proc-stat-verm  { background:rgba(239,68,68,.15);   border-color:rgba(248,113,113,.42); }
.proc-stat-ambar { background:rgba(245,158,11,.15);  border-color:rgba(251,191,36,.45); }
.proc-stat-roxo  { background:rgba(124,58,237,.17);  border-color:rgba(167,139,250,.45); }
.proc-stat-azul  .ps-dot { background:#60A5FA; } .proc-stat-verde .ps-dot { background:#34D399; }
.proc-stat-verm  .ps-dot { background:#F87171; } .proc-stat-ambar .ps-dot { background:#FBBF24; } .proc-stat-roxo .ps-dot { background:#A78BFA; }
.proc-stat-azul  .ps-val { color:#A9C9FF; } .proc-stat-verde .ps-val { color:#6EE7C7; }
.proc-stat-verm  .ps-val { color:#FCA5A5; } .proc-stat-ambar .ps-val { color:#FCD34D; } .proc-stat-roxo .ps-val { color:#C4B5FD; }
.proc-stat-azul .ps-val, .proc-stat-verde .ps-val, .proc-stat-verm .ps-val, .proc-stat-ambar .ps-val, .proc-stat-roxo .ps-val { font-size:19px; }
.proc-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:14px 20px; margin-top:18px; padding-top:16px; border-top:1px solid rgba(255,255,255,.16); }
.proc-facts .pf-cell { min-width:0; }
.proc-facts .pf-v { font-size:14px; font-weight:700; color:#fff; line-height:1.35; word-break:break-word; }
@media (max-width:760px){ .proc-facts { grid-template-columns:repeat(2,1fr); } }
.acordo-banner { display:flex; align-items:center; gap:20px; margin:16px 0 4px; padding:18px 24px; border-radius:16px; background:linear-gradient(100deg,#065F46,#0E9F6E); box-shadow:0 6px 20px rgba(6,95,70,.28); color:#fff; }
.acordo-banner.cond-banner { background:linear-gradient(100deg,#4C1D95,#7C3AED); box-shadow:0 6px 20px rgba(76,29,149,.3); }
.acordo-banner.improc-banner { background:linear-gradient(100deg,#991B1B,#DC2626); box-shadow:0 6px 20px rgba(153,27,27,.3); }
.acordo-banner .ab-ico { font-size:30px; line-height:1; opacity:.92; }
.acordo-banner .ab-cell { display:flex; flex-direction:column; gap:3px; }
.acordo-banner .ab-cap { font-size:11.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:rgba(255,255,255,.85); }
.acordo-banner .ab-val { font-size:22px; font-weight:800; color:#fff; }
.acordo-banner .ab-sep { width:1px; align-self:stretch; background:rgba(255,255,255,.28); margin:2px 4px; }
@media (max-width:600px){ .acordo-banner { flex-wrap:wrap; gap:12px; } .acordo-banner .ab-sep { display:none; } }
.ps-rot { font-size:11.5px; font-weight:600; color:rgba(255,255,255,.82); text-transform:uppercase; letter-spacing:.03em; margin-bottom:6px; }
.ps-val { font-size:16px; font-weight:800; color:#fff; }
.proc-hero .eyebrow { color:#fff !important; }
/* stepper */
.pstep { display:flex; align-items:flex-start; padding:22px 24px 22px; }
.pstep-item { flex:1; display:flex; flex-direction:column; align-items:center; position:relative; }
.pstep-item::before { content:""; position:absolute; top:9px; left:-50%; width:100%; height:3px; background:#e6eaf1; z-index:0; }
.pstep-item:first-child::before { display:none; }
.pstep-item.feito::before, .pstep-item.atual::before { background:#12A594; }
.pstep-dot { width:20px; height:20px; border-radius:50%; background:#e6eaf1; border:3px solid #fff; box-shadow:0 0 0 1px var(--line); z-index:1; }
.pstep-item.feito .pstep-dot { background:#12A594; box-shadow:none; }
.pstep-item.atual .pstep-dot { background:#2563EB; box-shadow:0 0 0 4px rgba(37,99,235,.22); }
.pstep-rot { font-size:12.5px; margin-top:9px; color:var(--cinza2); text-align:center; }
.pstep-item.feito .pstep-rot { color:var(--ink); }
.pstep-item.atual .pstep-rot { color:#2563EB; font-weight:700; }
.pstep-data { font-size:11px; color:var(--cinza2); margin-top:3px; min-height:14px; text-align:center; }
.pstep-item.atual .pstep-data { color:#2563EB; font-weight:600; }
/* acordo como MARCA (não é fase) */
.pstep-scroll { overflow-x:auto; padding:2px 20px 10px; }
.pstep-wrap { position:relative; padding-top:38px; }
.pstep-acordo { position:absolute; top:0; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; z-index:3; }
.pa-tag { background:#FEF3C7; color:#B45309; border:1px solid #F59E0B; border-radius:99px; padding:3px 12px; font-size:11px; font-weight:800; white-space:nowrap; box-shadow:0 2px 6px rgba(245,158,11,.3); }
.pa-data { font-size:10.5px; color:#B45309; font-weight:600; margin-top:1px; }
.pstep-acordo::after { content:""; width:2px; height:16px; background:#F59E0B; margin-top:1px; }
/* fluxo de fases do rito comum (chevrons + macro-fases) */
.fluxo-wrap { overflow-x:auto; padding:14px 22px 16px; }
.fluxo { min-width:760px; }
.fluxo-macros, .fluxo-fases, .fluxo-acordo-row { display:grid; grid-template-columns:repeat(8,1fr); gap:6px; }
.fluxo-macros { margin-bottom:8px; align-items:end; }
.fmacro { background:#E07B00; color:#fff; font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; text-align:center; padding:5px 4px; border-radius:5px; }
.fluxo-acordo-row { margin-bottom:5px; }
.fa-mark { display:flex; justify-content:center; }
.chev { background:#5B9BD5; color:#fff; font-size:11px; font-weight:700; text-align:center; display:flex; align-items:center; justify-content:center; min-height:46px; padding:6px 10px 6px 16px; clip-path:polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%, 14% 50%); }
.chev:first-child { clip-path:polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%); padding-left:12px; }
.chev.feito { background:#5B9BD5; }
.chev.atual { background:#1F4E79; box-shadow:inset 0 0 0 2px #FBBF24; }
.chev.futuro { background:#D6E0EC; color:#7A8CA3; }
.fluxo-term { display:flex; align-items:center; justify-content:flex-end; gap:10px; margin-top:14px; }
.term-de { color:var(--cinza2); font-size:16px; }
.term { border:1px solid var(--line); border-radius:8px; padding:8px 14px; font-size:12px; font-weight:700; color:var(--cinza2); background:#fff; }
.term.on { border-color:#1F4E79; color:#1F4E79; background:#EAF1F9; }
.fluxo-datas { margin-top:12px; font-size:12px; color:var(--cinza2); }
/* comparativo financeiro 2x2 */
.fin2 { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; padding:12px 22px 18px; }
/* próxima providência */
.prov-card { background:linear-gradient(135deg,#2563EB,#4F7BEA); color:#fff; border-radius:16px; padding:20px 24px; margin-bottom:14px; box-shadow:var(--sombra); }
.prov-cap { font-size:11px; text-transform:uppercase; letter-spacing:.09em; opacity:.8; }
.prov-tit { font-size:17px; font-weight:800; margin:6px 0 4px; }
.prov-sub { font-size:12.5px; opacity:.85; margin-bottom:14px; }
.prov-card .btn { background:#fff; color:#2563EB; font-weight:700; border:none; }
/* facts em 2 colunas */
.reg-facts.pf2 { display:grid; grid-template-columns:1fr 1fr; gap:2px 24px; }
@media (max-width:560px){ .reg-facts.pf2 { grid-template-columns:1fr; } }
/* movimentações */
.mov-toggle { background:none; border:none; color:#2563EB; font-weight:700; font-size:12.5px; cursor:pointer; padding:12px 0 2px; }
.mov-item.mov-man .mov-data { color:#2563EB; }
/* documentos */
.doc-list { padding:8px 22px 4px; }
.doc-item { display:flex; align-items:center; gap:12px; padding:9px 0; border-bottom:1px solid var(--line2,#f0f2f6); }
.doc-item:last-child { border-bottom:0; }
.doc-dot { width:9px; height:9px; border-radius:50%; background:#2563EB; flex-shrink:0; }
.doc-item b { font-size:13px; color:var(--ink); display:block; }
.doc-meta { font-size:11.5px; color:var(--cinza2); }

/* ---- Gestão de usuários (Configurações) ---- */
.urow { display:flex; align-items:center; gap:14px; padding:13px 0; border-bottom:1px solid var(--line); }
.urow:last-child { border-bottom:0; }
.uinfo { flex:1; min-width:0; }
.uname { font-weight:700; color:var(--ink); font-size:14px; }
.ume { font-size:10.5px; color:#fff; background:var(--muted); padding:1px 7px; border-radius:99px; font-weight:700; vertical-align:middle; }
.ulogin { font-size:12.5px; color:var(--cinza2); margin-top:1px; }
.uselos { margin-top:7px; display:flex; flex-wrap:wrap; gap:6px; }
.upill { font-size:10.5px; font-weight:700; padding:2px 9px; border-radius:99px; background:#EEF2F7; color:#475569; }
.up-master { background:rgba(139,92,246,.14); color:#7C3AED; }
.up-restr  { background:rgba(224,123,0,.14);  color:#C2410C; }
.up-ver    { background:rgba(37,99,235,.12);  color:#2563EB; }
.up-op     { background:rgba(18,165,148,.15); color:#0E9384; }
.up-ro     { background:#EEF2F7; color:#64748B; }
.up-cfg    { background:rgba(100,116,139,.15); color:#475569; }
.uacts { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; flex-shrink:1; max-width:340px; }   /* 3 botões: quebra linha em vez de alargar a página */
.btn-min { font-size:12px; font-weight:600; padding:6px 11px; border-radius:9px; border:1px solid var(--line); background:#fff; color:var(--ink); cursor:pointer; }
.btn-min:hover { background:#F6F8FB; }
.btn-min-danger { color:#DC2626; border-color:rgba(220,38,38,.3); }
.unovo { border-top:1px solid var(--line); margin-top:6px; padding:16px 22px 20px; }
.unovo-tit { font-weight:700; color:var(--ink); font-size:13px; margin-bottom:12px; }
.unovo-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:12px; }
@media (max-width:900px){ .unovo-grid { grid-template-columns:1fr 1fr; } }
/* perfil somente leitura: esconde ações de escrita */
body.perfil-leitura #btn-importar { display:none !important; }

/* botão chamativo "Contrato Registrado?" no cabeçalho do contrato */
.btn-registrado { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:800; color:#fff;
  background:linear-gradient(135deg,#10B981 0%,#0E9384 100%); border:none; border-radius:11px; padding:11px 18px;
  cursor:pointer; box-shadow:0 5px 16px rgba(16,185,129,.42); transition:transform .12s, box-shadow .12s; white-space:nowrap; }
.btn-registrado:hover { transform:translateY(-2px); box-shadow:0 8px 22px rgba(16,185,129,.55); }
.btn-registrado:active { transform:translateY(0); }
.pg-head { margin-bottom:4px; }

/* header actions */
.hact { display:flex; align-items:center; gap:12px; flex:none; }
.sel { background:#fff; border:1px solid var(--line); border-radius:10px; padding:7px 14px; display:flex; align-items:center; justify-content:space-between; gap:14px; cursor:pointer; }
.sel .l { font-size:9.5px; font-weight:700; letter-spacing:.11em; text-transform:uppercase; color:var(--faint); }
.sel .v { font-size:13.5px; font-weight:600; margin-top:2px; color:var(--ink); }
.sel .cv { color:var(--faint); font-size:11px; }
.hpill { display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 15px; border-radius:99px; font-size:13px; font-weight:600; background:var(--red-bg); color:var(--red); border:1px solid #FBD5DE; text-decoration:none; }
.hpill i { width:7px; height:7px; border-radius:99px; background:var(--red); display:block; }
.btn.p { background:var(--blue); color:#fff; border-color:var(--blue); box-shadow:var(--sombra-azul); }
.btn.d { background:var(--ink); color:#fff; border-color:var(--ink); width:100%; justify-content:center; }
.btn.cta { height:46px; padding:0 22px; font-size:14.5px; font-weight:700; border-radius:11px; color:#fff; border:0;
  background:linear-gradient(135deg,#2E63EB,#5b86ff); box-shadow:0 8px 20px -6px rgba(46,99,235,.6); letter-spacing:.01em; }
.btn.cta:hover { filter:brightness(1.05); box-shadow:0 10px 26px -6px rgba(46,99,235,.7); transform:translateY(-1px); }
.btn.cta svg { width:18px; height:18px; }

/* section header numbered */
.sec { display:flex; align-items:baseline; gap:12px; margin:30px 0 12px; }
.sec .num { font-size:11.5px; font-weight:700; color:var(--blue); letter-spacing:.04em; }
.sec .t { font-size:11.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--ink); }
.sec .h { margin-left:auto; font-size:12.5px; color:var(--faint); }
.sec a.h { color:var(--blue); font-weight:700; text-decoration:none; }

/* cards + grids */
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:var(--sombra); }
.g2 { display:grid; grid-template-columns:1fr 1.18fr; gap:16px; align-items:stretch; }
.g2>.card { display:flex; flex-direction:column; }
.g2b { display:grid; grid-template-columns:1.55fr 1fr; gap:16px; align-items:stretch; }
.tt { display:flex; align-items:center; justify-content:space-between; }
.tt .t { font-size:16px; font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.tt .s { font-size:12px; color:var(--faint); }
.tabnum { font-variant-numeric:tabular-nums; }

/* KPI strip (um único componente) */
.kpis { display:grid; background:var(--card); border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:var(--sombra); grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.kpis[style*="--kc"] { grid-template-columns:repeat(var(--kc),1fr); }
.kpi { padding:16px 20px; border-right:1px solid var(--line); background:none; box-shadow:none; display:block; cursor:default; transform:none; }
.kpi:last-child { border-right:0; }
.kpi.clic { cursor:pointer; } .kpi.clic:hover { background:var(--line2); }
.kpi .circ { display:none; }
.kpi .l, .kpi .rot { min-height:24px; font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.kpi .n, .kpi .num { font-size:31px; font-weight:700; letter-spacing:-.035em; margin-top:8px; font-variant-numeric:tabular-nums; line-height:1; color:var(--ink); }
.kpi .h, .kpi .leg { font-size:12px; color:var(--muted); margin-top:8px; }
.kpi .h.g { color:var(--teal); font-weight:600; } .kpi .h.a { color:var(--amber); font-weight:600; } .kpi .h.r { color:var(--red); font-weight:600; }
.kpi.dgr { background:var(--red-bg); position:relative; }
.kpi.dgr::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--red); }
.kpi.dgr .l, .kpi.dgr .n { color:var(--red); }

/* termômetro / meter */
.therm { padding:20px 22px; } .rate { padding:20px 22px; }
.badge { background:var(--teal-bg); color:var(--teal); font-size:12px; font-weight:700; padding:6px 12px; border-radius:99px; }
.big { display:flex; align-items:baseline; gap:12px; margin:18px 0 12px; }
.big .p { font-size:34px; font-weight:700; letter-spacing:-.035em; line-height:1; color:var(--ink); }
.big .s { font-size:13px; color:var(--muted); } .big .m { margin-left:auto; font-size:13px; font-weight:700; }
.meter { position:relative; padding-bottom:26px; }
.meter .marks { display:flex; justify-content:space-between; font-size:11.5px; color:var(--faint); margin-top:9px; }
.meter .goal { position:absolute; top:-5px; bottom:14px; width:0; border-left:2px dashed var(--amber); }
.meter .goal::before { content:""; position:absolute; left:-5px; top:-1px; width:10px; height:10px; border-radius:99px; background:var(--amber); }
.meter .glab { position:absolute; transform:translateX(-50%); bottom:-2px; font-size:11.5px; font-weight:700; color:var(--amber); white-space:nowrap; }
.meter .goal.azul { border-left-color:var(--blue); } .meter .goal.azul::before { background:var(--blue); } .meter .glab.azul { color:var(--blue); }
/* Registrado e concluído no mês */
.regmes { padding:20px 22px; margin-bottom:14px; }
.regmes .rm-mes { font-size:12.5px; font-weight:700; color:var(--teal); text-transform:capitalize; }
.rm-hero { display:flex; align-items:center; gap:16px; margin:14px 0 6px; }
.rm-hero .rm-n { font-size:44px; font-weight:800; letter-spacing:-.04em; line-height:1; color:var(--teal); font-variant-numeric:tabular-nums; }
.rm-hero .rm-lb { font-size:13.5px; color:var(--ink); font-weight:600; line-height:1.35; }
.rm-hero .rm-sub { font-size:12px; color:var(--faint); font-weight:500; }
.rm-lista { display:flex; flex-direction:column; margin-top:12px; border-top:1px solid var(--line2); }
.rm-lin { display:flex; align-items:center; gap:12px; padding:9px 2px; border-bottom:1px solid var(--line2); text-decoration:none; color:var(--ink); font-size:13.5px; }
.rm-lin:hover { background:var(--teal-bg); }
.rm-lin .rm-cod { font-weight:800; min-width:70px; }
.rm-lin .rm-cli { flex:1; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rm-lin .rm-dt { color:var(--faint); font-size:12.5px; white-space:nowrap; }
.rm-mais { display:block; padding:10px 2px 2px; font-size:13px; font-weight:700; color:var(--blue); text-decoration:none; }
.rm-vazio { margin-top:10px; font-size:13px; color:var(--muted); line-height:1.5; }

/* Dois termômetros lado a lado: base regularizável × total da carteira */
.therm2 { display:grid; grid-template-columns:1.15fr 1fr; gap:22px; margin-top:16px; }
.therm2 .th-col { display:flex; flex-direction:column; }
.therm2 .th-alt { border-left:1px solid var(--line2); padding-left:22px; }
.th-cap { font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--muted); }
.th-cap .th-hint { display:block; font-size:9.5px; font-weight:600; letter-spacing:.02em; color:var(--faint); margin-top:2px; text-transform:none; }
.th-pct { font-size:38px; font-weight:800; letter-spacing:-.035em; line-height:1; color:var(--teal); margin:9px 0 3px; font-variant-numeric:tabular-nums; }
.th-pct.sec { font-size:32px; color:var(--blue); }
.th-sub { font-size:12.5px; color:var(--muted); margin-bottom:14px; }
.th-meta { font-size:12.5px; color:var(--ink); margin-top:12px; padding-top:11px; border-top:1px solid var(--line2); line-height:1.5; }
.th-meta b { color:var(--amber); font-weight:800; }
.th-meta.ok { color:var(--teal); font-weight:700; }
.th-note { font-size:11.5px; color:var(--faint); margin-top:10px; line-height:1.4; }
@media (max-width:720px){ .therm2 { grid-template-columns:1fr; } .therm2 .th-alt { border-left:0; padding-left:0; border-top:1px solid var(--line2); padding-top:16px; } }
.mini { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line2); margin-top:16px; padding-top:16px; gap:12px; }
.mini .l { font-size:10.5px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.mini .v { font-size:23px; font-weight:700; letter-spacing:-.03em; margin-top:7px; font-variant-numeric:tabular-nums; color:var(--ink); }
.mini .v .u { font-size:12px; color:var(--faint); font-weight:500; margin-left:5px; letter-spacing:0; }
.mini .v.w { font-size:14px; color:var(--faint); font-weight:600; letter-spacing:0; line-height:1.35; }
.rline { display:flex; align-items:baseline; justify-content:space-between; padding:13px 0; border-bottom:1px solid var(--line2); font-size:13.5px; }
.rline:last-of-type { border-bottom:0; } .rline span { color:var(--muted); }
.rline u { text-decoration:none; font-weight:700; font-variant-numeric:tabular-nums; font-size:15px; color:var(--ink); }
.hist { margin-top:6px; background:var(--blue-bg); border:1px solid #DCE7FD; border-radius:10px; padding:13px 15px; font-size:12.5px; color:#2A4A9E; display:flex; gap:11px; align-items:flex-start; }
.hist b { display:block; color:#12336F; font-size:13px; margin-bottom:2px; }

/* composição: stacked + legend rows */
.comp { padding:20px 22px 22px; }
.stackbar { height:13px; border-radius:99px; background:#EDF1F7; display:flex; gap:2px; overflow:hidden; margin-top:16px; }
.stackbar i { display:block; height:100%; }
.legs { display:grid; grid-template-columns:1fr 1px 1fr; gap:26px; margin-top:20px; }
.vr { background:var(--line2); }
.lrow { margin-bottom:17px; } .lrow:last-child { margin-bottom:0; }
.lrow .r { display:flex; align-items:baseline; gap:10px; margin-bottom:8px; font-size:13.5px; }
.lrow .r b { font-weight:600; } .lrow .r u { margin-left:auto; text-decoration:none; font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink); }
.dot { width:9px; height:9px; border-radius:99px; display:inline-block; flex:none; }
.trk { height:9px; border-radius:99px; background:#EDF1F7; overflow:hidden; } .trk i { display:block; height:100%; border-radius:99px; }
.trk.trk-split { display:flex; } .trk.trk-split i { border-radius:0; }
.subs { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:12px; }
.subc { background:var(--teal-bg); border-radius:8px; padding:9px 13px; display:flex; justify-content:space-between; font-size:12.5px; color:var(--muted); }
.subc b { color:var(--ink); font-weight:700; font-variant-numeric:tabular-nums; }

/* funil */
.fun { padding:18px 22px 20px; }
.frow { display:grid; grid-template-columns:112px 1fr 42px; align-items:center; gap:14px; height:36px; font-size:13.5px; cursor:pointer; border-radius:7px; }
.frow:hover { background:var(--line2); }
.frow .lb { font-weight:600; color:var(--ink); } .frow .n { text-align:right; font-weight:700; font-variant-numeric:tabular-nums; color:var(--ink); }
.frow .n.z { color:var(--faint); font-weight:600; }

/* pontos de atenção */
.att { padding:18px 20px 20px; }
.arow { display:flex; align-items:center; gap:12px; padding:12px 14px; border-radius:9px; margin-bottom:9px; cursor:pointer; }
.arow:last-child { margin-bottom:0; }
.arow .t { font-size:13.5px; font-weight:700; color:var(--ink); } .arow .s { font-size:11.5px; color:var(--muted); margin-top:2px; }
.arow .n { margin-left:auto; font-size:19px; font-weight:700; font-variant-numeric:tabular-nums; }

/* empreendimento rows */
.emp { padding:18px 22px 20px; }
.erow { display:grid; grid-template-columns:130px 1fr 140px; align-items:center; gap:14px; height:40px; font-size:13.5px; cursor:pointer; }
.erow .lb { font-weight:700; color:var(--ink); } .erow .n { text-align:right; font-weight:600; color:var(--muted); font-variant-numeric:tabular-nums; } .erow .n b { color:var(--ink); font-weight:700; }
.call { margin-top:14px; background:var(--amber-bg); border:1px solid #F7E2C0; border-radius:9px; padding:12px 15px; display:flex; align-items:center; gap:11px; font-size:13px; }
.call a { margin-left:auto; color:var(--blue); font-weight:700; text-decoration:none; white-space:nowrap; }

/* carga por responsável */
.load { padding:18px 22px 20px; }
.lrow2 { margin-bottom:18px; } .lrow2 .h { display:flex; align-items:center; gap:11px; margin-bottom:9px; }
.lrow2 .h i { width:29px; height:29px; border-radius:99px; display:grid; place-items:center; font-style:normal; font-size:11px; font-weight:700; }
.lrow2 .h .nm { font-size:14px; font-weight:700; color:var(--ink); } .lrow2 .h .v { margin-left:auto; font-size:20px; font-weight:700; font-variant-numeric:tabular-nums; }
.lrow2 .s { font-size:11.5px; color:var(--muted); margin-top:7px; }
.tot { border-top:1px solid var(--line2); padding-top:13px; display:flex; justify-content:space-between; font-size:12.5px; color:var(--muted); } .tot b { color:var(--red); font-weight:700; }

/* barra de ações prioritárias */
.acts { background:var(--ink); border-radius:12px; display:grid; grid-template-columns:repeat(4,1fr); overflow:hidden; }
.act { padding:16px 18px; color:#fff; font-size:13px; white-space:nowrap; font-weight:600; border-right:1px solid rgba(255,255,255,.10); display:flex; align-items:center; gap:10px; cursor:pointer; }
.act:last-child { border-right:0; } .act:hover { background:#16233b; } .act em { font-style:normal; color:var(--gold); font-weight:700; }

/* estado vazio = conteúdo */
.emptyrow { border:1px dashed var(--line); border-radius:10px; padding:16px; text-align:center; color:var(--faint); font-size:13px; }

/* ---- Empreendimentos: lista ---- */
.emplist { background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:var(--sombra); overflow:hidden; }
.emprow { display:grid; grid-template-columns:1.5fr 1.5fr 82px 90px 94px 66px auto; align-items:center; gap:18px; padding:16px 20px; border-top:1px solid var(--line2); text-decoration:none; color:var(--ink); transition:background .1s; cursor:pointer; }
.emprow:first-child { border-top:0; } .emprow:hover { background:var(--line2); }
.btn.sm { height:34px; padding:0 14px; font-size:13px; border-radius:9px; }
.er-ver { white-space:nowrap; }
/* par de ações da linha: um controle só, dividido ao meio (visão | contratos) */
.emprow-vazia { grid-template-columns:1.5fr 2fr auto; cursor:default; background:linear-gradient(0deg,#fcfcfd,#fff); }
.emprow-vazia:hover { background:linear-gradient(0deg,#fcfcfd,#fff); }
.er-vazia { font-size:12.5px; color:var(--cinza2); }
.er-acts { display:inline-flex; justify-self:end; border:1px solid var(--borda); border-radius:10px; overflow:hidden; background:#fff; box-shadow:var(--sombra); }
.er-act { display:inline-flex; align-items:center; gap:6px; height:34px; padding:0 13px; border:0; background:#fff;
  font-family:inherit; font-size:12.5px; font-weight:700; color:var(--navy); cursor:pointer; white-space:nowrap; transition:background .12s, color .12s; }
.er-act svg { width:14px; height:14px; opacity:.75; }
.er-act:hover { background:var(--azul-cl); color:var(--azul); }
.er-act + .er-act { border-left:1px solid var(--borda); }
.er-act-p { background:var(--azul); color:#fff; }
.er-act-p svg { opacity:.9; }
.er-act-p:hover { background:#1D4FD8; color:#fff; }
@media (max-width:900px){ .er-acts { display:inline-flex !important; } .er-act { padding:0 11px; }
  .emprow-vazia { grid-template-columns:1fr auto; } .er-vazia { display:none; } }
.er-nome b { font-size:15.5px; font-weight:800; color:var(--ink); display:block; }
.er-nome span { font-size:12px; color:var(--muted); }
.er-bar .trk { height:8px; border-radius:99px; background:#EDF1F7; overflow:hidden; }
.er-bar .trk i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#16B39F,#12A594); }
.er-bar span { display:block; font-size:11.5px; color:var(--muted); margin-top:6px; font-weight:600; }
.er-num b { font-size:20px; font-weight:800; font-variant-numeric:tabular-nums; display:block; line-height:1; }
.er-num span { font-size:10.5px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.er-un { text-align:right; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.er-ir { color:var(--faint); text-align:right; }
@media (max-width:900px){ .emprow { grid-template-columns:1fr auto; gap:10px; } .er-bar,.er-num,.er-un,.er-ir { display:none; } }

/* ---- Empreendimentos: grade de cartões (legado) ---- */
.empgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:16px; }
.empc { display:block; padding:20px; text-decoration:none; color:var(--ink); background:var(--card); border:1px solid var(--line); border-radius:12px; box-shadow:var(--sombra); transition:border-color .12s, box-shadow .12s, transform .12s; }
.empc:hover { border-color:var(--blue); box-shadow:var(--sombra-md); transform:translateY(-2px); }
.empc-h { display:flex; align-items:baseline; justify-content:space-between; gap:10px; margin-bottom:4px; }
.empc-h b { font-size:17px; font-weight:800; color:var(--ink); }
.empc-h span { font-size:12px; color:var(--faint); font-weight:600; }
.empc-loc { font-size:12.5px; color:var(--muted); margin-bottom:16px; }
.empc-bar { margin-bottom:16px; }
.empc-bar .trk { height:8px; border-radius:99px; background:#EDF1F7; overflow:hidden; }
.empc-bar .trk i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#16B39F,#12A594); }
.empc-bar span { display:block; font-size:12px; color:var(--muted); margin-top:7px; font-weight:600; }
.empc-nums { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; padding-top:14px; border-top:1px solid var(--line2); }
.empc-nums div b { font-size:21px; font-weight:800; font-variant-numeric:tabular-nums; display:block; }
.empc-nums div span { font-size:11px; color:var(--muted); }

/* ---- Agenda (mesmo padrão) ---- */
.agview { display:grid; grid-template-columns:1.62fr 1fr; gap:16px; align-items:start; }
@media (max-width:1100px){ .agview { grid-template-columns:1fr; } }
.lst { padding:16px 18px 18px; }
.grp { display:flex; align-items:baseline; justify-content:space-between; padding:14px 6px 10px; }
.grp .t { font-size:11.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.grp .t.r { color:var(--red); } .grp .c { font-size:12px; color:var(--faint); }
.task { display:grid; grid-template-columns:22px 1fr 160px 110px 16px; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; margin-bottom:9px; background:#fff; text-decoration:none; color:var(--ink); transition:border-color .1s, box-shadow .1s; }
.task:hover { border-color:var(--blue); box-shadow:var(--sombra-md); }
.task.over { background:var(--red-bg); border-color:#F8D3DC; box-shadow:inset 3px 0 0 var(--red); }
.task .rd { width:19px; height:19px; border-radius:99px; border:2px solid var(--blue-l); }
.task.over .rd { border-color:var(--red); }
.task .t { font-size:14px; font-weight:700; } .task .s { font-size:12px; color:var(--muted); margin-top:3px; }
.task .p { display:flex; align-items:center; gap:9px; font-size:13px; color:var(--muted); min-width:0; }
.task .p i { width:26px; height:26px; border-radius:99px; display:grid; place-items:center; font-style:normal; font-size:10px; font-weight:700; flex:none; }
.task .d { text-align:right; font-size:13px; font-weight:700; } .task .d small { display:block; font-weight:400; color:var(--faint); font-size:12px; margin-top:3px; }
.task.over .d { color:var(--red); } .task .cv { color:var(--faint); text-align:right; }
/* Tarefas manuais e etiquetas na agenda */
.task.manual { grid-template-columns:22px 1fr 160px 110px 58px; background:#FCFBFF; border-color:#ECE7FB; }
.task.manual:hover { border-color:var(--violet); }
.task.manual .rd { border-color:var(--violet); border-style:dashed; }
.tf-acoes { display:flex; gap:6px; justify-content:flex-end; }
.tf-acoes button { width:24px; height:24px; border-radius:7px; border:1px solid var(--line); background:#fff; cursor:pointer; font-size:13px; line-height:1; display:grid; place-items:center; color:var(--muted); }
.tf-acoes .tf-ok:hover { border-color:var(--teal); color:var(--teal); background:var(--teal-bg,#E6F7F4); }
.tf-acoes .tf-rm:hover { border-color:var(--red); color:var(--red); background:var(--red-bg); }
.tf-tag { display:inline-block; font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:99px; vertical-align:middle; letter-spacing:.02em; }
.tf-escritura { background:#E4EDFE; color:#2E63EB; } .tf-termo_baixa { background:#EDE7FD; color:#6D3EE0; }
.tf-livre { background:#EEF2F8; color:#64748B; } .tf-reatrib { background:#E4EDFE; color:#2E63EB; }
.grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.imp-sec { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); margin:14px 0 4px; }
.mov-tab { width:100%; border-collapse:collapse; margin-top:8px; }
.mov-tab th { text-align:left; font-size:10.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--cinza2); padding:8px 12px; border-bottom:1px solid var(--linha); }
.mov-tab td { padding:12px 12px; border-bottom:1px solid var(--linha); font-size:14px; }
.mov-tab tr:last-child td { border-bottom:none; }
.mov-tab .mm-mes { font-weight:800; color:var(--navy); }
.mov-tab .mm-n { font-weight:800; font-size:16px; }
.mov-tab .mm-sub { font-size:11px; font-weight:600; color:var(--cinza2); display:block; margin-top:1px; }
.mov-tab .mm-fin { font-weight:700; }
.disp-strip { display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.disp-tile { background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--sombra); padding:14px 22px; min-width:140px; border-left:5px solid var(--cinza2); }
.disp-tile b { font-size:30px; font-weight:800; color:var(--navy); display:block; line-height:1; }
.disp-tile span { font-size:12px; font-weight:700; color:var(--cinza); text-transform:uppercase; letter-spacing:.03em; }
.disp-tile.d-verde { border-left-color:#12A594; } .disp-tile.d-ambar { border-left-color:#E07B00; } .disp-tile.d-roxo { border-left-color:#8B5CF6; } .disp-tile.d-verm { border-left-color:#E11D48; }
.disp-nota { font-size:12px; color:var(--cinza2); flex:1; min-width:180px; }

/* ===== Visão Geral — apresentação executiva ousada ===== */
.bigstat-row { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:8px; }
.bigstat { background:var(--card); border:1px solid var(--line); border-radius:18px; padding:22px 24px; box-shadow:var(--sombra); cursor:pointer; position:relative; overflow:hidden; transition:transform .12s, box-shadow .12s; }
.bigstat:hover { transform:translateY(-3px); box-shadow:var(--sombra-md); }
.bigstat::before { content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--acc); }
.bigstat .bn { font-size:48px; font-weight:800; line-height:1; letter-spacing:-.03em; color:var(--acc); font-variant-numeric:tabular-nums; }
.bigstat .bl { font-size:13.5px; font-weight:800; color:var(--navy); margin-top:12px; text-transform:uppercase; letter-spacing:.03em; }
.bigstat .bs { font-size:12.5px; color:var(--cinza); margin-top:5px; }
.bigstat-row5 { grid-template-columns:1.35fr repeat(5,1fr); align-items:stretch; gap:clamp(8px,0.8vw,12px); }
.bigstat-row5 .bigstat { padding:clamp(12px,1.2vw,18px); min-width:0; }
.bigstat-row5 .bn { font-size:clamp(24px,2.7vw,40px); }
.bigstat-row5 .bigstat-total .bn { font-size:clamp(30px,3.5vw,52px); }
.bigstat-row5 .bl { font-size:clamp(10px,0.92vw,12.5px); margin-top:9px; }
.bigstat-row5 .bs { font-size:clamp(9.5px,0.82vw,12.5px); }
/* Total de lotes — card em destaque, número maior */
.bigstat-total { background:linear-gradient(135deg,#0F1B2E 0%,#26406B 120%); color:#fff; }
.bigstat-total::before { background:#F6DC94; }
.bigstat-total .bn { color:#fff; font-size:60px; }
.bigstat-total .bl { color:#fff; }
.bigstat-total .bs { color:rgba(255,255,255,.7); }
/* Expansão no hover — desdobramento do indicador */
.bigstat.has-exp::after { content:"›"; position:absolute; right:16px; top:16px; color:var(--cinza2); font-size:18px; transform:rotate(90deg); transition:transform .2s; }
.bigstat.has-exp:hover::after { transform:rotate(270deg); color:var(--acc); }
.bigstat-exp { max-height:0; opacity:0; overflow:hidden; transition:max-height .28s ease, opacity .2s, margin-top .28s; margin-top:0; }
.bigstat.has-exp:hover .bigstat-exp { max-height:180px; opacity:1; margin-top:14px; }
.be-row { display:grid; grid-template-columns:1fr 54px auto; align-items:center; gap:9px; padding:4px 0; }
.be-lb { font-size:11.5px; color:var(--cinza); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.be-bar { height:6px; background:var(--linha); border-radius:4px; overflow:hidden; }
.be-bar i { display:block; height:100%; border-radius:4px; opacity:.9; }
.be-n { font-size:13.5px; font-weight:800; color:var(--navy); text-align:right; }
.be-cap { font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--cinza2); margin-bottom:7px; }
.be-grp { margin-bottom:10px; }
.be-grp:last-child { margin-bottom:0; }
.be-emp { font-size:10.5px; font-weight:800; letter-spacing:.02em; color:var(--navy); margin-bottom:5px; padding-bottom:4px; border-bottom:1px solid var(--linha); }
.bigstat-total.has-exp::after { color:rgba(255,255,255,.55); }
.bigstat-total .be-cap { color:rgba(255,255,255,.5); }
.bigstat-total .be-lb { color:rgba(255,255,255,.82); }
.bigstat-total .be-n { color:#fff; }
.bigstat-total .be-bar { background:rgba(255,255,255,.16); }
@media (max-width:1080px){ .bigstat-row:not(.bigstat-row5) { grid-template-columns:repeat(2,1fr); } }
/* bigstat-row5 mantém 6 colunas do mesmo tamanho e só reduz a fonte; quebra apenas em telas de celular */
@media (max-width:620px){ .bigstat-row5 { grid-template-columns:repeat(2,1fr); } }

.exec-hero { display:grid; grid-template-columns:1.5fr 1fr; gap:18px; align-items:stretch; }
.hero-big { background:linear-gradient(135deg,#0F1B2E 0%,#1E3358 55%,#2E63EB 130%); border-radius:22px; padding:32px 36px; color:#fff; display:flex; flex-direction:column; justify-content:center; box-shadow:0 12px 30px -12px rgba(15,27,46,.55); }
.hero-big .eb { font-size:12px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; opacity:.62; }
.hero-big .huge { font-size:82px; font-weight:800; line-height:.98; letter-spacing:-.04em; margin:10px 0 6px; }
.hero-big .huge small { font-size:34px; opacity:.65; font-weight:700; margin-left:2px; }
.hero-big .hsub { font-size:14.5px; opacity:.82; }
.hero-big .excl-nota { font-size:10.5px; line-height:1.45; opacity:.6; margin-top:10px; padding-left:9px; border-left:2px solid rgba(255,255,255,.2); }
.hero-big .excl-nota b { opacity:.95; font-weight:700; }
.hero-prog { height:15px; background:rgba(255,255,255,.16); border-radius:9px; margin:36px 0 4px; position:relative; overflow:visible; }
.hero-prog i { display:block; height:100%; border-radius:9px; background:linear-gradient(90deg,#16B39F,#4FE3CB); box-shadow:0 0 14px rgba(79,227,203,.5); }
.hero-prog .mk { position:absolute; top:-8px; bottom:-8px; width:4px; background:#FFB020; border-radius:3px; box-shadow:0 0 14px 2px rgba(255,176,32,.9); z-index:2; }
.hero-prog .mk-flag { position:absolute; bottom:calc(100% + 7px); left:50%; transform:translateX(-50%); background:#FFB020; color:#3A2600; font-size:10.5px; font-weight:800; letter-spacing:.02em; padding:3px 10px; border-radius:99px; white-space:nowrap; box-shadow:0 4px 10px rgba(0,0,0,.32); }
.hero-prog .mk-flag::after { content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:5px solid transparent; border-top-color:#FFB020; }
/* evolução dentro do hero (fundo escuro) */
.hero-evol { margin-top:20px; border-top:1px solid rgba(255,255,255,.14); padding-top:16px; }
.he-tit { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.09em; opacity:.65; margin-bottom:12px; }
.he-bars { display:flex; align-items:flex-end; gap:18px; height:96px; }
.he-col { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:5px; height:100%; }
.he-v { font-size:15px; font-weight:800; }
.he-bar { width:48px; border-radius:7px 7px 0 0; background:rgba(255,255,255,.22); min-height:8px; transition:height .4s; }
.he-bar.he-agora { background:linear-gradient(180deg,#4FE3CB,#12A594); box-shadow:0 0 14px rgba(79,227,203,.4); }
.he-lb { font-size:11px; opacity:.7; }
.he-res { margin-left:auto; align-self:center; text-align:right; }
.he-res b { font-size:28px; font-weight:800; color:#4FE3CB; display:block; line-height:1; }
.he-res span { font-size:11px; opacity:.7; }
.hero-meta { display:flex; gap:30px; font-size:12.5px; opacity:.86; margin-top:16px; }
.hero-meta b { font-size:22px; font-weight:800; display:block; margin-bottom:2px; }
.hero-meta b small { font-size:13px; font-weight:700; opacity:.75; }
/* abertura CFO — risco financeiro */
.hero-big .huge-money { font-size:46px; font-weight:800; line-height:1; letter-spacing:-.02em; margin:10px 0 6px; font-variant-numeric:tabular-nums; }
@media (max-width:1200px){ .hero-big .huge-money { font-size:38px; } }
.hero-meta-cfo b { font-size:17px; }
/* Hero — cartões glanceable (exposição / desembolso / recuperar / provisão) */
.hero-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:20px; }
.hero-cards .hc { background:rgba(255,255,255,.10); border:1px solid rgba(255,255,255,.14); border-radius:14px; padding:14px 16px; display:flex; flex-direction:column; gap:3px; }
.hero-cards .hc-v { font-size:22px; font-weight:800; letter-spacing:-.01em; font-variant-numeric:tabular-nums; line-height:1.05; }
.hero-cards .hc-l { display:flex; flex-direction:column; font-size:11px; line-height:1.35; opacity:.72; }
.hero-cards .hc-l b { font-size:12.5px; font-weight:700; opacity:1; margin-bottom:1px; }
.hero-cards .hc-strong { background:rgba(255,255,255,.17); border-color:rgba(255,255,255,.28); }
.hero-cards .hc-strong .hc-v { font-size:25px; }
@media (max-width:560px){ .hero-cards { grid-template-columns:1fr; } }
.rf-panel { background:#0f1b2e; border:1px solid rgba(255,255,255,.1); border-radius:22px; padding:20px 22px; color:#fff; display:flex; flex-direction:column; gap:12px; box-shadow:0 12px 30px -12px rgba(15,27,46,.55); }
.rf-ptit { font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; opacity:.7; }
.rfp-row { display:flex; flex-direction:column; gap:5px; }
.rfp-top { display:flex; align-items:center; gap:8px; font-size:13px; }
.rfp-top b { font-weight:700; }
.rfp-dot { width:9px; height:9px; border-radius:50%; flex:none; }
.rfp-pct { color:rgba(255,255,255,.6); font-size:12px; }
.rfp-n { margin-left:auto; color:rgba(255,255,255,.6); font-size:12px; }
.rfp-bar { height:7px; border-radius:99px; background:rgba(255,255,255,.1); overflow:hidden; }
.rfp-bar i { display:block; height:100%; border-radius:99px; }
.rfp-vals { display:flex; justify-content:space-between; font-size:11.5px; color:rgba(255,255,255,.65); }
.rfp-vals b { color:#fff; font-weight:700; }
.rf-note { font-size:11px; color:rgba(255,255,255,.6); line-height:1.4; }
/* Judicial: hero em verde/teal (distinto do azul dos contratos) */
.jud-hero .hero-big { background:var(--emp-grad,linear-gradient(135deg,#0A2A20 0%,#0F5C44 52%,#12A594 128%)); }
.jud-hero .rf-panel { background:var(--emp-panel,#0b2018); border-color:rgba(255,255,255,.12); }
.bigstat-total.bt-jud { background:var(--emp-grad,linear-gradient(135deg,#0A2A20 0%,#0F5C44 120%)); }
.bigstat-total.bt-jud::before { background:var(--emp-accent,#F0B24B); }
.jud-toolbar { display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin:2px 0 18px; padding-bottom:14px; border-bottom:1px solid var(--line,#e6eaf1); }
.jud-toolbar .jud-emps { display:flex; gap:8px; flex-wrap:wrap; }
/* Seletor de empreendimento — botões sólidos, com presença de botão principal */
.jud-seg-wrap { display:flex; flex-direction:column; gap:9px; }
.jud-seg-line { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.jud-voltar { display:inline-flex; align-items:center; gap:6px; border:1px solid var(--line,#d7dee8); background:var(--card,#fff); color:#0B6B4F; font-weight:800; font-size:13px; padding:11px 16px; border-radius:12px; cursor:pointer; transition:.14s; box-shadow:0 4px 12px -8px rgba(20,30,50,.4); }
.jud-voltar:hover { border-color:#0B6B4F; transform:translateY(-1px); box-shadow:0 8px 16px -8px rgba(11,107,79,.4); }
/* Resolução desde abr/2025 */
.resol-card { display:flex; flex-direction:column; gap:0; padding:26px; }
.resol-main { display:flex; flex-direction:column; align-items:center; text-align:center; gap:16px; }
.resol-anel { flex-shrink:0; }
.resol-info { align-items:center; flex:none; max-width:620px; }
.resol-lead { font-size:17px; }
.resol-conta { font-size:13.5px; color:var(--muted,#64748B); } .resol-conta b { color:var(--ink,#0F1B2E); font-weight:800; }
.resol-plus { color:#2F79C9; font-weight:700; }
.obs-corpo { padding:8px 20px 18px; font-size:13.5px; line-height:1.6; color:var(--ink,#0F1B2E); white-space:pre-wrap; }
.cond-params { margin-bottom:14px; border:1px solid rgba(124,58,237,.28); }
.cond-params .cp-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:0; padding:6px 4px 14px; }
.cond-params .cp { padding:8px 18px; border-left:1px solid var(--line,#eef2f8); }
.cond-params .cp:first-child { border-left:0; }
.cond-params .cp-r { font-size:10.5px; text-transform:uppercase; letter-spacing:.03em; color:var(--cinza2,#64748B); }
.cond-params .cp-v { font-size:15px; margin-top:3px; color:var(--ink,#0F1B2E); } .cond-params .cp-v b { font-weight:800; color:#6D28D9; }
@media (max-width:860px){ .cond-params .cp-grid { grid-template-columns:repeat(2,1fr); } .cond-params .cp { border-left:0; } }
.pf-sec { grid-column:1/-1; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:#6D28D9; margin:14px 0 2px; }
.calc-base { margin-bottom:14px; }
.calc-base .cb-rows { padding:8px 22px 6px; }
.calc-base .cb-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:7px 0; border-bottom:1px dashed var(--line,#eef2f8); font-size:13.5px; }
.calc-base .cb-row span i { color:var(--cinza2,#94A3B8); font-style:normal; font-size:11.5px; }
.calc-base .cb-row b { font-variant-numeric:tabular-nums; white-space:nowrap; }
.calc-base .cb-row.neg b { color:#DC2626; }
.calc-base .cb-row.sub { font-weight:700; border-bottom:1px solid var(--line,#e6eaf1); }
.calc-base .cb-total { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:12px 0 4px; padding:12px 16px; border-radius:10px; background:linear-gradient(135deg,#0A2A20,#0F5C44); color:#fff; }
.calc-base .cb-total span { font-weight:700; font-size:13px; } .calc-base .cb-total b { font-size:20px; font-variant-numeric:tabular-nums; }
.calc-base .cb-nota { margin:2px 22px 16px; padding:9px 12px; border-radius:8px; background:#FEF3C7; color:#92400E; font-size:12px; }
.rel-modal .rel-sec { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--muted,#7C8AA0); margin:4px 0 8px; }
.rel-modal .campo-check { display:flex; align-items:center; gap:9px; padding:7px 0; cursor:pointer; font-size:14px; }
.rel-modal .campo-check input { width:17px; height:17px; accent-color:#0F5C44; }
.resol-legs { justify-content:center; }
.resol-meta { justify-content:center; }
.resol-bar { max-width:300px; }
/* anéis menores por empreendimento */
.resol-emps { display:flex; gap:14px; flex-wrap:wrap; margin-top:20px; padding-top:20px; border-top:1px solid var(--line,#e6eaf1); }
.resol-emp { flex:1; min-width:150px; display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; }
.resol-emp-nome { display:flex; align-items:center; gap:7px; font-size:13.5px; font-weight:800; color:var(--ink,#0F1B2E); }
.resol-emp-nome .dot { width:10px; height:10px; border-radius:50%; }
.resol-emp-sub { font-size:12px; color:var(--muted,#64748B); }
.resol-info { flex:1; min-width:220px; display:flex; flex-direction:column; gap:12px; }
.resol-lead { font-size:16px; color:var(--ink,#0F1B2E); } .resol-lead b { font-weight:800; }
.resol-since { color:var(--muted,#64748B); font-weight:600; }
.resol-tag { display:inline-block; margin-left:6px; padding:3px 11px; border-radius:999px; font-size:11.5px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:#fff; background:var(--c,#12A594); vertical-align:middle; }
.resol-legs { display:flex; gap:20px; flex-wrap:wrap; font-size:13px; color:var(--muted,#5B6B72); }
.resol-legs .rl { display:inline-flex; align-items:center; gap:7px; } .resol-legs .rl b { color:var(--ink,#0F1B2E); }
.resol-legs .rl i { width:12px; height:12px; border-radius:3px; display:inline-block; }
.resol-meta { display:flex; align-items:center; gap:12px; }
.resol-bar { position:relative; flex:1; max-width:340px; height:9px; border-radius:6px; background:#EAEFF5; overflow:hidden; }
.resol-bar i { position:absolute; left:0; top:0; height:100%; border-radius:6px; }
.resol-bar u { position:absolute; top:-3px; width:2px; height:15px; background:#0B1F3A; opacity:.55; }
.resol-metatxt { font-size:12px; font-weight:700; color:var(--muted,#64748B); white-space:nowrap; }
.jud-seg-cap { font-size:10.5px; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--muted,#7C8AA0); }
.jud-seg-group { display:inline-flex; gap:10px; flex-wrap:wrap; }
.jud-seg { display:inline-flex; align-items:center; gap:9px; border:0; padding:13px 24px; border-radius:13px; font-size:14.5px; font-weight:800; letter-spacing:.01em; color:#fff; cursor:pointer; transition:.15s ease; white-space:nowrap;
  background:var(--btn,#475569); box-shadow:0 8px 18px -8px rgba(20,30,50,.42); text-shadow:0 1px 2px rgba(0,0,0,.18); }
.jud-seg:hover { transform:translateY(-1px); box-shadow:0 13px 26px -8px rgba(20,30,50,.5); filter:brightness(1.05); }
.jud-seg-group.has-sel .jud-seg:not(.ativo) { opacity:.42; filter:saturate(.8); box-shadow:0 4px 10px -6px rgba(20,30,50,.35); }
.jud-seg-group.has-sel .jud-seg:not(.ativo):hover { opacity:.82; }
.jud-seg.ativo { box-shadow:0 10px 22px -8px rgba(20,30,50,.5), 0 0 0 3px var(--card,#fff), 0 0 0 5px var(--btn,#475569); }
.jud-seg .jseg-chk { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:50%; background:rgba(255,255,255,.28); font-size:11px; font-weight:900; text-shadow:none; }
.jud-busca { margin:18px 0 4px; }
.jud-busca input { width:100%; padding:13px 16px; border:1px solid var(--line,#e6eaf1); border-radius:12px; font-size:14px; background:var(--card,#fff); color:var(--ink,#0F1B2E); }
.jud-busca input:focus { outline:none; border-color:#12A594; box-shadow:0 0 0 3px rgba(18,165,148,.15); }
.desemb-callout { display:flex; align-items:center; gap:22px; margin:16px 0; padding:18px 24px; border-radius:16px; background:linear-gradient(100deg,#6B4200,#C98A1E); box-shadow:0 8px 24px -12px rgba(107,66,0,.5); color:#fff; flex-wrap:wrap; }
.desemb-callout .dc-ico { font-size:26px; line-height:1; }
.desemb-callout .dc-cap { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.82); }
.desemb-callout .dc-val { font-size:26px; font-weight:800; font-variant-numeric:tabular-nums; }
.desemb-callout .dc-pval { font-size:18px; font-weight:800; margin-top:2px; }
.desemb-callout .dc-p2 { font-size:12px; color:rgba(255,255,255,.82); margin-top:1px; }
.desemb-callout .dc-sep { width:1px; align-self:stretch; background:rgba(255,255,255,.28); margin:2px 2px; }
.desemb-callout .dc-nota { margin-left:auto; font-size:11px; color:rgba(255,255,255,.7); max-width:22ch; text-align:right; line-height:1.35; }
@media (max-width:640px){ .desemb-callout .dc-nota { margin-left:0; text-align:left; } .desemb-callout .dc-sep { display:none; } }
.jud-mov .mv-dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:9px; vertical-align:middle; }
.jud-mov .mv-d { font-weight:800; color:#5B9BD5; }
.jud-mov .mv-c { font-weight:800; color:#B45309; }
.jud-mov .mv-e { font-weight:800; color:#16A34A; }
.jud-mov .mv-pos { color:#B91C1C; font-weight:700; }
.jud-mov .mv-neg { color:#16A34A; font-weight:700; }
.jud-mov .mv-total td { border-top:2px solid var(--line,#e6eaf1); }
.mm-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.mm-grid.mm-grid-1 { grid-template-columns:1fr; }
@media (max-width:900px){ .mm-grid { grid-template-columns:1fr; } }
.mm-card { background:var(--card,#fff); border:1px solid var(--line,#e6eaf1); border-radius:16px; padding:16px 18px; box-shadow:var(--sombra); }
.mm-card-cons { border:1.5px solid rgba(15,92,68,.28); box-shadow:0 12px 32px -16px rgba(15,92,68,.45); }
.mm-card-cons .mm-head b { font-size:16.5px; }
.mm-card-cons .mm-head .mm-dot { width:13px; height:13px; }
/* Header com identidade do empreendimento */
.hd-judicial.hd-emp { --hd-a:var(--emp-soft,rgba(15,92,68,.12)); --hd-b:transparent; --hd-e1:var(--emp-accent,#0F5C44); --hd-e2:var(--emp-accent,#0F5C44); --hd-pill:var(--emp-pill,rgba(15,92,68,.16)); }
.hd-emp-dot { width:16px; height:16px; border-radius:50%; flex:none; box-shadow:0 0 0 4px var(--emp-soft,#e5e7eb); }
.mm-head { display:flex; align-items:center; gap:9px; }
.mm-head b { font-size:15px; color:var(--ink,#0F1B2E); }
.mm-head .mm-dot { width:11px; height:11px; border-radius:50%; background:var(--dot); flex:none; }
.mm-head .mm-saldo { margin-left:auto; font-size:12px; font-weight:700; color:var(--cinza2,#64748B); }
.mm-nums { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:14px 0 10px; }
.mm-nums div { display:flex; flex-direction:column; }
.mm-nums b { font-size:22px; font-weight:800; line-height:1; font-variant-numeric:tabular-nums; }
.mm-nums span { font-size:10.5px; color:var(--cinza2,#64748B); margin-top:4px; text-transform:uppercase; letter-spacing:.03em; }
.mm-nums .mm-a { color:#5B9BD5; } .mm-nums .mm-c { color:#B45309; } .mm-nums .mm-e { color:#16A34A; }
.mm-chart { margin-top:2px; }
.mm-leg { display:flex; gap:16px; align-items:center; flex-wrap:wrap; margin-top:10px; font-size:12px; color:var(--cinza2,#64748B); }
.mm-leg i { display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:middle; }
.mm-leg .mm-leg-note { color:var(--cinza,#94A3B8); font-size:11px; }
.hz-row { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.hz-tile { background:var(--card,#fff); border:1px solid var(--line,#e6eaf1); border-left:4px solid var(--hz); border-radius:14px; padding:16px 18px; }
.hz-rot { font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--cinza2,#64748B); }
.hz-val { font-size:24px; font-weight:800; color:var(--ink,#0F1B2E); margin-top:6px; font-variant-numeric:tabular-nums; }
.hz-sub { font-size:12px; color:var(--cinza2,#64748B); margin-top:3px; }
@media (max-width:760px){ .hz-row { grid-template-columns:1fr; } }
.hero-list { margin-top:22px; border-top:1px solid rgba(255,255,255,.14); padding-top:14px; }
.hl-tit { font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; opacity:.6; margin-bottom:6px; }
.hl-row { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:14px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.08); color:#fff; text-decoration:none; }
.hl-cli { font-size:13.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hl-row:hover .hl-cli { text-decoration:underline; }
.hl-tipo { font-size:10.5px; font-weight:800; padding:3px 10px; border-radius:99px; background:rgba(255,255,255,.15); letter-spacing:.02em; }
.hl-dt { font-size:12px; opacity:.6; white-space:nowrap; }
.hl-mais { display:inline-block; margin-top:10px; font-size:12.5px; font-weight:700; color:#8FE9D8; text-decoration:none; }
.hl-vazio { font-size:13px; opacity:.7; }
.hero-big { justify-content:flex-start; }
.hero-big > .eb { margin-top:6px; }
.hero-pie { padding:18px 20px; }
.pie-in { display:flex; flex-direction:column; align-items:center; gap:14px; margin-top:10px; }
.pie-in .donut-wrap { flex:none; }
.pie-in .vg-lg { width:100%; }
@media (max-width:1080px){ .exec-hero { grid-template-columns:1fr; } }

/* ===== Visão Geral — componentes ===== */
.vg-hero { display:grid; grid-template-columns:1.25fr 1fr; gap:16px; align-items:stretch; }
.g2f { display:grid; grid-template-columns:1.5fr 1fr; gap:16px; align-items:stretch; }
.vg-card { padding:18px 20px; display:flex; flex-direction:column; }
.vg-card .tsub { font-size:12px; color:var(--faint); font-weight:600; }
.vg-donut-in { display:flex; align-items:center; gap:22px; margin-top:12px; flex:1; }
.vg-donut-in .donut-wrap { flex:none; }
.vg-lg { flex:1; display:flex; flex-direction:column; gap:5px; min-width:0; }
.lg-row { display:grid; grid-template-columns:12px 1fr auto 40px; align-items:center; gap:10px; padding:7px 9px; border-radius:9px; cursor:pointer; transition:background .1s; }
.lg-row:hover { background:var(--fundo); }
.lg-dot { width:11px; height:11px; border-radius:4px; }
.lg-rot { font-size:13px; color:var(--tinta); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lg-n { font-size:15px; font-weight:800; color:var(--navy); text-align:right; }
.lg-pct { font-size:12px; font-weight:700; color:var(--cinza2); text-align:right; }
.vg-meta-in { display:flex; align-items:center; gap:24px; margin-top:12px; flex:1; }
.ring-wrap { flex:none; text-align:center; }
.ring-goal { margin-top:4px; font-size:12px; font-weight:700; color:var(--amber); }
.vg-ms { flex:1; display:flex; flex-direction:column; gap:11px; }
.vg-ms .ms { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding-bottom:9px; border-bottom:1px dashed var(--linha); }
.vg-ms .ms:last-child { border-bottom:none; padding-bottom:0; }
.vg-ms .ms span { font-size:13px; color:var(--cinza); }
.vg-ms .ms b { font-size:21px; font-weight:800; color:var(--navy); }
.vg-ms .ms b small { font-size:12px; font-weight:600; color:var(--cinza2); }
.vg-ms .ms.clic { cursor:pointer; }
.vg-tiles { display:flex; flex-direction:column; gap:10px; margin-top:14px; }
/* Pendências — grade de categorias + flags transversais */
.pend-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; margin-top:14px; }
/* Tile de pendência (número grande + acento lateral por categoria) */
.pend-tile { display:flex; align-items:center; gap:13px; width:100%; text-align:left; font-family:inherit; cursor:pointer;
  background:#fff; border:1px solid var(--linha); border-left:4px solid var(--pc,#64748B); border-radius:12px; padding:13px 15px;
  transition:transform .14s ease, box-shadow .14s ease, border-color .14s ease; }
.pend-tile:hover { transform:translateY(-2px); box-shadow:var(--sombra-md); }
.pend-tile .pt-n { font-size:27px; font-weight:800; letter-spacing:-.03em; color:var(--pc,#64748B); min-width:42px; line-height:1; }
.pend-tile .pt-rot { flex:1; font-size:13px; font-weight:700; color:var(--navy); line-height:1.25; }
.pend-tile .pt-sub { display:block; font-size:11px; font-weight:600; color:var(--cinza); margin-top:3px; letter-spacing:0; }
.pend-tile .pt-go { color:var(--cinza2); font-size:18px; font-weight:700; }
.pend-flags { display:flex; gap:12px; flex-wrap:wrap; margin-top:14px; }
.pend-flag { display:flex; align-items:baseline; gap:9px; padding:11px 16px; border:1px solid var(--linha); border-radius:12px; background:#fff; cursor:pointer; }
.pend-flag b { font-size:22px; font-weight:800; color:var(--navy); letter-spacing:-.02em; }
.pend-flag span { font-size:12.5px; color:var(--cinza); }
.pend-flag:hover { border-color:var(--azul); background:var(--azul-cl); }
.pend-flag.pf-aguard b { color:var(--azul); }
.pend-flag.pf-alerta { border-color:#F3C9C9; background:#FEF3F3; }
.pend-flag.pf-alerta b { color:var(--verm); }
/* Hero do contrato: ações principais (Editar/Voltar) no topo direito */
.ficha-topo-acoes { display:flex; gap:8px; align-items:flex-start; flex-wrap:wrap; justify-content:flex-end; max-width:360px; }
.ficha-topo-acoes .btn { font-size:12.5px; padding:7px 12px; }
.ficha-topo-main { align-items:flex-start; }
.ficha-topo-main .ficha-id { flex:1 1 auto; }
/* Barra de ações do contrato (separada do hero): relatório, termo, agendar, registrado */
.ficha-acoes { display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--card); border:1px solid var(--linha); border-radius:14px; padding:12px 18px; margin:14px 0; }
.ficha-acoes .fa-rot { font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--cinza2); margin-right:6px; }
/* badge de pendência na ficha do contrato */
.pend-badge { display:inline-flex; align-items:center; gap:7px; padding:5px 11px; border-radius:999px; font-size:12.5px; font-weight:700; background:var(--ambar-cl); color:#B45309; }
.pend-badge .pb-sub { font-weight:500; opacity:.85; }
.pend-badge.pbg-aguard { background:var(--azul-cl); color:var(--azul); }
.pend-badge.pbg-parado { background:var(--verm-cl); color:#B91C1C; }
.vg-tile { display:flex; align-items:center; gap:14px; padding:13px 15px; border:1px solid var(--linha); border-radius:12px; cursor:pointer; transition:border-color .1s, background .1s; }
.vg-tile:hover { border-color:var(--azul); background:var(--azul-cl); }
.vg-tile .vt-n { font-size:27px; font-weight:800; min-width:62px; letter-spacing:-.02em; }
.vg-tile .vt-txt { flex:1; min-width:0; }
.vg-tile .vt-t { font-size:14px; font-weight:700; color:var(--navy); }
.vg-tile .vt-s { font-size:12px; color:var(--cinza); margin-top:1px; }
.vg-tile .vt-go { color:var(--cinza2); font-size:18px; }
/* Gráfico de barras — produtividade mensal */
.pbar { display:flex; align-items:stretch; gap:7px; height:184px; margin-top:18px; }
.pb-col { flex:1; display:flex; flex-direction:column; min-width:0; }
.pb-wrap { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; }
.pb-v { font-size:10.5px; font-weight:800; color:var(--navy); margin-bottom:3px; height:13px; }
.pb-bar { width:66%; max-width:24px; background:linear-gradient(180deg,#16B39F,#12A594); border-radius:5px 5px 0 0; min-height:2px; transition:height .3s; }
.pb-app .pb-bar { background:linear-gradient(180deg,#4F86F2,#2E63EB); }
.pb-lb { text-align:center; margin-top:7px; font-size:10px; color:var(--cinza2); white-space:nowrap; }
.pb-tot { display:flex; gap:20px; margin-top:6px; flex-wrap:wrap; }
.pb-tot span { font-size:11.5px; color:var(--cinza2); }
.pb-tot b { font-size:16px; font-weight:800; margin-right:5px; }
.pb-tot .pt-a b { color:var(--teal); }
.pb-tot .pt-b b { color:var(--cinza2); }
.pb-tot .pt-c b { color:var(--navy); }
.pb-clk { cursor:pointer; }
.pb-clk:hover .pb-bar { filter:brightness(1.08); box-shadow:0 0 0 2px rgba(22,179,159,.25); }
.pb-clk:hover .pb-v { color:var(--teal); }
.pb-sel .pb-bar { outline:2px solid var(--navy); outline-offset:1px; }
.pb-sel .pb-v { color:var(--navy); }
/* Detalhe do mês (unidades concluídas) */
.pb-det { margin-top:14px; border-top:1px solid var(--linha); padding-top:12px; }
.pd-h { font-size:12px; font-weight:800; color:var(--navy); margin-bottom:8px; }
.pd-scroll { max-height:280px; overflow-y:auto; }
.pd-tab { width:100%; border-collapse:collapse; font-size:12px; }
.pd-tab td { padding:6px 8px; border-bottom:1px solid var(--linha); vertical-align:middle; }
.pd-tab tr:last-child td { border-bottom:0; }
.pd-lote { font-weight:700; color:var(--navy); white-space:nowrap; }
.pd-dt { text-align:right; color:var(--cinza2); white-space:nowrap; font-size:11px; }
.pd-tag { display:inline-block; padding:2px 8px; border-radius:999px; font-size:10px; font-weight:800; letter-spacing:.02em; }
.pd-af { background:rgba(22,179,159,.14); color:#0E7C6E; }
.pd-vc { background:rgba(79,134,242,.16); color:#2E63EB; }

/* Funil com conversão */
.fnl { margin-top:14px; display:flex; flex-direction:column; gap:10px; }
.fnl-row { display:grid; grid-template-columns:118px 1fr 46px 42px; align-items:center; gap:10px; }
.fnl-lb { font-size:12.5px; color:var(--tinta); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fnl-bar { height:10px; background:var(--linha); border-radius:6px; overflow:hidden; }
.fnl-bar i { display:block; height:100%; border-radius:6px; }
.fnl-n { font-size:15px; font-weight:800; color:var(--navy); text-align:right; }
.fnl-pct { font-size:11.5px; font-weight:700; color:var(--cinza2); text-align:right; }
@media (max-width:1000px){ .vg-hero, .g2f { grid-template-columns:1fr; } }

/* Agenda — visão master por responsável */
.eq-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:start; }
.eq-col { padding:16px 18px; }
.eq-head { display:flex; align-items:center; gap:11px; padding-bottom:12px; border-bottom:1px solid var(--linha); }
.eq-head .avatar { width:34px; height:34px; border-radius:99px; display:grid; place-items:center; font-size:12px; font-weight:800; }
.eq-head b { font-size:16px; color:var(--navy); flex:1; }
.eq-tot { font-size:12.5px; font-weight:700; color:var(--cinza2); }
.eq-alert { margin:12px 0 2px; font-size:12.5px; font-weight:700; color:var(--verm); background:#FFF0F3; padding:8px 11px; border-radius:9px; }
.eq-grp { display:flex; align-items:center; justify-content:space-between; margin:15px 0 7px; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); }
.eq-grp.r { color:var(--verm); }
.eq-item { display:grid; grid-template-columns:94px 1fr; gap:12px; align-items:center; padding:10px 11px; border:1px solid var(--linha); border-radius:10px; margin-bottom:7px; text-decoration:none; background:#fff; transition:border-color .1s, box-shadow .1s; }
.eq-item:hover { border-color:var(--azul); box-shadow:var(--sombra); }
.eq-item.over { background:#FFF5F7; border-color:#F8D3DC; }
.eq-item.amb { background:#FFF7EC; }
.eq-when { font-size:12px; font-weight:800; color:var(--navy); }
.eq-when small { display:block; font-weight:400; color:var(--faint); font-size:11px; margin-top:2px; }
.eq-when.v { color:var(--verm); } .eq-when.h { color:var(--ambar); }
.eq-txt b { font-size:13.5px; color:var(--navy); font-weight:700; }
.eq-txt span { display:block; font-size:12px; color:var(--cinza); margin-top:2px; }
@media (max-width:900px){ .eq-grid { grid-template-columns:1fr; } }
/* Card "Iniciar acompanhamento" na ficha — trava as ações da etapa até começar */
.inicio-card { border:1px solid #F6C9D3 !important; background:linear-gradient(180deg,#FFF6F8,#fff) !important; }
.inicio-ic { width:60px; height:60px; border-radius:50%; background:var(--verm); color:#fff; display:grid; place-items:center; margin:0 auto 16px; font-size:24px; box-shadow:0 6px 16px rgba(225,29,72,.28); }
.inicio-btn { margin-top:22px; height:48px; padding:0 30px; border:none; border-radius:12px; background:var(--verm); color:#fff; font-family:inherit; font-weight:800; font-size:15px; cursor:pointer; box-shadow:0 6px 16px rgba(225,29,72,.28); transition:filter .12s, transform .12s; }
.inicio-btn:hover { filter:brightness(1.06); transform:translateY(-1px); }
.inicio-btn:active { transform:translateY(0); }
.none { border:1px dashed var(--line); border-radius:10px; padding:16px; text-align:center; color:var(--faint); font-size:13px; margin-bottom:9px; }
.more { display:flex; align-items:center; justify-content:space-between; padding:15px 16px; border:1px solid var(--line); border-radius:10px; background:#FAFCFE; font-size:13.5px; text-decoration:none; color:var(--ink); }
.more b { font-weight:700; } .more span.lk { color:var(--blue); font-weight:700; }
.rtp { padding:18px 20px 20px; }
.rtp .eb { font-size:10.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.rtp h2 { font-size:19px; font-weight:700; letter-spacing:-.02em; margin-top:5px; color:var(--ink); }
.pr { margin-top:18px; cursor:pointer; }
.pr .h { display:flex; align-items:center; gap:11px; margin-bottom:10px; }
.pr .h i { width:31px; height:31px; border-radius:99px; display:grid; place-items:center; font-style:normal; font-size:11px; font-weight:700; }
.pr .nm { font-size:14.5px; font-weight:700; color:var(--ink); } .pr .subn { font-size:12px; color:var(--muted); margin-top:2px; }
.pr .v { margin-left:auto; font-size:22px; font-weight:700; font-variant-numeric:tabular-nums; }
.pr .s { font-size:12px; color:var(--muted); margin-top:8px; }
.pr[data-resp] { padding:10px 12px; margin:10px -12px 0; border-radius:12px; transition:.12s; }
.pr[data-resp]:hover { background:rgba(46,99,235,.05); }
.pr.pr-sel { background:rgba(46,99,235,.08); box-shadow:inset 0 0 0 2px #2E63EB; }
.ag-filtro { display:flex; align-items:center; gap:6px; margin:0 0 14px; padding:9px 14px; border-radius:10px; background:#EEF2FF; color:#3730A3; font-size:13px; }
.ag-filtro b { font-weight:800; }
.ag-filtro-x { border:0; background:transparent; color:#2E63EB; font-weight:700; cursor:pointer; text-decoration:underline; padding:0; font-size:13px; }
.warn { margin-top:20px; background:var(--amber-bg); border:1px solid #F6E1BE; border-radius:11px; padding:17px 18px; }
.warn .eb { font-size:10.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#A96400; }
.warn .n { font-size:27px; font-weight:700; letter-spacing:-.03em; margin-top:7px; color:var(--ink); }
.warn .s { font-size:12.5px; color:#7C5A22; margin-top:6px; line-height:1.5; }
.warn .btn { margin-top:14px; }

/* =================================================================== */
/*  REFINAMENTO DE HARMONIA — tipografia, alinhamento e destaque       */
/* =================================================================== */
body, button, input, select, textarea { font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; }

/* Escala tipográfica única (aplicada a todos os painéis) */
.titulo, h1 { font-size:29px; font-weight:800; letter-spacing:-.025em; line-height:1.1; }
.eyebrow { font-size:11px; font-weight:700; letter-spacing:.13em; }
.lead, .subtitulo { font-size:13.5px; color:var(--muted); line-height:1.5; }
.sec .t { font-size:11.5px; }
.card-title, .tt .t, .ch .t { font-size:15.5px; font-weight:700; letter-spacing:-.01em; color:var(--ink); }
.kpi .n, .kpi .num { font-size:29px; font-weight:800; }
.kpi .l, .kpi .rot { font-size:10.5px; font-weight:700; letter-spacing:.1em; }
.kpi .h, .kpi .leg { font-size:12px; }

/* Cabeçalho de card unificado (telas antigas → mesmo padrão do novo) */
.card-head { padding:18px 22px 2px; align-items:baseline; }
.card-head .link { font-size:12.5px; color:var(--blue); font-weight:700; }

/* Números sempre tabulares e alinhados */
.kpi .n, .kpi .num, .kpi .v, .n, .num, .cg-total, .er-num b, .er-un, .plb-n, .cc-total,
.mini .v, .rline u, .lrow .r u, .frow .n, .arow .n, .pr .v, .lrow2 .h .v, .big .p, .warn .n, .ch .n
{ font-variant-numeric:tabular-nums; }

/* Pills neutras e consistentes (mesma altura, cor com dono) */
.pill { padding:5px 11px; border-radius:99px; font-size:11px; font-weight:700; letter-spacing:.02em; line-height:1; }
.p-cinza { background:var(--line2); color:var(--muted); }
.p-azul { background:var(--blue-bg); color:var(--blue); } .p-azulS { background:var(--blue); color:#fff; }
.p-teal { background:var(--teal-bg); color:var(--teal); } .p-verdeS { background:var(--teal); color:#fff; }
.p-roxo { background:var(--violet-bg); color:var(--violet); }
.p-ambar { background:var(--amber-bg); color:#A96400; }
.p-verm { background:var(--red-bg); color:var(--red); }

/* Card em destaque (principal de cada tela): realce sutil no topo */
.card.destaque { border-top:3px solid var(--blue); box-shadow:0 6px 18px -8px rgba(46,99,235,.35), var(--sombra); }
.kpis { box-shadow:0 4px 14px -6px rgba(15,27,46,.10); }

/* Alinhamento consistente das caixas */
.kpi { text-align:left; }
.tt { padding:0; }
.sec { margin:28px 0 12px; }

/* Botões consistentes */
.btn { height:40px; padding:0 16px; border-radius:10px; font-size:13.5px; font-weight:600; display:inline-flex; align-items:center; gap:7px; border:1px solid var(--line); background:#fff; color:var(--ink); }
.btn:hover { border-color:var(--blue); }
.btn svg { width:16px; height:16px; }
.btn.sm { height:32px; padding:0 12px; font-size:12.5px; }

/* ----- KPIs como cards flutuantes (mais destaque) ----- */
.kpis { display:grid; gap:14px; background:none; border:0; border-radius:0; box-shadow:none; overflow:visible; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); }
.kpis[style*="--kc"] { grid-template-columns:repeat(var(--kc),1fr); }
.kpi { background:var(--card); border:1px solid var(--line); border-right:1px solid var(--line); border-radius:14px; padding:18px 20px 16px; box-shadow:0 3px 12px -2px rgba(15,27,46,.08); transition:transform .13s ease, box-shadow .13s ease, border-color .13s ease; position:relative; overflow:hidden; }
.kpi::after { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--slate); opacity:.55; }
.kpi.clic { cursor:pointer; }
.kpi.clic:hover { transform:translateY(-4px); box-shadow:0 16px 30px -10px rgba(15,27,46,.22); border-color:var(--blue); }
.kpi .n, .kpi .num { font-size:30px; font-weight:800; margin-top:10px; }
.kpi .l, .kpi .rot { color:var(--muted); }
/* accent lateral por tipo de dica (cor com dono) */
.kpi:has(.h.g)::after, .kpi.k-g::after { background:var(--teal); opacity:1; }
.kpi:has(.h.a)::after, .kpi.k-a::after { background:var(--amber); opacity:1; }
.kpi:has(.h.r)::after, .kpi.k-r::after, .kpi.dgr::after { background:var(--red); opacity:1; }
.kpi.k-v::after { background:var(--violet); opacity:1; }
.kpi.k-s::after { background:var(--slate); opacity:1; }
.kpi.dgr { background:var(--red-bg); }

/* ----- Seção executiva: card-herói (principal) + cards ----- */
.kpi-exec { display:grid; grid-template-columns:1.05fr 2.6fr; gap:14px; align-items:stretch; }
@media (max-width:1000px){ .kpi-exec { grid-template-columns:1fr; } }
.kpi-hero { display:flex; flex-direction:column; justify-content:center; gap:2px; padding:22px 26px; border-radius:16px; text-decoration:none; position:relative; overflow:hidden;
  background:linear-gradient(150deg,#1b2c49,#0F1B2E 70%); color:#fff; box-shadow:0 14px 30px -12px rgba(15,27,46,.55); transition:transform .13s ease, box-shadow .13s ease; }
.kpi-hero::after { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(180deg,#EFC96B,#C08A18); }
.kpi-hero:hover { transform:translateY(-4px); box-shadow:0 20px 38px -12px rgba(15,27,46,.6); }
.kpi-hero .l { font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.62); }
.kpi-hero .n { font-size:46px; font-weight:800; letter-spacing:-.04em; line-height:1; margin:10px 0 6px; font-variant-numeric:tabular-nums; }
.kpi-hero .h { font-size:13px; color:rgba(255,255,255,.72); font-weight:500; }

/* ----- Composição: dois grupos, escala única ----- */
.comp2 { display:grid; grid-template-columns:1fr 1fr; gap:14px 34px; padding:20px 22px 22px; }
@media (max-width:900px){ .comp2 { grid-template-columns:1fr; } }
.comp-col { display:flex; flex-direction:column; }
.comp-h { font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); padding:0 0 12px; display:flex; align-items:baseline; gap:8px; border-bottom:1px solid var(--line2); margin-bottom:6px; }
.comp-h b { font-size:16px; color:var(--ink); letter-spacing:-.02em; margin-left:auto; }
.comprow { display:grid; grid-template-columns:12px 1fr 34% 48px; align-items:center; gap:12px; padding:11px 6px; border-radius:8px; }
.comprow[data-href] { cursor:pointer; } .comprow[data-href]:hover { background:var(--line2); }
.comprow .dot { width:10px; height:10px; border-radius:99px; }
.comp-lb { font-size:13.5px; font-weight:600; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.comp-sub { font-size:11.5px; color:var(--muted); font-weight:500; }
.comp-track { height:9px; border-radius:99px; background:#EDF1F7; overflow:hidden; }
.comp-track i { display:block; height:100%; border-radius:99px; }
.comp-n { text-align:right; font-size:16px; font-weight:800; font-variant-numeric:tabular-nums; }

.pf-grid[hidden] { display: none !important; }
.mov-item.mov-man { grid-template-columns:110px 1fr auto; }
.mov-acoes { display:flex; gap:6px; align-items:flex-start; }
.mov-btn { border:1px solid var(--line,#e3e7ee); background:transparent; color:var(--cinza2,#64748b); font-size:12px; padding:3px 9px; border-radius:7px; cursor:pointer; white-space:nowrap; }
.mov-btn:hover { color:#2563EB; border-color:#2563EB; }
.mov-btn.perigo:hover { color:#DC2626; border-color:#DC2626; }
/* Contato do adquirente na ficha do contrato */
.ct-linha { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.ct-chip { display:inline-flex; align-items:center; gap:6px; padding:5px 11px; border:1px solid var(--borda);
  border-radius:99px; background:#fff; color:var(--tinta); font-size:12.5px; font-weight:600; text-decoration:none;
  transition:border-color .12s, background .12s, color .12s; }
.ct-chip svg { width:14px; height:14px; color:var(--cinza); }
.ct-chip:hover { border-color:var(--azul); color:var(--azul); }
.ct-chip:hover svg { color:var(--azul); }
.ct-chip.ct-zap:hover { border-color:#12A594; color:#0E7C6F; background:#EDFBF7; }
.ct-chip.ct-zap:hover svg { color:#0E7C6F; }
.ct-linha.ct-vazio { font-size:12px; color:var(--cinza2); font-style:italic; }
.ct-chip .ct-rot { font-style:normal; font-size:11px; color:var(--cinza2); font-weight:700; letter-spacing:.02em; }
.ct-chip.ct-ico { padding:5px 8px; }
.ct-mail { display:inline-flex; align-items:center; gap:0; }
.ct-mail .ct-chip:first-child { border-top-right-radius:0; border-bottom-right-radius:0; border-right:none; }
.ct-mail .ct-mais { border-top-left-radius:0; border-bottom-left-radius:0; cursor:pointer; }
.ct-mail .ct-mais svg { width:12px; height:12px; }
.ct-menu { position:absolute; z-index:60; min-width:232px; background:#fff; border:1px solid var(--borda);
  border-radius:12px; box-shadow:0 12px 32px rgba(15,27,46,.16); padding:6px; display:flex; flex-direction:column; }
.ct-menu a, .ct-menu button { display:block; width:100%; text-align:left; padding:9px 12px; border:none; background:none;
  border-radius:8px; font:inherit; font-size:13px; font-weight:600; color:var(--tinta); text-decoration:none; cursor:pointer; }
.ct-menu a span { display:block; font-size:11.5px; font-weight:500; color:var(--cinza2); margin-top:2px; }
.ct-menu a:hover, .ct-menu button:hover { background:var(--azul-cl); color:var(--azul); }
/* Canais do contato (marcação múltipla dentro da gaveta) */
.campo .canais { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:8px; }
.campo .canais .campo-check { flex:0 0 auto; }
/* Equipe configurável — operador da esteira e cores extras de avatar */
.up-esteira { background:rgba(46,99,235,.12); color:#2E63EB; }
.a-teal { background:var(--teal); } .a-ambar { background:#E07B00; } .a-rosa { background:#E11D48; }

/* Equipe e prazos por etapa (Configurações) */
.eq-intro { margin:0 22px 6px; font-size:12.5px; color:var(--cinza); line-height:1.55; max-width:980px; }
.eq-legenda { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--cinza2); }
.eq-grupo { margin:18px 0 2px; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--cinza); }
.eq-lin { display:grid; grid-template-columns:minmax(150px,1.1fr) 104px minmax(300px,3fr) 190px; gap:14px; align-items:center; padding:10px 0; border-top:1px solid var(--linha); }
.eq-lin.eq-cab { border-top:none; padding:6px 0 4px; font-size:11px; font-weight:700; color:var(--cinza2); text-transform:uppercase; letter-spacing:.04em; }
.eq-lin.eq-sub { border-top:1px dashed var(--linha); padding:7px 0; }
.eq-lin.eq-sub .eq-rot { padding-left:14px; font-weight:600; color:var(--cinza); }
.eq-rot { font-weight:700; color:var(--navy); font-size:13.5px; }
.eq-rot small { display:block; font-weight:500; font-size:11.5px; color:var(--cinza2); margin-top:2px; }
.eq-prazo { display:flex; align-items:center; gap:6px; }
.eq-prazo input { width:62px; }
.eq-prazo span { color:var(--cinza); font-size:12.5px; }
.eq-chips { display:flex; flex-wrap:wrap; gap:6px; }
.eq-div { font-size:12.5px; }
.eq-herda { font-size:11.5px; color:var(--cinza2); font-style:italic; }
.eq-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 10px 4px 4px; border-radius:99px; font:inherit; font-size:12.5px; font-weight:600;
  border:1.5px dashed var(--borda); background:#fff; color:var(--cinza2); cursor:pointer; transition:all .12s; }
.eq-chip i { font-style:normal; width:22px; height:22px; border-radius:50%; display:grid; place-items:center; font-size:10px; font-weight:800; background:var(--linha); color:var(--cinza); }
.eq-chip .eq-tag { font-size:10.5px; font-weight:700; letter-spacing:.02em; }
.eq-chip[data-estado="op"] { border:1.5px solid var(--c); background:var(--cbg); color:var(--c); }
.eq-chip[data-estado="op"] i { background:var(--c); color:#fff; }
.eq-chip[data-estado="op"] .eq-tag::before { content:"· opera"; }
.eq-chip[data-estado="ac"] { border:1.5px solid var(--c); background:#fff; color:var(--c); }
.eq-chip[data-estado="ac"] i { background:var(--cbg); color:var(--c); }
.eq-chip[data-estado="ac"] .eq-tag::before { content:"· acompanha"; }
.eq-legenda .eq-chip { cursor:default; }
@media (max-width: 900px) { .eq-lin { grid-template-columns:1fr 90px; } .eq-lin .eq-chips, .eq-lin .eq-div, .eq-lin .eq-herda { grid-column:1 / -1; } .eq-lin.eq-cab { display:none; } }
.ag-acomp { display:inline-block; margin-left:6px; padding:1px 7px; border-radius:99px; font-size:10.5px; font-weight:700; background:var(--linha); color:var(--cinza); vertical-align:middle; }
.imp-prot { margin-top:12px; padding:11px 14px; border-radius:10px; background:var(--teal-cl); color:var(--tinta); font-size:12.5px; line-height:1.5; }
/* Janela de erro: sempre "o que aconteceu" + "o que fazer" */
.erro-box { border-left:3px solid var(--verm); padding:2px 0 2px 14px; }
.erro-box .erro-rot { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--verm); margin-top:10px; }
.erro-box .erro-rot:first-child { margin-top:0; }
.erro-box p { margin:4px 0 0; color:var(--tinta); font-size:13.5px; line-height:1.5; }
/* Configurações → Empreendimentos */
.emp-cfg { display:grid; grid-template-columns:108px minmax(160px,1.2fr) minmax(160px,1fr) minmax(190px,1.3fr) 160px auto; gap:14px; align-items:center; padding:12px 0; border-top:1px solid var(--linha); }
.emp-cfg:first-child { border-top:none; }
.ec-nome b { display:block; color:var(--navy); font-size:14px; }
.ec-nome span { font-size:12px; color:var(--cinza2); }
.ec-aba { display:flex; flex-direction:column; gap:3px; font-size:11px; color:var(--cinza2); font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.ec-aba input { font-size:13px; text-transform:none; letter-spacing:0; font-weight:500; }
.ec-aba input.salvo { border-color:var(--teal); box-shadow:0 0 0 3px var(--teal-cl); }
.ec-base { font-size:12.5px; color:var(--tinta); }
.ec-base small { display:block; color:var(--cinza2); font-size:11.5px; margin-top:2px; }
.ec-vazia { color:var(--cinza2); font-style:italic; }
.ec-cons { margin:0 !important; }
.er-fora { font-style:normal; font-size:11px; font-weight:700; color:#B45309; background:#FEF3DC; padding:1px 7px; border-radius:99px; }
@media (max-width: 1000px) { .emp-cfg { grid-template-columns:1fr 1fr; } }

/* ---------- Heroes da Visão Geral: consolidado grande + coluna de empreendimentos ---------- */
.hero-fila { display:grid; grid-template-columns:1fr 1fr; gap:16px; align-items:stretch; }
.hero-esq { display:flex; flex-direction:column; gap:16px; min-width:0; }
.hero-consol { padding:18px 22px; border-radius:18px; }
.hero-consol .eb { font-size:11.5px; }
.hero-consol .huge { font-size:clamp(34px,3.5vw,52px); margin:5px 0 3px; }
.hero-consol .huge small { font-size:.44em; }
.hero-consol .hsub { font-size:14px; }
.hero-consol .hero-meta { gap:22px; font-size:12.5px; margin-top:14px; }
.hero-consol .hero-meta b { font-size:21px; }
.hero-consol .hero-meta b small { font-size:13px; }
.hero-consol .excl-nota { font-size:11px; margin-top:9px; padding-left:8px; }
.hero-consol .hero-prog { height:10px; margin:34px 0 3px; }   /* a bandeira da meta fica acima da barra */   /* espaço para a bandeira da meta */

/* a coluna acompanha a altura do hero e rola sozinha quando entrarem mais empreendimentos */
.hero-col { display:flex; flex-direction:column; min-height:0; }
/* todos os empreendimentos à vista — a coluna cresce e o medidor embaixo do hero acompanha */
.hcol-lista { display:flex; flex-direction:column; gap:10px; }

.emp-mini { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px; flex:none;
  border-radius:15px; padding:14px 18px; color:#fff; cursor:pointer;
  box-shadow:0 8px 20px -12px rgba(15,27,46,.5); transition:transform .12s, box-shadow .12s; }
.emp-mini:hover { transform:translateY(-1px); box-shadow:0 12px 24px -12px rgba(15,27,46,.55); }
.emp-mini.c-teal { background:linear-gradient(120deg,#06302C 0%,#0D6155 55%,#12A594 145%); }
.emp-mini.c-violeta { background:linear-gradient(120deg,#221046 0%,#4A2391 55%,#8B5CF6 145%); }
.emp-mini.c-ambar { background:linear-gradient(120deg,#3A2205 0%,#8A5A17 55%,#E07B00 145%); }
.emp-mini.c-azul { background:linear-gradient(120deg,#0B2447 0%,#1D4FD8 55%,#4F84FF 145%); }
.emp-mini.c-rosa { background:linear-gradient(120deg,#42061A 0%,#9F1239 55%,#E11D48 145%); }
.emp-mini.c-verde { background:linear-gradient(120deg,#0A3321 0%,#15803D 55%,#22C55E 145%); }
.emp-mini.c-indigo { background:linear-gradient(120deg,#1E1B4B 0%,#3730A3 55%,#6366F1 145%); }
.emp-mini.c-ciano { background:linear-gradient(120deg,#083344 0%,#0E7490 55%,#06B6D4 145%); }
.emp-mini.c-cobre { background:linear-gradient(120deg,#3B1106 0%,#9A3412 55%,#EA580C 145%); }
.emp-mini.c-grafite { background:linear-gradient(120deg,#0F172A 0%,#334155 55%,#64748B 145%); }
.em-info { min-width:0; }
.em-top { display:flex; align-items:center; gap:7px; }
.em-nome { font-size:14.5px; font-weight:800; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.em-selo { font-size:10px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; flex:none;
  background:rgba(255,255,255,.24); border-radius:99px; padding:2px 7px; }
.em-prog { position:relative; height:7px; border-radius:5px; background:rgba(255,255,255,.22); margin:8px 0 7px; }
.em-prog i { display:block; height:100%; border-radius:5px; background:rgba(255,255,255,.92); }
.em-mk { position:absolute; top:-2px; bottom:-2px; width:3px; border-radius:2px; background:#FFB020; }
.em-nums { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12.5px; opacity:.85; }
.em-nums b { font-weight:800; opacity:1; }
.em-pct { font-size:clamp(28px,2.6vw,38px); font-weight:800; line-height:1; letter-spacing:-.03em; }
.em-pct small { font-size:.42em; opacity:.7; font-weight:700; margin-left:1px; }
.em-fora { opacity:.9; }
/* cadastrado sem base: mesma cara, sem número — espaço reservado do que vem pela frente */
.emp-mini.em-vazio { background:#fff; color:var(--cinza); border:1px dashed var(--borda); box-shadow:none; position:relative; overflow:hidden; cursor:default; }
.emp-mini.em-vazio::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; }
.emp-mini.em-vazio.c-teal::before { background:#12A594; } .emp-mini.em-vazio.c-violeta::before { background:#8B5CF6; }
.emp-mini.em-vazio.c-ambar::before { background:#E07B00; } .emp-mini.em-vazio.c-azul::before { background:#2E63EB; }
.emp-mini.em-vazio.c-rosa::before { background:#E11D48; } .emp-mini.em-vazio.c-verde::before { background:#22C55E; }
.emp-mini.em-vazio.c-indigo::before { background:#6366F1; } .emp-mini.em-vazio.c-ciano::before { background:#06B6D4; }
.emp-mini.em-vazio.c-cobre::before { background:#EA580C; } .emp-mini.em-vazio.c-grafite::before { background:#64748B; }
.emp-mini.em-vazio[data-href] { cursor:pointer; }
.emp-mini.em-vazio:hover { border-color:var(--azul); transform:none; box-shadow:none; }
.em-vazio .em-nome { color:var(--navy); }
.em-vazio .em-selo { background:var(--borda); color:var(--cinza); }
.em-prog-vazia { height:7px; border-radius:5px; background:var(--line2); margin:8px 0 7px; }
.em-nums-vazia { font-size:12px; color:var(--cinza2); opacity:1; }
.em-pct-vazio { color:var(--borda); font-weight:800; }

/* medidor de ritmo — ocupa o espaço embaixo do hero */
.hero-gauge { flex:1; display:flex; flex-direction:column; padding:16px 20px 18px; }
.gauge-wrap { display:flex; justify-content:center; align-items:center; flex:1; padding:6px 0 2px; }
.gauge-leg { display:flex; flex-direction:column; gap:6px; font-size:13.5px; color:var(--cinza); }
.gauge-leg div { display:flex; align-items:center; gap:7px; }
.gauge-leg i { width:9px; height:9px; border-radius:3px; flex:none; }
.gauge-leg b { margin-left:auto; color:var(--navy); font-weight:800; }
.gauge-proj { margin-top:11px; padding-top:11px; border-top:1px solid var(--line2); font-size:13px; color:var(--cinza2); line-height:1.5; }
.gauge-proj b { color:var(--navy); }

.hero-abaixo { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px; }
.reg-mes .rm-lista { padding:4px 2px 2px; }
.rm-row { display:grid; grid-template-columns:1fr auto auto auto; align-items:center; gap:12px; padding:9px 2px;
  border-bottom:1px solid var(--line2); color:var(--tinta); text-decoration:none; }
.rm-row:last-child { border-bottom:0; }
.rm-cli { font-size:13.5px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rm-row:hover .rm-cli { color:var(--azul); text-decoration:underline; }
.rm-emp { font-size:12.5px; color:var(--cinza2); white-space:nowrap; }
.rm-tipo { font-size:10.5px; font-weight:800; padding:3px 9px; border-radius:99px; background:var(--azul-cl); color:var(--azul); }
.rm-dt { font-size:12px; color:var(--cinza2); white-space:nowrap; }
.rm-mais { display:inline-block; margin-top:10px; font-size:12.5px; font-weight:700; color:var(--azul); text-decoration:none; }
@media (max-width:1100px) {
  .hero-fila { grid-template-columns:1fr; }
  .hcol-lista { max-height:none; }
  .hero-abaixo { grid-template-columns:1fr; }
}

/* ---------- Meta por empreendimento (Configurações) ---------- */
.meta-emp { border-top:1px solid var(--borda); padding:14px 22px 18px; }
.me-tit { font-size:13px; font-weight:800; color:var(--navy); }
.me-sub { color:var(--cinza2); font-size:12.5px; margin:4px 0 12px; line-height:1.5; }
.me-lin { display:grid; grid-template-columns:1fr 110px 130px; gap:12px; align-items:center; padding:7px 0; border-top:1px solid var(--line2); }
.me-lin:first-of-type { border-top:0; }
.me-cab { font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); border-top:0; padding-bottom:2px; }
.me-nome { font-size:13.5px; font-weight:700; color:var(--tinta); display:flex; flex-direction:column; }
.me-nome span { font-size:11.5px; font-weight:500; color:var(--cinza2); }
.me-lin input { width:100%; height:34px; border:1px solid var(--borda); border-radius:9px; padding:0 10px; font-family:inherit; font-size:13.5px; color:var(--tinta); background:#fff; }
.me-lin input:focus { outline:none; border-color:var(--azul); box-shadow:0 0 0 3px var(--azul-cl); }

/* ---------- Logos dos empreendimentos ---------- */
/* selo branco: as logos têm fundos diferentes (transparente, verde, sálvia) e todas leem bem sobre branco */
/* flex + altura máxima em px: "max-height:100%" não resolve dentro de grid e as logos
   mais altas que largas (Central Park, Haras Larissa, Portal Bordon) saíam cortadas */
.logo-emp { display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box; flex:none; background:#fff; border:1px solid var(--borda); border-radius:12px; padding:6px 10px; overflow:hidden; }
.logo-emp img { display:block; width:auto; height:auto; max-width:100%; object-fit:contain; }
.ficha-id, .emp-id { display:flex; align-items:center; gap:18px; min-width:0; }
/* ficha do contrato: logo pequena, na linha do nome do empreendimento */
.ficha-emp { display:flex; align-items:center; gap:8px; margin-bottom:9px; }
.ficha-emp .eyebrow { margin-bottom:0; }
.logo-eyebrow { width:auto; height:28px; padding:3px 7px; border-radius:8px; }
.logo-eyebrow img { height:22px; width:auto; max-width:90px; max-height:22px; }
.logo-pag { width:150px; height:86px; }
.logo-pag img { max-height:72px; }
.logo-card { width:62px; height:36px; padding:3px 6px; border-radius:8px; border:0; box-shadow:0 2px 8px rgba(0,0,0,.2); margin-right:3px; }
.logo-card img { max-height:30px; }
.em-vazio .logo-card { border:1px solid var(--borda); box-shadow:none; }
.er-com-logo { display:flex; align-items:center; gap:12px; min-width:0; }
.er-com-logo > div { min-width:0; display:flex; flex-direction:column; }
.logo-lista { width:68px; height:40px; padding:3px 7px; border-radius:9px; }
.logo-lista img { max-height:32px; }
.ec-logo { display:flex; flex-direction:column; align-items:center; gap:4px; width:108px; flex:none; }
.logo-cfg { width:100px; height:54px; }
.logo-cfg img { max-height:40px; }
.logo-vazia { display:grid; place-items:center; width:100px; height:54px; border:1px dashed var(--borda); border-radius:12px; font-size:11px; color:var(--cinza2); }
.ec-logo-acts { display:flex; gap:8px; }
.lk { background:none; border:0; padding:0; font:inherit; font-size:12px; font-weight:700; color:var(--azul); cursor:pointer; }
.lk:hover { text-decoration:underline; }
.lk-cinza { color:var(--cinza2); }
@media (max-width:900px) { .logo-pag { width:96px; height:56px; } .logo-pag img { max-height:42px; } }

/* ---------- Tema do empreendimento: a página de cada um segue a cor dele ---------- */
/* e1/e2/e3 = as mesmas três paradas do gradiente do card do empreendimento no painel */
.tema-emp.tema-teal    { --e1:#06302C; --e2:#0D6155; --e3:#12A594; --e-rgb:18,165,148; }
.tema-emp.tema-violeta { --e1:#221046; --e2:#4A2391; --e3:#8B5CF6; --e-rgb:139,92,246; }
.tema-emp.tema-ambar   { --e1:#3A2205; --e2:#8A5A17; --e3:#E07B00; --e-rgb:224,123,0; }
.tema-emp.tema-azul    { --e1:#0B2447; --e2:#1D4FD8; --e3:#4F84FF; --e-rgb:46,99,235; }
.tema-emp.tema-rosa    { --e1:#42061A; --e2:#9F1239; --e3:#E11D48; --e-rgb:225,29,72; }
.tema-emp.tema-verde   { --e1:#0A3321; --e2:#15803D; --e3:#22C55E; --e-rgb:34,197,94; }
.tema-emp.tema-indigo  { --e1:#1E1B4B; --e2:#3730A3; --e3:#6366F1; --e-rgb:99,102,241; }
.tema-emp.tema-ciano   { --e1:#083344; --e2:#0E7490; --e3:#06B6D4; --e-rgb:6,182,212; }
.tema-emp.tema-cobre   { --e1:#3B1106; --e2:#9A3412; --e3:#EA580C; --e-rgb:234,88,12; }
.tema-emp.tema-grafite { --e1:#0F172A; --e2:#334155; --e3:#64748B; --e-rgb:100,116,139; }

.tema-emp .hd.hd-emp { --hd-a:rgba(var(--e-rgb),.15); --hd-b:rgba(var(--e-rgb),.05); --hd-e1:var(--e2); --hd-e2:var(--e3); --hd-pill:rgba(var(--e-rgb),.16); }
.tema-emp .bigstat-total { background:linear-gradient(135deg,var(--e1) 0%,var(--e2) 120%); }
.tema-emp .hero-big { background:linear-gradient(135deg,var(--e1) 0%,var(--e2) 55%,var(--e3) 135%); box-shadow:0 12px 30px -12px rgba(var(--e-rgb),.5); }
/* a barra de progresso vira branca: verde-água sobre um hero verde sumiria */
.tema-emp .hero-prog i { background:rgba(255,255,255,.92); box-shadow:0 0 12px rgba(255,255,255,.3); }
.tema-emp .btn.cta { background:linear-gradient(135deg,var(--e2),var(--e3)); box-shadow:0 8px 20px -6px rgba(var(--e-rgb),.6); }
.tema-emp .btn.cta:hover { box-shadow:0 10px 26px -6px rgba(var(--e-rgb),.7); }
.tema-emp .btn.contorno { border-color:var(--e2); color:var(--e2); }
.tema-emp .btn.contorno:hover { background:rgba(var(--e-rgb),.08); }

/* ---------- Alinhamento com a fileira de 6 cards (Visão Geral e página do empreendimento) ---------- */
/* Toda seção de duas colunas usa a mesma grade dos cards de cima (1,35fr + 5×1fr, mesmo vão):
   o bloco da esquerda ocupa as colunas 1–3 e o da direita as 4–6, então a divisão cai sempre no
   vão entre o 3º e o 4º card e as bordas externas batem com o 1º e o 6º, em qualquer largura. */
:is(.hero-fila, .hero-abaixo, .exec-hero, .g2b, .g2f, .vg-hero) {
  grid-template-columns:1.35fr repeat(5,minmax(0,1fr)); gap:clamp(8px,0.8vw,12px);
}
:is(.hero-fila, .hero-abaixo, .exec-hero, .g2b, .g2f, .vg-hero) > :nth-child(1) { grid-column:1 / 4; }
:is(.hero-fila, .hero-abaixo, .exec-hero, .g2b, .g2f, .vg-hero) > :nth-child(2) { grid-column:4 / 7; }
:is(.hero-fila, .hero-abaixo, .exec-hero, .g2b, .g2f, .vg-hero) > :only-child { grid-column:1 / -1; }
.hero-esq, .hcol-lista { gap:clamp(8px,0.8vw,12px); }
@media (max-width:1100px) {
  :is(.hero-fila, .hero-abaixo, .exec-hero, .g2b, .g2f, .vg-hero) { grid-template-columns:1fr; }
  /* mesma força das regras de coluna (classe + :nth-child); por vir depois, vence em tela estreita */
  :is(.hero-fila, .hero-abaixo, .exec-hero, .g2b, .g2f, .vg-hero) > :nth-child(n) { grid-column:1 / -1; }
}

/* ---------- Rosca de composição (moderna) ---------- */
/* rosca grande centralizada; legenda em lista logo abaixo, alinhada à esquerda do card */
.pie-in { flex-direction:column; align-items:center; gap:12px; margin-top:6px; }
.pie-in .donut-wrap { order:1; padding:4px 0 0; width:100%; max-width:380px; justify-content:center; }
.donut-box { position:relative; width:100%; display:flex; justify-content:center; }
.donut-box circle[data-seg] { cursor:pointer; transition:stroke-width .15s ease, opacity .15s ease; }
.donut-box.ativa circle[data-seg] { opacity:.45; }
.donut-box.ativa circle[data-seg].on { opacity:1; stroke-width:50; }
.donut-tip { position:absolute; z-index:5; min-width:190px; max-width:260px; pointer-events:none; background:#0F1B2E; color:#fff;
  border-radius:12px; padding:10px 12px; box-shadow:0 12px 28px -10px rgba(15,27,46,.6); font-size:12px; }
.dt-tit { display:flex; align-items:center; gap:7px; font-weight:800; font-size:12.5px; }
.dt-tit i { width:9px; height:9px; border-radius:3px; flex:none; }
.dt-num { margin-top:3px; color:rgba(255,255,255,.72); }
.dt-num b { color:#fff; }
.dt-emps { margin-top:8px; padding-top:8px; border-top:1px solid rgba(255,255,255,.14); display:flex; flex-direction:column; gap:4px; }
.dt-emp { display:grid; grid-template-columns:1fr auto 38px; gap:8px; align-items:center; }
.dt-emp span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:rgba(255,255,255,.85); }
.dt-emp em { font-style:normal; text-align:right; color:rgba(255,255,255,.6); font-weight:700; }
/* legenda: só a cor e o nome de cada indicador — clicável, abre os contratos */
.pie-in .vg-lg { order:2; display:flex; flex-direction:column; align-items:flex-start; gap:6px; width:100%; margin:0; align-self:flex-start; }
.lg-chip { display:inline-flex; align-items:center; gap:5px; border:0; background:none; padding:1px 0;
  font:inherit; font-size:11px; font-weight:500; color:var(--cinza2); cursor:pointer; transition:color .12s; }
.lg-chip:hover { color:var(--navy); }
.lg-chip i { width:7px; height:7px; border-radius:99px; flex:none; }
/* rosca embaixo do hero (Visão Geral): ocupa a altura que sobra ao lado da coluna dos empreendimentos */
.pie-esq { flex:1; display:flex; flex-direction:column; }
.pie-esq .pie-in { flex:1; justify-content:center; }

/* ---------- Termos de Custas ---------- */
.tc-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.6fr); gap:clamp(8px,0.8vw,12px); }
.tc-kpi { background:#fff; border:1px solid var(--borda); border-left:4px solid var(--acc,#94A3B8); border-radius:14px; padding:14px 16px; cursor:pointer; display:flex; flex-direction:column; gap:2px; transition:box-shadow .12s; }
.tc-kpi:hover { box-shadow:var(--sombra); }
.tc-kpi.on { box-shadow:0 0 0 2px var(--acc) inset; }
.tc-kpi b { font-size:30px; font-weight:800; color:var(--acc,#0B1F3A); line-height:1.05; }
.tc-kpi span { font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--navy); }
.tc-kpi em { font-style:normal; font-size:12px; color:var(--cinza2); }
.tc-kpi-valor { cursor:default; background:linear-gradient(135deg,#0F1B2E,#1E3358); border:0; }
.tc-kpi-valor b, .tc-kpi-valor span { color:#fff; }
.tc-kpi-valor em { color:rgba(255,255,255,.72); }
.tc-filtros { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:14px 18px; border-bottom:1px solid var(--line2); }
.tc-filtros select, .tc-filtros input { height:36px; border:1px solid var(--borda); border-radius:9px; padding:0 10px; font:inherit; font-size:13px; background:#fff; }
.tc-filtros input { min-width:220px; flex:1; max-width:380px; }
.tc-conta { margin-left:auto; font-size:12.5px; color:var(--cinza2); font-weight:600; }
.tc-wrap { overflow-x:auto; }
.tc-tab { width:100%; border-collapse:collapse; }
.tc-tab th { text-align:left; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza2); padding:10px 14px; border-bottom:1px solid var(--line2); white-space:nowrap; }
.tc-tab td { padding:10px 14px; border-bottom:1px solid var(--line2); font-size:13px; color:var(--tinta); vertical-align:middle; }
.tc-tab tbody tr { cursor:pointer; }
.tc-tab tbody tr:hover { background:var(--fundo); }
.tc-lote { display:flex; align-items:center; gap:10px; }
.tc-lote div { display:flex; flex-direction:column; }
.tc-lote b { font-weight:800; color:var(--navy); }
.tc-lote span, .tc-cli span, .tc-num span { display:block; font-size:11.5px; color:var(--cinza2); }
.tc-parc { display:flex; flex-direction:column; gap:5px; min-width:120px; }
.tc-parc .trk { height:7px; border-radius:5px; background:var(--line2); overflow:hidden; }
.tc-parc .trk i { display:block; height:100%; background:#12A594; border-radius:5px; }
.tc-parc span { font-size:12px; color:var(--cinza); }
.tc-venc { color:var(--verm) !important; font-weight:700; }
.tc-etapa { display:block; font-size:11.5px; color:var(--cinza2); margin-top:4px; }
@media (max-width:1100px) { .tc-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } .tc-kpi-valor { grid-column:1 / -1; } }

/* ---------- Situação comercial dos lotes ---------- */
.cm-card .tt { flex-wrap:wrap; gap:8px 16px; }
.cm-legenda { display:flex; flex-wrap:wrap; gap:4px 14px; }
.cm-leg { display:inline-flex; align-items:center; gap:5px; font-size:11.5px; color:var(--cinza); font-weight:600; }
.cm-leg i, .cm-nums i { width:8px; height:8px; border-radius:99px; flex:none; display:inline-block; }
.cm-sub { margin:4px 0 0; font-size:12px; color:var(--cinza2); }
.cm-lista { display:flex; flex-direction:column; margin-top:10px; }
.cm-linha { display:grid; grid-template-columns:minmax(170px,230px) minmax(0,1fr); gap:18px; align-items:center; padding:12px 18px; border-top:1px solid var(--line2); }
.cm-linha:first-child { border-top:0; }
.cm-linha[data-emp] { cursor:pointer; } .cm-linha[data-emp]:hover { background:var(--fundo); }
/* carteira consolidada em destaque: mesma paleta do hero consolidado */
.cm-cons { background:linear-gradient(120deg,#0B1F3A 0%,#14346E 62%,#1B4FD8 135%); border-radius:14px; padding:16px 18px; margin-bottom:6px; box-shadow:var(--sombra-md); }
.cm-cons + .cm-linha { border-top:0; }
.cm-cons .cm-nome b { color:#fff; font-size:16px; }
.cm-cons .cm-nome span { color:rgba(255,255,255,.7); font-size:12.5px; }
.cm-cons .cm-barra { height:32px; background:rgba(255,255,255,.12); }
.cm-cons .cm-seg { font-size:13px; }
.cm-cons .cm-nums { color:rgba(255,255,255,.78); font-size:12.5px; }
.cm-cons .cm-nums b { color:#fff; }
.cm-cons .cm-nums em { color:rgba(255,255,255,.6); }
.cm-cons .cm-nums i { box-shadow:0 0 0 2px rgba(255,255,255,.25); }
.cm-nome { display:flex; align-items:center; gap:10px; min-width:0; }
.cm-nome div { display:flex; flex-direction:column; min-width:0; }
.cm-nome b { font-size:13.5px; font-weight:800; color:var(--navy); }
.cm-nome span { font-size:11.5px; color:var(--cinza2); }
.cm-barra { display:flex; height:26px; border-radius:8px; overflow:hidden; gap:2px; background:#fff; }
.cm-seg { display:flex; align-items:center; justify-content:center; min-width:3px; color:#fff; font-size:11.5px; font-weight:800; white-space:nowrap; overflow:hidden; }
.cm-nums { display:flex; flex-wrap:wrap; gap:4px 18px; margin-top:7px; font-size:12px; color:var(--cinza); }
.cm-nums span { display:inline-flex; align-items:center; gap:5px; }
.cm-nums b { color:var(--navy); font-weight:800; }
.cm-nums em { font-style:normal; color:var(--cinza2); font-weight:600; }
@media (max-width:760px) { .cm-linha { grid-template-columns:1fr; gap:8px; } }

/* situação comercial na lista de Empreendimentos */
.er-com { display:flex; gap:2px; height:6px; border-radius:4px; overflow:hidden; margin-top:8px; }
.er-com i { display:block; min-width:2px; }
.er-com-txt { display:block; font-size:10.5px; color:var(--cinza2); margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.er-com-txt b { font-weight:800; }
.tc-kpi em .tc-link { color:var(--verm); font-weight:700; text-decoration:none; }
.tc-kpi em .tc-link:hover { text-decoration:underline; }
/* Termos de Custas: blocos de monitoramento */
.tc-filtros-card { margin-top:14px; }
.tc-filtros-card .tc-filtros { border-bottom:0; }
.tc-bloco { margin-top:14px; }
.tc-bloco-tt { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 18px; border-bottom:1px solid var(--line2); }
.tc-bloco-tt b { display:block; font-size:16px; font-weight:800; color:var(--navy); }
.tc-bloco-tt span { display:block; font-size:12px; color:var(--cinza2); margin-top:2px; }
.tc-bloco-tt em { font-style:normal; font-size:22px; font-weight:800; color:var(--navy); }
.tc-bloco .tc-tab th, .tc-bloco .tc-tab td { padding:9px 12px; }
.tc-num { white-space:nowrap; }
.tc-num b { font-weight:700; }
.tc-ok { color:var(--teal); font-weight:700; font-size:12.5px; }
.tc-parc b { color:var(--navy); }
.tc-bloco .tc-cli { min-width:170px; max-width:230px; }
.tc-bloco .tc-parc { min-width:96px; }
.tc-bloco .tc-lote .logo-eyebrow { display:none; }
.tc-bloco .tc-etapa { white-space:normal; }
.tc-bloco .tc-cli { white-space:normal; overflow-wrap:anywhere; line-height:1.3; }
.check-item.pend .cx { background:#fff; border:2px solid var(--line2); }
/* Termos de Custas por empreendimento */
.tq-card { margin-top:14px; }
.tq-card .tt { justify-content:space-between; }
.tq-abrir { font-size:12.5px; font-weight:700; color:var(--azul); text-decoration:none; }
.tq-lista { display:flex; flex-direction:column; margin-top:8px; }
.tq-linha { display:grid; grid-template-columns:minmax(170px,230px) minmax(0,1.3fr) minmax(220px,1fr); gap:18px; align-items:center; padding:12px 18px; border-top:1px solid var(--line2); }
.tq-linha:first-child { border-top:0; }
.tq-chips { display:flex; flex-wrap:wrap; gap:6px; }
.tq-chip { display:inline-flex; align-items:baseline; gap:5px; padding:5px 10px; border-radius:99px; background:color-mix(in srgb, var(--c) 10%, #fff); color:var(--c); font-size:12px; font-weight:600; text-decoration:none; border:1px solid color-mix(in srgb, var(--c) 25%, #fff); }
.tq-chip b { font-size:15px; font-weight:800; }
.tq-chip.zero { opacity:.45; }
.tq-chip:hover { box-shadow:0 0 0 2px color-mix(in srgb, var(--c) 30%, transparent); }
.tq-valor span { display:block; font-size:12px; color:var(--cinza); margin-top:6px; }
.tq-valor b { color:var(--navy); font-weight:800; }
.tq-valor em { font-style:normal; color:var(--verm); font-weight:700; }
.tq-trk { height:8px; border-radius:5px; background:var(--line2); overflow:hidden; }
.tq-trk i { display:block; height:100%; background:#12A594; border-radius:5px; }
.tc-conf { color:var(--teal) !important; font-weight:600; }
.tc-alerta { display:block; font-size:11.5px; margin-top:2px; }
@media (max-width:900px) { .tq-linha { grid-template-columns:1fr; gap:10px; } }
/* Abas do empreendimento: Painel · Contratos · Termos de Custas */
.emp-abas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:18px; }
.emp-aba { display:flex; align-items:center; gap:14px; padding:14px 18px; background:#fff; border:1px solid var(--borda); border-radius:16px; text-decoration:none; color:var(--navy); box-shadow:var(--sombra); transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease; min-width:0; }
.emp-aba:hover { transform:translateY(-1px); border-color:rgba(var(--e-rgb, 46,99,235), .45); box-shadow:0 6px 18px rgba(var(--e-rgb, 46,99,235), .18); }
.emp-aba .ea-ic { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; flex:none; background:rgba(var(--e-rgb, 46,99,235), .12); color:var(--e2, var(--azul)); }
.emp-aba .ea-ic svg { width:22px; height:22px; }
.emp-aba .ea-txt { display:flex; flex-direction:column; min-width:0; }
.emp-aba .ea-txt b { font-size:16px; font-weight:800; letter-spacing:-.01em; display:flex; align-items:center; gap:8px; }
.emp-aba .ea-txt small { font-size:12px; color:var(--cinza2); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.emp-aba em { font-style:normal; font-size:12px; font-weight:800; background:rgba(var(--e-rgb, 46,99,235), .14); color:var(--e2, var(--azul)); border-radius:99px; padding:1px 9px; }
.emp-aba.on { background:linear-gradient(120deg, var(--e1, #0B1F3A) 0%, var(--e2, #14346E) 60%, var(--e3, #1B4FD8) 140%); border-color:transparent; color:#fff; box-shadow:0 8px 22px rgba(var(--e-rgb, 46,99,235), .30); }
.emp-aba.on .ea-ic { background:rgba(255,255,255,.16); color:#fff; }
.emp-aba.on .ea-txt small { color:rgba(255,255,255,.78); }
.emp-aba.on em { background:#fff; color:var(--e1, var(--navy)); }
@media (max-width:760px) { .emp-abas { grid-template-columns:1fr; gap:8px; } .emp-aba { padding:10px 14px; } .emp-aba .ea-ic { width:36px; height:36px; } }
.tc-emp-topo { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:14px; }
.tc-emp-topo .lead { margin:0; flex:1; min-width:260px; }
.tq-nome { text-decoration:none; color:inherit; }
.tq-nome:hover b { text-decoration:underline; }

/* anexos do contrato (exigência, rerratificação) */
.anx-lin { display:flex; align-items:center; gap:10px; padding:10px 12px; border-bottom:1px solid var(--line2); }
.anx-lin .ic { width:34px; height:34px; border-radius:9px; display:grid; place-items:center; flex:none; }
.anx-lin .ic svg { width:17px; height:17px; }
.anx-txt { flex:1; min-width:0; display:flex; flex-direction:column; }
.anx-txt b { font-size:13px; color:var(--tinta); font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.anx-txt span { font-size:11.5px; color:var(--cinza2); }
.anx-vazio { font-size:12.5px; color:var(--cinza2); padding:12px; }
.anx-add { margin:10px 12px 4px; width:calc(100% - 24px); justify-content:center; }
.anx-destaque .card { box-shadow:0 0 0 2px var(--azul) inset, var(--sombra); }

/* Agenda: seções no mesmo padrão das abas do empreendimento */
.ag-abas { grid-template-columns:repeat(3,minmax(0,1fr)); }
button.emp-aba { font:inherit; text-align:left; cursor:pointer; width:100%; }
@media (max-width:760px) { .ag-abas { grid-template-columns:1fr; } }

/* topo: Termos de Custas quitados para seguir */
.alerta-tpc { border-color:#0E9384; background:#E6F6F4; color:#0B6B61; }

/* aviso de versão nova publicada */
.aviso-versao { position:fixed; left:50%; bottom:20px; transform:translateX(-50%); z-index:9999; display:flex; align-items:center; gap:14px; background:#0F1B2E; color:#fff; padding:12px 14px 12px 18px; border-radius:14px; box-shadow:0 10px 30px rgba(0,0,0,.25); font-size:14px; font-weight:600; max-width:calc(100% - 32px); flex-wrap:wrap; }

/* Agenda: vencidos em destaque no topo da lista */
.ag-venc { margin:4px 0 14px; padding:12px 12px 6px; border-radius:14px; background:linear-gradient(180deg, rgba(225,29,72,.08), rgba(225,29,72,.03)); border:1.5px solid rgba(225,29,72,.35); }
.ag-venc-tt { display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; padding:2px 4px 10px; }
.ag-venc-tt b { font-size:17px; font-weight:800; color:var(--red); letter-spacing:-.01em; }
.ag-venc-tt span { font-size:12.5px; color:#9F1239; font-weight:600; }
.ag-venc .task { background:#fff; }
.ag-venc .task.over { background:#fff; }
.ag-venc-ok { margin:4px 0 12px; padding:10px 14px; border-radius:12px; background:var(--teal-bg, #E6F6F4); color:var(--teal); font-weight:700; font-size:13px; }

/* mensagem padrão (1º contato) */
.msg-padrao { white-space:pre-wrap; font-size:13px; line-height:1.5; color:var(--tinta); background:var(--fundo); border:1px solid var(--line2); border-radius:12px; padding:12px 14px; margin:8px 10px 10px; max-height:360px; overflow:auto; }
.msg-acoes { display:flex; flex-wrap:wrap; gap:8px; align-items:center; padding:0 10px 10px; }
.msg-zap { display:inline-flex; align-items:center; gap:6px; }
.msg-zap svg { width:16px; height:16px; }
.msg-sem-zap { font-size:12px; color:var(--cinza2); }
/* ---- Comunicar o cliente: registro concluído ---- */
.cr-card { margin-bottom:20px; padding:20px 24px; border:1px solid #A7F3D0; background:linear-gradient(180deg,#F0FDF9,#fff 120px); }
.cr-tit { font-size:17px; font-weight:800; color:var(--tinta); }
.cr-sub { font-size:13px; color:var(--cinza); margin-top:6px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cr-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:22px; margin-top:16px; }
@media (max-width:900px){ .cr-grid { grid-template-columns:1fr; } }
.cr-rot { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--cinza); margin:10px 0 6px; }
.cr-assunto { font-weight:700; color:var(--tinta); background:#fff; border:1px solid var(--borda); border-radius:10px; padding:9px 12px; }
.cr-nota { font-size:12px; color:var(--cinza); margin:8px 0 0; }
.cr-box { background:#fff; border:1px solid var(--borda); border-radius:12px; padding:10px 12px; margin-bottom:10px; }
.cr-box-t { font-size:12.5px; font-weight:700; color:var(--tinta); margin-bottom:6px; }
/* ---- Demonstrativo das custas (ficha do contrato) ---- */
.reg-facts .rf-custas { background:#fff; border-top:1px solid var(--linha); padding:18px 22px 20px; }
.rf-custas .cx-head { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.rf-custas .cx-tit { font-size:11px; font-weight:800; color:var(--cinza2); text-transform:uppercase; letter-spacing:.05em; }
.rf-custas .cx-sub { font-size:12px; color:var(--cinza); margin-top:2px; text-transform:none; letter-spacing:0; font-weight:500; }
.rf-custas .cx-acoes { display:flex; gap:8px; }
.rf-custas .cx-link { font:inherit; font-size:12.5px; font-weight:650; color:#2563EB; background:#EFF6FF; border:1px solid #DBEAFE; border-radius:8px; padding:5px 11px; text-decoration:none; cursor:pointer; text-transform:none; letter-spacing:0; }
.rf-custas .cx-link:hover { background:#DBEAFE; }
.rf-custas .cx-grid { display:grid; grid-template-columns:minmax(0,1fr) 22px minmax(0,1.35fr) 22px minmax(0,1fr); gap:10px; align-items:stretch; margin-top:14px; }
.rf-custas .cx-op { align-self:center; text-align:center; font-size:20px; font-weight:700; color:#CBD5E1; }
.rf-custas .cx-box { border:1px solid var(--linha); border-radius:12px; padding:12px 14px; background:#F8FAFC; display:flex; flex-direction:column; }
.rf-custas .cx-box > span { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--cinza); }
.rf-custas .cx-box > b { font-size:20px; font-weight:800; color:var(--navy); margin:4px 0 6px; font-variant-numeric:tabular-nums; }
.rf-custas .cx-box > small { font-size:11.5px; color:var(--cinza); margin-top:auto; }
.rf-custas .cx-cob { height:6px; background:#E2E8F0; border-radius:99px; overflow:hidden; margin:2px 0 6px; } .rf-custas .cx-cob i { display:block; height:100%; background:#2563EB; border-radius:99px; }
.rf-custas .cx-lins { display:flex; flex-direction:column; gap:6px; }
.rf-custas .cx-lin { display:grid; grid-template-columns:80px 1fr auto; gap:10px; align-items:center; font-size:12.5px; }
.rf-custas .cx-rot { color:var(--cinza); } .rf-custas .cx-lin b { font-size:12.5px; color:var(--navy); font-variant-numeric:tabular-nums; margin:0; display:inline; }
.rf-custas .cx-lin b.cx-pend { color:#B45309; font-weight:600; }
.rf-custas .cx-trk { height:6px; background:#E2E8F0; border-radius:99px; overflow:hidden; } .rf-custas .cx-trk i { display:block; height:100%; background:#64748B; border-radius:99px; }
.rf-custas .cx-res.cx-devolver { background:#EFF6FF; border-color:#BFDBFE; } .rf-custas .cx-res.cx-devolver > b { color:#1D4ED8; }
.rf-custas .cx-res.cx-ressarcir { background:#FEF2F2; border-color:#FECACA; } .rf-custas .cx-res.cx-ressarcir > b { color:#B91C1C; }
.rf-custas .cx-res.cx-ok { background:#ECFDF5; border-color:#A7F3D0; } .rf-custas .cx-res.cx-ok > b { color:#047857; }
@media (max-width:860px){ .rf-custas .cx-grid { grid-template-columns:1fr; } .rf-custas .cx-op { display:none; } }
.rf-custas .cx-lin .cx-rot { display:inline; font-size:12.5px; text-transform:none; letter-spacing:0; font-weight:500; color:var(--cinza); }
.rf-custas .cx-head span, .rf-custas .cx-box > span { display:block; }
/* painel "Situação do contrato": proporção — faixa escura estreita, fatos em linha, demonstrativo embaixo */
.reg-panel { grid-template-columns:minmax(200px,240px) 1fr; }
.reg-panel .reg-dir { display:flex; flex-direction:column; min-width:0; background:var(--card); }
.reg-panel .reg-dir > .reg-facts { grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); }
.reg-panel .reg-facts .rf { padding:14px 20px; }
.reg-panel .reg-facts .rf b { font-size:15px; line-height:1.3; }
.reg-panel .reg-dir > .rf-custas { border-top:1px solid var(--linha); }
.reg-facts .rf b small.rf-pend { display:block; font-size:11.5px; font-weight:600; color:#B45309; margin-top:2px; }
.rf-custas .cx-box > b { font-size:18px; }
.rf-custas .cx-grid { grid-template-columns:minmax(0,1fr) 18px minmax(0,1.4fr) 18px minmax(0,1fr); }
@media (max-width:900px){ .reg-panel { grid-template-columns:1fr; } }
.reg-panel .reg-dir > .rf-custas { padding:16px 22px 18px; background:#fff; }

/* Situação do contrato: coluna escura mais estreita; Custas do registro em quadro próprio abaixo */
.reg-panel { grid-template-columns:minmax(190px,230px) 1fr; }
.reg-panel .reg-main { padding:16px 20px; gap:8px; }
.reg-panel .reg-main .reg-transf { font-size:15px; }
.reg-panel .reg-main .reg-transf .rt-ico { width:22px; height:22px; font-size:12px; }
.card.cx-card { margin:-6px 0 18px; padding:14px 20px 16px; }
.cx-card.rf-custas { background:#fff; }
.cx-card .cx-tit { font-size:13.5px; }
.cx-card .cx-grid { margin-top:10px; }
.cx-card .cx-box { padding:10px 12px; }
.cx-card .cx-box > b { font-size:16px; margin:3px 0 5px; }
.cx-card .cx-lin { font-size:12px; }
/* Custas do registro — painel de destaque (prestação de contas visual) */
.card.cx-card.rf-custas { background:linear-gradient(180deg,#F6FAFF 0%,#FFFFFF 55%); border:1px solid #E1EAF6; border-left:4px solid var(--azul); box-shadow:0 12px 32px -20px rgba(30,64,120,.5); }
/* equação: recebido − custas totais = saldo */
.cx-card.rf-custas .cx-eq { display:flex; align-items:stretch; margin-top:12px; background:#fff; border:1px solid #E1EAF6; border-radius:14px; box-shadow:0 5px 16px -12px rgba(30,64,120,.35); }
.cx-card.rf-custas .cxe { flex:1 1 0; padding:11px 16px; display:flex; flex-direction:column; gap:3px; min-width:0; }
.cx-card.rf-custas .cxe:first-child { border-radius:14px 0 0 14px; }
.cx-card.rf-custas .cxe > span { font-size:10px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza); }
.cx-card.rf-custas .cxe > b { font-size:20px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; letter-spacing:-.02em; line-height:1; }
.cx-card.rf-custas .cxe > small { font-size:10.5px; color:var(--cinza2); }
.cx-card.rf-custas .cxe-op { align-self:center; width:26px; height:26px; border-radius:50%; background:var(--navy); color:#fff; font-size:14px; font-weight:800; display:grid; place-items:center; flex:none; margin:0 -13px; z-index:2; box-shadow:0 3px 9px -2px rgba(15,27,46,.55); }
.cx-card.rf-custas .cxe-saldo { border-radius:0 14px 14px 0; padding-left:22px; }
.cx-card.rf-custas .cxe-saldo.saldo-utilizar { background:linear-gradient(135deg,#EAF2FF,#D6E6FF); } .cx-card.rf-custas .cxe-saldo.saldo-utilizar > b { color:#1D4ED8; }
.cx-card.rf-custas .cxe-saldo.saldo-devolver, .cx-card.rf-custas .cxe-saldo.saldo-ok { background:linear-gradient(135deg,#E6FBF2,#CBF3E1); } .cx-card.rf-custas .cxe-saldo.saldo-devolver > b, .cx-card.rf-custas .cxe-saldo.saldo-ok > b { color:#047857; }
.cx-card.rf-custas .cxe-saldo.saldo-ressarcir { background:linear-gradient(135deg,#FEECEC,#FBD2D2); } .cx-card.rf-custas .cxe-saldo.saldo-ressarcir > b { color:#B91C1C; }
.cx-card.rf-custas .cxe-saldo.saldo-neutro { background:#F1F5F9; } .cx-card.rf-custas .cxe-saldo.saldo-neutro > b { color:var(--cinza); }
/* itens (ITBI, prenotação, registro) com barra proporcional */
.cx-card.rf-custas .cx-itens { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:8px; }
.cx-card.rf-custas .cxi { border:1px solid #E6ECF4; border-radius:10px; padding:9px 12px; background:#fff; }
.cx-card.rf-custas .cxi-top { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.cx-card.rf-custas .cxi-rot { font-size:11.5px; font-weight:700; color:var(--navy); }
.cx-card.rf-custas .cxi-tag { font-size:9px; font-weight:800; text-transform:uppercase; letter-spacing:.03em; padding:2px 7px; border-radius:99px; }
.cx-card.rf-custas .cxi-tag.ok { background:var(--teal-cl); color:#0E7C6E; }
.cx-card.rf-custas .cxi-tag.pend { background:var(--ambar-cl); color:#B45309; }
.cx-card.rf-custas .cxi-val { display:block; font-size:15px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; margin:4px 0 6px; }
.cx-card.rf-custas .cxi-val.cxf-pend { color:#B45309; }
.cx-card.rf-custas .cxi-bar { height:5px; background:#EEF2F8; border-radius:99px; overflow:hidden; } .cx-card.rf-custas .cxi-bar i { display:block; height:100%; background:linear-gradient(90deg,#4F86F2,#2563EB); border-radius:99px; }
/* rodapé: cobertura + botão prestação de contas */
.cx-card.rf-custas .cx-rodape { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-top:10px; flex-wrap:wrap; }
.cx-card.rf-custas .cx-cob-wrap { flex:1 1 240px; min-width:200px; }
.cx-card.rf-custas .cx-cob-wrap .pc-cob { height:6px; background:#E2E8F0; border-radius:99px; overflow:hidden; } .cx-card.rf-custas .cx-cob-wrap .pc-cob i { display:block; height:100%; background:linear-gradient(90deg,#16B39F,#12A594); border-radius:99px; }
.cx-card.rf-custas .cx-cob-wrap small, .cx-card.rf-custas .cx-cob-nota { display:block; margin-top:4px; font-size:11px; color:var(--cinza); }
.cx-card.rf-custas .pc-open { flex:none; font-size:12px; font-weight:700; color:#fff; text-decoration:none; background:var(--navy); border-radius:9px; padding:8px 14px; }
.cx-card.rf-custas .pc-open:hover { background:#1B2A44; }
.cx-card.rf-custas .cxf-pend { color:#B45309; }
/* Custas em estado pendente (sem valores) — preenche a coluna */
.cx-card.rf-custas .cx-vazio{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:9px; padding:20px 12px; }
.cx-card.rf-custas .cx-vazio .cxv-ico{ width:38px; height:38px; border-radius:50%; display:grid; place-items:center; font-weight:800; font-size:19px; background:var(--teal-cl); color:var(--teal); }
.cx-card.rf-custas .cx-vazio .cxv-ico.cxv-alerta{ background:var(--verm-cl); color:var(--verm); }
.cx-card.rf-custas .cx-vazio b{ font-size:14px; color:var(--navy); }
.cx-card.rf-custas .cx-vazio span{ font-size:12px; color:var(--cinza); max-width:290px; line-height:1.5; }
/* Custos detalhados em expansível clicável (recolhido por padrão) */
.cx-card.rf-custas .cx-det{ margin-top:10px; }
.cx-card.rf-custas .cx-det > summary{ cursor:pointer; list-style:none; font-size:11px; font-weight:700; color:var(--azul); display:inline-flex; align-items:center; gap:6px; user-select:none; }
.cx-card.rf-custas .cx-det > summary::-webkit-details-marker{ display:none; }
.cx-card.rf-custas .cx-det > summary::before{ content:"▸"; font-size:10px; transition:transform .15s; }
.cx-card.rf-custas .cx-det[open] > summary::before{ transform:rotate(90deg); }
.cx-card.rf-custas .cx-det .cx-itens{ margin-top:8px; }
/* Custas compacto na coluna direita — reforço (vence as regras base por ordem) */
.ficha-col-dir .cx-card.rf-custas{ padding:13px 16px; }
.ficha-col-dir .cx-card.rf-custas .cx-eq{ margin-top:9px; }
.ficha-col-dir .cx-card.rf-custas .cxe{ padding:8px 10px; border-right:1px solid #EAF0F8; }
.ficha-col-dir .cx-card.rf-custas .cxe > span{ font-size:8.5px; letter-spacing:.02em; }
.ficha-col-dir .cx-card.rf-custas .cxe > b{ font-size:14px; white-space:nowrap; }
.ficha-col-dir .cx-card.rf-custas .cxe-saldo{ border-right:0; }
.ficha-col-dir .cx-card.rf-custas .cxe-op{ display:none; }
.ficha-col-dir .cx-card.rf-custas .cxi{ padding:6px 9px; }
.ficha-col-dir .cx-card.rf-custas .cxi-val{ font-size:12px; margin:2px 0 4px; }

/* ===== Repaginada: acento em gradiente único + movimento + hierarquia ===== */
.ficha-topo.hd{ box-shadow:var(--sombra-md); }
.ficha-topo.hd::before{ left:0; right:0; top:0; bottom:auto; width:auto; height:5px; background:linear-gradient(90deg,#7C3AED,#2563EB); }
.sit-card, .card.cx-card.rf-custas, .acao-card.acao-ativa{ position:relative; overflow:hidden; }
.sit-card::before, .card.cx-card.rf-custas::before, .acao-card.acao-ativa::before{ content:""; position:absolute; left:0; right:0; top:0; height:3px; z-index:1; }
.sit-card::before{ background:linear-gradient(90deg,var(--slate),var(--azul)); }
.sit-card.sit-ok::before{ background:linear-gradient(90deg,#0E9384,#10B981); }
.sit-card.sit-empresa::before{ background:linear-gradient(90deg,#C2410C,#F59E0B); }
.sit-card.sit-sem::before{ background:linear-gradient(90deg,#B91C1C,#EF4444); }
.card.cx-card.rf-custas{ border-left:1px solid #E1EAF6; }
.card.cx-card.rf-custas::before{ background:linear-gradient(90deg,#2563EB,#4F86F2); }
.acao-card.acao-ativa{ border-left:1px solid var(--borda); }
.acao-card.acao-ativa::before{ background:linear-gradient(90deg,#2563EB,#6366F1); }
.sit-card{ background:linear-gradient(180deg,#FFFFFF,#FBFCFF); }
.sit-card, .card.cx-card, .grid-lateral .card{ transition:transform .16s ease, box-shadow .16s ease; }
.sit-card:hover, .card.cx-card:hover, .grid-lateral .card:hover{ transform:translateY(-2px); box-shadow:var(--sombra-md); }
@keyframes fichaUp{ from{ opacity:0; transform:translateY(12px);} to{ opacity:1; transform:none;} }
.ficha-linha{ animation:fichaUp .42s cubic-bezier(.2,.7,.3,1) both; }
.ficha-acoes{ animation:fichaUp .42s cubic-bezier(.2,.7,.3,1) .06s both; }
.stepper{ animation:fichaUp .42s cubic-bezier(.2,.7,.3,1) .12s both; }
.grid-lateral{ animation:fichaUp .42s cubic-bezier(.2,.7,.3,1) .18s both; }
@keyframes barGrow{ from{ transform:scaleX(0);} to{ transform:scaleX(1);} }
.stepper-head .sh-bar i, .cx-card.rf-custas .pc-cob i, .cxi-bar i{ transform-origin:left; animation:barGrow .7s cubic-bezier(.2,.7,.3,1) both; }
@media (prefers-reduced-motion: reduce){ .ficha-linha, .ficha-acoes, .stepper, .grid-lateral, .stepper-head .sh-bar i, .cx-card.rf-custas .pc-cob i, .cxi-bar i, .step.atual .bola{ animation:none !important; } }
/* Botões e chips com profundidade (menos chapados) */
.btn{ transition:transform .14s ease, box-shadow .14s ease, background .14s ease; }
.btn.primario{ background:linear-gradient(135deg,#4F86F2,#2E63EB); box-shadow:0 6px 14px -6px rgba(46,107,255,.55); border-color:transparent; color:#fff; }
.btn.primario:hover{ background:linear-gradient(135deg,#3B74F0,#1B4FD8); box-shadow:0 9px 18px -6px rgba(46,107,255,.6); transform:translateY(-1px); }
.btn.primario:active{ transform:translateY(0); }
.btn-primario-grande{ background:linear-gradient(135deg,var(--azul),#4F86F2); box-shadow:0 10px 20px -8px rgba(46,107,255,.5); transition:transform .14s ease, box-shadow .14s ease, background .14s ease; }
.btn-primario-grande:hover{ background:linear-gradient(135deg,var(--azul-esc),var(--azul)); transform:translateY(-1px); box-shadow:0 14px 24px -8px rgba(46,107,255,.6); }
.cx-card.rf-custas .pc-open{ background:linear-gradient(135deg,#26365a,#0F1B2E); box-shadow:0 5px 12px -5px rgba(15,27,46,.5); transition:transform .14s ease, box-shadow .14s ease; }
.cx-card.rf-custas .pc-open:hover{ transform:translateY(-1px); box-shadow:0 8px 16px -5px rgba(15,27,46,.55); }
/* chips sólidos ganham leve gradiente */
.pill.p-azulS{ background:linear-gradient(135deg,#4F86F2,#2E63EB); color:#fff; }
.pill.p-verdeS{ background:linear-gradient(135deg,#17B39F,#0E9384); color:#fff; }
.custas-badge.cb-ok{ background:linear-gradient(135deg,#EAFBF4,#D3F3E4); }
.custas-badge.cb-warn{ background:linear-gradient(135deg,#FEF6E7,#FBEACB); }
.custas-badge.cb-no{ background:linear-gradient(135deg,#FEEeee,#FBD9D9); }
@media (max-width:720px){ .cx-card.rf-custas .cx-eq { flex-direction:column; } .cx-card.rf-custas .cxe:first-child { border-radius:16px 16px 0 0; } .cx-card.rf-custas .cxe-op { margin:-16px auto; } .cx-card.rf-custas .cxe-saldo { border-radius:0 0 16px 16px; padding-left:20px; } .cx-card.rf-custas .cx-itens { grid-template-columns:1fr; } }
/* Laterais da ficha — cabeçalho "eyebrow" e linhas mais leves */
.lat-card .card-head { padding:14px 18px 11px; border-bottom:1px solid var(--linha); align-items:center; }
.lat-card .card-title { font-size:12px; font-weight:800; text-transform:uppercase; letter-spacing:.055em; color:var(--cinza2); }
.lat-card .lat-body { padding:6px 8px 8px; }
.lat-card .mov-lin { border-bottom:1px solid var(--linha); }
.lat-card .mov-lin:last-child { border-bottom:0; }
.lat-card .mono-vazio { padding:22px 16px !important; font-size:13px; }
/* Padronização dos cards da ficha do contrato — raio, sombra e espaçamento uniformes */
.stepper, .acao-card, .ficha-acoes, .grid-lateral .card { border-radius:var(--raio-card); box-shadow:var(--sombra-card); }
.card.cx-card.rf-custas { box-shadow:var(--sombra-card); }
.ficha-acoes { border-color:var(--borda); margin:0 0 18px; }
.stepper { margin-bottom:18px; }
.card.cx-card { margin:0 0 18px; }
.grid-lateral .card { margin-bottom:18px; }
@media (max-width:900px){ .reg-panel { grid-template-columns:1fr; } }
.btn-min.anx-del { color:#B91C1C; border-color:#FECACA; background:#fff; margin-left:6px; cursor:pointer; }
.btn-min.anx-del:hover { background:#FEF2F2; }
/* ---- Termos de Custas: % quitado × em dia × em atraso ---- */
.tp-card { padding:16px 22px 18px; margin:14px 0; }
.tp-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.tp-head b { font-size:14px; color:var(--navy); } .tp-head span { font-size:12px; color:var(--cinza); }
.tp-barra { display:flex; height:26px; border-radius:8px; overflow:hidden; margin:12px 0 14px; background:#EEF2F7; }
.tp-seg { display:flex; align-items:center; justify-content:center; color:#fff; font-size:12px; font-weight:700; min-width:0; }
.tp-itens { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.tp-item { display:flex; gap:10px; align-items:flex-start; }
.tp-item > i { width:10px; height:10px; border-radius:3px; margin-top:7px; flex:none; }
.tp-item b { display:block; font-size:22px; color:var(--navy); font-variant-numeric:tabular-nums; line-height:1.1; }
.tp-item span { display:block; font-size:12.5px; color:var(--tinta); margin-top:2px; }
.tp-item em { display:block; font-style:normal; font-size:11.5px; color:var(--cinza); margin-top:2px; }
@media (max-width:760px){ .tp-itens { grid-template-columns:1fr; } }
.rt-tit { font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--cinza); margin:14px 0 8px; display:flex; align-items:center; gap:8px; }
.rt-cols { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:6px 16px; max-height:260px; overflow:auto; }
.rt-col { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--tinta); cursor:pointer; }
.rt-col input { width:16px; height:16px; accent-color:#1D4ED8; }

/* ===== Botões de ação no hero (esquerda) ===== */
.ficha-btns{ display:flex; gap:8px; flex-wrap:wrap; margin-top:16px; }
.ficha-btns .btn{ font-size:12.5px; padding:8px 14px; }

/* ===== PADRÃO ÚNICO de títulos e subtítulos dos cards ===== */
/* Kicker/eyebrow (rótulo do card): mesmo tamanho, peso e cor em todos */
.ficha-emp .eyebrow, .sit-card .rs-cap, .cx-card.rf-custas .cx-tit, .stepper .sh-cap, .lat-card .card-title{
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--cinza2);
  background:none; padding:0; border-radius:0; display:block; margin:0 0 2px;
}
/* Título principal do card (linha de destaque) — mesmo tamanho */
.sit-card .reg-situacao b, .stepper .sh-atual, .acao-card.acao-ativa .acao-titulo{
  font-size:17px; font-weight:800; letter-spacing:-.01em; line-height:1.2;
}
/* Subtítulo do card */
.acao-card.acao-ativa .acao-sub{ font-size:12.5px; font-weight:500; color:var(--cinza); margin-top:2px; }

/* Corrige desalinhamento da base: remove a margem inferior do hero dentro da grade */
.ficha-linha .ficha-topo.hd{ margin-bottom:0; }

/* Hero: nome mais forte, tags com presença, largura ajustada para preencher */
.ficha-topo .lead-nome{ font-size:19px; font-weight:800; color:var(--navy); margin-top:8px; }
.ficha-topo .selos .pill, .ficha-topo .selos .prazo-chip, .ficha-topo .selos .pend-badge{ font-size:12.5px; }
.ficha-linha{ grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr); }

/* Ações no topo do canto direito do hero (tamanho natural — só posição) */
.ficha-topo-main{ display:flex; flex-wrap:nowrap; align-items:flex-start; justify-content:space-between; gap:18px; }
.ficha-topo-main .ficha-id{ flex:1 1 auto; min-width:0; }
.ficha-btns{ display:flex; flex-wrap:nowrap; gap:8px; justify-content:flex-end; align-items:flex-start; flex:0 0 auto; margin-top:0; }
/* Visual interno dos botões (gradiente/borda/sombra) — sem alterar tamanho */
.ficha-btns .btn.primario{ background:linear-gradient(135deg,#4F86F2,#2E63EB); color:#fff; border:none; box-shadow:0 8px 16px -6px rgba(46,107,255,.5); font-weight:700; }
.ficha-btns .btn.primario:hover{ background:linear-gradient(135deg,#3B74F0,#1B4FD8); transform:translateY(-1px); box-shadow:0 11px 20px -6px rgba(46,107,255,.6); }
.ficha-btns .btn.contorno{ background:#fff; border:1px solid #CBD8EC; color:var(--navy); box-shadow:0 1px 2px rgba(15,27,46,.06); font-weight:700; transition:transform .14s ease, box-shadow .14s ease, background .14s ease, border-color .14s ease, color .14s ease; }
.ficha-btns .btn.contorno:hover{ background:var(--azul-cl); border-color:var(--azul); color:var(--azul); transform:translateY(-1px); box-shadow:0 6px 14px -6px rgba(46,107,255,.32); }
@media (max-width:640px){ .ficha-topo-main{ flex-direction:column; } .ficha-btns{ max-width:100%; justify-content:flex-start; } }

/* Cabeçalho do card de Situação: situação + ações (Registrado?/Editar) */
.sit-card .sit-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.sit-card .sit-acoes{ display:flex; align-items:center; gap:8px; flex:none; }
.btn-registrado-sm{ font-size:11px; padding:6px 11px; gap:5px; box-shadow:0 4px 10px -4px rgba(16,185,129,.5); }
.sit-card .cx-link{ font-size:12.5px; font-weight:650; color:#2563EB; background:#EFF6FF; border:1px solid #DBEAFE; border-radius:8px; padding:5px 11px; cursor:pointer; }
.sit-card .cx-link:hover{ background:#DBEAFE; }

/* ================= Obrigações e Licenças ================= */
/* página do empreendimento ganhou a 4ª aba (Obrigações): quatro colunas no desktop */
@media (min-width:761px) { .emp-abas:has(> :nth-child(4)) { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .ag-abas:has(> :nth-child(3)) { grid-template-columns:repeat(3,minmax(0,1fr)); } }
/* urbanístico = azul do Talon; ambiental/TCRA = teal */
.hd.hd-obrig .titulo { overflow-wrap:anywhere; }
@media (max-width:760px) { .ob-head { padding:12px 14px; } .ob-body, .ob-emp-solo { padding-left:12px; padding-right:12px; } }
.hd.hd-obrig { --hd-a:rgba(46,99,235,.11); --hd-b:rgba(18,165,148,.10); --hd-e1:#1B4FD8; --hd-e2:#12A594; --hd-pill:rgba(46,99,235,.13); }
.ob-hact { display:flex; gap:10px; flex-wrap:wrap; align-items:center; }
.ob-kpis { margin:4px 0 16px; }
.ob-kpi.clic { cursor:pointer; }
.ob-abas { margin-bottom:16px; }
.ob-abas .emp-aba { border:0; font:inherit; text-align:left; cursor:pointer; }
.ob-tool { display:flex; flex-wrap:wrap; gap:10px; align-items:center; padding:12px 14px; margin-bottom:12px; }
.ob-tool input, .ob-tool select { height:38px; border:1px solid var(--borda); border-radius:9px; padding:0 11px; font:inherit; font-size:13.5px; background:#fff; color:var(--tinta); min-width:0; }
.ob-tool input { flex:1 1 260px; }
.ob-tool input:focus, .ob-tool select:focus { outline:none; border-color:var(--azul); box-shadow:0 0 0 3px var(--azul-cl); }
.ob-conta { margin-left:auto; font-size:12.5px; color:var(--cinza2); font-weight:600; }
.ob-lista { display:flex; flex-direction:column; gap:10px; }
.ob-card { border-left:5px solid var(--slate); overflow:hidden; }
.ob-card[data-status="Obras"] { border-left-color:var(--azul); }
.ob-card[data-status="Entregue"] { border-left-color:var(--teal); }
.ob-card[data-status="Não lançado"] { border-left-color:var(--ambar); }
.ob-card.alerta { border-left-color:var(--verm); }
.ob-head { display:flex; flex-wrap:wrap; gap:10px 18px; align-items:center; padding:14px 18px; cursor:pointer; }
.ob-head:hover { background:#F8FAFD; }
.ob-tit { flex:1 1 280px; min-width:0; display:flex; gap:12px; align-items:center; }
.ob-tit b { font-size:16.5px; font-weight:750; color:var(--navy); letter-spacing:-.01em; }
.ob-meta { display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; margin-top:4px; font-size:12.5px; color:var(--cinza); }
.ob-next { display:flex; flex-direction:column; gap:4px; align-items:flex-start; max-width:380px; min-width:0; }
.ob-lbl { font-size:10.5px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--cinza2); }
.ob-nx-t { font-size:12px; color:var(--cinza); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.ob-chev { width:20px; height:20px; color:var(--cinza2); transition:transform .15s; flex:none; }
.ob-chev svg { width:20px; height:20px; }
.ob-card.open .ob-chev { transform:rotate(90deg); }
.ob-body { border-top:1px solid var(--linha); padding:4px 18px 18px; }
.ob-emp-solo { padding:4px 20px 20px; }
.ob-pill { padding:3px 10px; font-size:12px; border-radius:99px; white-space:nowrap; }
.ob-sub { display:flex; flex-wrap:wrap; gap:4px; align-items:center; border-bottom:1px solid var(--linha); margin:0 -2px 16px; padding-top:8px; background:#fff; }
.ob-sub > button:not(.btn-min) { border:0; background:none; padding:10px 14px; font:inherit; font-weight:700; font-size:13.5px; color:var(--cinza); border-bottom:3px solid transparent; margin-bottom:-1px; display:inline-flex; gap:7px; align-items:center; cursor:pointer; }
.ob-sub > button:not(.btn-min):hover { color:var(--tinta); }
.ob-sub > button.on { color:var(--navy); border-bottom-color:var(--navy); }
.ob-sub > button.urb.on { color:var(--azul-esc); border-bottom-color:var(--azul); }
.ob-sub > button.amb.on { color:#0E7C6F; border-bottom-color:var(--teal); }
.ob-sub .btn-min { display:inline-flex; gap:6px; align-items:center; margin-left:4px; }
.ob-sub .btn-min svg { width:14px; height:14px; }
.ob-cnt { font-size:11px; background:var(--linha); color:var(--cinza); border-radius:99px; padding:0 7px; font-weight:700; }
.ob-cnt.bad { background:var(--verm-cl); color:#B91C1C; }
.ob-pane { display:flex; flex-direction:column; gap:18px; }
.ob-pane[hidden] { display:none !important; }
.ob-block { display:flex; flex-direction:column; gap:8px; min-width:0; }
.ob-sh { display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.ob-sh h3 { font-size:14.5px; font-weight:750; color:var(--navy); margin:0; padding-left:10px; border-left:3px solid var(--navy); }
.ob-pane-urb .ob-sh h3 { border-left-color:var(--azul); }
.ob-pane-amb .ob-sh h3, .ob-pane-tcra .ob-sh h3 { border-left-color:var(--teal); }
.ob-sh h4 { margin:0; font-size:13.5px; font-weight:750; color:#0E7C6F; }
.ob-h4 { margin:8px 0 0; font-size:11.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--cinza); }
.ob-acts, .ob-rowacts { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.ob-rowacts { justify-content:flex-start; }
.ob-faint { color:var(--cinza2); }
.ob-mono { font-family:"JetBrains Mono",Consolas,Menlo,monospace; font-size:12px; }
.ob-facts { display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px 16px; font-size:13.5px; margin:0; }
@media (min-width:980px) { .ob-facts.two { grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr); } }
.ob-facts dt { color:var(--cinza2); font-size:12px; padding-top:2px; }
.ob-facts dd { margin:0; min-width:0; overflow-wrap:anywhere; color:var(--tinta); }
.ob-facts dd.hl { font-weight:700; color:var(--azul-esc); }
.ob-facts dd.ob-obs { grid-column:2 / -1; }
.ob-tag { display:inline-block; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; font-weight:800; padding:1px 7px; border-radius:4px; background:var(--linha); color:var(--cinza); }
.ob-tag.urb { background:var(--azul-cl); color:var(--azul-esc); } .ob-tag.amb { background:var(--teal-cl); color:#0E7C6F; }
.ob-tag.ete { background:var(--ambar-cl); color:#B45309; margin-top:4px; }
.ob-tag.final { background:#E11D48; color:#fff; } .ob-tag.pend { background:var(--ambar-cl); color:#B45309; }
.ob-tbl { overflow-x:auto; border:1px solid var(--borda); border-radius:12px; background:#fff; }
.ob-tbl-card { padding:0; }
.ob-t { width:100%; border-collapse:collapse; font-size:13px; min-width:680px; }
.ob-t th { text-align:left; font-size:10.5px; letter-spacing:.07em; text-transform:uppercase; color:var(--cinza); font-weight:800; padding:9px 12px; border-bottom:1px solid var(--borda); background:#F8FAFD; }
.ob-t td { padding:10px 12px; border-bottom:1px solid var(--linha); vertical-align:top; }
.ob-t tr:last-child td { border-bottom:0; }
/* as tabelas gerais do Talon não quebram linha (tbody td nowrap); aqui o texto é longo */
.ob-t tbody td, .ob-rel .rtbl tbody td { white-space:normal; font-size:13px; vertical-align:top; }
.ob-t tbody td { padding:10px 12px; }
.ob-t td:first-child, .ob-t th:first-child { padding-left:14px; } .ob-t td:last-child, .ob-t th:last-child { padding-right:14px; }
.ob-t tbody td.ob-nw, .ob-rel .rtbl tbody td.dt { white-space:nowrap; }.ob-t .r { text-align:right; }
.ob-nw { white-space:nowrap; }
.ob-t tr.done td { color:var(--cinza2); }
.ob-t tr.final td { background:#FFF7F8; } .ob-t tr.final td:first-child { box-shadow:inset 4px 0 0 #E11D48; } .ob-t tr.final .ob-tt { font-weight:750; }
.ob-t tr.final.done td { background:transparent; } .ob-t tr.final.done td:first-child { box-shadow:inset 4px 0 0 var(--slate); }
.ob-t tr.final.done .ob-tag.final { background:var(--linha); color:var(--cinza2); }
.ob-finlbl { font-size:9.5px; font-weight:800; letter-spacing:.08em; color:#E11D48; margin-top:2px; }
.ob-t tr.final.done .ob-finlbl { color:var(--cinza2); }
.ob-tt { color:var(--tinta); }
.ob-subl { color:var(--cinza2); font-size:12px; margin-top:2px; }
.ob-acao { min-width:220px; max-width:340px; background:var(--ambar-cl); border-left:3px solid var(--ambar); color:var(--tinta); }
.ob-t tr.done .ob-acao { background:transparent; border-left-color:transparent; }
.ob-ok { border-color:rgba(18,165,148,.45); color:#0E7C6F; }
.ob-req { border-color:rgba(46,99,235,.35); }
.ob-req th { background:var(--azul-cl); color:var(--azul-esc); }
.ob-licgrp { display:flex; flex-direction:column; gap:6px; }
.ob-licgrp h4 { margin:2px 0 0; display:flex; gap:8px; align-items:center; font-size:11.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--cinza); }
.ob-dot { width:9px; height:9px; border-radius:50%; display:inline-block; } .ob-dot.ok { background:var(--teal); } .ob-dot.info { background:var(--azul); }
.ob-vazio { padding:16px; text-align:center; color:var(--cinza2); border:1px dashed var(--borda); border-radius:12px; font-size:13px; }
.ob-ctr { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center; font-size:13.5px; }
.ob-resp { display:inline-flex; align-items:center; gap:5px; margin-left:8px; font-size:11.5px; font-weight:700; color:#6D3EE0; background:var(--violet-bg); padding:1px 8px 1px 2px; border-radius:99px; vertical-align:1px; }
.ob-resp i { font-style:normal; font-size:9.5px; width:17px; height:17px; border-radius:50%; background:#8B5CF6; color:#fff; display:grid; place-items:center; }
.ob-resp.ext { color:#B45309; background:var(--ambar-cl); } .ob-resp.ext i { background:#E07B00; }
.ob-emp-link { color:var(--azul-esc); font-weight:600; text-decoration:none; } .ob-emp-link:hover { text-decoration:underline; }
/* TCRA */
.ob-tcra { border:1px solid rgba(18,165,148,.45); border-radius:14px; overflow:hidden; background:#fff; box-shadow:0 6px 18px -10px rgba(18,165,148,.45); }
.ob-tcra-head { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:14px 18px; background:linear-gradient(120deg,#0D6155,#12A594); color:#fff; }
.ob-tcra-k { font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; opacity:.85; font-weight:800; }
.ob-tcra-head h3 { margin:3px 0 4px; font-size:19px; font-weight:800; color:#fff; }
.ob-tcra-meta { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:12.5px; opacity:.92; }
.ob-tcra-dir { display:flex; gap:8px; align-items:flex-start; flex-wrap:wrap; }
.ob-tcra-dir .btn-min { background:rgba(255,255,255,.18); color:#fff; border-color:rgba(255,255,255,.5); }
.ob-tcra-dir .ob-pill { background:#fff; }
.ob-tstats { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1px; background:var(--borda); border-bottom:1px solid var(--borda); }
.ob-tstat { background:var(--teal-cl); padding:12px 16px; color:#0E7C6F; }
.ob-tstat .v { font-size:21px; font-weight:800; line-height:1.15; letter-spacing:-.01em; }
.ob-tstat .v .of { font-size:14px; opacity:.7; }
.ob-tstat .l { font-size:11.5px; font-weight:650; opacity:.85; margin-top:2px; }
.ob-tstat.crit { background:var(--verm-cl); color:#B91C1C; } .ob-tstat.warn { background:var(--ambar-cl); color:#B45309; }
.ob-tcra-facts { padding:14px 18px; }
.ob-tcra-areas { padding:0 18px 16px; display:flex; flex-direction:column; gap:8px; }
/* Drive, histórico */
.ob-folder { display:flex; flex-wrap:wrap; gap:8px; align-items:center; background:#F8FAFD; border:1px solid var(--borda); border-radius:12px; padding:10px 12px; }
.ob-folder .btn svg { width:15px; height:15px; }
.ob-path { flex:1 1 220px; min-width:0; overflow-wrap:anywhere; user-select:all; color:var(--cinza); }
.ob-hlist { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:5px; font-size:12.5px; }
/* compartilhamento */
.ob-aviso { background:var(--ambar-cl); color:#8A5A17; border-radius:10px; padding:10px 12px; font-size:13px; }
.ob-acc-novo { display:grid; grid-template-columns:2fr 2fr 1fr auto; gap:10px; align-items:end; margin:6px 0 4px; }
@media (max-width:900px) { .ob-acc-novo { grid-template-columns:1fr; } }
.ob-acc-lista { display:flex; flex-direction:column; gap:6px; margin-top:8px; }
.ob-acc { display:flex; gap:12px; align-items:center; padding:10px 12px; border:1px solid var(--borda); border-radius:12px; }
.ob-acc-q { flex:1; min-width:0; display:flex; flex-direction:column; }
.ob-acc-q b { color:var(--navy); font-size:14px; } .ob-acc-q span { font-size:12.5px; color:var(--cinza2); overflow-wrap:anywhere; }
.ob-acc select { height:34px; border:1px solid var(--borda); border-radius:9px; padding:0 8px; font:inherit; background:#fff; }
/* formulários */
.ob-form { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:12px 14px; }
.ob-form .ob-full { grid-column:1 / -1; }
.ob-fs { grid-column:1 / -1; margin-top:6px; padding-top:10px; border-top:1px solid var(--linha); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:var(--cinza); }
.ob-form-erro { background:var(--verm-cl); color:#B91C1C; border-radius:9px; padding:9px 12px; font-size:13px; }
/* relatório */
.ob-rel-top { display:flex; flex-wrap:wrap; gap:10px; align-items:center; justify-content:space-between; }
.ob-rel { font-size:13px; line-height:1.5; }
.ob-rel .remp { margin:0 0 18px; }
.ob-rel .remp h2 { font-size:16px; margin:14px 0 8px; border-left:4px solid var(--azul); padding-left:10px; display:flex; gap:8px; flex-wrap:wrap; align-items:baseline; color:var(--navy); }
.ob-rel .meta { color:var(--cinza); font-weight:400; font-size:12.5px; }
.ob-rel .rcount { margin-left:auto; font-size:12px; font-weight:700; color:#B91C1C; background:var(--verm-cl); border-radius:99px; padding:2px 10px; }
.ob-rel .rtbl { width:100%; border-collapse:collapse; font-size:12.5px; }
.ob-rel .rtbl th { text-align:left; font-size:10.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza); padding:6px 8px; border-bottom:2px solid var(--borda); }
.ob-rel .rtbl td { padding:7px 8px; border-bottom:1px solid var(--linha); vertical-align:top; }
.ob-rel .rtbl td.dt { white-space:nowrap; font-weight:700; color:#B91C1C; }
.ob-rel .rtbl td.todo { background:var(--ambar-cl); border-left:3px solid var(--ambar); font-weight:500; min-width:200px; }
.ob-rel .rtbl tr.final td { background:#FFF7F8; }
.ob-rel .finlbl { font-size:9.5px; font-weight:800; letter-spacing:.08em; color:#B91C1C; }
.ob-rel .sit { font-weight:700; font-size:12px; } .ob-rel .sit.crit { color:#B91C1C; } .ob-rel .sit.info { color:var(--azul-esc); }
.ob-rel .rtag { display:inline-block; font-size:10px; font-weight:800; border-radius:4px; padding:1px 5px; }
.ob-rel .rtag.urb { background:var(--azul-cl); color:var(--azul-esc); } .ob-rel .rtag.amb { background:var(--teal-cl); color:#0E7C6F; }
.ob-toast { position:fixed; left:50%; bottom:24px; transform:translateX(-50%); background:var(--navy); color:#fff; padding:10px 18px; border-radius:99px; font-size:13.5px; font-weight:600; opacity:0; pointer-events:none; transition:opacity .2s; z-index:200; max-width:calc(100vw - 32px); }
.ob-toast.on { opacity:1; } .ob-toast.erro { background:#B91C1C; }
/* login: botão Google */
.login-google { display:flex; align-items:center; justify-content:center; gap:10px; width:100%; padding:11px; border:1.5px solid var(--borda); border-radius:10px; background:#fff; color:var(--tinta); font-weight:650; font-size:14.5px; text-decoration:none; }
.login-google:hover { background:#F8FAFD; border-color:#C9D4E3; }
.login-google svg { width:18px; height:18px; }
.login-ou { display:flex; align-items:center; gap:10px; color:var(--cinza2); font-size:12px; margin:16px 0; }
.login-ou::before, .login-ou::after { content:""; flex:1; height:1px; background:var(--borda); }
/* responsável externo: só o módulo, sem os alertas da operação */
body.perfil-externo .alerta-tac, body.perfil-externo .alerta-tpc, body.perfil-externo .alerta-prazos, body.perfil-externo .sino { display:none !important; }

/* ================= Áreas Rurais ================= */
/* verde-terra no cabeçalho; cartões e abas reaproveitam o módulo Obrigações (ob-*) */
.hd.hd-rural { --hd-a:rgba(18,165,148,.12); --hd-b:rgba(217,164,65,.10); --hd-e1:#0E7C6F; --hd-e2:#B7862C; --hd-pill:rgba(18,165,148,.14); }
.ru-card { border-left-color:var(--teal); }
.ru-card[data-sit="cad"], .ru-card[data-sit="urb"] { border-left-color:var(--roxo); }
.ru-card[data-sit="dup"] { border-left-color:var(--azul); }
.ru-card[data-sit="warn"] { border-left-color:var(--ambar); }
.ru-num { width:38px; height:38px; border-radius:11px; display:grid; place-items:center; flex:none; background:var(--teal-cl); color:#0E7C6F; font-weight:800; font-size:14px; font-variant-numeric:tabular-nums; }
.ru-card[data-sit="cad"] .ru-num, .ru-card[data-sit="urb"] .ru-num { background:var(--roxo-cl); color:var(--roxo); }
.ru-areas { display:grid; gap:3px; min-width:200px; }
.ru-av { display:flex; justify-content:space-between; gap:12px; align-items:baseline; font-size:12.5px; }
.ru-av em { font-style:normal; color:var(--cinza2); font-size:11.5px; }
.ru-av b { font-weight:700; color:var(--navy); font-variant-numeric:tabular-nums; }
.ru-av.bom b { color:var(--teal); } .ru-av.ruim b { color:var(--verm); }
.ru-cmp { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:8px; }
.ru-cmp div { background:#F8FAFD; border:1px solid var(--borda); border-radius:10px; padding:9px 12px; display:grid; gap:2px; }
.ru-cmp span { font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--cinza); }
.ru-cmp b { font-size:17px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; }
.ru-cmp .bom { border-color:rgba(18,165,148,.45); } .ru-cmp .bom b { color:var(--teal); }
.ru-cmp .ruim { border-color:rgba(225,29,72,.4); background:var(--verm-cl); } .ru-cmp .ruim b { color:var(--verm); }
.ru-steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.ru-step { border:1px solid rgba(139,92,246,.5); background:var(--roxo-cl); border-radius:12px; padding:10px 13px; display:grid; gap:4px; font-size:13.5px; }
.ru-step b { font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--roxo); }
.ru-step.na { border-color:var(--borda); background:#F8FAFD; } .ru-step.na b { color:var(--cinza); }
.ru-step.chk { border-style:dashed; }
.ob-t td.ru-ruim { color:var(--verm); font-weight:700; }
.ob-t tr.ru-total td { background:#F8FAFD; border-top:1px solid var(--borda); }
/* mapa */
.ru-mapwrap { display:grid; grid-template-columns:minmax(0,1fr) 330px; gap:14px; align-items:start; }
@media (max-width:1100px) { .ru-mapwrap { grid-template-columns:1fr; } }
.ru-mapbox { position:relative; height:min(70vh,660px); min-height:380px; overflow:hidden; padding:0; touch-action:none; }
.ru-mapbox svg { width:100%; height:100%; display:block; cursor:grab; }
.ru-mapbox svg.arrastando { cursor:grabbing; }
.ru-mapbox path, .ru-mapbox [data-emp] { cursor:pointer; }
.ru-rot { font-size:11px; font-weight:700; fill:var(--navy); pointer-events:none; font-family:"Inter",sans-serif; }
.ru-rot-lot { font-size:11px; fill:var(--cinza); pointer-events:none; }
.ru-ctl { position:absolute; right:12px; top:12px; display:grid; gap:5px; }
.ru-ctl button { width:34px; height:34px; border-radius:9px; border:1px solid var(--borda); background:#fff; font-size:17px; font-weight:700; color:var(--navy); box-shadow:var(--sombra); }
.ru-ctl button:hover { border-color:var(--azul); color:var(--azul); }
.ru-norte { position:absolute; left:12px; top:12px; font-size:11px; font-weight:800; color:var(--cinza); background:#fff; border:1px solid var(--borda); border-radius:7px; padding:4px 8px; }
.ru-escala { position:absolute; left:12px; bottom:12px; display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; color:var(--cinza); background:#fff; border:1px solid var(--borda); border-radius:7px; padding:4px 9px; }
.ru-escala i { display:block; height:6px; border:1.5px solid var(--navy); border-top:0; }
.ru-tip { position:absolute; pointer-events:none; background:var(--navy); color:#fff; font-size:12px; padding:4px 9px; border-radius:7px; white-space:nowrap; transform:translate(-50%,-135%); z-index:2; }
.ru-painel { display:flex; flex-direction:column; gap:12px; }
.ru-sel { padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
.ru-sel > b { font-size:15px; color:var(--navy); }
.ru-sel-on { border-color:var(--azul); box-shadow:0 0 0 3px var(--azul-cl); }
.ru-camada { display:grid; grid-template-columns:auto auto minmax(0,1fr) auto; gap:8px; align-items:center; padding:8px 0; border-top:1px solid var(--linha); font-size:13px; cursor:pointer; }
.ru-camada i { width:12px; height:12px; border-radius:3px; }
.ru-camada small, .ru-sug small { display:block; font-size:11.5px; color:var(--cinza2); }
.ru-sug { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:6px; align-items:center; padding:7px 0; border-top:1px solid var(--linha); font-size:12.5px; }
.ru-legenda { display:flex; flex-wrap:wrap; gap:12px; font-size:12px; color:var(--cinza); }
.ru-legenda i { display:inline-block; width:11px; height:11px; margin-right:5px; vertical-align:-1px; }
.ru-l-pol { background:rgba(46,99,235,.35); border:1.5px solid var(--azul); border-radius:2px; }
.ru-l-tcra { background:var(--teal); transform:rotate(45deg); }
.ru-l-lot { border:2px solid var(--navy); border-radius:50%; background:#fff; }
@media (max-width:760px) { .ru-areas { min-width:0; width:100%; } }
.ru-raiz .btn-min { display:inline-flex; align-items:center; gap:6px; } .ru-raiz .btn-min svg { width:14px; height:14px; flex:none; }
/* cadeia das matrículas (organograma) */
.ru-cadeia { padding:10px; overflow:auto; max-height:72vh; background:#F8FAFD; }
.ru-cadeia svg { display:block; }
.ru-cadeia .cd-n { font:800 14px "Inter",sans-serif; fill:var(--navy); font-variant-numeric:tabular-nums; }
.ru-cadeia .cd-k { font:800 9.5px "Inter",sans-serif; letter-spacing:.06em; }
.ru-cadeia .cd-t { font:600 12px "Inter",sans-serif; fill:var(--tinta); }
.ru-cadeia .cd-s { font:500 11px "Inter",sans-serif; fill:var(--cinza); }
.ru-cadeia .cd-link { cursor:pointer; }
.ru-cadeia .cd-link:hover rect:first-child { stroke:var(--azul); stroke-width:2; }
.ru-cadeia-top { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; justify-content:space-between; font-size:12.5px; }
.ru-cd-leg { display:flex; flex-wrap:wrap; gap:12px; color:var(--cinza); font-size:12px; }
.ru-cd-leg i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px; }
.ru-cd-leg i.fant { border:1.5px dashed var(--cinza2); background:#fff; }
.ru-soltos { display:flex; flex-wrap:wrap; gap:6px; }
.ru-solto { display:inline-flex; gap:6px; align-items:center; padding:5px 10px; border:1px solid var(--borda); border-radius:9px; background:#fff; font-size:12.5px; color:var(--tinta); text-decoration:none; }
a.ru-solto:hover { border-color:var(--azul); }

/* ---- Judicial: pagamentos de acordo/condenação e paralelo acordo × risco ---- */
.pg-vazio { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:6px 20px 18px; flex-wrap:wrap; }
.pg-vazio b { display:block; font-size:20px; color:var(--ink); }
.pg-vazio span { display:block; font-size:12.5px; color:var(--cinza2); margin-top:2px; max-width:560px; }
.pg-resumo { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:4px 20px 10px; }
.pg-resumo span { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); }
.pg-resumo b { display:block; font-size:16px; color:var(--ink); margin-top:2px; font-variant-numeric:tabular-nums; }
.pg-resumo b.ok { color:var(--teal); }
.pg-barra { height:8px; margin:0 20px; background:var(--line2,#eef1f5); border-radius:99px; overflow:hidden; }
.pg-barra i { display:block; height:100%; background:linear-gradient(90deg,#12A594,#34D399); border-radius:99px; }
.pg-leg { font-size:12px; color:var(--cinza2); padding:6px 20px 8px; }
.pg-tab tr.pg-paga td { color:var(--cinza2); }
.pg-tab tr.pg-vencida td { background:var(--red-bg); }
.pg-st { font-size:12px; font-weight:600; color:#2563EB; }
.pg-st.ok { color:var(--teal); }
.pg-st.venc { color:var(--red); }
.pg-acoes { white-space:nowrap; }
.pg-rodape { display:flex; justify-content:flex-end; padding:8px 20px 14px; }
.par-grid { display:grid; grid-template-columns:1fr auto 1fr 1.1fr; gap:12px; align-items:stretch; padding:6px 20px 12px; }
.par-box { border:1px solid var(--line); border-radius:12px; padding:12px 14px; background:#fff; }
.par-box span { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); }
.par-box b { display:block; font-size:20px; color:var(--ink); margin:3px 0 1px; font-variant-numeric:tabular-nums; }
.par-box small { font-size:12px; color:var(--cinza2); }
.par-vs { align-self:center; font-size:18px; color:var(--cinza2); font-weight:700; }
.par-res { background:var(--teal-cl); border-color:rgba(18,165,148,.35); }
.par-res b { color:#0F766E; }
.par-res.neg { background:var(--red-bg); border-color:rgba(225,29,72,.3); }
.par-res.neg b { color:var(--red); }
.par-memoria { margin-top:0; }
@media (max-width: 760px) {
  .pg-resumo { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .par-grid { grid-template-columns:1fr; }
  .par-vs { display:none; }
}
.ap-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:4px 0 14px; }
.ap-k { background:#fff; border:1px solid var(--line); border-radius:14px; padding:14px 16px; }
.ap-k span { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); }
.ap-k b { display:block; font-size:22px; color:var(--ink); margin:4px 0 2px; font-variant-numeric:tabular-nums; }
.ap-k small { font-size:12px; color:var(--cinza2); }
.ap-eco { background:var(--teal-cl); border-color:rgba(18,165,148,.35); }
.ap-eco b { color:#0F766E; }
.ap-eco.neg { background:var(--red-bg); border-color:rgba(225,29,72,.3); }
.ap-eco.neg b { color:var(--red); }
.ap-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.ap-prem { padding:4px 20px 16px; font-size:13px; color:var(--ink); line-height:1.55; display:grid; gap:4px; }
.ap-dist { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.ap-chip { font-size:12px; border:1px solid var(--line); border-radius:99px; padding:3px 10px; color:var(--cinza2); background:#fff; }
.ap-chip.on { border-color:#12A594; color:#0F766E; background:var(--teal-cl); }
.ap-nota { font-size:12px; color:var(--cinza2); padding:6px 20px 14px; }
@media (max-width: 900px) { .ap-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.tf-tag.tf-jud { background:#EDE7FD; color:#6D3EE0; }

/* ===== Página do processo — cabeçalho escuro compacto (16/09/2026) =====
   No escuro só o essencial: quem, qual processo, situação e 4 números. O resto abre na seta. */
.hd.proc-hero { padding:18px 22px 14px; }
.proc-nome { font-size:23px; }
.proc-cnj { font-size:13px; }
.proc-hero .pill { font-size:11.5px; }
.btn-hero { padding:8px 13px; font-size:12.5px; }
.proc-kpis { display:grid; grid-template-columns:1.1fr repeat(3,1fr); gap:10px; margin-top:14px; }
.proc-kpis .proc-stat { padding:10px 14px; }
.proc-kpis .ps-rot { font-size:10.5px; margin-bottom:4px; }
.proc-kpis .ps-val { font-size:17px; }
.proc-kpis .proc-stat-info .ps-val { font-size:15px; }
@media (max-width:900px){ .proc-kpis { grid-template-columns:repeat(2,1fr); } }
.proc-mais { margin-top:12px; border-top:1px solid rgba(255,255,255,.14); padding-top:8px; }
.proc-mais > summary { list-style:none; cursor:pointer; display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:650; color:rgba(255,255,255,.78); padding:4px 2px; user-select:none; }
.proc-mais > summary::-webkit-details-marker { display:none; }
.proc-mais > summary::before { content:"▸"; font-size:11px; transition:transform .15s; }
.proc-mais[open] > summary::before { transform:rotate(90deg); }
.proc-mais > summary:hover { color:#fff; }
.proc-mais .proc-facts { margin-top:8px; padding-top:0; border-top:0; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px 18px; }
.proc-mais .proc-facts .pf-v { font-size:13px; }
@media (max-width:900px){ .proc-mais .proc-facts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* faixa do acordo/condenação: mantém a cor, mais baixa */
.acordo-banner { padding:12px 20px; gap:16px; margin:12px 0 4px; flex-wrap:wrap; }
.acordo-banner .ab-ico { font-size:22px; }
.acordo-banner .ab-cap { font-size:10.5px; }
.acordo-banner .ab-val { font-size:16px; }
/* seções secundárias recolhíveis (parâmetros, cálculo-base, memória de cálculo) */
.sec-dobra { margin-bottom:10px; }
.sec-dobra > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:9px; padding:12px 18px; font-size:13.5px; font-weight:700; color:var(--ink); user-select:none; }
.sec-dobra > summary::-webkit-details-marker { display:none; }
.sec-dobra > summary::before { content:"▸"; font-size:11px; color:#94A3B8; transition:transform .15s; }
.sec-dobra[open] > summary::before { transform:rotate(90deg); }
.sec-dobra > summary small { font-weight:500; color:var(--cinza2); font-size:12px; margin-left:auto; }
.sec-dobra > .card { margin:0 0 0; border:0; box-shadow:none; }
.dobra-mem { margin:0 18px 12px; }
.dobra-mem > summary { list-style:none; cursor:pointer; font-size:12.5px; font-weight:650; color:#2563EB; padding:4px 0; user-select:none; }
.dobra-mem > summary::-webkit-details-marker { display:none; }
.dobra-mem > summary::before { content:"▸ "; }
.dobra-mem[open] > summary::before { content:"▾ "; }
.dobra-mem .cb-rows { padding:2px 0 4px !important; }
.dobra-mem .cb-nota { margin:4px 0 2px !important; }

/* cartões: títulos e respiros menores */
.jud-card .card-head { padding-top:12px; padding-bottom:8px; }
.jud-card .card-title { font-size:14px; }
.pg-vazio b { font-size:16px; }
.pg-resumo b { font-size:14px; }
.par-grid { gap:10px; padding:4px 18px 10px; }
.par-box { padding:9px 12px; border-radius:10px; }
.par-box b { font-size:16px; }
.par-vs { font-size:14px; }

/* memória de cálculo do paralelo (mesmo visual do cálculo-base, mais leve) */
.par-card .cb-rows { padding:2px 18px 4px; }
.par-card .cb-row { display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:6px 0; border-bottom:1px dashed #EEF2F8; font-size:12.5px; color:#334155; }
.par-card .cb-row span i { color:#94A3B8; font-style:normal; font-size:11.5px; }
.par-card .cb-row b { font-variant-numeric:tabular-nums; white-space:nowrap; font-weight:650; }
.par-card .cb-row.neg b { color:#DC2626; }
.par-card .cb-total, .calc-base .cb-total { display:flex; justify-content:space-between; align-items:center; gap:16px; margin:8px 0 4px; padding:8px 12px; border-radius:8px; background:#F1F5F9; color:var(--ink); }
.par-card .cb-total span, .calc-base .cb-total span { font-weight:650; font-size:12.5px; }
.par-card .cb-total b, .calc-base .cb-total b { font-size:15px; font-variant-numeric:tabular-nums; }
.par-card .cb-nota { margin:4px 18px 14px; padding:7px 10px; border-radius:8px; background:#F8FAFC; border:1px solid #EEF2F7; color:#64748B; font-size:11.5px; }
.calc-base .cb-row { font-size:12.5px; padding:6px 0; }
.cond-params .cp-v { font-size:13.5px; }
/* pagamentos do acordo + acordo × risco lado a lado */
.proc-duo { display:grid; grid-template-columns:repeat(auto-fit,minmax(420px,1fr)); gap:14px; align-items:start; margin-top:10px; }
.proc-duo > .card { margin:0; }
.proc-duo .pg-resumo { grid-template-columns:repeat(2,minmax(0,1fr)); }
.proc-duo .par-grid { grid-template-columns:1fr 1fr; }
.proc-duo .par-vs { display:none; }
.proc-duo .par-res { grid-column:1 / -1; }
.proc-duo .pg-vazio { flex-direction:column; align-items:flex-start; }
/* faixa de acordo/condenação DENTRO do cabeçalho escuro: grade que ocupa a largura toda */
.proc-hero .acordo-banner { display:grid; grid-template-columns:auto repeat(auto-fit,minmax(130px,1fr)); align-items:stretch; gap:0; margin:10px 0 0; padding:0; border-radius:12px; overflow:hidden;
  background:rgba(16,185,129,.13); border:1px solid rgba(52,211,153,.45); box-shadow:none; }
.proc-hero .acordo-banner.cond-banner { background:rgba(124,58,237,.18); border-color:rgba(167,139,250,.5); }
.proc-hero .acordo-banner.improc-banner { background:rgba(239,68,68,.15); border-color:rgba(248,113,113,.45); }
.proc-hero .acordo-banner .ab-sep { display:none; }
.proc-hero .acordo-banner .ab-ico { display:flex; align-items:center; gap:8px; padding:10px 18px; background:rgba(16,185,129,.28); font-size:20px; opacity:1; }
.proc-hero .acordo-banner.cond-banner .ab-ico { background:rgba(124,58,237,.35); }
.proc-hero .acordo-banner.improc-banner .ab-ico { background:rgba(239,68,68,.3); }
.proc-hero .acordo-banner .ab-ico b { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff; }
.proc-hero .acordo-banner .ab-cell { padding:9px 16px; border-left:1px solid rgba(255,255,255,.1); justify-content:center; }
.proc-hero .acordo-banner .ab-cap { font-size:10px; color:rgba(255,255,255,.65); }
.proc-hero .acordo-banner .ab-val { font-size:14.5px; color:#fff; }
.proc-hero .acordo-banner:not(.cond-banner):not(.improc-banner) .ab-val { color:#A7F3D0; }
@media (max-width:760px){ .proc-hero .acordo-banner { grid-template-columns:1fr 1fr; } .proc-hero .acordo-banner .ab-ico { grid-column:1 / -1; } }
.dobra-parc > summary { list-style:none; cursor:pointer; font-size:12.5px; font-weight:650; color:#2563EB; padding:6px 20px; user-select:none; }
.dobra-parc > summary::-webkit-details-marker { display:none; }
.dobra-parc > summary::before { content:"▸ "; }
.dobra-parc[open] > summary::before { content:"▾ "; }
/* faixa de acordo/condenação DENTRO do cabeçalho escuro: grade que ocupa a largura toda */
.proc-hero .acordo-banner { display:grid; grid-template-columns:auto repeat(auto-fit,minmax(130px,1fr)); align-items:stretch; gap:0; margin:10px 0 0; padding:0; border-radius:12px; overflow:hidden;
  background:rgba(16,185,129,.13); border:1px solid rgba(52,211,153,.45); box-shadow:none; }
.proc-hero .acordo-banner.cond-banner { background:rgba(124,58,237,.18); border-color:rgba(167,139,250,.5); }
.proc-hero .acordo-banner.improc-banner { background:rgba(239,68,68,.15); border-color:rgba(248,113,113,.45); }
.proc-hero .acordo-banner .ab-sep { display:none; }
.proc-hero .acordo-banner .ab-ico { display:flex; align-items:center; gap:8px; padding:10px 18px; background:rgba(16,185,129,.28); font-size:20px; opacity:1; }
.proc-hero .acordo-banner.cond-banner .ab-ico { background:rgba(124,58,237,.35); }
.proc-hero .acordo-banner.improc-banner .ab-ico { background:rgba(239,68,68,.3); }
.proc-hero .acordo-banner .ab-ico b { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff; }
.proc-hero .acordo-banner .ab-cell { padding:9px 16px; border-left:1px solid rgba(255,255,255,.1); justify-content:center; }
.proc-hero .acordo-banner .ab-cap { font-size:10px; color:rgba(255,255,255,.65); }
.proc-hero .acordo-banner .ab-val { font-size:14.5px; color:#fff; }
.proc-hero .acordo-banner:not(.cond-banner):not(.improc-banner) .ab-val { color:#A7F3D0; }
@media (max-width:760px){ .proc-hero .acordo-banner { grid-template-columns:1fr 1fr; } .proc-hero .acordo-banner .ab-ico { grid-column:1 / -1; } }
.dobra-parc > summary { list-style:none; cursor:pointer; font-size:12.5px; font-weight:650; color:#2563EB; padding:6px 20px; user-select:none; }
.dobra-parc > summary::-webkit-details-marker { display:none; }
.dobra-parc > summary::before { content:"▸ "; }
.dobra-parc[open] > summary::before { content:"▾ "; }
/* correção: a grade com "auto + auto-fit" é inválida e empilhava tudo — faixa em uma linha (flex) */
.proc-hero .acordo-banner { display:flex !important; flex-wrap:nowrap; align-items:stretch; }
.proc-hero .acordo-banner .ab-ico { flex:0 0 auto; flex-direction:row; }
.proc-hero .acordo-banner .ab-cell { flex:1 1 0; min-width:0; }
.proc-hero .acordo-banner .ab-val { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:900px){ .proc-hero .acordo-banner { flex-wrap:wrap; } .proc-hero .acordo-banner .ab-ico { flex:1 0 100%; } .proc-hero .acordo-banner .ab-cell { flex:1 1 40%; } }

/* ---- cabeçalho: cores revistas + Risco em destaque + selo de acordo ---- */
.proc-kpis.com-risco { grid-template-columns:1fr 1fr 1fr 1fr 1.25fr; }
@media (max-width:1100px){ .proc-kpis.com-risco { grid-template-columns:repeat(2,1fr); } .proc-kpis.com-risco .proc-risco { grid-column:1 / -1; } }
/* quadros internos: mesmo vidro neutro; a cor fica só no ponto */
.proc-kpis .proc-stat, .proc-kpis .proc-stat-info, .proc-kpis .proc-stat-neutro { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); }
.proc-kpis .proc-stat-neutro .ps-val, .proc-kpis .proc-stat-info .ps-val { color:#F1F5FF; }
.proc-kpis .proc-stat-neutro .ps-dot { background:#94A3B8; }
.proc-kpis .proc-stat-neutro:nth-child(3) .ps-dot { background:#34D399; }
.proc-kpis .proc-stat-neutro:nth-child(4) .ps-dot { background:#F87171; }
.proc-kpis .proc-risco { background:linear-gradient(135deg,rgba(244,63,94,.28),rgba(190,18,60,.18)); border:1px solid rgba(251,113,133,.6); box-shadow:inset 0 0 0 1px rgba(255,255,255,.04); }
.proc-kpis .proc-risco .ps-rot { color:#FECDD3; font-weight:800; }
.proc-kpis .proc-risco .ps-val { color:#fff; font-size:20px; }
.proc-kpis .proc-risco .ps-sub { font-size:10.5px; color:rgba(255,228,230,.75); margin-top:1px; }
.tag-acordo { font-size:12px; font-weight:800; padding:4px 12px; border-radius:99px; background:#10B981; color:#fff; letter-spacing:.02em; box-shadow:0 0 0 3px rgba(16,185,129,.25); white-space:nowrap; }
/* quadro Risco × acordo: Risco com peso */
.par-box.par-risco { background:#FFF1F2; border-color:#FECDD3; }
.par-box.par-risco span { color:#BE123C; }
.par-box.par-risco b { color:#9F1239; font-size:19px; }
/* movimentações recolhidas dentro do Andamento */
.dobra-mov { border-top:1px solid var(--line); margin:0 18px; }
.dobra-mov > summary { list-style:none; cursor:pointer; display:flex; align-items:center; gap:10px; padding:11px 2px; font-size:13px; color:var(--ink); user-select:none; }
.dobra-mov > summary::-webkit-details-marker { display:none; }
.dobra-mov > summary::before { content:"▸"; font-size:11px; color:#2563EB; transition:transform .15s; }
.dobra-mov[open] > summary::before { transform:rotate(90deg); }
.dobra-mov > summary em { font-style:normal; font-size:11px; font-weight:700; background:#EEF2F8; color:#475569; border-radius:99px; padding:1px 8px; }
.dobra-mov .dm-ult { margin-left:auto; font-size:12px; color:var(--cinza2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:60%; }
.dobra-mov-corpo { padding:0 2px 12px; }
.dobra-mov .dm-topo { display:flex; justify-content:flex-end; margin-bottom:4px; }
/* cabeçalho do processo na cor do empreendimento */
.hd.proc-hero.tema-emp { background:linear-gradient(135deg,var(--e1) 0%,var(--e2) 70%,var(--e3) 160%); }
.proc-hero.tema-emp .acordo-banner .ab-ico { box-shadow:inset -1px 0 0 rgba(255,255,255,.08); }

.proc-kpis .proc-risco.rec { background:linear-gradient(135deg,rgba(245,158,11,.28),rgba(180,83,9,.18)); border-color:rgba(251,191,36,.6); }
.proc-kpis .proc-risco.rec .ps-rot { color:#FDE68A; }
.proc-kpis .proc-stat .ps-sub { font-size:10.5px; color:rgba(255,255,255,.62); margin-top:1px; }
.proc-cnj-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:4px; }
.proc-cnj-row .proc-cnj { margin-top:0; }
.proc-dist { font-size:12.5px; color:rgba(255,255,255,.85); background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); padding:2px 10px; border-radius:99px; }
.proc-dist b { color:#fff; font-weight:800; }
/* ---- Ranking de risco ---- */
.rk-resumo { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:4px 0 12px; }
.rk-k { background:#fff; border:1px solid var(--line); border-radius:14px; padding:12px 16px; }
.rk-k span { display:block; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); }
.rk-k b { display:block; font-size:21px; color:var(--ink); margin:3px 0 1px; font-variant-numeric:tabular-nums; }
.rk-k small { font-size:12px; color:var(--cinza2); line-height:1.35; }
.rk-k-forte { background:linear-gradient(135deg,#FFF1F2,#FFE4E6); border-color:#FECDD3; }
.rk-k-forte b { color:#9F1239; }
.rk-k-ac { background:#ECFDF5; border-color:#A7F3D0; }
.rk-k-ac b { color:#047857; }
@media (max-width:900px){ .rk-resumo { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.rk-card { padding:6px 0 4px; }
.rk-cab, .rk-lin { display:grid; grid-template-columns:34px minmax(220px,2.2fr) 130px minmax(180px,2fr) 110px 130px; gap:12px; align-items:center; padding:9px 18px; }
.rk-cab { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); border-bottom:1px solid var(--line); }
.rk-cab .tr, .rk-perda { text-align:right; }
.rk-lin { border-bottom:1px solid #F1F4F8; cursor:pointer; }
.rk-lin:hover { background:#F8FAFC; }
.rk-pos { font-size:12px; font-weight:800; color:#94A3B8; text-align:center; }
.rk-quem { min-width:0; }
.rk-quem b { display:block; font-size:13px; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rk-quem span { display:block; font-size:11.5px; color:var(--cinza2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rk-emp { display:inline-block; width:7px; height:7px; border-radius:50%; margin-right:5px; vertical-align:middle; }
.rk-tier { display:inline-block; font-size:11px; font-weight:700; color:var(--c); background:color-mix(in srgb, var(--c) 12%, #fff); border:1px solid color-mix(in srgb, var(--c) 35%, #fff); border-radius:99px; padding:2px 9px; white-space:nowrap; }
.rk-barra { display:flex; align-items:center; gap:10px; min-width:0; }
.rk-trk { flex:1; height:8px; background:#EEF2F7; border-radius:99px; overflow:hidden; }
.rk-trk i { display:block; height:100%; border-radius:99px; }
.rk-barra b { font-size:12.5px; color:var(--ink); white-space:nowrap; font-variant-numeric:tabular-nums; min-width:92px; text-align:right; }
.rk-perda { font-size:12.5px; font-weight:700; color:#475569; font-variant-numeric:tabular-nums; }
.rk-acordo { font-size:11.5px; font-weight:700; color:#047857; background:#ECFDF5; border:1px solid #A7F3D0; border-radius:99px; padding:2px 9px; white-space:nowrap; }
.rk-semac { font-size:11.5px; color:#94A3B8; }
.rk-mais > summary { list-style:none; cursor:pointer; font-size:12.5px; font-weight:650; color:#2563EB; padding:10px 18px; user-select:none; }
.rk-mais > summary::-webkit-details-marker { display:none; }
.rk-mais > summary::before { content:"▸ "; }
.rk-mais[open] > summary::before { content:"▾ "; }
@media (max-width:900px){ .rk-cab { display:none; } .rk-lin { grid-template-columns:28px 1fr; } .rk-prob, .rk-barra, .rk-perda, .rk-ac { grid-column:2; } }
/* ---- Tempo dos processos ---- */
.tf-cab, .tf-lin { display:grid; grid-template-columns:minmax(150px,1.3fr) minmax(150px,1.6fr) 100px 110px; gap:12px; align-items:center; padding:8px 18px; }
.tf-cab { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); border-bottom:1px solid var(--line); }
.tf-cab .tr, .tf-risco { text-align:right; }
.tf-lin { border-bottom:1px solid #F1F4F8; }
.tf-fase b { display:block; font-size:13px; color:var(--ink); }
.tf-fase span { font-size:11.5px; color:var(--cinza2); }
.tf-fase em { font-style:normal; color:#DC2626; font-weight:700; }
.tf-barra { display:flex; align-items:center; gap:10px; }
.tf-barra b { font-size:12px; color:var(--ink); white-space:nowrap; min-width:78px; text-align:right; }
.tf-par { font-size:12px; color:#475569; }
.tf-risco { font-size:12.5px; font-weight:700; color:#9F1239; font-variant-numeric:tabular-nums; }
.tp-stack { display:flex; height:12px; border-radius:99px; overflow:hidden; background:#EEF2F7; }
.tp-stack i { display:block; height:100%; }
.tp-leg { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:4px 14px; margin-top:10px; }
.tp-leg div { display:flex; align-items:center; gap:6px; font-size:11.5px; color:#475569; }
.tp-leg span { width:9px; height:9px; border-radius:3px; flex:none; }
.tp-leg b { margin-left:auto; color:var(--ink); }
.tp-leg small { color:var(--cinza2); font-size:11px; min-width:70px; text-align:right; }
.tp-lin { display:grid; grid-template-columns:56px 1fr 120px; gap:12px; align-items:center; padding:8px 18px; border-top:1px solid #F1F4F8; cursor:pointer; }
.tp-lin:hover { background:#F8FAFC; }
.tp-dias { text-align:center; line-height:1.05; }
.tp-dias b { display:block; font-size:16px; color:#DC2626; }
.tp-dias span { font-size:10px; color:var(--cinza2); text-transform:uppercase; }
.tp-risco { text-align:right; font-size:12.5px; font-weight:700; color:#9F1239; white-space:nowrap; }
.tp-mais { font-size:12px; color:var(--cinza2); padding:8px 18px 12px; }
.tjsp-sync { font-size:12px; color:#047857; background:#ECFDF5; border:1px solid #A7F3D0; border-radius:99px; padding:4px 11px; white-space:nowrap; }
.tjsp-sync.rodando { color:#1D4ED8; background:#EFF6FF; border-color:#BFDBFE; }
.tjsp-sync.pend { color:#92400E; background:#FEF3C7; border-color:#FDE68A; }
.tp-sub { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:#B45309; padding:12px 18px 4px; border-top:1px solid var(--line); }
.ap-falta { font-size:11px; font-weight:700; color:#B45309; background:#FEF3C7; border-radius:99px; padding:2px 8px; white-space:nowrap; }
.ap-obs { font-size:12px; color:var(--cinza2); }
.pill.pp-reconv-cl { background:#FEF3C7; color:#92400E; border:1px solid #FDE68A; }
.par-reconv { font-size:11.5px; font-weight:700; color:#475569; background:#F1F5F9; border:1px solid #E2E8F0; border-radius:99px; padding:2px 10px; white-space:nowrap; }
.par-reconv.sim { color:#92400E; background:#FEF3C7; border-color:#FDE68A; }
/* ---- Visão geral do Judicial em sessões ---- */
.jv-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:6px 0 4px; }
.jv-k { background:#fff; border:1px solid var(--line); border-radius:16px; padding:14px 18px; box-shadow:var(--sombra); }
.jv-k span { display:block; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--cinza2); }
.jv-k b { display:block; font-size:26px; line-height:1.1; color:var(--ink); margin:5px 0 3px; font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.jv-k small { font-size:12px; color:var(--cinza2); line-height:1.35; }
.jv-k-destaque { background:linear-gradient(135deg,#0F1B2E,#26406B); border:none; }
.jv-k-destaque span, .jv-k-destaque small { color:rgba(255,255,255,.72); } .jv-k-destaque b { color:#fff; }
.jv-k-risco { background:linear-gradient(135deg,#FFF1F2,#FFE4E6); border-color:#FECDD3; } .jv-k-risco b { color:#9F1239; }
.jv-k-ac { background:#ECFDF5; border-color:#A7F3D0; } .jv-k-ac b { color:#047857; }
.jv-abas { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); margin:16px 0 6px; }
.jv-abas .emp-aba { cursor:pointer; font:inherit; text-align:left; }
.jv-abas .emp-aba.on { background:linear-gradient(135deg,#1E3A8A,#2563EB); border-color:transparent; color:#fff; }
.jv-abas .emp-aba.on .ea-ic { background:rgba(255,255,255,.18); color:#fff; }
.jv-abas .emp-aba.on small { color:rgba(255,255,255,.8); }
#jv-corpo > .sec:first-child, #jv-corpo > .exec-hero:first-child { margin-top:10px; }
/* ===== Painel do Judicial no padrão do empreendimento ===== */
.jd-barra { margin:8px 0 2px; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 22px; flex-wrap:wrap; }
.jd-bt { font-weight:700; color:var(--ink); font-size:15px; }
.jd-seg { display:flex; gap:8px; flex-wrap:wrap; margin-top:6px; }
.jd-chip { display:inline-flex; align-items:center; gap:7px; font:inherit; font-size:12.5px; font-weight:650; color:#334155; background:#fff; border:1px solid var(--line); border-radius:99px; padding:5px 12px; cursor:pointer; }
.jd-chip i { width:8px; height:8px; border-radius:50%; background:var(--c); }
.jd-chip:hover { border-color:var(--c); }
.jd-chip.on { background:var(--c); border-color:var(--c); color:#fff; } .jd-chip.on i { background:#fff; }
.jd-chip.jd-todos { color:var(--cinza2); }
.jd-acoes { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.jd-huge { font-size:56px !important; letter-spacing:-.02em; }
.jd-stack { display:flex; height:12px; border-radius:99px; overflow:hidden; background:rgba(255,255,255,.14); margin-top:18px; }
.jd-stack i { display:block; height:100%; }
.jd-stack-leg { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:9px; font-size:12px; color:rgba(255,255,255,.8); }
.jd-stack-leg span { display:inline-flex; align-items:center; gap:6px; } .jd-stack-leg i { width:8px; height:8px; border-radius:2px; } .jd-stack-leg b { color:#fff; }
.jd-prob .jd-prob-rows { display:flex; flex-direction:column; gap:12px; margin-top:14px; }
.jd-pr-top { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--ink); margin-bottom:5px; }
.jd-pr-top em { font-style:normal; font-size:11.5px; color:var(--cinza2); } .jd-pr-top span:last-child { margin-left:auto; font-size:12px; color:var(--cinza2); }
.jd-dot { width:9px; height:9px; border-radius:50%; }
.jd-pr-vals { display:flex; justify-content:space-between; font-size:11.5px; color:var(--cinza2); margin-top:4px; } .jd-pr-vals b { color:var(--ink); }
.jd-prob-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:16px; padding-top:14px; border-top:1px solid var(--line); }
.jd-prob-grid div { background:#F8FAFC; border:1px solid #EEF2F7; border-radius:12px; padding:10px 12px; }
.jd-prob-grid span { display:block; font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--cinza2); }
.jd-prob-grid b { display:block; font-size:17px; color:var(--ink); margin:2px 0 1px; font-variant-numeric:tabular-nums; }
.jd-prob-grid small { font-size:11px; color:var(--cinza2); }
/* Agenda com 4 seções (geral, termos, judicial, licenças e obrigações) */
@media (min-width:761px) { .ag-abas:has(> :nth-child(4)) { grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* ================= Societário ================= */
.hd.hd-soc { --hd-a:rgba(46,99,235,.11); --hd-b:rgba(139,92,246,.10); --hd-e1:#1B4FD8; --hd-e2:#8B5CF6; --hd-pill:rgba(46,99,235,.13); }
.so-card { border-left-color:var(--slate); }
.so-card[data-nat="SPE"] { border-left-color:var(--teal); } .so-card[data-nat="Holding"] { border-left-color:var(--azul); }
.so-card[data-nat="Holding Familiar"] { border-left-color:var(--roxo); } .so-card[data-nat="Imobiliária"] { border-left-color:var(--ambar); }
.so-card.alerta { border-left-color:var(--verm); }
.so-num { background:var(--azul-cl); color:var(--azul-esc); }
.so-cap { font-size:15px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; }
.so-raiz .btn-min { display:inline-flex; align-items:center; gap:6px; } .so-raiz .btn-min svg { width:14px; height:14px; flex:none; }
.so-barra { display:inline-block; height:6px; border-radius:3px; background:var(--azul); opacity:.5; margin-left:10px; vertical-align:middle; }
.so-adm { display:flex; flex-wrap:wrap; gap:6px; }
.so-adm span { padding:6px 11px; border:1px solid var(--borda); border-radius:10px; background:#F8FAFD; font-size:13px; }
.so-regras { margin:4px 0 0; padding-left:18px; color:var(--cinza); font-size:13px; display:grid; gap:4px; }
.so-vinc { display:grid; gap:10px; }
.so-vinc > div { display:flex; flex-wrap:wrap; gap:6px 14px; align-items:baseline; }
.so-vinc .ob-lbl { min-width:190px; }
.so-chk { display:inline-flex; gap:7px; align-items:center; font-size:13px; color:var(--tinta); }
.so-org .so-no { cursor:pointer; } .so-org .so-no:hover rect:first-child { stroke-width:2.4; }
.so-org .so-n { font:700 12.5px "Inter",sans-serif; fill:var(--navy); }
.so-org .so-s { font:500 11px "Inter",sans-serif; fill:var(--cinza); }
.so-org .so-pct { font:800 10.5px "Inter",sans-serif; fill:#1B4FD8; paint-order:stroke; stroke:#F8FAFD; stroke-width:3px; }
.so-org .so-badge { font:800 10px "Inter",sans-serif; fill:#fff; }
@media (min-width:761px) { .ag-abas:has(> :nth-child(5)) { grid-template-columns:repeat(5,minmax(0,1fr)); } }
.ob-tool .so-chk input { flex:none; width:auto; height:auto; min-width:0; padding:0; }

/* ================= Módulos: cor de cada um, seletor no topo e barra lateral do módulo ================= */
/* --mod / --mod-2 / --mod-soft vêm do cadastro (servidor/modulos.mjs) e são aplicados pelo app ao abrir o módulo */
:root { --mod:#2E63EB; --mod-2:#4F84FF; --mod-soft:rgba(46,99,235,.10); }
.sidebar { border-top:4px solid var(--mod); transition:width .18s ease, box-shadow .18s ease, border-color .2s; }
.logo { text-decoration:none; }
.nav a.ativo { background:linear-gradient(135deg,var(--mod),var(--mod-2)); box-shadow:0 6px 16px -6px var(--mod); }
.nav-mod { position:relative; height:22px; margin:0 0 8px; display:flex; align-items:center; justify-content:center; }
.nav-mod::before { content:""; width:26px; height:4px; border-radius:4px; background:linear-gradient(90deg,var(--mod),var(--mod-2)); }
.nav-mod span { display:none; }
.sidebar:hover .nav-mod { justify-content:flex-start; padding:0 13px; }
.sidebar:hover .nav-mod::before { display:none; }
.sidebar:hover .nav-mod span { display:block; font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:var(--mod-2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nav-base { margin-top:auto; padding-top:12px; border-top:1px solid rgba(255,255,255,.08); }
.nav-base a.ativo { background:rgba(255,255,255,.14); box-shadow:none; }
/* avisos do núcleo (Termos quitados, cancelamentos de AF) só aparecem em Regularizações */
:root[data-modulo]:not([data-modulo="regularizacoes"]) .topbar .alerta-tac { display:none !important; }

/* seletor de módulo (topo) */
.mod-sel { flex:none; }
/* botão do seletor: cheio na cor do módulo, para ficar evidente qual área está aberta e onde trocar */
.ms-btn { display:flex; align-items:center; gap:12px; height:54px; padding:0 8px 0 7px; border:0; border-radius:16px; cursor:pointer; font:inherit; color:#fff; background:linear-gradient(135deg,var(--mod),var(--mod-2)); box-shadow:0 10px 22px -10px var(--mod), inset 0 0 0 1px rgba(255,255,255,.18); transition:transform .12s, box-shadow .12s; }
.ms-btn:hover { transform:translateY(-1px); box-shadow:0 14px 28px -10px var(--mod), inset 0 0 0 1px rgba(255,255,255,.3); }
.ms-ic { width:34px; height:34px; border-radius:10px; display:grid; place-items:center; flex:none; color:#fff; background:linear-gradient(135deg,var(--c,var(--mod)),var(--c2,var(--mod-2))); }
.ms-ic svg { width:19px; height:19px; stroke-width:2; }
.ms-btn .ms-ic { width:40px; height:40px; border-radius:12px; background:rgba(255,255,255,.2); }
.ms-btn .ms-ic svg { width:22px; height:22px; }
.ms-txt { display:flex; flex-direction:column; align-items:flex-start; line-height:1.15; min-width:0; }
.ms-txt small { font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--cinza2); }
.ms-txt b { font-size:14.5px; font-weight:700; color:var(--navy); white-space:nowrap; }
.ms-btn .ms-txt small { color:rgba(255,255,255,.78); }
.ms-btn .ms-txt b { font-size:17px; font-weight:800; color:#fff; letter-spacing:-.01em; }
.ms-trocar { display:flex; align-items:center; gap:4px; margin-left:6px; height:32px; padding:0 10px 0 12px; border-radius:10px; background:#fff; color:var(--mod); font-size:12.5px; font-weight:800; flex:none; }
.ct-menu.ms-menu { min-width:320px; max-width:380px; padding:6px; }
.ct-menu.ms-menu a { display:flex; align-items:center; gap:12px; padding:9px 10px; border-radius:10px; }
.ct-menu.ms-menu a .ms-ic { --c2:var(--c); width:32px; height:32px; }
.ct-menu.ms-menu a span { margin:0; }
.ct-menu.ms-menu a .ms-txt { display:flex; } .ct-menu.ms-menu a .ms-ic { display:grid; }
.ct-menu.ms-menu a .ms-txt b { font-size:14px; }
.ct-menu.ms-menu a .ms-txt small { text-transform:none; letter-spacing:0; font-weight:500; font-size:11.5px; white-space:normal; margin-top:2px; }
.ct-menu.ms-menu a:hover, .ct-menu.ms-menu a.on { background:color-mix(in srgb, var(--c) 9%, #fff); color:inherit; }
.ct-menu.ms-menu a.on .ms-txt b { color:var(--c); }
.ct-menu.ms-menu a.ms-todos { display:block; text-align:center; margin-top:4px; border-top:1px solid var(--line); border-radius:0 0 10px 10px; font-weight:700; color:var(--azul); }

/* tela Módulos */
.md-grade { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px; }
.md-card { position:relative; display:flex; flex-direction:column; gap:8px; padding:20px; border-radius:16px; color:inherit; text-decoration:none; overflow:hidden; transition:transform .12s, box-shadow .12s, border-color .12s; }
.md-card::before { content:""; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg,var(--c),var(--c2)); }
.md-card:hover { transform:translateY(-2px); border-color:var(--c); box-shadow:0 12px 26px -14px var(--c); }
.md-card.on { border-color:var(--c); }
.md-card .md-ic { width:46px; height:46px; border-radius:13px; display:grid; place-items:center; color:#fff; background:linear-gradient(135deg,var(--c),var(--c2)); }
.md-card .md-ic svg { width:24px; height:24px; stroke-width:1.9; }
.md-card b { font-size:17px; color:var(--navy); margin-top:4px; }
.md-card p { margin:0; font-size:13.5px; color:var(--cinza); line-height:1.45; flex:1; }
.md-fn { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.md-fn i { font-style:normal; font-size:11.5px; font-weight:600; padding:3px 9px; border-radius:999px; color:var(--c); background:color-mix(in srgb, var(--c) 10%, #fff); }

/* cabeçalho das telas de módulo na cor do módulo */
.hd.hd-mod, .hd.hd-obrig, .hd.hd-rural, .hd.hd-soc { --hd-a:var(--mod-soft); --hd-b:rgba(255,255,255,0); --hd-e1:var(--mod); --hd-e2:var(--mod-2); --hd-pill:var(--mod-soft); }

/* Visão Geral de cada módulo */
.mv-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:14px; margin-top:14px; align-items:start; }
.mv-card { padding:0; overflow:hidden; }
.mv-card header { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:15px 18px 11px; border-bottom:1px solid var(--line); }
.mv-card h3 { margin:0; font-size:15px; font-weight:700; color:var(--navy); }
.mv-card header span { font-size:12.5px; color:var(--cinza2); font-weight:600; }
.mv-lista { display:flex; flex-direction:column; }
.mv-lin { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 18px; color:inherit; text-decoration:none; border-top:1px solid var(--line); }
.mv-lin:first-child { border-top:0; }
.mv-lin:hover { background:var(--mod-soft); }
.mv-t { display:flex; flex-direction:column; min-width:0; }
.mv-t b { font-size:13.5px; font-weight:600; color:var(--tinta); overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.mv-t small { font-size:12px; color:var(--cinza2); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mv-lin .pill { flex:none; white-space:nowrap; }
.mv-valor { flex:none; font-size:14px; color:var(--navy); }
.mv-vazio { padding:18px; font-size:13px; color:var(--cinza2); }
.mv-mais { display:block; padding:11px 18px; border-top:1px solid var(--line); font-size:13px; font-weight:700; color:var(--mod); text-decoration:none; }
.mv-mais:hover { background:var(--mod-soft); }
@media (max-width:760px) { .ms-txt small { display:none; } .ms-btn { height:40px; } .mv-grid { grid-template-columns:1fr; } }

/* ================= Obrigações · Visão Geral gerencial ================= */
.og-kpis { display:grid; grid-template-columns:1.25fr repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:14px; }
.og-hero, .og-k { display:flex; flex-direction:column; gap:4px; padding:16px 18px; border-radius:16px; background:#fff; border:1px solid var(--borda); color:inherit; text-decoration:none; transition:transform .12s, box-shadow .12s; }
.og-hero:hover, .og-k:hover { transform:translateY(-1px); box-shadow:0 10px 24px -16px rgba(15,27,46,.4); }
.og-hero { background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 78%,#0F1B2E),var(--mod)); border:0; color:#fff; }
.og-k { border-top:4px solid var(--acc); }
.og-kl { font-size:11px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--cinza2); }
.og-hero .og-kl, .og-hero small { color:rgba(255,255,255,.85); }
.og-hero b { font-size:40px; font-weight:800; letter-spacing:-.02em; line-height:1.05; }
.og-k b { font-size:30px; font-weight:800; color:var(--navy); line-height:1.1; font-variant-numeric:tabular-nums; }
.og-hero small, .og-k small { font-size:12px; color:var(--cinza2); line-height:1.3; }
.og-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.og-card { padding:18px 20px; display:flex; flex-direction:column; gap:12px; min-width:0; }
.og-card .tsub { font-size:12px; color:var(--faint); font-weight:600; }
.og-rosca { display:grid; grid-template-columns:220px 1fr; gap:18px; align-items:center; }
.og-legs { display:flex; flex-direction:column; gap:8px; }
.og-legs.og-inline { flex-direction:row; flex-wrap:wrap; gap:6px 16px; }
.og-leg { display:grid; grid-template-columns:12px 1fr auto; align-items:center; gap:8px; font-size:13px; color:var(--tinta); }
.og-leg i { width:12px; height:12px; border-radius:4px; display:block; }
.og-leg b { font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; }
.og-leg em { grid-column:2 / 4; font-style:normal; font-size:11.5px; color:var(--cinza2); margin-top:-6px; }
.og-inline .og-leg { display:flex; font-size:12px; color:var(--cinza); }
.og-ciclo { display:flex; flex-direction:column; }
.og-cab, .og-lin { display:grid; grid-template-columns:minmax(0,1fr) repeat(4,78px) 104px; align-items:center; gap:0; }
.og-cab span { font-size:10.5px; font-weight:700; color:var(--cinza2); text-align:center; text-transform:uppercase; letter-spacing:.04em; padding-bottom:6px; }
.og-lin { min-height:44px; padding:4px 6px; margin:0 -6px; border-radius:10px; color:inherit; text-decoration:none; position:relative; }
.og-lin:hover, .og-bl:hover, .og-tl:hover { background:var(--mod-soft); }
.og-nome { display:flex; flex-direction:column; min-width:0; font-size:13.5px; font-weight:700; color:var(--navy); }
.og-nome small { font-size:11.5px; font-weight:600; color:#C2410C; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-tl .og-nome small { color:var(--cinza2); }
.og-p { justify-self:center; width:18px; height:18px; border-radius:50%; border:2px solid #CBD5E1; background:#fff; box-sizing:border-box; }
.og-p.ok { background:#0D9488; border-color:#0D9488; box-shadow:inset 0 0 0 3px #fff; }
.og-p.and { border-color:#E07B00; background:repeating-linear-gradient(135deg,#FCD9A8 0 3px,#fff 3px 6px); }
.og-legs .og-p { width:14px; height:14px; justify-self:start; }
.og-st { justify-self:end; }
.og-barras, .og-tcra { display:flex; flex-direction:column; gap:2px; }
.og-bl { display:grid; grid-template-columns:150px minmax(0,1fr) 34px; align-items:center; gap:12px; min-height:36px; padding:0 6px; margin:0 -6px; border-radius:10px; color:inherit; text-decoration:none; }
.og-bl .og-nome { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
.og-trk { display:flex; gap:2px; height:14px; }
.og-trk i { display:block; height:100%; min-width:4px; }
.og-trk i:first-child { border-radius:4px 0 0 4px; } .og-trk i:last-child { border-radius:0 4px 4px 0; } .og-trk i:only-child { border-radius:4px; }
.og-bl b { text-align:right; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; }
.og-mais { margin-top:auto; font-size:13px; font-weight:700; color:var(--mod); text-decoration:none; }
.og-tl { display:grid; grid-template-columns:minmax(0,1fr) minmax(170px,230px) 112px; align-items:center; gap:14px; padding:8px 6px; margin:0 -6px; border-radius:10px; color:inherit; text-decoration:none; border-top:1px solid var(--line); }
.og-tl:first-child { border-top:0; }
.og-tl > .pill { justify-self:end; }
.og-dupla { display:flex; flex-direction:column; gap:5px; }
.og-mt { display:grid; grid-template-columns:58px 1fr 40px; align-items:center; gap:8px; font-size:11.5px; }
.og-mt em { font-style:normal; color:var(--cinza2); font-weight:600; }
.og-mt b { text-align:right; color:var(--navy); font-variant-numeric:tabular-nums; }
.og-mt .trk { height:7px; }
@media (max-width:1280px) { .og-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:1100px) { .og-grid { grid-template-columns:1fr; } }
@media (max-width:760px) { .og-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } .og-rosca { grid-template-columns:1fr; justify-items:center; } .og-cab, .og-lin { grid-template-columns:minmax(0,1fr) repeat(4,36px); } .og-st, .og-cab span:last-child { display:none; } .og-tl { grid-template-columns:1fr; } }
/* topo: com o seletor maior, o caminho (crumbs) é que encolhe quando falta espaço */
.topbar .crumbs { min-width:0; flex:1 1 auto; overflow:hidden; white-space:nowrap; }
.topbar .crumbs .atual, .topbar .crumbs a { overflow:hidden; text-overflow:ellipsis; }
.topbar-dir { flex:none; }
@media (max-width:1180px) { .ms-btn .ms-txt small { display:none; } .ms-btn .ms-txt b { font-size:15px; } }
/* Visão Geral gerencial: peças usadas em Áreas Rurais e Societário */
.og-k b .og-de { font-style:normal; font-size:16px; font-weight:700; color:var(--cinza2); }
.og-sub { font-size:11.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza2); margin-top:4px; }
.og-nota { font-size:12.5px; color:var(--cinza); }
.og-trk.og-full { width:100%; height:16px; }
.og-bl:has(.og-val) { grid-template-columns:150px minmax(0,1fr) 128px; }
.og-bl .og-val { font-size:12.5px; white-space:nowrap; }
.og-bl-area { grid-template-columns:170px minmax(0,1fr) 92px; }
.og-area { position:relative; height:14px; }
.og-area .og-am { position:absolute; left:0; top:0; bottom:0; border-radius:0 4px 4px 0; background:#0D9488; opacity:.85; }
.og-area .og-mk, .og-leg i.og-mk { position:absolute; top:-3px; width:4px; height:20px; border-radius:2px; margin-left:-2px; box-shadow:0 0 0 2px #fff; }
.og-leg i.og-mk { position:static; width:4px; height:14px; margin:0 4px; }
.og-bl-area b { display:flex; flex-direction:column; align-items:flex-end; font-size:12.5px; line-height:1.15; }
.og-bl-area b em { font-style:normal; font-size:11px; font-weight:700; }
.og-bl-area b em.up { color:#7C3AED; } .og-bl-area b em.dn { color:#C2410C; }
.og-cols { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; align-items:end; }
.og-col { display:flex; flex-direction:column; align-items:center; gap:4px; color:inherit; text-decoration:none; padding:6px; border-radius:10px; }
.og-col:hover { background:var(--mod-soft); }
.og-col b { font-size:13px; color:var(--navy); font-variant-numeric:tabular-nums; }
.og-colb { width:56px; height:120px; display:flex; align-items:flex-end; border-bottom:1px solid var(--line); }
.og-colb i { display:block; width:100%; border-radius:4px 4px 0 0; background:linear-gradient(180deg,var(--mod-2),var(--mod)); }
.og-col em { font-style:normal; font-weight:800; color:var(--tinta); font-size:13px; }
.og-col small { font-size:11.5px; color:var(--cinza2); }
.og-kpis .og-hero small { color:rgba(255,255,255,.92); font-weight:600; }
/* Societário · sócios: a linha abre as empresas com o percentual */
.og-socios .og-bl { grid-template-columns:210px minmax(0,1fr) 34px; }
.og-det > summary { list-style:none; cursor:pointer; }
.og-det > summary::-webkit-details-marker { display:none; }
.og-det > summary .og-nome::before { content:'▸'; display:inline-block; width:14px; color:var(--cinza2); transition:transform .12s; }
.og-det[open] > summary .og-nome::before { transform:rotate(90deg); }
.og-det[open] > summary { background:var(--mod-soft); }
.og-part { display:flex; flex-direction:column; margin:4px 0 10px 20px; padding-left:12px; border-left:2px solid var(--mod-soft); }
.og-part > a:not(.og-mais) { display:grid; grid-template-columns:minmax(0,1fr) 120px 64px; align-items:center; gap:12px; padding:6px 8px; border-radius:8px; color:inherit; text-decoration:none; font-size:13px; }
.og-part > a:not(.og-mais):hover { background:var(--mod-soft); }
.og-part a span:first-child { display:flex; align-items:baseline; gap:8px; min-width:0; font-weight:600; color:var(--tinta); }
.og-part a em { font-style:normal; font-size:11px; font-weight:600; color:var(--cinza2); white-space:nowrap; }
.og-pbar { height:6px; border-radius:99px; background:#EDF1F7; overflow:hidden; } .og-pbar i { display:block; height:100%; background:var(--mod); border-radius:99px; }
.og-part b { text-align:right; font-variant-numeric:tabular-nums; color:var(--navy); }
.og-part .og-mais { margin:6px 8px 0; }
/* mapa: a que se refere a camada do polígono selecionado */
.ru-ref { margin:10px 0 12px; padding:10px 12px; border-radius:10px; background:var(--mod-soft); border-left:3px solid var(--mod); }
.ru-ref .ob-sh { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.ru-ref p { margin:6px 0 8px; font-size:12.5px; line-height:1.45; color:var(--tinta); }
.ru-ref .ob-rowacts { flex-wrap:wrap; gap:6px; }
.ru-ref-vazia { display:flex; align-items:center; gap:10px; background:#F8FAFC; border-left-color:#CBD5E1; }
/* mapa rural: fundo (mapa de ruas / satélite) por baixo dos contornos */
.ru-fundo { position:absolute; inset:0; overflow:hidden; pointer-events:none; background:#DDE3EA; display:none; }
.ru-mapbox.com-fundo .ru-fundo { display:block; }
.ru-fundo img { position:absolute; max-width:none; user-select:none; }
.ru-mapbox svg { position:relative; z-index:1; }
.ru-mapbox .ru-norte, .ru-mapbox .ru-ctl, .ru-mapbox .ru-escala, .ru-mapbox .ru-tip, .ru-base, .ru-atrib { z-index:2; }
.ru-base { position:absolute; left:62px; top:12px; display:flex; background:#fff; border:1px solid var(--borda); border-radius:9px; padding:2px; box-shadow:var(--sombra); }
.ru-base button { border:0; background:none; font:inherit; font-size:12px; font-weight:700; color:var(--cinza); padding:5px 10px; border-radius:7px; cursor:pointer; }
.ru-base button.on { background:var(--mod); color:#fff; }
.ru-atrib { position:absolute; right:8px; bottom:6px; font-size:10px; color:#334155; background:rgba(255,255,255,.75); padding:1px 6px; border-radius:4px; pointer-events:none; }
.ru-atrib:empty { display:none; }
.ru-mapbox.com-fundo .ru-rot { fill:#0F1B2E; paint-order:stroke; stroke:#fff; stroke-width:3px; }
.ru-mapbox.com-fundo .ru-rot-lot { fill:#0F1B2E; paint-order:stroke; stroke:rgba(255,255,255,.9); stroke-width:3px; }
.ru-cardocs { margin:8px 0 10px; display:flex; flex-direction:column; gap:6px; }
.ru-cardocs .ob-rowacts { flex-wrap:wrap; gap:6px; }
/* Visão Geral: quadros com a altura do próprio conteúdo (sem vazio quando o vizinho é mais alto) */
.og-grid { align-items:start; }
.og-pend { display:flex; flex-direction:column; }
.og-pend a { display:grid; grid-template-columns:10px minmax(0,1fr) auto; align-items:center; gap:10px; padding:8px 6px; margin:0 -6px; border-radius:10px; border-top:1px solid var(--line); color:inherit; text-decoration:none; }
.og-pend a:first-child { border-top:0; }
.og-pend a:hover { background:var(--mod-soft); }
.og-pend i { width:10px; height:10px; border-radius:3px; }
.og-pend span { display:flex; flex-direction:column; min-width:0; }
.og-pend b { font-size:13px; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-pend small { font-size:11.5px; color:var(--cinza2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-pend em { font-style:normal; font-size:11.5px; font-weight:700; color:var(--cinza); white-space:nowrap; }
.ru-aqui { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin:8px 0 10px; padding:8px 10px; border-radius:10px; background:#F8FAFC; border:1px dashed var(--borda); }
.ru-aqui .ob-lbl { width:100%; }
.ru-aqui .btn-min { display:flex; flex-direction:column; align-items:flex-start; height:auto; padding:5px 9px; line-height:1.2; text-align:left; }
.ru-aqui .btn-min small { font-size:10.5px; font-weight:500; color:var(--cinza2); }
/* Áreas Rurais · diferença de área (barra divergente a partir do zero) */
.og-dif { display:flex; flex-direction:column; }
.og-dif a { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) 92px; align-items:center; gap:12px; padding:7px 6px; margin:0 -6px; border-radius:10px; border-top:1px solid var(--line); color:inherit; text-decoration:none; }
.og-dif a:first-child { border-top:0; }
.og-dif a:hover { background:var(--mod-soft); }
.og-dif .og-nome { font-size:13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-dif .og-nome small { color:var(--cinza2); font-weight:500; }
.og-eixo { position:relative; height:14px; background:linear-gradient(var(--line),var(--line)) center/1px 100% no-repeat; }
.og-eixo i { position:absolute; top:2px; bottom:2px; }
.og-eixo i.mais { left:50%; background:#7C3AED; border-radius:0 4px 4px 0; }
.og-eixo i.menos { right:50%; background:#E07B00; border-radius:4px 0 0 4px; }
.og-dif b { text-align:right; font-size:13px; font-variant-numeric:tabular-nums; }
.og-dif b.mais { color:#6D28D9; } .og-dif b.menos { color:#B45309; }
.og-dif.so-mais .og-eixo { background:none; }
.og-dif.so-mais .og-eixo i.mais { left:0; border-radius:4px; }
/* diferença de área: duas barras por imóvel (CCIR e DITR), a partir do zero */
.og-dif2 a { grid-template-columns:minmax(0,1fr) minmax(0,1fr) 128px; }
.og-eixo2 { position:relative; display:flex; flex-direction:column; gap:3px; padding:2px 0; background:linear-gradient(var(--line),var(--line)) center/1px 100% no-repeat; }
.og-eixo2 i { display:block; height:7px; position:relative; }
.og-eixo2 i.mais { margin-left:50%; border-radius:0 3px 3px 0; }
.og-eixo2 i.menos { margin-left:auto; margin-right:50%; border-radius:3px 0 0 3px; }
.og-eixo2 i.zero { height:7px; }
.og-eixo2 i.ccir { background:#7C3AED; } .og-eixo2 i.ditr { background:#E07B00; }
.og-eixo2 i.zero { background:none; }
.og-dif2.so-mais .og-eixo2 { background:none; }
.og-dif2.so-mais .og-eixo2 i.mais { margin-left:0; border-radius:3px; }
.og-vals { display:flex; flex-direction:column; align-items:flex-end; line-height:1.25; font-variant-numeric:tabular-nums; }
.og-vals b { font-size:12px; font-weight:700; }
.og-vals b.ccir { color:#6D28D9; } .og-vals b.ditr { color:#B45309; }
/* situação cadastral: rosca maior e legenda clicável */
.og-rosca-sit { grid-template-columns:260px 1fr; }
.og-legs-link a { display:grid; grid-template-columns:12px 1fr auto 44px; align-items:center; gap:8px; padding:7px 8px; margin:0 -8px; border-radius:9px; color:var(--tinta); text-decoration:none; font-size:13.5px; }
.og-legs-link a:hover { background:var(--mod-soft); }
.og-legs-link a i { width:12px; height:12px; border-radius:4px; }
.og-legs-link a b { font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; }
.og-legs-link a em { font-style:normal; font-size:12px; color:var(--cinza2); text-align:right; }
.og-legs-link .og-nota { margin:8px 0 0; font-size:12px; }
.og-rosca-sit .donut-box circle[data-seg] { cursor:pointer; }
.og-col { display:flex; flex-direction:column; gap:14px; min-width:0; }
.og-dif2 a { grid-template-columns:minmax(0,0.9fr) minmax(0,1.3fr) 104px; }
.og-eixo2 { background:linear-gradient(#94A3B8,#94A3B8) center/1.5px 100% no-repeat; }
.og-dif2.so-mais .og-eixo2 { background:linear-gradient(#94A3B8,#94A3B8) left/1.5px 100% no-repeat; }
.og-col > .og-card { width:100%; box-sizing:border-box; }
/* Visão Geral: quadros em duas colunas tipo mural (cada coluna empilha no seu ritmo, sem vazios) */
.og-grid { display:block; columns:2 420px; column-gap:14px; }
.og-grid > * { break-inside:avoid; margin-bottom:14px; width:100%; box-sizing:border-box; }
.og-grid > .og-col { display:flex; }
/* Obrigações · licenças e obrigações (duas roscas) */
.og-duas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.og-meia { display:flex; flex-direction:column; align-items:stretch; gap:10px; min-width:0; }
.og-meia .og-sub { text-align:center; margin:0; }
.og-meia .donut-box circle[data-seg] { cursor:pointer; }
.og-meia .og-legs-link a { grid-template-columns:12px 1fr auto; }
@media (max-width:620px) { .og-duas { grid-template-columns:1fr; } }
/* Obrigações · ciclo urbanístico em trilha */
.og-cor { display:block; width:14px; height:10px; border-radius:3px; }
.og-cor.ok { background:#0D9488; } .og-cor.and { background:repeating-linear-gradient(135deg,#F59E0B 0 3px,#FCD9A8 3px 6px); } .og-cor.pend { background:#E2E8F0; }
.og-cic { display:flex; flex-direction:column; }
.og-cic a { display:grid; grid-template-columns:minmax(0,0.8fr) minmax(0,2fr) minmax(0,1fr); align-items:center; gap:12px; padding:9px 6px; margin:0 -6px; border-radius:10px; border-top:1px solid var(--line); color:inherit; text-decoration:none; }
.og-cic a:first-child { border-top:0; }
.og-cic a:hover { background:var(--mod-soft); }
.og-cic .og-nome { font-size:13px; }
.og-trilha { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:3px; }
.og-et { display:flex; flex-direction:column; padding:5px 7px; border-radius:6px; min-width:0; }
.og-et b { font-size:11px; font-weight:800; letter-spacing:.02em; }
.og-et small { font-size:10.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-et.ok { background:#0D9488; color:#fff; } .og-et.ok small { color:rgba(255,255,255,.85); }
.og-et.and { background:repeating-linear-gradient(135deg,#FEF3C7 0 6px,#FDE68A 6px 12px); color:#92400E; box-shadow:inset 0 0 0 1.5px #F59E0B; }
.og-et.pend { background:#F1F5F9; color:#94A3B8; }
.og-et:first-child { border-radius:8px 4px 4px 8px; } .og-et:last-child { border-radius:4px 8px 8px 4px; }
.og-prox { justify-self:end; text-align:right; }
.og-prox .pill { white-space:normal; text-align:right; }
@media (max-width:760px) { .og-cic a { grid-template-columns:1fr; } .og-prox { justify-self:start; } }
/* Obrigações · cronograma do TVO */
.og-crono { display:flex; flex-direction:column; }
.og-crono > a, .og-crono-cab { display:grid; grid-template-columns:minmax(0,0.7fr) minmax(0,2fr) minmax(0,1fr); align-items:center; gap:12px; }
.og-crono > a { padding:9px 6px; margin:0 -6px; border-radius:10px; border-top:1px solid var(--line); color:inherit; text-decoration:none; }
.og-crono > a:hover { background:var(--mod-soft); }
.og-crono .og-nome { font-size:13px; } .og-crono .og-nome small { color:var(--cinza2); font-weight:500; white-space:normal; }
.og-tl2 { position:relative; height:22px; display:block; }
.og-eixo-anos { height:16px; } .og-eixo-anos em { position:absolute; transform:translateX(-50%); font-style:normal; font-size:10.5px; font-weight:700; color:var(--cinza2); }
.og-tl2 .og-ano { position:absolute; top:0; bottom:0; width:1px; background:#EEF2F7; }
.og-tl2 .og-obra { position:absolute; top:7px; height:8px; border-radius:4px; background:#14B8A6; opacity:.85; }
.og-tl2 .og-atraso { position:absolute; top:7px; height:8px; border-radius:0 4px 4px 0; background:repeating-linear-gradient(135deg,#E11D48 0 4px,#FDA4AF 4px 8px); }
.og-tl2 .og-reglim { position:absolute; top:3px; bottom:3px; width:3px; margin-left:-1px; background:#E11D48; border-radius:2px; }
.og-tl2 .og-mk { position:absolute; top:50%; width:10px; height:10px; margin:-5px 0 0 -5px; border-radius:50%; box-shadow:0 0 0 2px #fff; }
.og-mk-ap { background:#94A3B8; } .og-mk-reg { background:#0F1B2E; } .og-mk-cron { background:#fff; border:2px solid #64748B; box-sizing:border-box; border-radius:2px !important; transform:rotate(45deg); }
.og-mk-tvo { background:#E07B00; width:12px !important; height:12px !important; margin:-6px 0 0 -6px !important; border-radius:2px !important; transform:rotate(45deg); }
.og-tl2 .og-hoje { position:absolute; top:-2px; bottom:-2px; width:2px; margin-left:-1px; background:#0F1B2E; opacity:.55; }
.og-lg-obra { display:block; width:16px; height:7px; border-radius:4px; background:#14B8A6; }
.og-lg-atraso { display:block; width:16px; height:7px; border-radius:3px; background:repeating-linear-gradient(135deg,#E11D48 0 4px,#FDA4AF 4px 8px); }
.og-lg-tvo { display:block; width:9px; height:9px; background:#E07B00; transform:rotate(45deg); border-radius:2px; margin:0 3px; }
.og-lg-hoje { display:block; width:2px; height:12px; background:#0F1B2E; opacity:.55; margin:0 6px; }
.og-entr { display:flex; flex-direction:column; }
.og-entr a { display:grid; grid-template-columns:minmax(0,0.7fr) minmax(0,2fr) auto; align-items:center; gap:12px; padding:7px 6px; margin:0 -6px; border-radius:10px; border-top:1px solid var(--line); color:inherit; text-decoration:none; font-size:12.5px; color:var(--cinza); }
.og-entr a:first-child { border-top:0; } .og-entr a:hover { background:var(--mod-soft); }
.og-entr .og-nome { font-size:13px; color:var(--navy); }
@media (max-width:760px) { .og-crono > a, .og-crono-cab, .og-entr a { grid-template-columns:1fr; } }
.og-largo { margin-bottom:14px; }
.og-lg-ap, .og-lg-reg { display:block; width:9px; height:9px; border-radius:50%; margin:0 3px; } .og-lg-ap { background:#94A3B8; } .og-lg-reg { background:#0F1B2E; }
.og-lg-cron { display:block; width:8px; height:8px; border:2px solid #64748B; transform:rotate(45deg); margin:0 3px; border-radius:2px; }

/* Obrigações · cronograma do TVO (v2) */
.tv-leg { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12px; color:var(--cinza); }
.tv-leg span { display:inline-flex; align-items:center; gap:6px; }
.tv-leg i { position:static !important; margin:0 !important; transform:none; }
.tv-leg .tv-tvo, .tv-leg .tv-cron { transform:rotate(45deg); }
.tv { display:flex; flex-direction:column; }
.tv-row { display:grid; grid-template-columns:190px minmax(0,1fr) 210px; align-items:center; gap:16px; }
a.tv-row { padding:10px 8px; margin:0 -8px; border-radius:12px; color:inherit; text-decoration:none; }
a.tv-row:hover { background:var(--mod-soft); }
.tv-cab { padding:0 0 4px; }
.tv-nome { display:flex; flex-direction:column; min-width:0; }
.tv-nome b { font-size:13.5px; font-weight:700; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tv-nome small { font-size:11.5px; color:var(--cinza2); }
.tv-axis { position:relative; display:block; height:30px; }
.tv-cab .tv-axis { height:22px; }
.tv-ano { position:absolute; bottom:2px; padding-left:5px; font-style:normal; font-size:11px; font-weight:700; color:var(--cinza2); border-left:1px solid #CBD5E1; line-height:14px; }
.tv-hoje-tag { position:absolute; top:-2px; transform:translateX(-50%); font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:#0F1B2E; padding:1px 6px; border-radius:6px; }
.tv-st-cab { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza2); text-align:right; }
.tv-lane i, .tv-lane em { position:absolute; }
.tv-faixa { top:0; bottom:0; background:transparent; }
.tv-faixa.par { background:#F8FAFC; }
.tv-hoje { top:-10px; bottom:-10px; width:2px; margin-left:-1px; background:#0F1B2E; opacity:.75; }
.tv-liga { top:14px; height:2px; background:#CBD5E1; }
.tv-liga-venc { background:repeating-linear-gradient(90deg,#E11D48 0 5px,transparent 5px 9px); }
.tv-obra { top:9px; height:12px; border-radius:6px; background:linear-gradient(90deg,#0D9488,#14B8A6); }
.tv-atraso { top:9px; height:12px; border-radius:0 6px 6px 0; background:repeating-linear-gradient(135deg,#E11D48 0 5px,#FDA4AF 5px 10px); }
.tv-lim { top:5px; bottom:5px; width:4px; margin-left:-2px; border-radius:2px; background:#E11D48; }
.tv-ap, .tv-rg { top:50%; width:11px; height:11px; margin:-5.5px 0 0 -5.5px; border-radius:50%; box-shadow:0 0 0 2px #fff; display:inline-block; }
.tv-ap { background:#94A3B8; }
.tv-rg { background:#0F1B2E; }
.tv-tvo { top:50%; width:14px; height:14px; margin:-7px 0 0 -7px; border-radius:3px; background:#E07B00; transform:rotate(45deg); box-shadow:0 0 0 2px #fff; display:inline-block; }
.tv-cron { top:50%; width:10px; height:10px; margin:-5px 0 0 -5px; border-radius:2px; border:2px solid #64748B; background:#fff; transform:rotate(45deg); box-sizing:border-box; display:inline-block; }
.tv-rot { top:-1px; margin-left:12px; font-style:normal; font-size:11px; font-weight:800; color:#B45309; white-space:nowrap; }
.tv-lg-obra { display:inline-block; width:22px; height:8px; border-radius:4px; background:linear-gradient(90deg,#0D9488,#14B8A6); }
.tv-lg-atraso { display:inline-block; width:22px; height:8px; border-radius:4px; background:repeating-linear-gradient(135deg,#E11D48 0 5px,#FDA4AF 5px 10px); }
.tv-lg-hoje { display:inline-block; width:2px; height:14px; background:#0F1B2E; opacity:.75; }
.tv-st { display:flex; flex-direction:column; align-items:flex-end; text-align:right; line-height:1.2; }
.tv-st b { font-size:14px; font-weight:800; }
.tv-st small { font-size:12px; font-weight:600; margin-top:2px; }
.tv-st.info b { color:var(--navy); } .tv-st.info small { color:#1D4ED8; }
.tv-st.warn b { color:#B45309; } .tv-st.warn small { color:#B45309; }
.tv-st.crit b { color:#BE123C; } .tv-st.crit small { color:#BE123C; }
.tv-st.neutral b, .tv-st.neutral small { color:var(--cinza); }
.tv-ent { display:flex; flex-direction:column; }
.tv-ent-cab, .tv-ent a { display:grid; grid-template-columns:190px repeat(4,minmax(0,1fr)) 150px; align-items:center; gap:12px; }
.tv-ent-cab { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); padding:0 0 6px; }
.tv-ent-cab span:last-child, .tv-ent a > span:last-child { text-align:right; }
.tv-ent a { padding:8px; margin:0 -8px; border-radius:10px; border-top:1px solid var(--line); color:var(--tinta); text-decoration:none; font-size:13px; font-variant-numeric:tabular-nums; }
.tv-ent a:hover { background:var(--mod-soft); }
@media (max-width:900px) { .tv-row { grid-template-columns:130px minmax(0,1fr) 150px; } .tv-ent-cab, .tv-ent a { grid-template-columns:130px repeat(4,minmax(0,1fr)) 110px; font-size:12px; } }
@media (max-width:640px) { .tv-row, .tv-ent-cab, .tv-ent a { grid-template-columns:1fr; } .tv-cab, .tv-ent-cab { display:none; } .tv-st { align-items:flex-start; text-align:left; } }
/* cronograma do TVO: fases nomeadas com as datas reais */
.tv-lane { height:58px !important; }
.tv-lane .tv-obra, .tv-lane .tv-atraso { top:23px; height:12px; }
.tv-lane .tv-obra { display:flex; align-items:center; justify-content:center; overflow:hidden; }
.tv-lane .tv-obra span { font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#fff; white-space:nowrap; }
.tv-lane .tv-liga { top:28px; }
.tv-lane .tv-lim { top:18px; bottom:18px; }
.tv-tx { position:absolute; font-style:normal; font-size:10.5px; color:var(--cinza); white-space:nowrap; line-height:14px; transform:translateX(-50%); }
.tv-tx b { color:var(--navy); font-weight:700; }
.tv-tx.cima { top:4px; } .tv-tx.baixo { top:40px; }
.tv-tx.de { transform:translateX(-5px); } .tv-tx.ate { transform:translateX(calc(-100% + 5px)); }
.tv-tx.ini { transform:translateX(-5px); } .tv-tx.fim { transform:translateX(calc(-100% + 5px)); }
.tv-tx.laranja b { color:#B45309; } .tv-tx.vermelho, .tv-tx.vermelho b { color:#BE123C; }
a.tv-row { padding:6px 8px; }
.tv-lane .tv-prorr { position:absolute; top:23px; height:12px; border-radius:0 6px 6px 0; background:repeating-linear-gradient(135deg,#99F6E4 0 4px,#CCFBF1 4px 8px); box-shadow:inset 0 0 0 1px #5EEAD4; }
.tv-ent-cab, .tv-ent a { grid-template-columns:190px repeat(4,minmax(0,1fr)) 260px; }
/* cronograma: trilhas Prefeitura (TVO) e Contrato (entrega) */
.tv-row { grid-template-columns:180px minmax(0,1fr) 220px; }
.tv-cab { grid-template-columns:180px minmax(0,1fr) 220px; }
.tv-cab .tv-axis { margin-left:96px; }
.tv-trilhas { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:center; column-gap:6px; row-gap:2px; }
.tv-qual { font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); text-align:right; line-height:1.2; }
.tv-lane-c { height:50px !important; }
.tv-lane .tv-ctr { position:absolute; top:23px; height:12px; border-radius:6px; background:linear-gradient(90deg,#4338CA,#6366F1); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.tv-lane .tv-ctr span { font-size:9.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#fff; white-space:nowrap; }
.tv-lane .tv-tol { background:repeating-linear-gradient(135deg,#C7D2FE 0 4px,#E0E7FF 4px 8px); box-shadow:inset 0 0 0 1px #A5B4FC; }
.tv-lane .tv-lc { position:absolute; top:29px; width:11px; height:11px; margin:-5.5px 0 0 -5.5px; border-radius:50%; background:#4338CA; box-shadow:0 0 0 2px #fff; }
.tv-lane .tv-fc { position:absolute; top:29px; width:12px; height:12px; margin:-6px 0 0 -6px; border-radius:2px; background:#4338CA; transform:rotate(45deg); box-shadow:0 0 0 2px #fff; }
.tv-tx.azul b { color:#4338CA; } .tv-tx.tv-cinza { color:var(--cinza2); font-style:italic; }
.tv-sts { display:flex; flex-direction:column; gap:14px; }
.tv-st em { font-style:normal; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza2); }
.tv-st .tv-alerta { color:#BE123C !important; font-weight:700; }
@media (max-width:640px) { .tv-cab .tv-axis { margin-left:0; } .tv-trilhas { grid-template-columns:1fr; } .tv-qual { text-align:left; } }
.tv-semctr small { font-size:11px !important; font-style:italic; }
/* entregues: prazo primeiro, depois o total */
.tv-ent-cab, .tv-ent a { grid-template-columns:170px repeat(6,minmax(0,1fr)) 240px !important; }
.tv-ent a b { font-weight:700; color:var(--navy); }
.tv-ent .tv-mais { color:#B45309; font-weight:700; } .tv-ent .tv-ok { color:#0D9488; }
/* Obrigações · pendências em destaque */
.pd-ks { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.pd-k { display:flex; flex-direction:column; gap:2px; padding:12px 14px; border-radius:12px; background:color-mix(in srgb,var(--c) 9%,#fff); border:1px solid color-mix(in srgb,var(--c) 25%,#fff); border-left:4px solid var(--c); color:inherit; text-decoration:none; transition:transform .12s, box-shadow .12s; }
.pd-k:hover { transform:translateY(-1px); box-shadow:0 8px 18px -12px var(--c); }
.pd-k b { font-size:30px; font-weight:800; line-height:1.05; color:var(--c); font-variant-numeric:tabular-nums; }
.pd-k span { font-size:12.5px; font-weight:700; color:var(--navy); }
.pd-k small { font-size:11.5px; color:var(--cinza); }
.pd-k.zero { background:#F8FAFC; border-color:var(--line); border-left-color:#CBD5E1; } .pd-k.zero b { color:#94A3B8; }
.pd-tipos { display:flex; flex-direction:column; }
.pd-tipos a { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 30px 86px; align-items:center; gap:10px; padding:7px 6px; margin:0 -6px; border-radius:9px; color:inherit; text-decoration:none; border-top:1px solid var(--line); }
.pd-tipos a:first-child { border-top:0; } .pd-tipos a:hover { background:#FFF1F2; }
.pd-tn { font-size:13px; font-weight:600; color:var(--tinta); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pd-tb { height:10px; } .pd-tb i { display:block; height:100%; border-radius:5px; background:#E11D48; }
.pd-tipos b { text-align:right; font-weight:800; color:#BE123C; font-variant-numeric:tabular-nums; }
.pd-tipos em { font-style:normal; font-size:11.5px; color:var(--cinza2); text-align:right; }
.pd-ctx { display:flex; gap:2px; height:8px; border-radius:4px; overflow:hidden; }
.pd-ctx i { display:block; height:100%; }
.pd-ctx-leg { display:flex; flex-wrap:wrap; gap:4px 14px; font-size:11.5px; color:var(--cinza); }
.pd-ctx-leg span { display:inline-flex; align-items:center; gap:5px; } .pd-ctx-leg i { width:10px; height:8px; border-radius:2px; display:inline-block; }
@media (max-width:1100px) { .pd-ks { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.pd-tipos a { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 30px 120px; }
/* Visões Gerais: títulos dos quadros com destaque (barra na cor do módulo, título grande e subtítulo embaixo) */
.og-card > .tt { display:grid; grid-template-columns:auto minmax(0,1fr); grid-template-rows:auto auto; column-gap:12px; row-gap:2px; align-items:center; padding:0 0 12px; margin-bottom:2px; border-bottom:1px solid var(--line); }
.og-card > .tt::before { content:''; grid-row:1 / span 2; width:6px; align-self:stretch; min-height:34px; border-radius:6px; background:linear-gradient(180deg,var(--mod),var(--mod-2)); box-shadow:0 4px 10px -4px var(--mod); }
.og-card > .tt .t { grid-column:2; font-size:18px; font-weight:800; letter-spacing:-.02em; line-height:1.2; background:linear-gradient(90deg,var(--navy),color-mix(in srgb,var(--mod) 70%,var(--navy))); -webkit-background-clip:text; background-clip:text; color:transparent; }
.og-card > .tt .tsub { grid-column:2; font-size:12px; font-weight:600; color:var(--cinza2); text-align:left; }
/* Títulos de quadro em todo o Talon: barra na cor do módulo + título forte (vale para .tt .t, .card-title e .ob-sh h3) */
.tt .t, .card-title, .ob-sh h3 { display:inline-flex; align-items:center; gap:10px; font-size:17px; font-weight:800; letter-spacing:-.015em; line-height:1.25; color:var(--navy); }
.tt .t::before, .card-title::before, .ob-sh h3::before { content:''; flex:none; width:5px; height:1.2em; border-radius:4px; background:linear-gradient(180deg,var(--mod),var(--mod-2)); box-shadow:0 3px 8px -3px var(--mod); }
.ob-sh h3 { padding-left:0; border-left:0; font-size:16px; }
/* Visões Gerais: subtítulo embaixo do título, com linha separando do conteúdo */
.og-card > .tt { display:flex; flex-direction:column; align-items:flex-start; gap:3px; padding:0 0 12px; border-bottom:1px solid var(--line); }
.og-card > .tt::before { display:none; }
.og-card > .tt .t { font-size:18px; background:none; -webkit-background-clip:border-box; background-clip:border-box; color:var(--navy); }
.og-card > .tt .tsub { padding-left:15px; text-align:left; }
/* títulos v2: sem subtítulos; título como etiqueta na cor do módulo */
.tt .tsub, .tt .s, .tt > span[style*='color:var(--faint)'], .tt > span[style*='color:var(--cinza2)'], .card-head > span[style*='color:var(--cinza2)'], .card-head > span[style*='color:var(--faint)'] { display:none !important; }
.og-card > .tt { padding:0 0 4px; border-bottom:0; }
.tt .t, .card-title, .ob-sh h3, .og-card > .tt .t { display:inline-flex; align-items:center; gap:9px; padding:7px 15px 7px 11px; border-radius:999px; font-size:15px; font-weight:800; letter-spacing:-.01em; line-height:1.2; color:color-mix(in srgb,var(--mod) 72%,#0F1B2E); background:color-mix(in srgb,var(--mod) 10%,#fff); box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mod) 18%,#fff); border-left:0; }
.tt .t::before, .card-title::before, .ob-sh h3::before { width:9px; height:9px; border-radius:50%; background:linear-gradient(135deg,var(--mod),var(--mod-2)); box-shadow:0 0 0 3px color-mix(in srgb,var(--mod) 22%,#fff); }
/* títulos v3: texto forte, sem fundo, com traço curto na cor do módulo embaixo (não parece botão) */
.tt .t, .card-title, .ob-sh h3, .og-card > .tt .t { display:inline-block; position:relative; padding:0 0 9px; border-radius:0; background:none; box-shadow:none; font-size:17px; font-weight:800; letter-spacing:-.02em; line-height:1.25; color:var(--navy); }
.tt .t::before, .card-title::before, .ob-sh h3::before { content:none; display:none; }
.tt .t::after, .card-title::after, .ob-sh h3::after { content:''; position:absolute; left:0; bottom:0; width:30px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--mod),var(--mod-2)); }
/* topo: sem o caminho (título) ao lado do Voltar — o seletor de módulo e o cabeçalho da tela já dizem onde se está */
.topbar .crumbs { display:none !important; }
/* diferença de área: colunas Matrícula | barras | CCIR | DITR, com a área e a diferença */
.og-dif2 a, .og-dif-cab { grid-template-columns:minmax(0,1.1fr) 78px minmax(0,1fr) 88px 88px !important; }
.og-dif-cab { display:grid; align-items:end; gap:12px; padding:0 0 6px; font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); border-bottom:1px solid var(--line); }
.og-dif-cab span:nth-child(n+2) { text-align:right; } .og-dif-cab span:nth-child(3) { text-align:center; }
.og-mat, .og-cad { display:flex; flex-direction:column; align-items:flex-end; line-height:1.2; font-variant-numeric:tabular-nums; }
.og-mat b { font-size:13.5px; font-weight:800; color:var(--navy); } .og-mat small { font-size:10.5px; color:var(--cinza2); }
.og-cad b { font-size:12.5px; font-weight:700; color:var(--tinta); } .og-cad small { font-size:11.5px; font-weight:800; }
.og-cad.ccir small { color:#6D28D9; } .og-cad.ditr small { color:#B45309; }
.og-largo .og-dif2 a, .og-largo .og-dif-cab { grid-template-columns:minmax(0,1.4fr) 100px minmax(0,1.6fr) 120px 120px !important; }
/* ===== Visões Gerais no esquadro ===== */
/* quadros em linhas: vizinhos com a mesma altura, bordas alinhadas; quadros longos em largura inteira (.og-largo) */
.og-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)); columns:auto; gap:16px; align-items:stretch; margin-bottom:16px; }
.og-grid > * { margin:0 !important; break-inside:auto; }
.og-largo { margin-bottom:16px; }
.og-card { padding:20px 22px; gap:14px; height:100%; box-sizing:border-box; }
.og-card > .og-mais, .og-card > .og-mais-det { margin-top:auto; }
@media (max-width:1100px) { .og-grid { grid-template-columns:1fr; } }
/* indicadores: mesmo formato, faixa de cor reta no topo, números que cabem */
.og-kpis { gap:14px; align-items:stretch; margin-bottom:16px; }
.og-hero, .og-k { position:relative; overflow:hidden; justify-content:flex-start; padding:18px 18px 16px; border-radius:16px; min-height:124px; box-sizing:border-box; }
.og-k { border:1px solid var(--borda); border-top:1px solid var(--borda); }
.og-k::before { content:''; position:absolute; left:0; right:0; top:0; height:4px; background:var(--acc); }
.og-kl { display:block; min-height:14px; line-height:14px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-hero b, .og-k b { margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-k b { font-size:30px; }
.og-k.longo b { font-size:22px; line-height:36px; }
.og-hero small, .og-k small { margin-top:auto; padding-top:6px; }
/* Áreas Rurais: ITR com os anos ao lado dos contribuintes */
.og-itr2 { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); gap:20px; align-items:start; }
.og-itr2 .og-sub { margin-top:0; }
.og-itr2 .og-colb { height:110px; }
@media (max-width:760px) { .og-itr2 { grid-template-columns:1fr; } }
/* Societário: ver todos os sócios */
.og-mais-det > summary { list-style:none; cursor:pointer; padding:10px 0 2px; font-size:13px; font-weight:700; color:var(--mod); }
.og-mais-det > summary::-webkit-details-marker { display:none; }
.og-mais-det[open] > summary { padding-bottom:6px; }
/* dica da rosca: fixa na tela (não é cortada pelo quadro) e com os nomes inteiros */
.donut-tip { position:fixed !important; z-index:80; max-width:320px; }
.dt-emp span { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.3; }
.og-largo .og-bl { grid-template-columns:230px minmax(0,1fr) 40px; }
.og-kl { white-space:normal !important; min-height:28px; height:28px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; text-overflow:clip; }
/* diferença de área: medidas lado a lado no mesmo formato e o indicador no final */
.og-dif2 a, .og-dif-cab, .og-largo .og-dif2 a, .og-largo .og-dif-cab { grid-template-columns:minmax(0,1.3fr) 112px 112px 112px minmax(0,1.4fr) 72px !important; }
.og-dif-cab span:nth-child(2), .og-dif-cab span:nth-child(3), .og-dif-cab span:nth-child(4) { text-align:right; } .og-dif-cab span:nth-child(5) { text-align:left; padding-left:4px; }
.og-med { text-align:right; font-size:13px; font-weight:600; color:var(--tinta); font-variant-numeric:tabular-nums; white-space:nowrap; }
.og-med:first-of-type { font-weight:800; color:var(--navy); }
.og-dif2 .og-vals { align-items:flex-end; }
.og-med:first-of-type { font-weight:600; color:var(--tinta); } .og-med.mat { font-weight:800; color:var(--navy); }
/* área do cadastro divergente da matrícula: destacada; cadastro em conjunto com outros imóveis: nota embaixo */
.og-med { display:flex; flex-direction:column; align-items:flex-end; line-height:1.25; }
.og-med.diverge { color:#B91C1C; font-weight:800; }
.og-med.diverge::before { content:''; }
.og-med.confere { color:#0F766E; }
.og-med small { font-size:10.5px; font-weight:600; color:#7C3AED; white-space:nowrap; }
/* sem a nota "conjunto c/" embaixo das áreas (o cálculo do conjunto fica na dica do cursor) */
.og-med small { display:none !important; }
/* mesmo padrão de título nos demais blocos (Termos, Agenda, Judicial, base do mês) */
.tp-head > b, .tc-bloco-tt > div > b, .jd-bt, .card.rtp > h2, .bloco-tit { display:inline-block; position:relative; padding:0 0 9px; margin:0; font-size:17px !important; font-weight:800 !important; letter-spacing:-.02em; line-height:1.25; color:var(--navy) !important; text-transform:none !important; }
.tp-head > b::after, .tc-bloco-tt > div > b::after, .jd-bt::after, .card.rtp > h2::after, .bloco-tit::after { content:''; position:absolute; left:0; bottom:0; width:30px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--mod),var(--mod-2)); }
.tc-bloco-tt > div > span, .card.rtp > .eb { display:none !important; }
.tc-bloco-tt > div { display:flex; flex-direction:column; }
/* ITR: anos com variação, contribuinte × ano e pendências */
.it-anos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.it-ano { display:flex; flex-direction:column; gap:2px; padding:12px 14px; border-radius:12px; background:var(--mod-soft); color:inherit; text-decoration:none; }
.it-ano span { font-size:11px; font-weight:800; letter-spacing:.06em; color:var(--cinza2); }
.it-ano b { font-size:18px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; white-space:nowrap; }
.it-ano small { font-size:11.5px; color:var(--cinza); }
.it-ano em { font-style:normal; font-size:11.5px; font-weight:800; color:var(--cinza); } .it-ano em.sobe { color:#B91C1C; } .it-ano em.desce { color:#0F766E; }
.it-tab { display:flex; flex-direction:column; }
.it-lin { display:grid; grid-template-columns:minmax(0,1.2fr) repeat(3,minmax(0,1fr)); gap:10px; padding:7px 2px; border-top:1px solid var(--line); font-size:12.5px; font-variant-numeric:tabular-nums; }
.it-lin span:not(:first-child) { text-align:right; white-space:nowrap; }
.it-cab { border-top:0; font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--cinza2); }
.it-nome { font-weight:700; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.it-tot { font-weight:800; color:var(--navy); border-top:2px solid var(--line); }
.it-falta { font-size:12px; color:#92400E; background:#FFFBEB; border:1px solid #FDE68A; border-radius:10px; padding:8px 12px; line-height:1.45; }
/* barra lateral: empreendimentos do módulo como subitens */
.nav { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; scrollbar-width:none; }
.nav::-webkit-scrollbar { display:none; }
.nav-sep { height:1px; margin:8px 10px 4px; background:rgba(255,255,255,.1); position:relative; flex:none; }
.nav-sep span { display:none; }
.sidebar:hover .nav-sep { height:auto; background:none; margin:10px 13px 2px; }
.sidebar:hover .nav-sep span { display:block; font-size:10px; font-weight:800; letter-spacing:.09em; text-transform:uppercase; color:rgba(255,255,255,.45); white-space:nowrap; }
.nav a.nav-emp { height:40px; flex:none; }
.nav-emp i { flex:none; width:28px; height:28px; border-radius:9px; display:grid; place-items:center; font-style:normal; font-size:10.5px; font-weight:800; letter-spacing:-.02em; color:#fff; background:color-mix(in srgb,var(--mod) 55%,#0F1B2E); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.nav a.nav-emp span { font-size:13px; font-weight:600; }
.nav a.nav-emp.ativo { background:rgba(255,255,255,.12); box-shadow:none; } .nav a.nav-emp.ativo i { background:linear-gradient(135deg,var(--mod),var(--mod-2)); }
.emp-abas[hidden] { display:none !important; }
/* indicadores dos módulos no mesmo padrão do Painel (bigstat): número em cima, rótulo e legenda embaixo, faixa de cor à esquerda */
.og-kpis { grid-template-columns:1.35fr repeat(5,minmax(0,1fr)); gap:clamp(8px,0.8vw,12px) !important; align-items:stretch; margin-bottom:18px; }
.og-hero, .og-k { display:flex; flex-direction:column; justify-content:flex-start !important; gap:0 !important; min-height:0 !important; padding:clamp(12px,1.2vw,18px) !important; border-radius:18px !important; border:1px solid var(--line) !important; box-shadow:var(--sombra); min-width:0; }
.og-k { background:var(--card); }
.og-hero { border-color:transparent !important; }
.og-k::before, .og-hero::before { content:''; display:block; position:absolute; left:0; top:0; bottom:0; right:auto; width:6px; height:auto; background:var(--acc); }
.og-hero::before { background:rgba(255,255,255,.55); }
.og-hero:hover, .og-k:hover { transform:translateY(-3px); box-shadow:var(--sombra-md); }
.og-hero b, .og-k b { order:-1; margin:0 !important; font-size:clamp(24px,2.7vw,40px) !important; font-weight:800; line-height:1 !important; letter-spacing:-.03em; color:var(--acc); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.og-hero b { font-size:clamp(30px,3.5vw,52px) !important; color:#fff; }
.og-k.longo b { font-size:clamp(18px,1.7vw,26px) !important; line-height:clamp(24px,2.7vw,40px) !important; }
.og-k b .og-de { font-size:.45em; font-weight:700; color:var(--cinza2); letter-spacing:0; }
.og-hero .og-kl, .og-k .og-kl { margin-top:9px; height:auto !important; min-height:0 !important; display:block !important; -webkit-line-clamp:unset; font-size:clamp(10px,0.92vw,12.5px); font-weight:800; letter-spacing:.03em; text-transform:uppercase; color:var(--navy); white-space:normal !important; line-height:1.25; }
.og-hero .og-kl { color:#fff; }
.og-hero small, .og-k small { margin-top:5px !important; padding-top:0 !important; font-size:clamp(9.5px,0.82vw,12.5px); color:var(--cinza); line-height:1.35; font-weight:400; }
.og-hero small { color:rgba(255,255,255,.8) !important; }
@media (max-width:1280px) { .og-kpis { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:620px) { .og-kpis { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* barra lateral: empreendimentos no mesmo padrão dos itens de função (altura, fonte, alinhamento do texto e tamanho do ícone) */
.nav a, .nav a.nav-emp { height:40px !important; min-height:40px; }
.nav > a, .nav a.nav-emp { flex:none; }
.nav-emp i { width:24px !important; height:22px !important; border-radius:6px !important; font-size:9px !important; letter-spacing:0 !important; }
.nav a.nav-emp { gap:11px; }
.nav a.nav-emp span { font-size:14px !important; font-weight:600 !important; }
.sidebar:hover .nav-sep { margin:12px 13px 4px !important; }
.sidebar:hover .nav-sep span { font-size:11px !important; font-weight:800; letter-spacing:.09em; color:var(--mod-2) !important; opacity:.85; }
/* títulos de seção (.sec): sem número e sem subtítulo; somem quando o quadro logo abaixo já tem o próprio título (não repete) */
.sec { margin:26px 0 12px !important; gap:0 !important; }
.sec .num, .sec .h:not(a) { display:none !important; }
.sec .t { display:inline-block; position:relative; padding:0 0 9px; font-size:17px !important; font-weight:800 !important; letter-spacing:-.02em !important; line-height:1.25; color:var(--navy) !important; text-transform:none !important; }
.sec .t::after { content:''; position:absolute; left:0; bottom:0; width:30px; height:3px; border-radius:3px; background:linear-gradient(90deg,var(--mod,#2563EB),var(--mod-2,#4F84FF)); }
.sec:has(+ * :is(.tt .t, .card-title, .jd-bt, .bloco-tit, .tp-head > b, .card > h2, .card > h3)), .sec:has(+ :is(.hero-fila, .exec-hero)) { display:none !important; }
/* data de hoje no topo */
.topbar-hoje { display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:600; color:var(--cinza); white-space:nowrap; }
.topbar-hoje svg { color:var(--mod,var(--azul)); flex:none; }
@media (max-width:760px) { .topbar-hoje { display:none; } }
/* topo: data, alertas, sino e usuário com a mesma altura e um visual mais leve */
.topbar-dir { gap:10px !important; }
.topbar-hoje, .alerta-prazos, .alerta-tac, .topbar-dir .sino, .topbar-user { height:36px; box-sizing:border-box; }
.topbar-hoje { padding:0 6px; color:var(--cinza2); }
.alerta-prazos, .alerta-tac { gap:8px !important; padding:0 14px !important; border-radius:999px !important; border:1px solid var(--borda) !important; background:#fff !important; color:var(--tinta) !important; font-size:13px !important; font-weight:600 !important; box-shadow:0 1px 2px rgba(15,27,46,.05); }
.alerta-prazos:hover, .alerta-tac:hover { filter:none; border-color:color-mix(in srgb,var(--verm) 35%,var(--borda)) !important; box-shadow:0 4px 12px -6px rgba(15,27,46,.25); }
.alerta-prazos .ap-seg, .alerta-tac .ap-seg { align-items:center; gap:5px; color:var(--cinza); font-weight:600; }
.alerta-prazos .ap-seg b, .alerta-tac .ap-seg b { font-size:14px !important; }
.alerta-prazos .ap-v b { color:var(--verm); } .alerta-prazos .ap-h b { color:#B45309; }
.alerta-prazos .ap-sep { height:14px; opacity:.18; }
.alerta-tac .ap-tit { font-size:10.5px !important; color:var(--violet); }
.alerta-tac .ap-ico { width:16px !important; height:16px !important; color:var(--violet); }
.ap-dot { width:8px; height:8px; border-radius:50%; flex:none; background:var(--teal); }
.sev-venc .ap-dot { background:var(--verm); box-shadow:0 0 0 0 color-mix(in srgb,var(--verm) 55%,transparent); animation:apPulso 1.8s ease-out infinite; }
.sev-prox .ap-dot { background:var(--ambar); }
@keyframes apPulso { 0% { box-shadow:0 0 0 0 color-mix(in srgb,var(--verm) 55%,transparent); } 100% { box-shadow:0 0 0 7px transparent; } }
@media (prefers-reduced-motion:reduce) { .sev-venc .ap-dot { animation:none; } }
.topbar-dir .sino { width:36px; justify-content:center; align-items:center; border-radius:50%; transition:background .12s; }
.topbar-dir .sino:hover { background:rgba(15,27,46,.06); }
.topbar-dir .sino .badge { top:7px !important; right:8px !important; width:9px !important; height:9px !important; padding:0; font-size:0 !important; border:2px solid #fff; box-sizing:content-box; }
.topbar-user { gap:8px !important; padding:0 10px 0 3px; border-radius:999px; font-size:14px !important; font-weight:600 !important; cursor:pointer; transition:background .12s; }
.topbar-user:hover { background:rgba(15,27,46,.05); }
.topbar-user .avatar { width:30px; height:30px; font-size:11.5px; font-weight:700; }
.topbar-user > svg { color:var(--cinza2); width:14px; height:14px; }

/* Ciclo urbanístico sem a coluna "Próximo marco": nome + trilhas */
.tv-row { grid-template-columns:180px minmax(0,1fr) !important; }
@media (max-width:900px) { .tv-row { grid-template-columns:130px minmax(0,1fr) !important; } }
@media (max-width:640px) { .tv-row { grid-template-columns:1fr !important; } }

/* Vencidas por tipo: sem a coluna "até X" */
.pd-tipos a { grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 30px !important; }

/* Lista de empreendimentos (Obrigações): coluna de alerta com largura fixa, alinhada em todos os cards */
.ob-head { display:grid !important; grid-template-columns:minmax(0,1fr) 260px 20px; }
.ob-next { width:260px; max-width:260px; }
.ob-next .pill { min-width:150px; justify-content:center; text-align:center; }
@media (max-width:760px) { .ob-head { grid-template-columns:minmax(0,1fr) 20px; } .ob-next { grid-column:1; grid-row:2; width:auto; } .ob-chev { grid-column:2; grid-row:1; } }

/* Ficha do empreendimento em tela inteira (Obrigações) */
.ob-solo-cab { display:flex; align-items:center; gap:18px; flex:1 1 320px; min-width:0; }
.ob-solo-cab .ob-solo-logo { width:76px; height:76px; flex:none; border-radius:16px; background:#fff; border:1px solid var(--borda); object-fit:contain; padding:8px; box-sizing:border-box; }
.ob-solo-kpis { margin:4px 0 16px; }
.ob-solo-kpis .og-k { cursor:default; }
.ob-solo-kpis .og-k:hover, .ob-solo-kpis .og-hero:hover { transform:none; box-shadow:none; }
.ob-solo-cab .ob-solo-logo { display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ob-solo-cab .ob-solo-logo img { width:100%; height:100%; object-fit:contain; }

/* Abas da ficha do empreendimento (Obrigações): pílulas no padrão do módulo, sem sublinhado */
.ob-sub { gap:6px; border-bottom:0; padding:12px 0 14px; margin:0 0 14px; border-bottom:1px solid var(--linha); }
.ob-sub > button:not(.btn-min) { height:38px; padding:0 16px; border:1px solid var(--borda); border-radius:999px; background:#fff; margin:0; font-size:13.5px; font-weight:700; color:var(--cinza); transition:background .12s, color .12s, border-color .12s; }
.ob-sub > button:not(.btn-min):hover { background:var(--mod-soft, #F1F5F9); color:var(--tinta); border-color:transparent; }
.ob-sub > button.on, .ob-sub > button.urb.on, .ob-sub > button.amb.on { background:var(--mod); border-color:var(--mod); color:#fff; box-shadow:0 6px 16px -10px var(--mod); }
.ob-sub > button.on .ob-cnt { background:rgba(255,255,255,.22); color:#fff; }
.ob-sub > button.on .ob-cnt.bad { background:#fff; color:#BE123C; }
.ob-sub .ob-cnt { min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; padding:0 6px; font-size:11px; }
.ob-sub .btn-min { height:34px; padding:0 12px; border-radius:10px; }

/* Linha do tempo do empreendimento (Obrigações) */
.lt-passos { display:grid; grid-template-columns:repeat(9,minmax(0,1fr)); gap:0; margin:6px 0 14px; position:relative; }
.lt-passo { position:relative; display:flex; flex-direction:column; align-items:center; text-align:center; gap:4px; padding:4px 4px 8px; color:inherit; text-decoration:none; border-radius:12px; cursor:pointer; }
.lt-passo::before { content:""; position:absolute; top:19px; left:-50%; width:100%; height:3px; background:#E2E8F0; z-index:0; }
.lt-passo:first-child::before { display:none; }
.lt-passo.ok::before, .lt-passo.and::before { background:var(--mod); }
.lt-passo i { position:relative; z-index:1; width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-style:normal; font-weight:800; font-size:13px; background:#fff; border:2px solid #CBD5E1; color:var(--cinza2); }
.lt-passo.ok i { background:var(--mod); border-color:var(--mod); color:#fff; }
.lt-passo.and i { border-color:var(--mod); color:var(--mod); box-shadow:0 0 0 4px var(--mod-soft, rgba(13,148,136,.15)); }
.lt-passo.pend i { border-color:#F59E0B; color:#B45309; background:#FFFBEB; }
.lt-passo.sem i { border:2px dashed #E11D48; color:#BE123C; background:#FFF1F2; }
.lt-passo b { font-size:12px; font-weight:800; color:var(--navy); line-height:1.2; }
.lt-passo small { font-size:11px; color:var(--cinza2); }
.lt-passo.sem small { color:#BE123C; font-weight:700; }
.lt-passo.pend small { color:#B45309; font-weight:700; }
.lt-passo:hover { background:#F8FAFD; }
.lt-passo.sel { background:var(--mod-soft, #F0FDFA); }
.lt-lead { margin:0 0 16px; font-size:13px; color:var(--cinza); line-height:1.5; }
.lt-falta { color:#BE123C; font-weight:600; }
.lt-lista { list-style:none; margin:0; padding:0; position:relative; }
.lt-lista::before { content:""; position:absolute; left:133px; top:6px; bottom:6px; width:2px; background:#E2E8F0; }
.lt-ano { display:grid; grid-template-columns:110px 24px 1fr; gap:0 12px; margin:14px 0 6px; }
.lt-ano span { grid-column:3; font-size:12px; font-weight:800; letter-spacing:.08em; color:var(--mod); text-transform:uppercase; }
.lt-ano:first-child { margin-top:0; }
.lt-ano-prox span { color:var(--cinza2); }
.lt-m { display:grid; grid-template-columns:110px 24px minmax(0,1fr); gap:0 12px; align-items:start; padding:4px 0; transition:opacity .15s; }
.lt-data { text-align:right; font-size:13px; font-weight:700; color:var(--navy); padding-top:12px; font-variant-numeric:tabular-nums; }
.lt-data em { display:block; font-style:normal; font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#B45309; }
.lt-m.prev .lt-data em { color:var(--azul, #2E63EB); }
.lt-no { position:relative; z-index:1; width:14px; height:14px; margin:14px auto 0; border-radius:50%; background:var(--mod); box-shadow:0 0 0 4px #fff; }
.lt-m.pend .lt-no { background:#fff; border:2px dashed #F59E0B; }
.lt-m.prev .lt-no { background:#fff; border:2px solid var(--azul, #2E63EB); }
.lt-card { background:#fff; border:1px solid var(--borda); border-radius:12px; padding:10px 14px; min-width:0; }
.lt-m.pend .lt-card { background:#FFFBEB; border-color:#FDE68A; border-style:dashed; }
.lt-m.prev .lt-card { background:#F5F8FF; border-color:#C7D7FE; border-style:dashed; }
.lt-card > b { display:block; font-size:14px; color:var(--navy); line-height:1.35; }
.lt-top { display:flex; gap:6px; align-items:center; margin-bottom:3px; }
.lt-et { font-size:10.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--mod); }
.lt-conf { font-size:10.5px; font-weight:700; color:#B45309; background:#FEF3C7; border-radius:99px; padding:1px 7px; }
.lt-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.lt-chips span { font-size:11.5px; color:var(--cinza); background:#F1F5F9; border-radius:6px; padding:2px 8px; }
.lt-card p { margin:6px 0 0; font-size:12.5px; color:var(--cinza); line-height:1.45; }
.lt-arq { display:inline-flex; align-items:center; gap:5px; margin-top:7px; font-size:11.5px; color:var(--cinza2); max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lt-arq svg { width:13px; height:13px; flex:none; }
.lt-acts { display:none; gap:6px; margin-top:8px; }
.lt-m:hover .lt-acts { display:flex; }
.lt.filtrando .lt-m:not(.realce) { opacity:.3; }
.lt.filtrando .lt-m.realce .lt-card { border-color:var(--mod); box-shadow:0 0 0 1px var(--mod); }
@media (max-width:900px) { .lt-passos { grid-template-columns:repeat(5,minmax(0,1fr)); row-gap:10px; } .lt-passo:nth-child(6)::before { display:none; } }
@media (max-width:640px) { .lt-passos { grid-template-columns:repeat(3,minmax(0,1fr)); } .lt-passo::before { display:none; } .lt-lista::before { left:89px; } .lt-m, .lt-ano { grid-template-columns:72px 24px minmax(0,1fr); gap:0 6px; } .lt-data { font-size:12px; } }
.lt-passo .lt-np { font-style:normal; font-size:10.5px; font-weight:700; color:var(--cinza); background:#F1F5F9; border-radius:99px; padding:1px 7px; }
.lt-m.fazer .lt-no { background:#fff; border:2px dashed #94A3B8; }
.lt-m.fazer .lt-card { background:#F8FAFC; border-style:dashed; }
.lt-m.fazer .lt-data em { color:var(--cinza2); }
@media (max-width:900px) { .lt-passos { grid-template-columns:repeat(4,minmax(0,1fr)) !important; } .lt-passo:nth-child(5)::before { display:none; } .lt-passo:nth-child(6)::before { display:block; } }
/* fase atual do empreendimento: pisca */
.lt-passo.atual i { border-color:var(--mod); color:var(--mod); background:#fff; animation:lt-pisca 1.4s ease-in-out infinite; }
.lt-passo.atual.pend i { border-color:#F59E0B; color:#B45309; background:#FFFBEB; animation-name:lt-pisca-pend; }
.lt-passo.atual b { color:var(--mod); }
.lt-passo.atual.pend b { color:#B45309; }
@keyframes lt-pisca { 0%,100% { box-shadow:0 0 0 0 color-mix(in srgb,var(--mod) 55%,transparent); } 50% { box-shadow:0 0 0 9px color-mix(in srgb,var(--mod) 0%,transparent); background:color-mix(in srgb,var(--mod) 14%,#fff); } }
@keyframes lt-pisca-pend { 0%,100% { box-shadow:0 0 0 0 rgba(245,158,11,.55); } 50% { box-shadow:0 0 0 9px rgba(245,158,11,0); background:#FEF3C7; } }
@media (prefers-reduced-motion:reduce) { .lt-passo.atual i { animation:none; box-shadow:0 0 0 4px color-mix(in srgb,var(--mod) 25%,transparent); } }

/* Linha do tempo fixa abaixo dos indicadores: faixa de etapas sempre à vista, seta abre os marcos */
.lt-fixa { padding:18px 22px 10px; margin-bottom:16px; }
.lt-fixa.aberta { padding-bottom:20px; }
.lt-cab { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:6px; }
.lt-tit { display:flex; align-items:baseline; gap:14px; flex-wrap:wrap; min-width:0; }
.lt-tit h3 { margin:0; font-size:16px; font-weight:800; color:var(--navy); }
.lt-fixa .lt-lead { margin:0; font-size:13px; }
.lt-fixa .ob-acts { display:flex; gap:8px; align-items:center; }
.lt-seta { display:inline-flex; align-items:center; gap:8px; height:32px; padding:0 12px 0 14px; border-radius:99px; border:1px solid var(--borda); background:#fff; font:inherit; font-size:12.5px; font-weight:700; color:var(--navy); cursor:pointer; }
.lt-seta:hover { border-color:var(--mod); color:var(--mod); }
.lt-seta svg { width:14px; height:14px; transform:rotate(90deg); transition:transform .2s; }
.lt-fixa.aberta .lt-seta { background:var(--mod-soft, #F0FDFA); border-color:var(--mod); color:var(--mod); }
.lt-fixa.aberta .lt-seta svg { transform:rotate(-90deg); }
.lt-fixa .lt-passos { margin-bottom:6px; }
.lt-corpo { border-top:1px solid var(--linha); padding-top:16px; margin-top:6px; }
.lt-pe { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; }
.lt-pe .lt-acts { margin:0; }
.lt-doc { display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 11px; border-radius:8px; border:1px solid var(--mod); background:var(--mod-soft, #F0FDFA); color:var(--mod); font-size:12px; font-weight:700; text-decoration:none; max-width:100%; }
.lt-doc:hover { background:var(--mod); color:#fff; }
.lt-doc svg { width:14px; height:14px; flex:none; }
.lt-doc.busca { border-color:var(--borda); background:#fff; color:var(--cinza); }
.lt-doc.busca:hover { border-color:var(--mod); color:var(--mod); background:#fff; }
.lt-pe > .lt-doc { display:inline-flex; flex:0 0 auto; width:auto; }

/* Composição da carteira ao lado do hero do empreendimento: donut menor e legenda ao lado,
   para o card não ficar mais alto que o hero */
.hero-pie.pie-lado .pie-in { flex-direction:row; align-items:center; gap:28px; margin-top:12px; }
.hero-pie.pie-lado .pie-in .donut-wrap { order:0; width:230px; max-width:230px; flex:none; padding:0; }
.hero-pie.pie-lado .pie-in .vg-lg { order:1; flex:1; width:auto; align-self:center; gap:4px; }
.hero-pie.pie-lado .lg-chip { display:grid; grid-template-columns:10px minmax(0,1fr) auto 38px; align-items:center; gap:8px; width:100%; text-align:left; padding:6px 8px; border-radius:8px; }
.hero-pie.pie-lado .lg-chip:hover { background:#F1F5F9; }
.hero-pie.pie-lado .lg-chip i { width:10px; height:10px; border-radius:50%; }
.hero-pie.pie-lado .lg-rot { font-size:12.5px; color:var(--tinta, #334155); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.hero-pie.pie-lado .lg-n { font-size:13px; font-weight:800; color:var(--navy); font-variant-numeric:tabular-nums; }
.hero-pie.pie-lado .lg-pct { font-size:12px; color:var(--cinza2); text-align:right; font-variant-numeric:tabular-nums; }
@media (max-width:760px) { .hero-pie.pie-lado .pie-in { flex-direction:column; } .hero-pie.pie-lado .pie-in .donut-wrap { width:100%; max-width:230px; } .hero-pie.pie-lado .pie-in .vg-lg { width:100%; } }

/* Padrão: cabeçalho, total e hero dos empreendimentos na cor do MÓDULO (não mais na cor de cada empreendimento) */
:root { --mod-rgb:46,99,235; }
.tema-emp[class*="tema-"] { --e1:color-mix(in srgb,var(--mod) 28%,#06101F); --e2:var(--mod); --e3:var(--mod-2); --e-rgb:var(--mod-rgb); }

/* Padrão dos cards de rosca (composição): donut de 230px à esquerda e legenda ao lado com quantidade e %,
   o destaque da legenda na cor do módulo */
.og-rosca, .og-rosca-sit { grid-template-columns:230px minmax(0,1fr); gap:28px; }
.og-rosca .donut-box svg { max-width:230px !important; margin:0 auto; }
.hero-pie.pie-lado .lg-chip:hover, .og-legs-link a:hover { background:var(--mod-soft); }
.hero-pie.pie-lado .lg-row { display:grid; grid-template-columns:10px minmax(0,1fr) auto 38px; align-items:center; gap:8px; padding:6px 8px; }
.hero-pie.pie-lado .lg-dot { width:10px; height:10px; border-radius:50%; }
.og-legs-link a i, .og-leg i { border-radius:50%; width:10px; height:10px; }
.og-legs-link a, .og-leg { font-size:12.5px; }
@media (max-width:760px) { .og-rosca, .og-rosca-sit { grid-template-columns:1fr; } }
/* cards de cada empreendimento no consolidado também na cor do módulo */
.emp-mini[class*="c-"] { background:linear-gradient(120deg,color-mix(in srgb,var(--mod) 28%,#06101F) 0%,var(--mod) 55%,var(--mod-2) 145%); }
.emp-mini.em-vazio[class*="c-"] { background:#fff; }
.emp-mini.em-vazio[class*="c-"]::before { background:var(--mod); }
/* consolidado: a coluna da direita é alta, então a rosca pode ser maior (mesmo desenho: rosca à esquerda, legenda ao lado) */
.hero-pie.pie-esq.pie-lado .pie-in .donut-wrap { width:300px; max-width:300px; }
.og-leg.og-leg-pct { grid-template-columns:10px minmax(0,1fr) auto 38px; }
.og-leg.og-leg-pct small { font-size:12px; color:var(--cinza2); text-align:right; font-variant-numeric:tabular-nums; }
.og-leg.og-leg-pct em { grid-column:2 / 5; }
/* Contencioso: painel filtrado, card total e página do processo na cor do módulo */
.jud-hero .hero-big, .bigstat-total.bt-jud, .proc-hero.proc-mod { background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 28%,#06101F) 0%,var(--mod) 60%,var(--mod-2) 135%); }
.jud-hero .rf-panel { background:color-mix(in srgb,var(--mod) 18%,#06101F); }
.bigstat-total.bt-jud::before { background:var(--mod-2); }
.hd-judicial.hd-emp { --hd-a:var(--mod-soft); --hd-e1:var(--mod); --hd-e2:var(--mod-2); --hd-pill:var(--mod-soft); }

/* Roscas maiores (menos espaço vazio no card): ocupam até ~48% do card, entre 240 e 320px;
   a legenda quebra a linha em vez de cortar o texto */
.hero-pie.pie-lado .pie-in .donut-wrap { width:clamp(240px,48%,320px); max-width:none; }
.hero-pie.pie-esq.pie-lado .pie-in .donut-wrap { width:clamp(260px,50%,360px); max-width:none; }
.og-rosca, .og-rosca-sit { grid-template-columns:clamp(240px,46%,320px) minmax(0,1fr); }
.og-rosca .donut-box svg { max-width:100% !important; }
.hero-pie.pie-lado .lg-rot { white-space:normal; overflow:visible; line-height:1.25; }
.hero-pie.pie-lado .pie-in { gap:22px; }
/* card estreito: rosca proporcional e legenda sem a coluna de % (o % já está na fatia) */
.hero-pie.pie-lado { container-type:inline-size; }
@container (max-width:540px) {
  .hero-pie.pie-lado .pie-in .donut-wrap { width:clamp(180px,52%,260px); }
  .hero-pie.pie-lado .lg-chip, .hero-pie.pie-lado .lg-row { grid-template-columns:10px minmax(0,1fr) auto; }
  .hero-pie.pie-lado .lg-pct { display:none; }
}
/* relatório de contratos agrupado (situação da regularização / empreendimento) */
.rp-grupos { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.rp-grupos div { display:flex; align-items:center; gap:8px; border:1px solid var(--borda); border-radius:10px; padding:6px 12px; font-size:12.5px; color:var(--cinza); }
.rp-grupos b { color:var(--navy); font-weight:800; }
.rp-grupo-tit { margin:22px 0 0; font-size:15px; font-weight:800; color:var(--navy); break-after:avoid; }
.rp-grupo-tit span { font-size:12px; font-weight:600; color:var(--cinza2); margin-left:8px; }
.rel-bar-lbl select { margin-left:6px; font:inherit; padding:4px 8px; border-radius:8px; border:1px solid var(--borda); }
/* ficha do contrato: documentos do lote (cópias no Drive) */
.docs-lote { display:flex; flex-wrap:wrap; align-items:center; gap:6px; margin-top:10px; }
.docs-lote .dl-rot { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--cinza2); margin-right:4px; }
.docs-lote .dl-doc { font-size:12px; font-weight:600; color:var(--cinza); background:#F1F5F9; border:1px solid var(--borda); border-radius:99px; padding:3px 10px; text-decoration:none; }
.docs-lote .dl-doc:hover { border-color:var(--mod); color:var(--mod); }
.docs-lote .dl-doc.atual { background:var(--mod-soft); border-color:var(--mod); color:var(--mod); }
/* Módulos: os cards ocupam a largura toda (auto-fit estica as colunas em vez de deixar vazias) */
.md-grade { grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; }
.md-card { padding:24px 22px; min-height:250px; }
.md-card { min-height:clamp(260px, calc(100vh - 330px), 420px); padding:28px 24px; gap:10px; }
.md-card .md-ic { width:56px; height:56px; border-radius:15px; }
.md-card .md-ic svg { width:28px; height:28px; }
.md-card b { font-size:19px; margin-top:8px; }
.md-card p { font-size:14.5px; line-height:1.55; }
.md-card .md-fn i { font-size:12.5px; }
/* prévia da importação: mudança em lote protegido marcada para aplicar */
.imp-forcar:has(input:checked) { background:var(--mod-soft); border-radius:8px; }
.imp-forcar:has(input:checked) .imp-acao { color:var(--mod) !important; }
.imp-forcar:has(input:checked) .imp-acao { font-size:0 !important; }
.imp-forcar:has(input:checked) .imp-acao::after { content:"aplicar"; font-size:11.5px; }
/* custas em fluxo de pagamento (Termo de Custas com parcelas a vencer) */
.custas-badge.cb-fluxo { background:linear-gradient(135deg,#EEF3FF,#DCE6FE); color:#1D4ED8; }
.custas-badge.cb-fluxo .cb-ico { background:#2E63EB; }
/* Mapa de lotes (Regularizações): mesmo quadro do mapa rural, com busca e situação dos lotes */
.ml-wrap .ru-mapbox { height:min(74vh,720px); }
.ml-busca { display:flex; align-items:center; gap:8px; border:1px solid var(--borda); border-radius:10px; padding:0 10px; background:#fff; }
.ml-busca svg { width:16px; height:16px; color:var(--cinza2); flex:none; }
.ml-busca input { border:0; outline:0; flex:1; min-width:0; font:inherit; font-size:13px; padding:9px 0; background:none; }
.ml-busca:focus-within { border-color:var(--mod); box-shadow:0 0 0 3px color-mix(in srgb,var(--mod) 18%,transparent); }
.ml-achados { font-size:12px; color:var(--cinza); display:flex; flex-wrap:wrap; gap:5px; align-items:center; }
.ml-achados:empty { display:none; }
.ml-leg { display:grid; gap:4px; }
.ml-chip { display:flex; align-items:center; gap:9px; width:100%; border:0; background:none; font:inherit; font-size:13px; font-weight:600; color:var(--tinta); padding:6px 8px; border-radius:8px; cursor:pointer; text-align:left; }
.ml-chip:hover { background:rgba(15,27,46,.05); }
.ml-chip i, .ml-leg-areas i, .ml-sit i { width:12px; height:12px; border-radius:4px; flex:none; box-shadow:inset 0 0 0 1px rgba(15,27,46,.12); }
.ml-chip b { margin-left:auto; font-variant-numeric:tabular-nums; color:var(--navy); }
.ml-chip.off { opacity:.45; } .ml-chip.off i { background:transparent !important; box-shadow:inset 0 0 0 1.5px var(--cinza2); }
.ml-leg-areas span { display:flex; align-items:center; gap:9px; font-size:12.5px; color:var(--tinta); padding:3px 8px; }
.ml-leg-areas small { margin-left:auto; color:var(--cinza2); font-weight:700; }
.ml-i-app { background:none !important; box-shadow:none !important; border-top:2px dashed #15803D; height:0 !important; border-radius:0 !important; }
.ml-i-gleba { background:none !important; box-shadow:none !important; border-top:2px dashed #0F1B2E; height:0 !important; border-radius:0 !important; }
.ml-sit { display:inline-flex; align-items:center; gap:7px; font-weight:600; }
.ml-rot-q { font-size:12px; font-weight:800; fill:#0F1B2E; text-anchor:middle; pointer-events:none; paint-order:stroke; stroke:#fff; stroke-width:3px; }
.ml-rot-l { font-size:9px; font-weight:700; fill:#0F1B2E; text-anchor:middle; pointer-events:none; paint-order:stroke; stroke:rgba(255,255,255,.85); stroke-width:2px; }
/* abas do empreendimento: todas numa linha (Painel · Contratos · Termos · Obrigações · Mapa) */
@media (min-width:1101px) { .emp-abas:has(> :nth-child(5)):not(:has(> :nth-child(6))) { grid-template-columns:repeat(5,minmax(0,1fr)); } }
.ml-aviso { display:block; margin-top:8px; padding:7px 10px; border-radius:8px; background:#FFF7E6; color:#92400E; font-size:12px; font-weight:600; line-height:1.4; }
/* Mapa de Lotes: etiqueta da quadra sempre visível */
.ml-q rect { fill:#0F1B2E; fill-opacity:.82; stroke:#fff; stroke-width:1.2; }
.ml-q text { fill:#fff; font-size:11.5px; font-weight:800; text-anchor:middle; letter-spacing:.02em; }
/* card do empreendimento no consolidado: legenda do percentual */
.em-pct { text-align:center; }
.em-pct .em-pct-rot { display:block; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; opacity:.8; margin-top:4px; }

/* Cabeçalho de todas as páginas na cor do módulo aberto (antes cada página tinha a sua: verde, laranja, roxo…) */
.hd, .hd[class*="hd-"] {
  --hd-a:color-mix(in srgb,var(--mod) 13%,transparent); --hd-b:color-mix(in srgb,var(--mod-2) 6%,transparent);
  --hd-e1:var(--mod); --hd-e2:var(--mod-2); --hd-pill:color-mix(in srgb,var(--mod) 15%,transparent);
}
/* ficha do contrato: barra do topo na cor do módulo */
.ficha-topo.hd::before { background:linear-gradient(90deg,var(--mod),var(--mod-2)); }
/* Obrigações: lista de licenças filtrada pelos indicadores */
.ob-flics { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 14px; }
.ob-flic { font-size:12.5px; font-weight:700; color:var(--cinza); border:1px solid var(--borda); border-radius:99px; padding:5px 12px; text-decoration:none; background:#fff; }
.ob-flic b { color:var(--navy); margin-left:4px; }
.ob-flic.on { background:var(--mod); border-color:var(--mod); color:#fff; } .ob-flic.on b { color:#fff; }
.ob-t .btn-min { white-space:nowrap; }

/* Últimas movimentações: acompanha a altura do card ao lado (a lista rola dentro do card) */
.mov-scroll { flex:1 1 auto; min-height:220px; contain:size; overflow-y:auto; margin-top:8px; padding-right:4px; }

/* Base do mês: rodapé discreto do painel do empreendimento (importação e relatório) */
.base-bar { display:flex; align-items:center; justify-content:space-between; gap:8px 16px; flex-wrap:wrap; margin-top:20px; padding-top:12px; border-top:1px dashed var(--line); font-size:12.5px; color:var(--muted); }
.base-bar b { color:var(--navy); font-weight:700; }
.bb-acoes { display:flex; gap:2px; flex-wrap:wrap; }
.bb-btn { display:inline-flex; align-items:center; gap:6px; background:none; border:0; border-radius:8px; padding:6px 10px; font:inherit; font-size:12.5px; font-weight:600; color:var(--mod, var(--azul)); cursor:pointer; }
.bb-btn:hover { background:var(--mod-soft, #EEF2FF); }
.bb-btn svg { width:14px; height:14px; }

/* ---------- Ficha do contrato: cabeçalho responsivo ----------
   1ª linha: empreendimento à esquerda e botões à direita; quando os botões não cabem ao lado,
   o grupo inteiro desce para a linha de baixo, alinhado à esquerda. Lote, cliente, selos e
   documentos usam a largura toda do card. */
.ficha-topo { container-type:inline-size; }
.ficha-topo-main { display:block; }
.ficha-topo-main .ficha-id { display:block; }
.ficha-head { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px 16px; margin-bottom:6px; }
.ficha-head .ficha-emp { margin-bottom:0; min-width:0; }
.ficha-head .ficha-btns { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 0 auto; justify-content:flex-end; flex:0 1 auto; }
.ficha-head .ficha-btns .btn { font-size:12px; padding:7px 10px; gap:5px; white-space:nowrap; }
.ficha-head .ficha-btns .btn svg { width:14px; height:14px; }
.ficha-topo .custas-badge { max-width:100%; }
@container (max-width:640px) {
  .ficha-head .ficha-btns { margin-left:0; justify-content:flex-start; }
  .ficha-topo h1.titulo { font-size:26px; }
  .fin-strip.fin-hero { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fin-strip.fin-hero .fin-base { grid-column:1 / -1; justify-self:start; }
}
/* Ficha: abaixo de 1100px o card da situação/custas desce para baixo do cabeçalho
   (a regra de duas colunas acima vinha depois do @media e valia em qualquer largura) */
@media (max-width:1100px) { .ficha-linha { grid-template-columns:minmax(0,1fr); } }
/* etapas do fluxo: em tela estreita rolam de lado dentro do card, sem empurrar a página */
.stepper-row { overflow-x:auto; scrollbar-width:thin; }

/* ---------- Barra do topo responsiva ----------
   Em tela menor a data sai e os avisos quebram para uma 2ª linha em vez de vazar pela direita. */
@media (max-width:1280px) { .topbar-hoje { display:none !important; } }
.topbar { height:auto; min-height:70px; flex-wrap:wrap; row-gap:8px; padding-top:10px; padding-bottom:10px; }
.topbar-dir { flex:1 1 auto !important; flex-wrap:wrap; justify-content:flex-end; min-width:0; row-gap:8px; }
@media (max-width:700px) {
  .topbar { padding-left:14px; padding-right:14px; gap:10px; }
  .topbar-dir { justify-content:flex-start; }
  .topbar-user { font-size:0; gap:0; }
  .topbar-user svg { display:none; }
}
@media (max-width:700px) {
  .mod-sel { flex:1 1 100% !important; max-width:100%; min-width:0; overflow:hidden; }
  .mod-sel * { min-width:0; }
  .mod-sel b, .mod-sel strong { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}
/* Faixa do acordo com mais células (parcelas, 1º vencimento, honorários): cada célula ocupa o
   tamanho do conteúdo e, se não couber, a faixa quebra linha em vez de cortar o valor com "…" */
.proc-hero .acordo-banner { flex-wrap:wrap; }
.proc-hero .acordo-banner .ab-cell { flex:1 1 auto; min-width:110px; }
.proc-hero .acordo-banner .ab-val { overflow:visible; text-overflow:clip; }
.proc-hero .sel-sit { display:inline-flex; align-items:center; gap:6px; cursor:pointer; }
.proc-hero .sel-sit select { font:inherit; color:inherit; background:transparent; border:0; outline:0; cursor:pointer; padding:0; }
.proc-hero .sel-sit select option { color:#1e293b; }
.mm-urbana { margin-top:16px; padding-top:14px; border-top:1px dashed var(--borda, #E2E8F0); }
.mmu-tit { font-size:12.5px; font-weight:700; color:#334155; margin-bottom:4px; }
.mmu-tit span { font-weight:500; color:#64748B; margin-left:6px; }

/* Contencioso · Execuções fiscais */
.ef-barra { display:grid; grid-template-columns:minmax(120px,38%) 1fr 34px; align-items:center; gap:10px; padding:5px 0; font-size:12.5px; }
.ef-rot { color:#334155; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ef-trilho { height:10px; background:#EEF2F7; border-radius:6px; overflow:hidden; }
.ef-trilho i { display:block; height:100%; background:#BE123C; border-radius:6px; }
.ef-barra b { text-align:right; color:#0F1B2E; }
.ef-tab td.ef-obs { max-width:280px; font-size:12px; color:#475569; }
.ef-tab td a { color:inherit; text-decoration:underline dotted; }
.ef-tab tr.ef-grupo td { background:#F1F4F8; color:#0F1B2E; font-size:13px; padding:10px 12px; border-top:2px solid #BE123C; }
.ef-tab tr.ef-grupo td span { color:#64748B; font-weight:500; margin-left:8px; font-size:12px; }
.jud-tab tr.ef-total td { background:#F8FAFC; font-weight:700; }
.ef-tab td.ef-ql { text-align:center; white-space:nowrap; }
.ef-alerta { color:#B45309; margin-left:4px; cursor:help; }
/* Execuções fiscais · Solicitar baixa */
.ef-card-baixa { cursor:pointer; }
.ef-baixa { margin:14px 0; padding:16px 18px; border-left:4px solid #0E7490; }
.efb-tit { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; margin-bottom:12px; }
.efb-tit b { font-size:15px; color:#0E7490; }
.efb-tit span { font-size:12px; color:#64748B; }
.efb-itens { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:10px; align-items:stretch; }
.efb-item { display:flex; flex-direction:column; align-items:flex-start; gap:2px; padding:10px 14px; border:1px solid #CFE8EE; background:#F0F9FB; border-radius:10px; cursor:pointer; text-align:left; min-width:170px; font:inherit; }
.efb-item:hover { border-color:#0E7490; }
.efb-item b { font-size:22px; color:#0F1B2E; line-height:1; }
.efb-item span { font-size:12.5px; font-weight:600; color:#0E7490; }
.efb-item em { font-size:11.5px; font-style:normal; color:#64748B; }
.efb-feitas { align-self:center; font-size:12.5px; color:#0E7490; }
.ef-baixa-tag { margin-top:6px; display:inline-block; font-size:11.5px; font-weight:600; color:#0E7490; background:#E6F4F7; border-radius:6px; padding:3px 7px; }
.ef-baixa-btn { display:block; margin-top:5px; font-size:11.5px; color:#0E7490; background:none; border:1px dashed #0E7490; border-radius:6px; padding:2px 8px; cursor:pointer; }
.ef-baixa-btn:hover { background:#E6F4F7; }
/* Visão geral do Contencioso · panorama */
.pn-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-bottom:22px; }
.pn-card { display:block; padding:18px 20px; color:inherit; text-decoration:none; border-top:4px solid var(--pn,#BE123C); }
a.pn-card:hover { box-shadow:0 6px 22px rgba(15,27,46,.10); }
.pn-emp { --pn:#BE123C; } .pn-ef { --pn:#0E7490; } .pn-out { --pn:#7C3AED; }
.pn-tit { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--pn); }
.pn-big { font-size:34px; font-weight:800; color:#0F1B2E; line-height:1.1; margin-top:6px; }
.pn-sub { font-size:12.5px; color:#475569; margin-bottom:10px; }
.pn-nums { border-top:1px solid #EEF2F7; padding-top:8px; }
.pn-l { display:flex; align-items:baseline; gap:8px; font-size:12.5px; padding:3px 0; }
.pn-l span { flex:1; color:#475569; } .pn-l b { color:#0F1B2E; } .pn-l em { font-style:normal; font-size:11.5px; color:#64748B; }
.pn-lista { margin-top:8px; border-top:1px dashed #E2E8F0; padding-top:8px; }
.pn-i { display:grid; grid-template-columns:1fr auto auto; gap:8px; align-items:baseline; font-size:12.5px; padding:2px 0; }
.pn-i span { color:#0F1B2E; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .pn-i b { color:#0F1B2E; } .pn-i em { font-style:normal; font-size:11px; color:#94A3B8; }
/* Barra lateral · título sem link e subitens (empreendimentos e execuções fiscais com o mesmo padrão) */
.nav a.nav-titulo { cursor:default; }
.nav a.nav-titulo, .nav a.nav-titulo:hover { background:none; color:color-mix(in srgb,var(--mod-2) 70%,#fff); }
.nav a.nav-titulo { margin-top:6px; }
.nav a.nav-sub, .nav a.nav-emp.nav-emp-sub { height:40px !important; min-height:40px; flex:none; gap:11px; padding-left:24px; }
.nav a.nav-sub span, .nav a.nav-emp.nav-emp-sub span { font-size:13.5px !important; font-weight:600 !important; }
.nav-sub i { flex:none; width:24px; height:22px; border-radius:6px; display:grid; place-items:center; font-style:normal; font-size:9px; font-weight:800; color:#fff; background:color-mix(in srgb,var(--mod) 55%,#0F1B2E); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.nav a.nav-sub.ativo, .nav a.nav-emp.nav-emp-sub.ativo { background:rgba(255,255,255,.12); box-shadow:none; color:#fff; }
.nav a.nav-sub.ativo i { background:linear-gradient(135deg,var(--mod),var(--mod-2)); }
/* Execuções fiscais · volume e lista (v2) */
.ef-g { grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); }
.ef-g3 { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; margin-top:14px; }
.ef-barra-lista { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:6px 0 10px; }
.ef-barra-lista input { flex:1; min-width:240px; padding:10px 14px; border:1px solid #E2E8F0; border-radius:10px; font:inherit; background:#fff; }
.ef-barra-lista select { padding:9px 12px; border:1px solid #E2E8F0; border-radius:10px; font:inherit; background:#fff; color:#0F1B2E; }
.ef-cont { font-size:12.5px; color:#64748B; margin-left:auto; }
.ef-chips { margin-bottom:12px; }
.ef-tab thead th { position:sticky; top:0; background:#F8FAFC; z-index:1; }
.ef-tab tr.ef-linha { cursor:pointer; }
.ef-tab tr.ef-linha:hover td { background:#FBFCFE; }
.ef-tab tr.ef-linha.on td { background:#F1F5F9; }
.ef-tab td { vertical-align:top; }
.ef-ql { display:inline-block; font-weight:800; font-size:12.5px; color:#0F1B2E; background:#F1F5F9; border:1px solid #E2E8F0; border-radius:7px; padding:3px 8px; white-space:nowrap; }
.ef-ql-vazio { font-weight:500; color:#94A3B8; }
.ef-proc a { font-size:12.5px; color:#0F1B2E; text-decoration:none; border-bottom:1px dotted #94A3B8; }
.ef-neo { margin-top:4px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.ef-neo .pill { font-size:10.5px; }
.ef-ct { font-size:11.5px; color:#2563EB; text-decoration:none; }
.ef-anos { display:flex; flex-wrap:wrap; gap:3px; max-width:170px; }
.ef-anos i { font-style:normal; font-size:10.5px; font-weight:700; color:#475569; background:#EEF2F7; border-radius:5px; padding:1px 5px; }
.ef-lotbar { height:5px; background:#E2E8F0; border-radius:4px; margin:5px 0 2px auto; width:90px; overflow:hidden; }
.ef-lotbar i { display:block; height:100%; background:#E07B00; }
.ef-abre { color:#94A3B8; width:18px; }
.ef-tab tr.ef-linha.on .ef-abre { transform:rotate(90deg); }
.ef-det td { background:#F8FAFC; padding:14px 18px !important; }
.ef-det-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px 18px; }
.ef-det-grid div { display:flex; flex-direction:column; gap:2px; }
.ef-det-grid span { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:#64748B; }
.ef-det-grid b { font-size:13px; font-weight:600; color:#0F1B2E; }
.ef-det-larga { grid-column:1 / -1; }
@media (max-width:900px) { .ef-g { grid-template-columns:1fr; } }
/* Execuções fiscais · linha enxuta */
.ef-tab td { padding-top:10px !important; padding-bottom:10px !important; }
.ef-nome { font-weight:600; }
.ef-ctchip { display:inline-block; margin-top:4px; font-size:11px; font-weight:600; color:#1D4ED8; background:#EFF4FF; border-radius:6px; padding:2px 7px; text-decoration:none; white-space:nowrap; }
.ef-ctchip:hover { background:#DCE7FF; }
.ef-anoscurto { white-space:nowrap; font-size:12.5px; color:#334155; }
.ef-aviso-tag { margin-top:6px; display:inline-block; font-size:11px; font-weight:600; color:#64748B; background:#F1F5F9; border-radius:6px; padding:3px 7px; }
.efb-aviso { background:#F8FAFC !important; border-color:#E2E8F0 !important; }
.efb-aviso span { color:#64748B !important; }
.ef-abre { white-space:nowrap; color:#64748B; font-size:12px; text-align:right; }
.ef-abre span { text-decoration:underline dotted; }
.ef-tab tr.ef-linha.on .ef-abre { transform:none; color:#0F1B2E; }
/* Execuções fiscais · tabela cabe na tela */
.ef-tab { width:100%; font-size:13px; }
.ef-tab th, .ef-tab td { padding-left:10px !important; padding-right:10px !important; }
.ef-proc a { font-size:12px; }
.ef-nome { display:block; max-width:260px; }
.ef-estoque { font-weight:500; color:#64748B; font-style:italic; }
.ef-baixa-tag, .ef-aviso-tag { white-space:nowrap; }
.ef-det-grid { grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
.ef-det-grid b { word-break:break-word; }
/* Execuções fiscais · largura: etiquetas quebram linha em vez de alargar a tabela */
.ef-tab .ef-baixa-tag, .ef-tab .ef-aviso-tag { display:table; margin-top:5px; }
.ef-tab .ef-ctchip { white-space:normal; }
.ef-tab .ef-nome { max-width:220px; }
.ef-tab td.ef-abre { width:1%; }
@media (max-width:1100px) { .ef-tab td.ef-abre span { display:none; } .ef-tab .ef-anoscurto { white-space:normal; } }
.ef-tab td.ef-status { white-space:nowrap; }
.ef-tab td.ef-status .ef-ct { display:block; margin-top:4px; }
/* Execuções fiscais · colunas com largura fixa: o texto quebra dentro da célula */
.ef-tab { table-layout:fixed; }
.ef-tab th:nth-child(1) { width:10%; } .ef-tab th:nth-child(2) { width:21%; } .ef-tab th:nth-child(3) { width:23%; }
.ef-tab th:nth-child(4) { width:15%; } .ef-tab th:nth-child(5) { width:16%; } .ef-tab th:nth-child(6) { width:11%; } .ef-tab th:nth-child(7) { width:4%; }
.ef-tab td { overflow-wrap:anywhere; }
.ef-tab .ef-nome { max-width:none; }
.ef-tab td.ef-status, .ef-tab .pill { white-space:normal; }
.ef-tab .ef-proc a { word-break:break-all; }
.ef-tab td.ef-abre span { display:none; }
.ef-tab .ef-ql { white-space:nowrap; font-size:11.5px; padding:2px 6px; }
.ef-tab th { white-space:normal !important; }
.ef-tab .ef-nome, .ef-tab .ef-estoque { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; display:block; }
.ef-det-grid { grid-template-columns:repeat(auto-fill,minmax(210px,1fr)) !important; }
.ef-det-grid span, .ef-det-grid b { white-space:normal !important; overflow-wrap:anywhere; min-width:0; }
.ef-det-grid div { min-width:0; }
/* status do lote + botão do contrato ao lado */
.ef-tab td.ef-status { white-space:nowrap; }
.ef-tab td.ef-status .pill { white-space:normal; vertical-align:middle; }
.ef-ctbtn { display:inline-grid; place-items:center; width:24px; height:24px; margin-left:6px; vertical-align:middle; border:1px solid #E2E8F0; border-radius:7px; color:#475569; background:#fff; }
.ef-ctbtn svg { width:14px; height:14px; }
.ef-ctbtn:hover { color:#BE123C; border-color:#BE123C; background:#FFF1F3; }
.ef-tab td.ef-proc .jsub { white-space:normal !important; overflow-wrap:anywhere; }
/* Execuções fiscais · lista mais limpa: colunas na medida e o nome ocupa o resto */
.ef-tab th:nth-child(1) { width:96px; } .ef-tab th:nth-child(2) { width:205px; } .ef-tab th:nth-child(3) { width:auto; }
.ef-tab th:nth-child(4) { width:150px; } .ef-tab th:nth-child(5) { width:165px; } .ef-tab th:nth-child(6) { width:110px; } .ef-tab th:nth-child(7) { width:96px; }
.ef-semcomp { font-size:12px; font-weight:500; color:#94A3B8; font-style:normal; }
.ef-tab td.ef-abre { text-align:right; vertical-align:top; }
.ef-tab td.ef-abre span { display:none; }
.ef-vermais { font:inherit; font-size:11.5px; font-weight:600; color:#BE123C; background:#FFF1F3; border:1px solid #FBD0D9; border-radius:999px; padding:3px 10px; cursor:pointer; white-space:nowrap; }
.ef-vermais i { font-style:normal; display:inline-block; transition:transform .15s; }
.ef-vermais:hover { background:#FFE4E9; }
.ef-tab tr.ef-linha.on .ef-vermais { background:#BE123C; color:#fff; border-color:#BE123C; }
.ef-tab tr.ef-linha.on .ef-vermais i { transform:rotate(180deg); }
/* Execuções fiscais · anos da empresa × do compromissário */
.ef-iptu { display:flex; flex-wrap:wrap; gap:3px; margin-top:4px; }
.ef-iptu i, .ef-legenda i { font-style:normal; font-size:10.5px; font-weight:700; border-radius:5px; padding:1px 5px; }
.ef-a-emp { background:#FDE2E7; color:#9F1239; }
.ef-a-comp { background:#E5EDF7; color:#334155; }
.ef-legenda { font-size:12px; color:#64748B; margin:-4px 0 10px; display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.ef-revenda { color:#B45309; }
.ef-divtag { margin-top:4px; display:table; font-size:11px; font-weight:600; color:#B45309; background:#FFF4E5; border-radius:6px; padding:2px 7px; }
/* Execuções fiscais · nova ordem das colunas: Processo · Lote · Status · Compromissário · Situação · Valor · Providência */
.ef-tab th:nth-child(1) { width:205px !important; } .ef-tab th:nth-child(2) { width:92px !important; } .ef-tab th:nth-child(3) { width:120px !important; }
.ef-tab th:nth-child(4) { width:auto !important; } .ef-tab th:nth-child(5) { width:130px !important; } .ef-tab th:nth-child(6) { width:105px !important; } .ef-tab th:nth-child(7) { width:205px !important; }
.ef-comp { display:flex; align-items:center; gap:8px; }
.ef-comp .ef-ctbtn { margin-left:0; flex:none; }
.ef-tab td.ef-prov { vertical-align:top; }
.ef-tab td.ef-prov .ef-baixa-tag, .ef-tab td.ef-prov .ef-aviso-tag { display:inline-block; margin:0 0 6px; white-space:normal; }
.ef-tab td.ef-prov .ef-vermais { display:block; margin-top:2px; }
/* responsabilidade da empresa: Total · Parcial · Nenhuma (coluna 6) */
.ef-tab th:nth-child(5) { width:125px !important; } .ef-tab th:nth-child(6) { width:110px !important; } .ef-tab th:nth-child(7) { width:100px !important; } .ef-tab th:nth-child(8) { width:200px !important; }
.ef-resp { display:inline-block; font-size:11.5px; font-weight:700; border-radius:999px; padding:2px 10px; cursor:help; }
.ef-resp-empresa { background:#FDE2E7; color:#9F1239; }
.ef-resp-dividida { background:#FFF1D6; color:#92400E; }
.ef-resp-compromissario { background:#EEF2F7; color:#475569; }
/* Execuções fiscais · 10 colunas: Processo · Distribuição · Anos de IPTU · Lote · Status · Compromissário · Situação · Resp. · Valor · Providência */
.ef-tab th:nth-child(1) { width:175px !important; } .ef-tab th:nth-child(2) { width:92px !important; } .ef-tab th:nth-child(3) { width:132px !important; }
.ef-tab th:nth-child(4) { width:86px !important; } .ef-tab th:nth-child(5) { width:105px !important; } .ef-tab th:nth-child(6) { width:auto !important; }
.ef-tab th:nth-child(7) { width:118px !important; } .ef-tab th:nth-child(8) { width:92px !important; } .ef-tab th:nth-child(9) { width:96px !important; } .ef-tab th:nth-child(10) { width:190px !important; }
.ef-tab td.ef-dist { font-size:12.5px; color:#334155; white-space:nowrap; }
.ef-tab .ef-iptu { margin-top:0; }
/* Execuções fiscais · 12 colunas (com valor da empresa e do compromissário) */
.ef-tab th:nth-child(1) { width:170px !important; } .ef-tab th:nth-child(2) { width:86px !important; } .ef-tab th:nth-child(3) { width:120px !important; }
.ef-tab th:nth-child(4) { width:80px !important; } .ef-tab th:nth-child(5) { width:96px !important; } .ef-tab th:nth-child(6) { width:auto !important; }
.ef-tab th:nth-child(7) { width:110px !important; } .ef-tab th:nth-child(8) { width:82px !important; } .ef-tab th:nth-child(9) { width:92px !important; }
.ef-tab th:nth-child(10) { width:92px !important; } .ef-tab th:nth-child(11) { width:100px !important; } .ef-tab th:nth-child(12) { width:180px !important; }
.ef-tab td.ef-v-emp { color:#9F1239; font-weight:600; } .ef-tab td.ef-v-comp { color:#475569; }
/* Execuções fiscais · layout final: o navegador divide o espaço pelo conteúdo; datas, valores e etiquetas não quebram,
   só o nome do compromissário e a providência podem ir para a segunda linha */
.ef-tab { table-layout:auto !important; }
.ef-tab th { width:auto !important; white-space:nowrap !important; }
.ef-tab td { overflow-wrap:normal !important; }
.ef-tab td.ef-proc a { word-break:normal !important; white-space:nowrap; }
.ef-tab td.ef-dist, .ef-tab td.ef-status, .ef-tab td.tr { white-space:nowrap; }
.ef-tab .pill, .ef-tab .ef-resp, .ef-tab .ef-ql { white-space:nowrap !important; }
.ef-tab .ef-iptu { flex-wrap:nowrap; }
.ef-tab td:nth-child(6) { min-width:170px; max-width:260px; }
.ef-tab td.ef-prov { min-width:150px; max-width:200px; }
.ef-tab td.ef-prov .ef-baixa-tag, .ef-tab td.ef-prov .ef-aviso-tag { white-space:normal !important; }
.ef-tab th, .ef-tab td { padding-left:8px !important; padding-right:8px !important; }
/* ajuste fino: títulos em até 2 linhas, anos em 2 fileiras, status longo quebra */
.ef-tab th { white-space:normal !important; line-height:1.25; vertical-align:bottom; }
.ef-tab .ef-iptu { flex-wrap:wrap; max-width:96px; }
.ef-tab td.ef-status { white-space:normal; max-width:120px; }
.ef-tab td.ef-status .pill { white-space:normal !important; display:inline-block; line-height:1.3; }
.ef-tab td:nth-child(6) { min-width:160px; max-width:230px; }
.ef-tab td.ef-prov { min-width:140px; max-width:175px; }
/* Execuções fiscais · detalhe em três blocos */
.ef-det td { padding:16px 18px !important; background:#F8FAFC; }
.efd { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.efd-bloco { background:#fff; border:1px solid #E8EDF3; border-radius:12px; padding:12px 14px; }
.efd-tit { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:#BE123C; margin-bottom:8px; }
.efd-c { display:flex; flex-direction:column; gap:1px; padding:5px 0; border-top:1px solid #F1F5F9; }
.efd-c:first-of-type { border-top:0; }
.efd-c span { font-size:11px; color:#64748B; }
.efd-c b { font-size:13px; font-weight:600; color:#0F1B2E; white-space:normal; overflow-wrap:anywhere; }
.efd-est { font-style:normal; font-size:10.5px; font-weight:600; color:#94A3B8; margin-left:4px; }
.efd-prov { margin-top:12px; display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:#E6F4F7; border-radius:10px; padding:10px 14px; }
.efd-prov b { color:#0E7490; font-size:13px; } .efd-prov span { font-size:12px; color:#475569; flex:1; }
.efd-prov .ef-baixa-btn { margin:0; background:#fff; }
@media (max-width:1100px) { .efd { grid-template-columns:1fr; } }
/* Execuções fiscais · tese de baixo valor (Tema 1.184) */
.ef-tese { margin:14px 0; padding:16px 18px; border-left:4px solid #6D28D9; }
.ef-tese .efb-tit b { color:#6D28D9; }
.efb-ok { background:#F3EEFF !important; border-color:#DDD0FB !important; cursor:default; } .efb-ok span { color:#6D28D9 !important; }
.efb-neutro { background:#F8FAFC !important; border-color:#E2E8F0 !important; cursor:default; } .efb-neutro span { color:#475569 !important; }
.efb-tese { background:#fff !important; border:1px dashed #6D28D9 !important; } .efb-tese span { color:#6D28D9 !important; }
.ef-tese-tag { display:inline-block; margin:0 0 6px; font-size:11px; font-weight:600; color:#6D28D9; background:#F3EEFF; border-radius:6px; padding:3px 7px; white-space:normal; }
.efd-prov-tese { background:#F3EEFF; } .efd-prov-tese b { color:#6D28D9; }
.ef-enc { margin-top:14px; }
.ef-tese .efb-itens { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); }
.op-tab td:nth-child(4) { min-width:240px; }
.op-tab td:nth-child(5), .op-tab td:nth-child(6) { min-width:150px; }
.op-obs { margin-top:4px; max-width:340px; font-weight:400; white-space:normal; line-height:1.4; }

/* Visão geral do contencioso: hero com a divisão por seção */
.hg-row { display:grid !important; grid-template-columns:minmax(150px,auto) 1fr auto; gap:12px; align-items:center; }
.hg-info { font-size:12.5px; opacity:.85; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hg-dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:8px; vertical-align:middle; }
.hg-quebra { display:flex; flex-direction:column; gap:12px; }
.hg-bloco { border-top:1px solid #EEF1F5; padding-top:10px; }
.hg-bloco:first-of-type { border-top:0; padding-top:0; }
.hg-cab { display:flex; align-items:center; gap:4px; color:#0F1B2E; text-decoration:none; margin-bottom:6px; }
.hg-cab b { font-size:13.5px; } .hg-cab span { margin-left:auto; font-weight:800; font-size:15px; }
.hg-it { display:grid; grid-template-columns:minmax(120px,170px) 1fr 34px; gap:10px; align-items:center; font-size:12.5px; color:#475569; padding:2px 0; }
.hg-it b { text-align:right; color:#0F1B2E; }
.hg-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:22px; }
.hg-tile { display:flex; flex-direction:column; gap:8px; padding:16px 16px 12px; border-radius:14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.14); border-top:3px solid var(--c); color:#fff; text-decoration:none; transition:background .15s; }
.hg-tile:hover { background:rgba(255,255,255,.14); }
.hg-t-cab { font-size:12.5px; font-weight:700; letter-spacing:.02em; opacity:.95; }
.hg-t-n { font-size:34px; font-weight:800; line-height:1; }
.hg-t-n small { display:block; font-size:11.5px; font-weight:600; opacity:.75; margin-top:4px; }
.hg-t-det { display:flex; flex-direction:column; gap:3px; border-top:1px solid rgba(255,255,255,.14); padding-top:8px; font-size:12px; }
.hg-t-det div { display:flex; justify-content:space-between; gap:8px; } .hg-t-det span { opacity:.8; } .hg-t-det b { font-weight:700; white-space:nowrap; }
.hg-t-ir { margin-top:auto; font-size:11.5px; opacity:.7; text-align:right; }
.hg-mais { font-size:12px; color:#64748B; padding:4px 0 0; }
.hg-it span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:900px){ .hg-tiles { grid-template-columns:1fr; } }
.hg-kpis { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; margin:16px 0 4px; }
.hg-kpis div { display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:12px; background:rgba(255,255,255,.08); }
.hg-kpis b { font-size:20px; font-weight:800; color:#fff; } .hg-kpis span { font-size:11.5px; color:rgba(255,255,255,.75); }
@media (max-width:900px){ .hg-kpis { grid-template-columns:repeat(2,1fr); } }
/* Visão geral v3: seções no hero, tabela de indicadores e tabela por empresa */
.hg-secs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-top:24px; }
.hg-sec { display:flex; flex-direction:column; gap:4px; padding:16px; border-radius:14px; background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.14); color:#fff; text-decoration:none; }
.hg-sec:hover { background:rgba(255,255,255,.15); }
.hg-sec span { font-size:13px; font-weight:700; } .hg-sec b { font-size:40px; font-weight:800; line-height:1.05; } .hg-sec small { font-size:11.5px; opacity:.75; }
.hg-tab { width:100%; border-collapse:collapse; font-size:13.5px; margin-top:6px; }
.hg-tab th { font-size:12px; font-weight:700; color:#475569; text-align:right; padding:8px 6px; border-bottom:1px solid #E2E8F0; white-space:nowrap; }
.hg-tab th:first-child { text-align:left; } .hg-tab th a { color:inherit; text-decoration:none; }
.hg-tab td { padding:10px 6px; text-align:right; border-bottom:1px solid #F1F5F9; color:#0F1B2E; white-space:nowrap; }
.hg-tab td:first-child { text-align:left; color:#475569; }
.hg-tab tr.hg-forte td { font-size:17px; font-weight:800; } .hg-tab tr.hg-forte td:first-child { font-size:13.5px; font-weight:700; color:#0F1B2E; }
.hg-tab td:last-child, .hg-tab th:last-child { background:#F8FAFC; }
.hg-emp { margin-top:16px; }
.hg-barra { display:flex; height:10px; border-radius:6px; overflow:hidden; gap:2px; }
.hg-barra i { display:block; height:100%; }
/* Visão geral v4: grade de indicadores e barras por empresa */
.hg-score { display:grid; grid-template-columns:minmax(150px,1.3fr) repeat(var(--n),minmax(0,1fr)) minmax(0,1fr); margin-top:8px; }
.hg-h { padding:0 8px 10px; font-size:12px; font-weight:700; color:#475569; text-align:center; text-decoration:none; }
.hg-hsec { border-bottom:3px solid var(--c); }
.hg-hsec:hover { color:#0F1B2E; }
.hg-htot { background:#0F1B2E; color:#fff; border-radius:10px 10px 0 0; padding-top:8px; margin-top:-8px; }
.hg-l, .hg-v { padding:11px 8px; border-bottom:1px solid #F1F5F9; display:flex; align-items:baseline; }
.hg-l { font-size:13px; color:#475569; }
.hg-v { justify-content:center; font-size:16px; font-weight:600; color:#0F1B2E; font-variant-numeric:tabular-nums; }
.hg-l-forte { font-weight:700; color:#0F1B2E; font-size:14px; }
.hg-v-forte { font-size:26px; font-weight:800; }
.hg-tot { background:#0F1B2E; color:#fff; font-weight:800; border-bottom-color:rgba(255,255,255,.08); }
.hg-score > .hg-tot:last-child { border-radius:0 0 10px 10px; }
.hg-un { font-size:.62em; font-weight:600; opacity:.7; margin:0 2px; }
.hg-zero { color:#CBD5E1; font-weight:500; }
.hg-tot .hg-zero { color:rgba(255,255,255,.4); }
.hg-emp-cab { display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; padding:4px 4px 14px; border-bottom:1px solid #EEF1F5; }
.hg-leg { display:flex; gap:16px; font-size:12.5px; color:#475569; }
.hg-emps { display:flex; flex-direction:column; }
.hg-er { display:grid; grid-template-columns:minmax(180px,240px) 1fr 56px; gap:16px; align-items:center; padding:9px 4px; border-bottom:1px solid #F5F7FA; }
.hg-er:last-child { border-bottom:0; }
.hg-en { display:flex; flex-direction:column; } .hg-en b { font-size:13.5px; color:#0F1B2E; } .hg-en small { font-size:11.5px; color:#94A3B8; }
.hg-eb .hg-barra { height:22px; border-radius:7px; }
.hg-eb .hg-barra i { display:flex; align-items:center; justify-content:center; font-style:normal; font-size:11.5px; font-weight:700; color:#0F1B2E; min-width:3px; }
.hg-et { text-align:right; font-size:18px; font-weight:800; color:#0F1B2E; font-variant-numeric:tabular-nums; }

/* donut interativo da visão geral */
.hg-donut-row { display:grid; grid-template-columns:230px 1fr; gap:28px; align-items:center; margin-top:14px; }
.hg-donut { position:relative; width:230px; height:230px; }
.hg-donut svg { width:100%; height:100%; overflow:visible; }
.hg-fatia { cursor:pointer; transition:stroke-width .15s, opacity .15s; }
.hg-fatia:hover { stroke-width:32; }
.hg-fatia.hg-off { opacity:.3; }
.hg-dc { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; pointer-events:none; color:#fff; }
.hg-dc b { font-size:44px; font-weight:800; line-height:1; } .hg-dc span { font-size:12px; opacity:.8; margin-top:4px; max-width:130px; }
.hg-secs-v { display:flex; flex-direction:column; gap:8px; }
.hg-secv { display:grid; grid-template-columns:14px 1fr auto 46px; gap:10px; align-items:center; padding:12px 14px; border-radius:12px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12); color:#fff; text-decoration:none; transition:background .15s, opacity .15s; }
.hg-secv:hover { background:rgba(255,255,255,.16); }
.hg-secv.hg-off { opacity:.45; }
.hg-secv span { font-size:14px; font-weight:600; } .hg-secv b { font-size:24px; font-weight:800; } .hg-secv em { font-style:normal; font-size:12.5px; opacity:.75; text-align:right; }
.hg-dica { font-size:11.5px; opacity:.6; margin-top:2px; }
.hg-score .hg-on { background:#FFF7E6; }
.hg-score .hg-hsec.hg-on { background:transparent; color:#0F1B2E; }
@media (max-width:900px){ .hg-donut-row { grid-template-columns:1fr; justify-items:center; } }

.jd-acoes-topo { display:flex; align-items:center; gap:10px; flex-wrap:wrap; justify-content:flex-end; align-self:center; }
/* donut no quadro de indicadores (fundo claro) */
.hg-claro { grid-template-columns:170px 1fr; gap:22px; margin:6px 0 14px; }
.hg-claro .hg-donut { width:170px; height:170px; }
.hg-claro .hg-dc { color:#0F1B2E; } .hg-claro .hg-dc b { font-size:34px; } .hg-claro .hg-dc span { color:#64748B; opacity:1; font-size:11.5px; }
.hg-claro .hg-secv { background:#F8FAFC; border:1px solid #EEF1F5; color:#0F1B2E; padding:9px 12px; }
.hg-claro .hg-secv:hover { background:#F1F5F9; }
.hg-claro .hg-secv span { font-size:13px; } .hg-claro .hg-secv b { font-size:19px; } .hg-claro .hg-secv em { color:#64748B; opacity:1; }
.hg-claro .hg-fatia:hover { stroke-width:30; }
.exec-hero > .hero-big:has(.hg-secs) { display:flex; flex-direction:column; }
.exec-hero > .hero-big:has(.hg-secs) .hg-secs { margin-top:auto; padding-top:22px; }
/* gráficos interativos: etiqueta junto ao cursor e destaque do item */
.g-tip { position:fixed; z-index:9999; pointer-events:none; background:#0F1B2E; color:#fff; padding:9px 12px; border-radius:10px; font-size:12.5px; line-height:1.45; box-shadow:0 8px 24px rgba(15,27,46,.25); max-width:280px; }
.g-tip b { display:block; font-size:13px; margin-bottom:2px; }
.g-tip div { color:rgba(255,255,255,.85); }
svg [data-tip] { cursor:pointer; transition:opacity .12s; }
svg.g-foco [data-tip]:not(.g-on) { opacity:.4; }
svg [data-tip].g-on rect, svg rect[data-tip].g-on, svg [data-tip].g-on circle, svg circle[data-tip].g-on { filter:brightness(1.08) saturate(1.1); }
.hg-barra [data-tip] { cursor:pointer; transition:opacity .12s, filter .12s; }
.hg-barra:hover [data-tip]:not(.g-on) { opacity:.45; }

/* Visão geral v5: faixas — hero compacto, indicadores (donut + tabela), por empresa */
.hero-big.hg-banner { display:grid; grid-template-columns:minmax(280px,.9fr) 1.6fr; gap:28px; align-items:center; padding:26px 30px; }
.hg-banner .huge { font-size:68px; margin:6px 0 4px; }
.hg-banner .hg-secs { margin-top:0 !important; padding-top:0 !important; }
.hg-banner .hg-sec.hg-off { opacity:.45; }
.hg-ind { margin-top:16px; }
.hg-ind-in { display:grid; grid-template-columns:230px 1fr; gap:36px; align-items:center; margin-top:6px; }
.hg-ind .hg-donut { width:230px; height:230px; }
.hg-ind .hg-dc { color:#0F1B2E; } .hg-ind .hg-dc b { font-size:40px; } .hg-ind .hg-dc span { color:#64748B; opacity:1; }
.hg-ind .hg-score { margin-top:0; }
.hg-ind .hg-fatia:hover { stroke-width:30; }
@media (max-width:1000px){ .hero-big.hg-banner, .hg-ind-in { grid-template-columns:1fr; } }
/* Visão geral v6: indicadores em cartões e onde estão em colunas */
.hg-kc { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.hg-k { display:flex; flex-direction:column; gap:8px; padding:16px 18px; border:1px solid #EEF1F5; border-radius:14px; background:#FBFCFE; }
.hg-k-rot { font-size:12.5px; font-weight:700; color:#64748B; text-transform:uppercase; letter-spacing:.04em; }
.hg-k-n { font-size:30px; font-weight:800; color:#0F1B2E; line-height:1.05; font-variant-numeric:tabular-nums; }
.hg-k-bar { display:flex; gap:2px; height:10px; border-radius:6px; overflow:hidden; }
.hg-k-bar i { display:block; height:100%; min-width:3px; cursor:pointer; transition:opacity .12s; }
.hg-k-bar:hover i:not(.g-on) { opacity:.4; }
.hg-k-vals { display:flex; justify-content:space-between; gap:6px; font-size:13px; font-weight:700; color:#0F1B2E; font-variant-numeric:tabular-nums; }
.hg-k-vals span { display:flex; align-items:center; white-space:nowrap; } .hg-k-vals .hg-dot { width:7px; height:7px; margin-right:5px; }
.hg-ind .hg-on, .hg-onde .hg-oc.hg-on { background:#FFF7E6; border-radius:6px; }
.hg-ind .hg-k-bar i.hg-on { background-clip:padding-box; }
.hg-onde { margin-top:16px; }
.hg-onde-cols { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:6px; }
.hg-oc { padding:4px 6px 6px; transition:background .15s; }
.hg-oc-cab { display:flex; justify-content:space-between; align-items:center; padding:0 0 10px; margin-bottom:6px; border-bottom:3px solid var(--c); color:#0F1B2E; text-decoration:none; }
.hg-oc-cab span { font-size:14px; font-weight:700; } .hg-oc-cab b { font-size:22px; font-weight:800; }
.hg-oi { display:grid; grid-template-columns:1fr auto; gap:2px 10px; padding:7px 4px; border-bottom:1px solid #F5F7FA; cursor:default; }
.hg-oi span { font-size:13px; color:#334155; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .hg-oi b { font-size:13.5px; color:#0F1B2E; text-align:right; }
.hg-oi-trk { grid-column:1 / -1; height:5px; background:#F1F5F9; border-radius:4px; overflow:hidden; } .hg-oi-trk i { display:block; height:100%; border-radius:4px; }
.hg-oi:hover { background:#F8FAFC; }
@media (max-width:1000px){ .hg-onde-cols { grid-template-columns:1fr; } }
.hg-oi { text-decoration:none; color:inherit; cursor:pointer; } .hg-oi:hover span { color:#0F1B2E; text-decoration:underline; }
.hg-comum { font-style:normal; font-size:11px; font-weight:600; color:#7C3AED; background:#F3EEFF; border-radius:999px; padding:1px 7px; margin-left:8px; }
.op-comum { display:inline-block; margin-top:4px; font-size:11.5px; font-weight:600; color:#7C3AED; background:#F3EEFF; border-radius:999px; padding:2px 8px; }
/* Outros processos: colunas com largura proporcional ao conteúdo (sem vão entre vara e situação) */
.op-tab { table-layout:fixed; width:100%; }
.op-tab th, .op-tab td { padding-left:10px; padding-right:10px; }
.op-tab th:nth-child(1), .op-tab td:nth-child(1) { width:13%; }
.op-tab th:nth-child(2), .op-tab td:nth-child(2) { width:8%; white-space:nowrap; }
.op-tab th:nth-child(3), .op-tab td:nth-child(3) { width:6%; }
.op-tab th:nth-child(4), .op-tab td:nth-child(4) { width:20%; min-width:0; }
.op-tab th:nth-child(5), .op-tab td:nth-child(5) { width:15%; min-width:0; }
.op-tab th:nth-child(6), .op-tab td:nth-child(6) { width:12%; min-width:0; }
.op-tab th:nth-child(7), .op-tab td:nth-child(7) { width:9%; }
.op-tab th:nth-child(8), .op-tab td:nth-child(8) { width:9%; white-space:nowrap; }
.op-tab th:nth-child(9), .op-tab td:nth-child(9) { width:8%; max-width:none !important; }
.op-tab td { vertical-align:top; overflow-wrap:anywhere; }
.op-tab td:nth-child(1) a { white-space:nowrap; font-size:12.5px; }
.op-tab td:nth-child(4) b { font-weight:600; }
@media (max-width:1100px){ .op-tab { table-layout:auto; } }
/* Outros processos: não herda as larguras fixas e o "não quebrar" da tabela das execuções fiscais */
.ef-tab.op-tab { table-layout:fixed !important; width:100% !important; }
.ef-tab.op-tab th { white-space:normal !important; }
.ef-tab.op-tab th:nth-child(1) { width:13% !important; } .ef-tab.op-tab th:nth-child(2) { width:8% !important; } .ef-tab.op-tab th:nth-child(3) { width:7% !important; }
.ef-tab.op-tab th:nth-child(4) { width:19% !important; } .ef-tab.op-tab th:nth-child(5) { width:15% !important; } .ef-tab.op-tab th:nth-child(6) { width:12% !important; }
.ef-tab.op-tab th:nth-child(7) { width:9% !important; } .ef-tab.op-tab th:nth-child(8) { width:8% !important; } .ef-tab.op-tab th:nth-child(9) { width:9% !important; }
.ef-tab.op-tab td { overflow-wrap:anywhere !important; min-width:0 !important; max-width:none !important; }
.ef-tab.op-tab td:nth-child(1) a { white-space:normal !important; word-break:break-all; }
.ef-tab.op-tab td .pill { white-space:nowrap !important; }
.ef-tab.op-tab td, .ef-tab.op-tab td * { white-space:normal !important; }
.ef-tab.op-tab td { overflow:hidden; }
.ef-tab.op-tab td .pill { white-space:nowrap !important; display:inline-block; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.ef-tab.op-tab td.tr { white-space:nowrap !important; }
.hg-emprd { font-size:11px; color:#94A3B8; margin-left:8px; font-weight:500; }
/* status do TJSP discreto embaixo do subtítulo */
.jd-sync-linha { margin-top:8px; } .jd-sync-linha .tjsp-sync { font-size:11.5px; padding:3px 10px; }
/* acordos e recuperação de lotes */
.rv-kc { grid-template-columns:repeat(3,minmax(0,1fr)); }
.rv-sub { font-size:12px; color:#64748B; line-height:1.4; }
.rv-lista { margin-top:14px; }
.rv-l { display:grid; grid-template-columns:minmax(170px,1.4fr) repeat(4,minmax(0,1fr)); gap:12px; align-items:center; padding:10px 4px; border-bottom:1px solid #F1F5F9; }
.rv-l:last-child { border-bottom:0; }
.rv-lote { display:flex; flex-direction:column; } .rv-lote b { font-size:14px; color:#0F1B2E; } .rv-lote small { font-size:12px; color:#64748B; }
.rv-c { display:flex; flex-direction:column; gap:2px; } .rv-c > span:first-child { font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:#94A3B8; font-weight:700; }
.rv-c b { font-size:14px; color:#0F1B2E; font-variant-numeric:tabular-nums; } .rv-pos { color:#0F766E !important; } .rv-neg { color:#BE123C !important; }
.rv-c[data-tip] { cursor:pointer; }
@media (max-width:1000px){ .rv-kc { grid-template-columns:1fr 1fr; } .rv-l { grid-template-columns:1fr 1fr; } }
.ef-cda { display:flex; flex-wrap:wrap; gap:4px; align-items:center; font-size:11.5px; color:#64748B; cursor:help; }
.ef-cda span { font-weight:600; margin-right:2px; }
.ef-cda i { font-style:normal; font-size:11px; font-weight:600; color:#475569; background:#F1F5F9; border:1px dashed #CBD5E1; border-radius:6px; padding:1px 6px; }
.ef-area { display:inline-block; font-size:11.5px; font-weight:600; color:#475569; background:#F1F5F9; border-radius:6px; padding:2px 7px; }
.ef-motivo { max-width:180px; white-space:normal; cursor:help; }
/* tributo de cada execução */
.ef-trib { margin-top:3px; }
.ef-tb { display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.03em; border-radius:5px; padding:1px 6px; background:#EEF2FF; color:#3730A3; }
.ef-tb-iss { background:#FEF3C7; color:#92400E; }
.ef-tb-taxa, .ef-tb-itbi { background:#ECFDF5; color:#065F46; }
.ef-tb-imposto { background:#F1F5F9; color:#475569; }
.ef-tb-emb { background:#FCE7F3; color:#9D174D; }
.rv-emp { font-style:normal; font-size:10.5px; font-weight:700; color:#B45309; background:#FEF3C7; border-radius:5px; padding:1px 6px; margin-left:6px; vertical-align:middle; }
.rv-fonte { display:block; font-size:10.5px; color:#94A3B8; margin-top:2px; }
.rv-div { display:block; font-size:10.5px; color:#B45309; font-weight:600; margin-top:2px; }
/* inadimplência */
.in-emp { margin-top:14px; }
.in-er { display:grid; grid-template-columns:minmax(150px,200px) 1fr 120px minmax(150px,auto); gap:12px; align-items:center; padding:8px 4px; border-bottom:1px solid #F1F5F9; cursor:pointer; }
.in-er:hover { background:#F8FAFC; } .in-er:last-child { border-bottom:0; }
.in-en { font-size:13.5px; font-weight:600; color:#0F1B2E; } .in-er b { text-align:right; font-variant-numeric:tabular-nums; } .in-er em { font-style:normal; font-size:12px; color:#64748B; }
.in-tab td { vertical-align:top; } .in-contato { font-size:12.5px; white-space:nowrap; }

/* Obrigações: enviar documento (upload com a sugestão de onde incluir) */
.ev-sug { display:flex; flex-direction:column; gap:8px; padding:12px 14px; border-radius:12px; background:color-mix(in srgb,var(--mod) 7%,transparent); border:1px solid color-mix(in srgb,var(--mod) 22%,transparent); }
.ev-lendo { font-size:13px; color:var(--cinza2); }
.ev-ok { font-size:13px; color:var(--cinza2); overflow-wrap:anywhere; }
.ev-ok a { font-weight:700; color:var(--navy); }
.ev-res { font-size:12.5px; color:var(--cinza2); line-height:1.45; }
.ev-sug .campo { margin:0; }

/* Obrigações: busca em licenças, prazos, documentos e marcos */
.ob-q { margin:0 0 14px; }
.ob-q input { width:100%; box-sizing:border-box; padding:11px 14px; border:1px solid var(--line); border-radius:12px; font:inherit; font-size:14px; background:#fff; }
.ob-q input:focus { outline:2px solid color-mix(in srgb,var(--mod) 45%,transparent); border-color:var(--mod); }
.ob-q-res { padding:14px 16px; }
.ob-q-cab { display:flex; align-items:center; gap:8px; flex-wrap:wrap; font-size:13.5px; color:var(--cinza2); margin-bottom:10px; }
.ob-q-cab b { color:var(--navy); }
.ob-q-cab .btn-min { margin-left:auto; }
.ob-q-res mark { background:#FEF08A; color:inherit; padding:0 1px; border-radius:2px; }
.ob-q-onde { font-style:italic; }

/* Tendência dos gráficos mês a mês: linha tracejada (mínimos quadrados) + selo queda/estável/alta */
.tend-pill { display:inline-flex; align-items:center; gap:6px; margin:2px 0 6px; padding:4px 11px; border-radius:99px; font-size:12.5px; font-weight:700; color:var(--c); background:color-mix(in srgb,var(--c) 10%,#fff); border:1px solid color-mix(in srgb,var(--c) 28%,transparent); }
.combo-leg .tend-leg { width:18px; height:0 !important; border-top:2.5px dashed #64748B; background:none !important; border-radius:0 !important; align-self:center; }

/* Tendência por fases (acima do gráfico mês a mês) */
.tf-painel { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin:4px 0 8px; }
.tf-fase { display:inline-flex; align-items:center; gap:7px; padding:5px 11px 5px 6px; border-radius:10px; background:color-mix(in srgb,var(--c) 9%,#fff); border:1px solid color-mix(in srgb,var(--c) 26%,transparent); }
.tf-fase i { font-style:normal; display:grid; place-items:center; width:22px; height:22px; border-radius:7px; background:var(--c); color:#fff; font-weight:800; font-size:13px; }
.tf-fase b { font-size:12.5px; color:var(--c); } .tf-fase small { font-size:11.5px; color:#64748B; }
.tf-seta { color:#94A3B8; font-weight:800; }
.tf-proj { margin-left:auto; font-size:12px; color:#64748B; padding:5px 10px; border-radius:10px; background:#F1F5F9; }
.tf-proj b { color:#0F1B2E; }
/* Comparação entre empreendimentos */
.cmp-dest { font-size:13.5px; color:#334155; padding:10px 12px; border-radius:10px; background:#F0FDFA; border:1px solid #CCFBF1; margin-bottom:10px; }
.cmp-tab td { vertical-align:middle; } .cmp-tab th { white-space:nowrap; }
.cmp-dot { display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:7px; vertical-align:middle; }
.cmp-bar { height:8px; border-radius:99px; background:#EEF2F6; overflow:hidden; min-width:90px; } .cmp-bar i { display:block; height:100%; border-radius:99px; }
.cmp-bar.sm { height:6px; flex:1; min-width:60px; }
.cmp-v { display:flex; align-items:baseline; gap:6px; margin-top:4px; font-size:12px; } .cmp-v span { color:#94A3B8; }
.cmp-num b { display:block; font-size:13.5px; } .cmp-num span { display:block; font-size:11.5px; color:#94A3B8; }
.cmp-mov { display:flex; align-items:center; gap:7px; font-size:11.5px; color:#64748B; } .cmp-mov span { width:66px; } .cmp-mov b { width:22px; text-align:right; color:#0F1B2E; }
.cmp-sub { font-size:11px; color:#94A3B8; margin-top:2px; }
.cmp-bom { color:#0F766E !important; } .cmp-ruim { color:#B91C1C !important; }
.cmp-best { color:#E0A100; font-size:13px; }
.cmp-tab td:last-child { min-width:150px; } .cmp-tab td:last-child b, .cmp-tab td:last-child span { white-space:normal; }

/* Gráfico mês a mês: movimento (barras sobem, linhas se desenham, projeção corre, ponto de hoje pulsa) */
.cb-bar { transform-box: fill-box; transform-origin: 50% 100%; animation: cb-sobe .7s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i, 0) * 28ms); }
@keyframes cb-sobe { from { transform: scaleY(0); opacity: 0; } to { transform: scaleY(1); } }
.cb-linha { stroke-dasharray: 1; stroke-dashoffset: 1; animation: cb-desenha 1.4s ease-out .5s forwards; }
.tf-linha { stroke-dasharray: 1; stroke-dashoffset: 1; animation: cb-desenha 1.1s cubic-bezier(.3,.7,.2,1) forwards; animation-delay: calc(.6s + var(--d, 0s)); }
.tf-brilho { opacity: 0; animation: tf-brilha 3.2s ease-in-out infinite; animation-delay: calc(1.6s + var(--d, 0s)); }
@keyframes cb-desenha { to { stroke-dashoffset: 0; } }
@keyframes tf-brilha { 0%, 100% { opacity: .06; } 50% { opacity: .22; } }
.tf-selo { opacity: 0; transform-box: fill-box; transform-origin: 50% 100%; animation: tf-aparece .5s ease-out forwards; animation-delay: calc(1.2s + var(--d, 0s)); }
@keyframes tf-aparece { from { opacity: 0; transform: translateY(6px) scale(.92); } to { opacity: 1; transform: none; } }
.tf-fluxo { animation: tf-corre 1.1s linear infinite; }
@keyframes tf-corre { to { stroke-dashoffset: -12; } }
.tf-pulso { transform-box: fill-box; transform-origin: center; animation: tf-pulsa 2s ease-out infinite; }
@keyframes tf-pulsa { 0% { transform: scale(.7); opacity: .9; } 100% { transform: scale(2.6); opacity: 0; } }
.mm-chart svg rect.cb-bar:hover { opacity: 1; filter: brightness(1.05); }
@media (prefers-reduced-motion: reduce) { .cb-bar, .cb-linha, .tf-linha, .tf-brilho, .tf-selo, .tf-fluxo, .tf-pulso { animation: none !important; stroke-dashoffset: 0; opacity: 1; } .tf-pulso { display: none; } }

/* Ranking dos empreendimentos (comparação simplificada) */
.cr-cab, .cr-row { display:grid; grid-template-columns:44px minmax(170px,1.2fr) minmax(220px,1.6fr) minmax(170px,1fr) minmax(110px,.7fr) minmax(110px,.7fr); gap:14px; align-items:center; }
.cr-cab { padding:4px 10px 8px; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; border-bottom:1px solid var(--line); }
.cr-row { padding:13px 10px; border-bottom:1px solid var(--line); }
.cr-row:last-child { border-bottom:0; }
.cr-pos { display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:#F1F5F9; color:#475569; font-weight:800; font-size:13px; }
.cr-pos.ouro { background:#FEF3C7; color:#B45309; box-shadow:0 0 0 2px #FDE68A inset; }
.cr-nome b { display:flex; align-items:center; font-size:14.5px; color:#0F1B2E; } .cr-nome small { display:block; font-size:12px; color:#64748B; margin:3px 0 0 16px; }
.cr-bar { height:12px; border-radius:99px; background:#EEF2F6; overflow:hidden; } .cr-bar i { display:block; height:100%; border-radius:99px; background:linear-gradient(90deg,#14B8A6,#0F766E); }
.cr-res > span { display:block; font-size:12px; color:#64748B; margin-top:5px; } .cr-res b { color:#0F1B2E; font-size:13.5px; }
.cr-vazio { font-size:12px; color:#94A3B8; font-style:italic; }
.cr-k b { font-size:13.5px; color:#0F1B2E; } .cr-k em { font-style:normal; font-weight:600; color:#64748B; font-size:12px; } .cr-k small { display:block; font-size:11.5px; color:#94A3B8; }
.cr-t { font-weight:800; font-size:13.5px; color:var(--c); } .cr-t small { display:block; font-weight:600; font-size:11.5px; color:#94A3B8; }
@media (max-width:900px) { .cr-cab { display:none; } .cr-row { grid-template-columns:40px 1fr; } .cr-row > :nth-child(n+3) { grid-column:2; } }

/* Aba Acordos: efetividade (números grandes) + judicial × inadimplência */
.ef-hero { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-bottom:14px; }
.ef-big { background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 20px; position:relative; overflow:hidden; }
.ef-big::before { content:""; position:absolute; inset:0 auto 0 0; width:5px; background:var(--c); }
.ef-big b { display:block; font-size:30px; font-weight:800; letter-spacing:-.02em; color:var(--c); line-height:1.1; } .ef-big b small { font-size:16px; color:#94A3B8; font-weight:700; }
.ef-big span { display:block; font-size:13.5px; font-weight:700; color:#0F1B2E; margin-top:4px; } .ef-big small { display:block; font-size:12px; color:#64748B; margin-top:6px; line-height:1.4; }
.ef-cols { display:grid; grid-template-columns:1fr 1fr; gap:14px; } @media (max-width:860px) { .ef-cols { grid-template-columns:1fr; } }
.ef-col { background:#fff; border:1px solid var(--line); border-radius:16px; padding:14px 18px; }
.ef-col.jud { border-top:4px solid #7C3AED; } .ef-col.ina { border-top:4px solid #0EA5E9; }
.ef-col-cab b { font-size:15px; color:#0F1B2E; } .ef-col-cab small { display:block; font-size:12px; color:#94A3B8; margin:2px 0 8px; }
.ef-li { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid var(--line); font-size:13px; color:#475569; } .ef-li b { color:#0F1B2E; white-space:nowrap; }
.ef-pos { color:#0F766E; }
.ef-nota { font-size:12px; color:#94A3B8; margin:10px 2px 0; }
.ac-det { margin-top:18px; } .ac-det > summary { cursor:pointer; font-size:13.5px; font-weight:700; color:#475569; padding:12px 16px; background:#F8FAFC; border:1px solid var(--line); border-radius:12px; }
.ac-det[open] > summary { margin-bottom:12px; }

/* Visão Geral: principais (andamento + acordo) junto da rosca; demais numa faixa secundária */
.hg-princ-eq { font-size:12px; font-weight:700; color:#64748B; margin:0 0 10px; }
.hg-kc-princ .hg-k { padding:18px 20px; } .hg-kc-princ .hg-k-n { font-size:34px; }
.hg-sec2 { margin-top:18px; padding-top:14px; border-top:1px dashed var(--line); }
.hg-sec2-rot { font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; margin-bottom:8px; }
.hg-kc-sec2 { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.hg-kc-sec2 .hg-k { padding:10px 14px; background:#FAFBFC; } .hg-kc-sec2 .hg-k-n { font-size:20px; }

/* Busca diária de processos no TJSP */
.nv-card { margin-bottom:16px; } .nv-card.tem { border:1px solid #FCD34D; background:linear-gradient(180deg,#FFFBEB,#fff 60px); }
.nv-pe { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding-top:8px; }
.alerta-novos { background:#FFFBEB !important; color:#B45309 !important; border-color:#FCD34D !important; }
.nv-linha { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:8px; font-size:12px; color:#64748B; }
.nv-ok { background:#0F766E !important; border-color:#0F766E !important; color:#fff !important; }
.nv-hist .jud-tab { width:100%; } .nv-hist { max-height:65vh; overflow:auto; }
.nv-grupo { border-top:1px solid var(--line); } .nv-grupo > summary { cursor:pointer; padding:10px 4px; display:flex; align-items:center; gap:10px; font-size:13.5px; }
.nv-n { background:#F59E0B; color:#fff; font-weight:800; font-size:12px; padding:1px 8px; border-radius:99px; }

/* Novo acordo por inadimplência */
.ai-form .ai-lista { display:flex; flex-direction:column; gap:4px; max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:10px; padding:6px; }
.ai-it { display:grid; grid-template-columns:90px 1fr auto; gap:10px; align-items:center; text-align:left; border:0; background:#fff; padding:7px 10px; border-radius:8px; cursor:pointer; font:inherit; font-size:13px; }
.ai-it:hover { background:#EEF4FF; } .ai-it small { color:#94A3B8; font-size:11.5px; }
.ai-card { border:1px solid #BFDBFE; background:#F5F9FF; border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:8px; font-size:13.5px; }
.ai-kv { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:6px 14px; } .ai-kv span { font-size:13px; color:#0F1B2E; overflow-wrap:anywhere; } .ai-kv small { display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:#94A3B8; font-weight:700; }
.ai-repac { border:1px dashed #C4B5FD; background:#FAF5FF; border-radius:12px; padding:10px 14px; } .ai-repac[hidden] { display:none; }
.ai-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin-top:8px; }
.ai-sec-cab { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-bottom:10px; border-bottom:1px solid var(--line); margin-bottom:6px; }
.ai-sec-cab .t { font-size:17px; font-weight:800; color:var(--navy); display:block; }
.ad-envio { display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:10px 12px; background:#F5F9FF; border:1px dashed #93C5FD; border-radius:12px; margin-bottom:12px; }
.ad-envio select { padding:7px 10px; border:1px solid var(--line); border-radius:8px; font:inherit; } .ad-btn { cursor:pointer; }
.ad-lista { display:flex; flex-direction:column; gap:6px; } .ad-it { display:grid; grid-template-columns:auto 1fr auto auto; gap:10px; align-items:center; padding:8px 10px; border:1px solid var(--line); border-radius:10px; font-size:13px; }
.ad-it a { font-weight:700; color:var(--navy); overflow-wrap:anywhere; } .ad-it small { color:#94A3B8; }
.ct-acordo { padding:14px 16px; margin-bottom:12px; border-left:4px solid #7C3AED; } .ct-acordo-t { font-weight:800; color:var(--navy); margin-bottom:6px; }
.ct-acordo-it { padding:6px 0; border-top:1px solid var(--line); font-size:13px; } .ct-acordo-it:first-of-type { border-top:0; }
.ai-er { text-decoration:none; color:inherit; cursor:pointer; }
.ai-af { font-size:12.5px; font-weight:700; color:#B45309; background:#FFFBEB; border:1px solid #FDE68A; border-radius:8px; padding:6px 10px; }
.ai-af.af { color:#0F766E; background:#F0FDFA; border-color:#99F6E4; }
.ai-trat { border:1px solid #FCD34D; }
/* Acordos: gráficos da tela inicial */
.ai-graf { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:14px; margin-top:14px; } @media (max-width:1100px) { .ai-graf { grid-template-columns:1fr; } }
.ai-graf .hero-pie .donut-wrap svg { max-width:150px; }
.af-et { display:grid; grid-template-columns:150px 1fr 40px; gap:12px; align-items:center; padding:9px 0; border-top:1px solid var(--line); } .af-et:first-of-type { border-top:0; }
.af-rot b { display:block; font-size:13.5px; color:var(--navy); } .af-rot small { font-size:11.5px; color:#94A3B8; }
.af-trk { height:22px; background:#F1F5F9; border-radius:8px; overflow:hidden; } .af-trk i { display:flex; align-items:center; justify-content:flex-end; height:100%; border-radius:8px; color:#fff; font-size:12px; font-weight:800; font-style:normal; padding-right:8px; box-sizing:border-box; transition:width .6s; }
.af-n { text-align:right; font-size:15px; color:var(--navy); }
.ai-acts { display:flex; gap:6px; justify-content:flex-end; flex-wrap:nowrap; } .ai-acts .btn { white-space:nowrap; }
.ai-distr { border:1px dashed #FCA5A5; background:#FFF7F7; border-radius:12px; padding:10px 14px; } .ai-distr[hidden], .ai-dev[hidden] { display:none; }
.ai-dev { margin-top:8px; } .ai-dev-calc { margin:6px 0; color:#334155 !important; }
.ai-ant { font-size:11.5px; font-weight:700; color:#B45309; margin-top:2px; }
.tag-acordo { display:inline-flex; align-items:center; gap:6px; margin:8px 0 0; padding:5px 12px; border-radius:99px; background:#F5F3FF; color:#6D28D9; border:1px solid #DDD6FE; font-size:12.5px; font-weight:800; text-decoration:none; }
.tag-acordo:hover { background:#EDE9FE; }
.ct-ac-sub { font-size:10.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; margin:8px 0 3px; }
.ct-ac-doc { display:block; font-size:12.5px; font-weight:600; color:var(--navy); text-decoration:none; padding:2px 0; } .ct-ac-doc:hover { text-decoration:underline; }
.ct-ac-h { font-size:12px; color:#475569; padding:2px 0; } .ct-ac-h span { color:#94A3B8; margin-right:6px; } .ct-ac-h i { color:#94A3B8; font-style:normal; }
.ai-ata { margin-top:10px; padding:10px 12px; border-radius:10px; background:#fff; border:1px solid #FECACA; } .ai-ata[hidden] { display:none; }
.ai-ata-t { font-weight:800; font-size:13px; color:var(--navy); margin-bottom:6px; } .ai-ata-t .jsub { font-weight:600; }
.ai-ata-it { display:grid; grid-template-columns:1fr 160px 90px; gap:10px; align-items:center; padding:5px 0; border-top:1px solid var(--line); font-size:13px; } .ai-ata-it:first-of-type { border-top:0; }
.ai-ata-it input { padding:6px 8px; border:1px solid var(--line); border-radius:8px; font:inherit; } .ai-ata-ok { color:#0F766E; font-weight:700; }
/* Acordos: cartões por empreendimento e lista de tratativas enxuta */
.ai-emps { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; margin-top:14px; }
.ai-emp { display:flex; flex-direction:column; gap:10px; padding:16px 18px; background:#fff; border:1px solid var(--line); border-radius:16px; text-decoration:none; color:inherit; transition:box-shadow .15s, transform .15s; }
.ai-emp:hover { box-shadow:0 8px 24px -12px rgba(15,27,46,.25); transform:translateY(-1px); }
.ai-emp-cab { display:flex; justify-content:space-between; align-items:center; } .ai-emp-cab b { font-size:15px; color:var(--navy); } .ai-emp-cab span { font-size:12px; color:#2E63EB; font-weight:700; }
.ai-emp-ns { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; } .ai-emp-ns b { display:block; font-size:19px; font-weight:800; color:var(--navy); } .ai-emp-ns small { font-size:11px; color:#94A3B8; text-transform:uppercase; letter-spacing:.04em; font-weight:700; }
.ai-emp-ns div:first-child b { color:#D97706; } .ai-emp-ns div:nth-child(2) b { color:#B45309; }
.ai-emp-bar { height:7px; background:#F1F5F9; border-radius:99px; overflow:hidden; } .ai-emp-bar i { display:block; height:100%; background:linear-gradient(90deg,#14B8A6,#0F766E); border-radius:99px; }
.ai-emp-pct { font-size:11.5px; color:#64748B; }
.ai-tt td { vertical-align:middle; padding-top:10px; padding-bottom:10px; }
.ai-acts { display:flex; gap:6px; justify-content:flex-end; flex-wrap:nowrap; }
.ai-bt { display:inline-flex; align-items:center; height:30px; padding:0 12px; border-radius:8px; border:1px solid var(--line); background:#fff; color:#334155; font:inherit; font-size:12.5px; font-weight:700; cursor:pointer; text-decoration:none; white-space:nowrap; }
.ai-bt:hover { border-color:#93C5FD; color:#1D4ED8; background:#F5F9FF; } .ai-bt.pri { background:#2E63EB; border-color:#2E63EB; color:#fff; } .ai-bt.pri:hover { background:#1D4ED8; color:#fff; }
.ai-ct { font-size:12px; font-weight:700; color:#2E63EB; text-decoration:none; margin-left:6px; white-space:nowrap; } .ai-ct:hover { text-decoration:underline; }
.ai-met { padding:14px 16px 6px; } .ai-met-t { display:flex; align-items:baseline; gap:10px; margin-bottom:10px; } .ai-met-t b { font-size:16px; color:var(--navy); }
.ai-met-g { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:10px; }
.ai-met-k { border:1px solid var(--line); border-radius:12px; padding:10px 12px; background:#FAFBFC; } .ai-met-k.zero { opacity:.55; }
.ai-met-k span { display:block; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#94A3B8; } .ai-met-k b { display:block; font-size:19px; font-weight:800; color:var(--navy); margin-top:2px; } .ai-met-k small { font-size:11.5px; color:#64748B; }
.ai-tt b.ef-nome { display:inline; }
.ai-graf2 { grid-template-columns:1fr 1fr; }
.ai-form label.campo[hidden] { display:none; }
.neo-doc { display:flex; align-items:center; gap:8px; padding:6px 0; font-size:13px; border-top:1px solid var(--line); cursor:pointer; }

/* repactuação de AF: conferência do contrato (tipo de AF) e do Termo de Custas no acompanhamento */
.ai-cks { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 5px; align-items: center; }
.ai-ck { font-size: 11px; padding: 2px 7px; border-radius: 999px; background: #F1F5F9; color: #475569; white-space: nowrap; }
.ai-ck.ok { background: #ECFDF5; color: #047857; }
.ai-ck.pend { background: #FEF3C7; color: #92400E; font-weight: 600; }
.ai-ck-ir { font-size: 11px; font-weight: 600; }
.ai-met-k.alerta b { color: #B45309; }
.ai-pend-box { background: #FFFBEB; border: 1px solid #FCD34D; border-radius: 10px; padding: 10px 12px; font-size: 13px; color: #78350F; }
.ai-pend-box ul { margin: 6px 0 6px 18px; padding: 0; }

/* Obrigações: contratação de prestador sinalizada na pendência */
.ob-contr { display:inline-flex; align-items:center; gap:4px; margin:5px 4px 0 0; padding:2px 8px; border-radius:999px; border:1px solid #FCD34D; background:#FFFBEB; color:#92400E; font-size:11.5px; font-weight:600; cursor:pointer; white-space:nowrap; max-width:100%; overflow:hidden; text-overflow:ellipsis; }
.ob-contr.info { border-color:#BFDBFE; background:#EFF6FF; color:#1D4ED8; }
.ob-contr.ok { border-color:#99F6E4; background:#F0FDFA; color:#0F766E; }
.ob-contr.neutral { border-color:#E2E8F0; background:#F8FAFC; color:#64748B; }
.ob-contr:hover { filter:brightness(.97); text-decoration:underline; }

/* barra lateral aberta: largura conforme a tela; nome longo quebra em duas linhas em vez de ser cortado */
.sidebar:hover { width:clamp(250px, 21vw, 330px); }
.sidebar:hover .nav a span { max-width:none; flex:1; min-width:0; white-space:normal; line-height:1.2; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.sidebar:hover .nav-mod span, .sidebar:hover .nav-sep span { white-space:normal; }
.sidebar:hover .nav a { overflow:hidden; }

/* IPTU */
.ip-clic { cursor:pointer; }
.ip-t tr.ip-clic.on > td { background:#F0F9FF; }
.ip-det > td { background:#F8FAFC; padding:6px 10px 12px !important; }
.ip-bar { height:6px; background:#E2E8F0; border-radius:99px; overflow:hidden; margin-bottom:4px; min-width:120px; }
.ip-bar i { display:block; height:100%; background:linear-gradient(90deg,#0E7490,#22B8CF); border-radius:99px; }
.ip-ex { display:grid; grid-template-columns:52px 1fr 130px; align-items:center; gap:10px; margin:6px 0; font-size:13px; }
.ip-ex > span { font-weight:700; color:#334155; }
.ip-ex > b { text-align:right; font-size:13px; }
.ip-exbar { display:flex; height:14px; border-radius:6px; overflow:hidden; gap:2px; background:#F1F5F9; }
.ip-exbar i.l, .ip-leg i.l { background:#E11D48; } .ip-exbar i.c, .ip-leg i.c { background:#2E63EB; } .ip-exbar i.a, .ip-leg i.a { background:#F59E0B; }
.ip-leg { display:flex; gap:16px; font-size:12px; color:#64748B; margin-top:8px; }
.ip-leg i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:5px; vertical-align:-1px; }
.ip-filtros { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.ip-filtros input { flex:1 1 260px; } .ip-filtros input, .ip-filtros select { padding:8px 10px; border:1px solid #CBD5E1; border-radius:10px; font:inherit; font-size:13px; }
.ip-selbar { display:flex; align-items:center; gap:10px; background:#ECFEFF; border:1px solid #A5F3FC; border-radius:10px; padding:8px 12px; margin-bottom:10px; font-size:13px; }

.ip-aviso { background:#FFFBEB; border:1px solid #FCD34D; color:#78350F; border-radius:12px; padding:10px 14px; margin-bottom:12px; font-size:13px; line-height:1.45; }

.ip-req tr.ip-clic:hover > td { background:#F0F9FF; }
.ip-anos { margin:2px 0 4px; } .ip-anos th, .ip-anos td { font-size:12px; padding:5px 8px !important; }
.ip-anos tr.ip-est td { background:#FFFBEB; }
.ip-anos-ed input { width:100%; min-width:84px; padding:5px 6px; border:1px solid #CBD5E1; border-radius:8px; font:inherit; font-size:12px; }
.ip-anos-ed input[type=checkbox] { width:auto; min-width:0; }
.ip-anos-ed td { padding:4px !important; }

.ip-chips { margin:4px 0 10px; flex-wrap:wrap; }
.ip-selbar[hidden] { display:none; }

/* IPTU · requerimentos em cartões */
.ip-rqs { display:flex; flex-direction:column; gap:12px; }
.ip-rq { border:1px solid #E2E8F0; border-radius:14px; padding:14px 16px; background:#fff; }
.ip-rq.ind { background:#FAFAFA; }
.ip-rq-cab { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; flex-wrap:wrap; }
.ip-rq-emp { font-size:16px; }
.ip-rq-nums { display:flex; align-items:stretch; gap:10px; flex-wrap:wrap; margin-top:12px; }
.ip-n { background:#F8FAFC; border-radius:12px; padding:10px 14px; min-width:170px; }
.ip-n small { display:block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:#64748B; }
.ip-n b { display:block; font-size:20px; margin-top:2px; color:#0F1B2E; }
.ip-n em { font-style:normal; font-size:11.5px; color:#64748B; }
.ip-n.eco { background:#ECFDF5; } .ip-n.eco b { color:#0F766E; }
.ip-n.dis { background:#F5F3FF; } .ip-n.dis b { color:#6D28D9; }
.ip-n.rest { background:#EFF6FF; } .ip-n.rest b { color:#1D4ED8; }
.ip-n.proj { background:#ECFEFF; border:1px dashed #67E8F9; } .ip-n.proj b { color:#0E7490; }
.ip-n.riscado b { color:#94A3B8; text-decoration:line-through; }
.ip-op { align-self:center; font-size:20px; color:#94A3B8; font-weight:700; }
.ip-rq-alerta { margin-top:10px; font-size:13px; color:#B45309; font-weight:600; }
.ip-rq-obs { margin-top:6px; line-height:1.45; }
.ip-rq-det { margin-top:10px; } .ip-rq-det summary { cursor:pointer; font-weight:700; color:#0E7490; font-size:13px; }
.ip-anos th.ip-gr { text-align:center; background:#F1F5F9; }

/* IPTU · impacto das revisões */
.ip-n.cont { background:#FFFBEB; border:1px dashed #FCD34D; } .ip-n.cont b { color:#B45309; }

/* IPTU · painel de impacto das revisões — cartões da plataforma, paleta do módulo (--mod / --mod-2) */
.ih { margin:0 0 14px; padding:18px; display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:18px; align-items:stretch; }
.ih-esq { display:flex; flex-direction:column; gap:16px; min-width:0; }
.ih-eq { display:grid; grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr); align-items:stretch; }
.ih-op { display:flex; align-items:center; justify-content:center; font-size:20px; font-weight:300; color:var(--muted); }
.ih-kpi { position:relative; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:var(--card); min-width:0; display:flex; flex-direction:column; }
.ih-kpi small { display:flex; align-items:center; gap:7px; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ih-kpi b { display:block; margin-top:8px; font-size:28px; font-weight:800; letter-spacing:-.02em; line-height:1.1; color:var(--ink); white-space:nowrap; }
.ih-kpi em { display:block; margin-top:auto; padding-top:6px; font-style:normal; font-size:12px; color:var(--muted); }
.ih-kpi[class*="k-"] small::before { content:""; width:9px; height:9px; border-radius:3px; flex:none; }
.ih-kpi.k-ob { background:var(--mod-soft); border-color:transparent; } .ih-kpi.k-ob small::before { background:var(--mod); } .ih-kpi.k-ob b { color:var(--mod); }
.ih-kpi.k-rc small::before { background:var(--mod-2); }
.ih-kpi.k-dev small::before { background:#CBD5E1; }
.ih-rg { flex:1; display:grid; grid-template-columns:auto minmax(0,1fr); gap:18px; align-items:center; padding:14px 16px; border:1px solid var(--line); border-radius:12px; }
.ih-rg-pct { display:flex; align-items:center; gap:12px; }
.ih-rg-pct b { display:block; font-size:24px; font-weight:800; color:var(--mod); line-height:1; }
.ih-rg-pct span { display:block; max-width:150px; margin-top:3px; font-size:11.5px; color:var(--muted); line-height:1.3; }
.ih-anel { width:56px; height:56px; flex:none; }
.ih-anel circle { fill:none; stroke-width:8; } .ih-anel .f { stroke:var(--line); } .ih-anel .v { stroke:var(--mod); stroke-linecap:round; }
.ih-regua { display:flex; flex-direction:column; gap:8px; min-width:0; }
.ih-rg-trk { display:flex; gap:2px; height:26px; border-radius:8px; overflow:hidden; background:var(--line); }
.ih-rg-trk i { display:flex; align-items:center; justify-content:center; min-width:0; font-style:normal; }
.ih-rg-trk i span { font-size:12px; font-weight:700; color:#fff; white-space:nowrap; overflow:hidden; }
.ih-rg-trk i.dev { background:#CBD5E1; } .ih-rg-trk i.dev span { color:#334155; }
.ih-rg-trk i.ob { background:var(--mod); } .ih-rg-trk i.rc { background:var(--mod-2); }
.ih-leg { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; font-size:12px; color:var(--muted); }
.ih-leg i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; vertical-align:-1px; }
.ih-leg i.dev, .ih-leg i.orig { background:#CBD5E1; } .ih-leg i.ob { background:var(--mod); } .ih-leg i.rc { background:var(--mod-2); }
.ih-leg i.pj { background:repeating-linear-gradient(135deg,var(--mod) 0 2px,transparent 2px 4px); outline:1px solid var(--mod); outline-offset:-1px; }
.ih-dir { display:flex; flex-direction:column; padding:20px 22px; border-radius:14px; color:#fff; background:linear-gradient(150deg,var(--mod),var(--mod-2)); box-shadow:0 14px 30px -18px var(--mod); }
.ih-dir small { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:rgba(255,255,255,.85); }
.ih-dir-v { display:block; margin-top:8px; font-size:44px; font-weight:800; letter-spacing:-.03em; line-height:1; }
.ih-tls { margin-top:auto; padding-top:18px; display:flex; flex-direction:column; }
.ih-tl { display:grid; grid-template-columns:12px 1fr auto; gap:10px; align-items:center; padding:9px 0; border-top:1px solid rgba(255,255,255,.22); font-size:13px; }
.ih-tl i { width:10px; height:10px; border-radius:3px; background:#fff; }
.ih-tl i.rc { background:rgba(255,255,255,.6); }
.ih-tl i.pj { background:repeating-linear-gradient(135deg,#fff 0 2px,transparent 2px 4px); outline:1px solid #fff; outline-offset:-1px; }
.ih-tl span { color:rgba(255,255,255,.9); } .ih-tl b { font-size:15px; font-weight:800; }
@media (max-width:1250px) { .ih { grid-template-columns:1fr; } }
@media (max-width:900px) { .ih-eq { grid-template-columns:1fr; gap:8px; } .ih-op { display:none; } .ih-rg { grid-template-columns:1fr; } }
.ih-baixo { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:0 0 14px; align-items:stretch; }
.ih-sec { margin:0; gap:14px; }
.ih-cols { flex:1; display:flex; gap:10px; align-items:flex-end; min-height:200px; }
.ih-col { flex:1; display:flex; flex-direction:column; align-items:center; gap:4px; align-self:stretch; min-width:0; }
.ih-barras { flex:1; width:100%; display:flex; gap:3px; align-items:flex-end; justify-content:center; }
.ih-barras i { width:40%; max-width:22px; border-radius:5px 5px 0 0; transition:height .6s ease; }
.ih-barras i.s { background:#CBD5E1; } .ih-barras i.c { background:var(--mod); }
.ih-col.est .ih-barras i { background:transparent !important; border:1.5px dashed; border-bottom:0; }
.ih-col.est .ih-barras i.s { border-color:#94A3B8; } .ih-col.est .ih-barras i.c { border-color:var(--mod); }
.ih-col b { font-size:11.5px; font-weight:700; color:var(--mod); white-space:nowrap; }
.ih-col span { font-size:12px; font-weight:700; color:var(--ink); }
.ih-col.est span, .ih-col.est b { opacity:.7; }
.ih-emps { flex:1; display:flex; flex-direction:column; }
.ih-emp2 { padding:10px 0; border-bottom:1px solid var(--line); }
.ih-emp2:first-child { padding-top:0; } .ih-emp2:last-child { border-bottom:0; }
.ih-e2-cab { display:flex; align-items:center; gap:8px; }
.ih-e2-nome { font-weight:700; font-size:13.5px; color:var(--ink); }
.ih-e2-sit { font-size:11px; font-weight:600; padding:2px 8px; border-radius:999px; background:var(--mod-soft); color:var(--mod); }
.ih-e2-sit.par { background:#FEF3C7; color:#B45309; }
.ih-e2-tot { margin-left:auto; font-size:15px; font-weight:800; color:var(--ink); }
.ih-e2-trk { display:flex; gap:2px; height:10px; margin-top:8px; border-radius:6px; overflow:hidden; background:var(--line); }
.ih-e2-trk i { display:block; height:100%; }
.ih-e2-trk i.ob { background:var(--mod); } .ih-e2-trk i.rc { background:var(--mod-2); }
.ih-e2-trk i.pj { background:repeating-linear-gradient(135deg,var(--mod) 0 3px,var(--mod-soft) 3px 6px); }
.ih-e2-det { display:flex; flex-wrap:wrap; gap:4px 14px; margin-top:6px; font-size:12px; color:var(--muted); }
.ih-e2-det b { color:var(--ink); font-weight:700; }
@media (max-width:1100px) { .ih-baixo { grid-template-columns:1fr; } }

/* IPTU · identificação do empreendimento (logo + nome) */
.ip-rq-id { display:flex; align-items:center; gap:14px; min-width:0; }
.ip-rq-tit { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.ip-rq-emp { font-size:19px; font-weight:800; letter-spacing:-.01em; color:var(--ink); }
.ip-logo { width:88px; height:52px; padding:5px 8px; border-radius:10px; }
.ip-logo img { max-height:40px; max-width:72px; }
.ip-logo-ini { display:inline-flex; align-items:center; justify-content:center; flex:none; background:var(--mod-soft); color:var(--mod); font-weight:800; font-size:15px; letter-spacing:.04em; border:1px solid var(--line); }
.ip-logo.mini { width:40px; height:26px; padding:2px 4px; border-radius:6px; }
.ip-logo.mini img { max-height:20px; max-width:32px; }
.ip-logo-ini.mini { font-size:10px; }

.ih-sub { font-size:12px; font-weight:700; color:var(--muted); letter-spacing:.02em; margin-bottom:-6px; }
.ih-eq { grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr); }
.ih-mais { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.ih-mais .ih-kpi { background:var(--card); border:1px dashed var(--line); }
.ih-mais .ih-kpi b { font-size:22px; }
@media (max-width:900px) { .ih-mais { grid-template-columns:1fr; } }

/* ===== Padrão visual da plataforma: cartões de indicador na cor do módulo =====
   número em tinta, faixa lateral na cor do módulo; só o cartão principal preenchido (gradiente do módulo);
   âmbar só em cartão de alerta (.bigstat-alerta) */
.bigstat:not(.bigstat-alerta) { --acc:var(--mod) !important; }
.bigstat .bn { color:var(--ink); }
.bigstat.bigstat-alerta .bn { color:#B45309; }
.bigstat-total, .bigstat-total.bt-jud { background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 55%,#06101F) 0%,var(--mod) 70%,var(--mod-2) 140%); }
.bigstat-total::before, .bigstat-total.bt-jud::before { background:var(--mod-2); }
.bigstat-total .bn { color:#fff; }
/* IPTU · barras por exercício na paleta do módulo */
.ip-exbar i.l, .ip-leg i.l { background:var(--mod); } .ip-exbar i.c, .ip-leg i.c { background:var(--mod-2); } .ip-exbar i.a, .ip-leg i.a { background:#CBD5E1; }
/* bloco principal (herói) na cor do módulo, como o cartão total */
.hero-big { background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 45%,#06101F) 0%,color-mix(in srgb,var(--mod) 80%,#06101F) 60%,var(--mod) 130%); }

/* IPTU · relatório */
.ip-rel-bt { margin-left:auto; }
.ip-rel-res { padding:10px 12px; border-radius:10px; background:var(--mod-soft); }
.ip-rel-tt { display:block; font-size:12px; font-weight:700; color:var(--muted); margin-bottom:6px; }
.ip-rel-cols { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px 16px; font-size:13px; }
.ip-rel-cols label, .ip-rel-chk { display:flex; align-items:center; gap:8px; font-size:13px; }
/* IPTU · gráficos da visão geral: três cartões iguais, roscas do mesmo tamanho, percentual na legenda */
.ai-graf { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.ai-graf .hero-pie.pie-lado .pie-in { flex-direction:row; align-items:center; gap:20px; }
.ai-graf .hero-pie.pie-lado .pie-in .donut-wrap { width:190px; max-width:190px; flex:none; padding:0; }
.ai-graf .hero-pie .donut-wrap svg { max-width:190px; }
.ai-graf .donut-selo { display:none; }
.ai-graf .vg-lg { gap:8px; }
.ai-graf .lg-row { display:grid; grid-template-columns:10px minmax(0,1fr) auto 44px; gap:8px; align-items:center; }
.ai-graf .lg-n { white-space:nowrap; }
.ai-graf .lg-pct { font-size:13px; font-weight:800; color:var(--ink); text-align:right; }
@media (max-width:1400px) { .ai-graf .hero-pie.pie-lado .pie-in { flex-direction:column; } .ai-graf .vg-lg { width:100%; } }
@media (max-width:1100px) { .ai-graf { grid-template-columns:1fr; } }
.ai-graf .hero-pie.pie-lado .lg-pct { display:block; }
.ai-graf .vg-lg { flex:1; min-width:0; }
.ai-graf .hero-pie.pie-lado .lg-row { grid-template-columns:10px minmax(0,1fr) auto 40px; }
.ai-graf .hero-pie.pie-lado .lg-pct { font-size:13px; font-weight:800; color:var(--ink); }
/* IPTU · célula do comprador: nome + status na 1ª linha; situação do contrato e o link na 2ª, alinhados */
.ip-t td b + .pill, .ip-t td .ob-faint + .pill { margin-left:6px; vertical-align:1px; }
.ip-cmp-l2 { display:flex; align-items:center; flex-wrap:wrap; gap:4px 10px; margin-top:3px; }
.ip-cmp-l2 .ob-subl { margin:0; }
.ip-vc { font-size:12px; font-weight:700; color:var(--mod); text-decoration:none; white-space:nowrap; }
.ip-vc:hover { text-decoration:underline; }
/* cartão expandido: cabe a lista inteira por empreendimento */
.bigstat.has-exp:hover .bigstat-exp { max-height:520px; }
/* Termos de Custas por empreendimento: colunas fixas, logo do mesmo tamanho e etiquetas alinhadas entre as linhas */
.tq-linha { grid-template-columns:280px minmax(0,1.4fr) minmax(260px,1fr); gap:24px; }
.tq-nome .logo-eyebrow { width:78px; height:36px; padding:3px 6px; justify-content:center; flex:none; }
.tq-nome .logo-eyebrow img { max-width:66px; max-height:28px; }
.tq-nome b { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tq-chips { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }
.tq-chip { justify-content:center; white-space:nowrap; }
.tq-valor span { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:1300px) { .tq-linha { grid-template-columns:1fr; gap:10px; } .tq-chips { grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); } }

/* lista de barras (substitui donuts com poucas categorias) */
.jb-lista { display:flex; flex-direction:column; gap:10px; margin-top:12px; }
.jb-l { display:grid; grid-template-columns:minmax(120px,190px) minmax(0,1fr) 40px 40px; gap:10px; align-items:center; font-size:13px; }
.jb-rot { color:var(--ink); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jb-trk { height:12px; border-radius:6px; background:var(--line); overflow:hidden; } .jb-trk i { display:block; height:100%; border-radius:6px; }
.jb-n { text-align:right; font-weight:800; color:var(--ink); } .jb-pct { text-align:right; font-weight:700; color:var(--muted); font-size:12px; }
.jb-duas { display:grid; grid-template-columns:1fr 1fr; gap:28px; } .jb-sub { font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); margin-top:12px; }
.ai-graf.ai-graf3 { grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; }
.ai-graf.ai-graf1 { grid-template-columns:1fr; }
.ai-emps + .ai-graf { margin-top:14px; }
@media (max-width:1100px) { .ai-graf.ai-graf3, .jb-duas { grid-template-columns:1fr; } }
/* IPTU · Por exercício: ocupa a altura do cartão (barras maiores, detalhe por responsável) */
.ip-excard { display:flex; flex-direction:column; }
.ip-excard .ip-ex { grid-template-columns:52px 1fr 110px; row-gap:4px; margin:0; padding:10px 0; border-top:1px solid var(--line); }
.ip-excard .ip-ex:first-of-type { border-top:0; }
.ip-excard .ip-exbar { height:20px; }
.ip-ex-det { grid-column:2 / 4; font-size:11.5px; color:var(--muted); } .ip-ex-det b { color:var(--ink); font-weight:700; }
.ip-excard > .ip-ex:first-of-type { margin-top:8px; }
/* cartões lado a lado com conteúdo menor: o conteúdo se distribui na altura do cartão (sem sobra embaixo) */
.g2f > .vg-card, .g2b > .vg-card, .jb-card { display:flex; flex-direction:column; }
.jb-card .jb-trk { height:14px; }

.vg-tiles.vg-grade { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:10px; }
/* Por exercício: barras centralizadas entre o título e a legenda (sem colar no título) */
.ip-excard .tt { margin-bottom:14px; }

/* ===== Padrão dos cartões lado a lado: o conteúdo fica centralizado na altura do cartão, abaixo do título =====
   (mesmo comportamento das roscas): sem conteúdo colado no título e sem sobra só embaixo */
:is(.ai-graf, .g2, .g2b, .g2f, .vg-hero, .og-grid, .jud-graf) > .card { display:flex; flex-direction:column; }
:is(.ai-graf, .g2, .g2b, .g2f, .vg-hero, .og-grid, .jud-graf) > .card > .tt { margin-bottom:14px; }
:is(.ai-graf, .g2, .g2b, .g2f, .vg-hero, .og-grid, .jud-graf) > .card > .tt + * { margin-top:auto; }
:is(.ai-graf, .g2, .g2b, .g2f, .vg-hero, .og-grid, .jud-graf) > .card > :last-child:not(.tt) { margin-bottom:auto; }
.ip-excard .tt + .ip-ex { border-top:0; }
.ip-excard .ip-leg { padding-top:12px; }
.eq-preenche { display:flex; flex-direction:column; gap:10px; }
/* tabelas de dados (lotes, débitos, processos…): o texto quebra linha dentro da célula, sem estourar o quadro;
   valores, códigos e etiquetas continuam numa linha só */
.jud-tab tbody td { white-space:normal; }
.jud-tab tbody td.tr, .jud-tab tbody td.mono, .jud-tab tbody td.ob-mono { white-space:nowrap; }
.jud-tab .pill, .jud-tab .ob-pill { white-space:nowrap; }
.jud-tab td .pill + .pill { margin-left:4px; }
.ip-t td:last-child { min-width:120px; }
.ip-lote { white-space:nowrap; }
/* IPTU · cabeçalho do empreendimento com a logo */
.ip-hd-id { display:flex; align-items:center; gap:20px; min-width:0; }
.ip-logo.hd { width:150px; height:86px; padding:8px 12px; border-radius:14px; }
.ip-logo.hd img { max-width:126px; max-height:70px; }
.ip-logo-ini.hd { font-size:26px; }

/* logo do empreendimento ao lado do nome (listas, tabelas e cartões) */
.emp-id-l { display:inline-flex; align-items:center; gap:10px; min-width:0; }
.emp-id-l .logo-eyebrow { height:26px; padding:2px 6px; } .emp-id-l .logo-eyebrow img { height:20px; max-height:20px; max-width:70px; }
.hg-oi .logo-eyebrow { height:20px; padding:1px 4px; margin-right:6px; vertical-align:middle; border-radius:5px; } .hg-oi .logo-eyebrow img { height:16px; max-height:16px; max-width:48px; }
.ai-emp-cab .emp-id-l b { font-size:inherit; }

/* Societário · rosca e legenda clicáveis */
.og-leg-link { text-decoration:none; color:inherit; border-radius:8px; cursor:pointer; }
.og-leg-link:hover { background:var(--mod-soft); }
.og-rosca circle[data-seg] { cursor:pointer; }

/* ===== Obrigações · página do empreendimento (painel) ===== */
.ob-fase { display:inline-flex; align-items:center; padding:3px 10px; border-radius:999px; background:var(--mod); color:#fff; font-size:12px; font-weight:700; }
.ob-dcs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin:6px 0 14px; }
.ob-dc { display:flex; flex-direction:column; gap:4px; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--card); border-top:3px solid var(--line); min-width:0; }
.ob-dc span { font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.ob-dc b { font-size:20px; font-weight:800; color:var(--ink); letter-spacing:-.01em; }
.ob-dc small { font-size:11.5px; color:var(--muted); line-height:1.35; }
.ob-dc.ok { border-top-color:var(--mod); } .ob-dc.crit { border-top-color:#E11D48; } .ob-dc.crit b { color:#B91C1C; }
.ob-dc.dest { background:var(--mod-soft); border-color:transparent; border-top-color:var(--mod); } .ob-dc.dest b { color:var(--mod); }
.ob-ars { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin-bottom:14px; }
.ob-ar { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; padding:10px 14px; border-radius:10px; background:#F7F9FC; border:1px solid var(--line); }
.ob-ar span { font-size:12px; font-weight:700; color:var(--muted); width:100%; } .ob-ar b { font-size:22px; font-weight:800; color:var(--ink); } .ob-ar small { font-size:12px; color:var(--muted); } .ob-ar em { font-style:normal; color:#B91C1C; font-weight:700; }
.ob-pgrid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.ob-pcard { border:1px solid var(--line); border-radius:12px; padding:12px 16px; display:flex; flex-direction:column; gap:2px; }
.ob-pcard .ob-sh { margin-bottom:6px; }
.ob-pl { display:grid; grid-template-columns:86px minmax(0,1fr) auto; gap:12px; align-items:center; padding:8px 0; border-top:1px solid var(--line); }
.ob-pl:first-of-type { border-top:0; }
.ob-pl-d { font-size:12.5px; font-weight:700; color:var(--ink); font-variant-numeric:tabular-nums; }
.ob-pl-t { min-width:0; } .ob-pl-t b { display:block; font-size:13px; font-weight:600; color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; } .ob-pl-t small { font-size:11.5px; color:var(--muted); }
.ob-ficha { margin-top:14px; border:1px solid var(--line); border-radius:12px; padding:10px 16px; }
.ob-ficha summary { cursor:pointer; font-size:13px; font-weight:700; color:var(--muted); }
.ob-ficha[open] summary { margin-bottom:10px; }
/* licenças: menu ⋯ e barra de validade */
.ob-rowacts { display:flex; align-items:center; gap:6px; justify-content:flex-end; }
.ob-mais { position:relative; }
.ob-mais summary { list-style:none; cursor:pointer; width:30px; height:28px; display:grid; place-items:center; border:1px solid var(--line); border-radius:8px; font-weight:800; color:var(--muted); }
.ob-mais summary::-webkit-details-marker { display:none; }
.ob-mais-m { position:absolute; right:0; top:32px; z-index:20; min-width:180px; background:#fff; border:1px solid var(--line); border-radius:10px; box-shadow:0 12px 28px -12px rgba(15,27,46,.35); padding:6px; display:flex; flex-direction:column; }
.ob-mais-m button { text-align:left; background:none; border:0; padding:8px 10px; border-radius:6px; font-size:13px; cursor:pointer; color:var(--ink); }
.ob-mais-m button:hover { background:var(--mod-soft); } .ob-mais-m button.perigo { color:#B91C1C; }
.ob-vbar { height:5px; border-radius:3px; background:var(--line); margin-top:6px; overflow:hidden; width:90px; } .ob-vbar i { display:block; height:100%; background:var(--mod); }
.ob-vbar.warn i { background:#F59E0B; } .ob-vbar.crit i { background:#E11D48; }
@media (max-width:1300px) { .ob-dcs { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:900px) { .ob-dcs { grid-template-columns:repeat(2,minmax(0,1fr)); } .ob-pgrid { grid-template-columns:1fr; } }

/* Societário · providências */
.so-prov-t td { vertical-align:top; }
.so-ult { margin-top:4px; font-size:12px; color:var(--muted); }
.so-acts { display:flex; gap:6px; flex-wrap:wrap; justify-content:flex-end; }
.so-coms { display:flex; flex-direction:column; gap:10px; max-height:60vh; overflow:auto; }
.so-com-x { margin:0 0 6px; padding:10px 12px; background:#F7F9FC; border-radius:10px; font-size:13px; }
.so-com { border-left:3px solid var(--mod); padding:4px 0 4px 10px; } .so-com b { font-size:13px; } .so-com span { font-size:12px; color:var(--muted); margin-left:8px; } .so-com p { margin:4px 0 0; font-size:13px; }
/* Ciclo urbanístico: rótulo das trilhas legível e marcos principais em destaque */
.tv-qual { font-size:11.5px; font-weight:700; letter-spacing:0; text-transform:none; color:var(--ink); display:flex; flex-direction:column; align-items:flex-end; }
.tv-qual small { font-size:10.5px; font-weight:500; color:var(--muted); }
.tv-ap, .tv-rg { width:15px; height:15px; margin:-7.5px 0 0 -7.5px; box-shadow:0 0 0 3px #fff, 0 1px 4px rgba(15,27,46,.35); z-index:2; }
.tv-ap { background:#64748B; }
.tv-tvo { width:18px; height:18px; margin:-9px 0 0 -9px; box-shadow:0 0 0 3px #fff, 0 1px 5px rgba(15,27,46,.35); z-index:2; }
.tv-lane .tv-lc { width:15px; height:15px; margin:-7.5px 0 0 -7.5px; box-shadow:0 0 0 3px #fff, 0 1px 4px rgba(15,27,46,.35); z-index:2; }
.tv-lane .tv-fc { width:16px; height:16px; margin:-8px 0 0 -8px; box-shadow:0 0 0 3px #fff, 0 1px 4px rgba(15,27,46,.35); z-index:2; }
.tv-tx { font-size:11.5px; color:var(--muted); z-index:3; }
.tv-tx b { font-size:12px; font-weight:800; color:var(--ink); }
.tv-tx.de, .tv-tx.ate { font-weight:600; }

/* Obrigações · Painel: marcos em sequência */
.ob-sec-t { font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin:6px 0 10px; }
.ob-sec-t span { text-transform:none; letter-spacing:0; font-weight:500; margin-left:6px; }
.ob-mcs { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin-bottom:18px; position:relative; }
.ob-mc { position:relative; display:flex; flex-direction:column; gap:3px; padding:0 14px 0 0; }
.ob-mc::before { content:""; position:absolute; left:16px; right:0; top:15px; height:3px; background:var(--line); z-index:0; }
.ob-mc:last-child::before { display:none; }
.ob-mc.feito::before { background:var(--mod); }
.ob-mc i { position:relative; z-index:1; width:32px; height:32px; border-radius:50%; display:grid; place-items:center; font-style:normal; font-weight:800; font-size:14px; background:#fff; border:3px solid var(--line); color:var(--muted); margin-bottom:8px; }
.ob-mc.feito i { background:var(--mod); border-color:var(--mod); color:#fff; }
.ob-mc.prox i { border-color:var(--mod); color:var(--mod); box-shadow:0 0 0 5px var(--mod-soft); }
.ob-mc.alerta i { border-color:#E11D48; color:#E11D48; box-shadow:0 0 0 5px #FFE4E6; }
.ob-mc-r { font-size:12px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.ob-mc b { font-size:20px; font-weight:800; color:var(--ink); }
.ob-mc.prox b { color:var(--mod); } .ob-mc.alerta b { color:#B91C1C; } .ob-mc.fut b { color:#64748B; }
.ob-mc small { font-size:12px; font-weight:700; color:var(--mod); }
.ob-mc.fut small { color:var(--muted); } .ob-mc.alerta small { color:#B91C1C; }
.ob-mc em { font-style:normal; font-size:11.5px; color:var(--muted); line-height:1.35; padding-right:6px; }
.ob-ar { text-align:left; cursor:pointer; font:inherit; }
.ob-ar:hover { border-color:var(--mod); background:var(--mod-soft); }
.ob-ar-lic { cursor:default; } .ob-ar-lic:hover { border-color:var(--line); background:#F7F9FC; }
@media (max-width:1100px) { .ob-mcs { grid-template-columns:1fr; gap:14px; } .ob-mc::before { display:none; } }

/* ===== Obrigações no padrão da plataforma ===== */
/* indicadores: número em tinta e faixa na cor do módulo; vermelho só em "Vencidos" quando houver */
.og-k:not(.og-alerta) { --acc:var(--mod) !important; }
.og-k b { color:var(--ink) !important; }
.og-k.og-alerta b { color:#B91C1C !important; }
/* cabeçalho: tudo na mesma fonte */
.ob-meta .ob-mono { font-family:inherit; font-size:inherit; }
/* cada bloco das abas vira um cartão, com título no padrão dos cartões */
.ob-pane > .ob-block, .ob-pane > .ob-tcra { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px 18px; margin-bottom:14px; gap:12px; }
.ob-sh h3 { font-size:16px; font-weight:700; color:var(--ink); padding:0 0 8px; border:0; position:relative; letter-spacing:-.01em; }
.ob-sh h3::after { content:""; position:absolute; left:0; bottom:0; width:28px; height:3px; border-radius:2px; background:var(--mod); }
.ob-sh h4, .ob-licgrp h4 { color:var(--muted); font-size:12px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; }
/* fatos em blocos */
.ob-fg { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:10px; }
.ob-f { display:flex; flex-direction:column; gap:4px; padding:10px 12px; border-radius:10px; background:#F7F9FC; border:1px solid var(--line); min-width:0; }
.ob-f > span { font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.ob-f > b { font-size:14px; font-weight:700; color:var(--ink); overflow-wrap:anywhere; }
.ob-f > b .ob-faint { font-weight:500; }
.ob-f.hl > b { color:var(--mod); }
/* dados do TCRA (dl) em blocos */
.ob-dl-g { display:grid !important; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)) !important; gap:10px !important; }
.ob-dl-g dt { display:none; }
.ob-dl-g dd { margin:0; padding:10px 12px; border-radius:10px; background:#F7F9FC; border:1px solid var(--line); font-size:13.5px; font-weight:600; color:var(--ink); }
.ob-dl-g dd::before { content:attr(data-r); display:block; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); margin-bottom:4px; }
/* tabelas das abas no padrão das tabelas de dados */
.ob-pane .ob-tbl { border:0; }
.ob-pane .ob-t th { font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); background:transparent; border-bottom:1px solid var(--line); }
.ob-pane .ob-t td { border-bottom:1px solid var(--line2,#f0f2f6); font-size:13px; }
.ob-pane .ob-t td .ob-mono, .ob-pane .ob-subl.ob-mono { font-family:inherit; }
.lt-prox { margin-left:14px; padding-left:14px; border-left:1px solid var(--line); } .lt-prox b { color:var(--mod); }

/* barra lateral: empreendimento com setinha e as páginas dele */
.nav-grp { display:block; padding:0 !important; background:none !important; }
.nav-grp > a.nav-emp { position:relative; padding-right:30px; }
.nav-seta { position:absolute; right:6px; top:50%; width:22px; height:22px; margin-top:-11px; border:0; background:transparent; cursor:pointer; border-radius:6px; color:inherit; opacity:.7; }
.nav-seta::before { content:""; position:absolute; left:8px; top:6px; width:6px; height:6px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(-45deg); transition:transform .15s; }
.nav-grp.aberto .nav-seta::before { transform:rotate(45deg); top:5px; }
.nav-seta:hover { background:rgba(255,255,255,.12); opacity:1; }
.nav-filhos { display:none; flex-direction:column; margin:2px 0 6px 22px; padding-left:10px; border-left:1px solid rgba(255,255,255,.18); }
.nav-grp.aberto .nav-filhos { display:flex; }
.nav-filho { display:block; padding:6px 10px; border-radius:8px; font-size:12.5px; color:rgba(255,255,255,.75); text-decoration:none; white-space:nowrap; }
.nav-filho:hover { background:rgba(255,255,255,.08); color:#fff; }
.nav-filho.ativo, .nav-filho.on { background:rgba(255,255,255,.14); color:#fff; font-weight:700; }
.sidebar:not(:hover):not(.aberta) .nav-filhos, .sidebar:not(:hover):not(.aberta) .nav-seta { display:none; }
/* obrigações: título da página do empreendimento e cartões indicadores de navegação */
.ob-pag-t { display:flex; align-items:baseline; gap:14px; font-size:20px; font-weight:800; color:var(--ink); margin:4px 0 12px; }
.ob-pag-t a { font-size:13px; font-weight:600; color:var(--mod); text-decoration:none; }
.ob-navcards { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)) !important; margin-bottom:16px; }
.ob-navcards .og-k { cursor:pointer; }
.ob-navcards .og-ir { font-style:normal; font-size:12px; font-weight:700; color:var(--mod); margin-top:6px; }

/* ===== Padrão de fonte em toda a plataforma: números, códigos, inscrições e processos na fonte do texto
   (algarismos de largura igual para alinhar), sem fonte de máquina de escrever ===== */
.ob-mono, .jud-tab td.mono, .proc-cnj, [class*="-mono"], td.mono { font-family:inherit !important; font-variant-numeric:tabular-nums; letter-spacing:0; }
.ob-mono, .jud-tab td.mono { font-size:12.5px; }
/* nome do empreendimento embaixo do lote/item: sempre inteiro, numa linha */
.ip-t .ip-lote + .ob-subl { white-space:nowrap; }

/* ===== Padrão de alinhamento das tabelas: todas as colunas (texto, datas e valores) alinhadas à esquerda,
   cabeçalho junto com o conteúdo; só a coluna de botões fica à direita ===== */
table th, table td,
.jud-tab td.tr, .jud-tab th.tr, .ob-t .r, .ob-t td.r, .ob-t th.r, table td.tr, table th.tr, table td.r, table th.r { text-align:left !important; }
table td, table th { font-variant-numeric:tabular-nums; }
table td:has(> .ai-acts), table td:has(> .ob-rowacts), table td:has(> .so-acts), table td:has(> .btn-min:only-child),
table td:has(> div > .btn-min), table th:empty:last-child { text-align:right !important; }
.ob-rowacts, .so-acts, .ai-acts { justify-content:flex-end; }

/* elemento marcado como escondido nunca aparece (alguns estilos de layout anulavam o atributo) */
[hidden] { display:none !important; }

/* ===== Padrão de tamanho de fonte dos cartões indicadores (todas as telas) =====
   número 30px (o cartão principal 36px), rótulo 12px em maiúsculas, detalhe 12px */
.bigstat .bn, .og-k b, .ih-kpi b, .ob-navcards .og-k b { font-size:clamp(22px,1.9vw,30px) !important; line-height:1.1 !important; }
.bigstat-total .bn, .og-hero b { font-size:clamp(26px,2.3vw,36px) !important; line-height:1.05 !important; }
.bigstat .bl, .og-k .og-kl, .og-hero .og-kl { font-size:12px !important; letter-spacing:.04em; }
.bigstat .bs, .og-k small, .og-hero small { font-size:12px !important; }
.og-k.longo b { font-size:clamp(20px,1.7vw,26px) !important; }
/* tabelas de dados: nada quebra linha (exercícios, valores, datas, etiquetas); só a coluna descritiva
   (comprador/status no IPTU) se ajusta, e a tabela termina junto com o fim do texto de cada coluna */
.jud-tab tbody td { white-space:nowrap; }
.jud-tab tbody td.ip-cmp { white-space:normal; width:100%; }
.ip-cmp .ip-cmp-l2 { white-space:nowrap; }

/* ===== Padrão do tamanho das logos dos empreendimentos (3 tamanhos em toda a plataforma) =====
   cabeçalho da página 150×86 · cartões e listas 84×44 · dentro de tabelas e textos 52×26 */
.logo-emp { box-sizing:border-box; display:inline-flex; align-items:center; justify-content:center; background:#fff; border:1px solid var(--line); overflow:hidden; flex:none; }
.logo-emp img { width:auto; height:auto; object-fit:contain; }
/* cabeçalho */
.logo-pag, .ob-solo-cab .ob-solo-logo, .ip-logo.hd { width:150px !important; height:86px !important; padding:8px 12px !important; border-radius:14px !important; }
.logo-pag img, .ob-solo-cab .ob-solo-logo img, .ip-logo.hd img { max-width:126px !important; max-height:68px !important; }
/* cartões e listas */
.logo-card, .logo-lista, .ip-logo:not(.hd):not(.mini), .tq-nome .logo-eyebrow, .ai-emp-cab .logo-emp { width:84px !important; height:44px !important; padding:4px 8px !important; border-radius:10px !important; box-shadow:none !important; }
.logo-card img, .logo-lista img, .ip-logo:not(.hd):not(.mini) img, .tq-nome .logo-eyebrow img, .ai-emp-cab .logo-emp img { max-width:68px !important; max-height:34px !important; height:auto !important; }
/* dentro de tabelas, legendas e textos */
.logo-eyebrow, .ip-logo.mini, .emp-id-l .logo-emp, .hg-oi .logo-eyebrow, .ficha-emp .logo-eyebrow, .tc-lote .logo-eyebrow { width:52px !important; height:26px !important; padding:2px 5px !important; border-radius:6px !important; }
.logo-eyebrow img, .ip-logo.mini img, .emp-id-l .logo-emp img, .hg-oi .logo-eyebrow img, .ficha-emp .logo-eyebrow img, .tc-lote .logo-eyebrow img { max-width:42px !important; max-height:20px !important; height:auto !important; }
.ip-logo-ini.mini { font-size:10px; } .ip-logo-ini:not(.hd):not(.mini) { font-size:14px; }
@media (max-width:900px) { .logo-pag, .ob-solo-cab .ob-solo-logo, .ip-logo.hd { width:96px !important; height:56px !important; } .logo-pag img, .ob-solo-cab .ob-solo-logo img, .ip-logo.hd img { max-width:80px !important; max-height:42px !important; } }
.ai-emp-cab .emp-id-l .logo-emp { width:84px !important; height:44px !important; padding:4px 8px !important; border-radius:10px !important; }
.ai-emp-cab .emp-id-l .logo-emp img { max-width:68px !important; max-height:34px !important; }

/* Obrigações · atalhos de acesso (botões), diferentes dos cartões indicadores */
.ob-acessos { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; margin-bottom:18px; }
.ob-acesso { display:grid; grid-template-columns:40px minmax(0,1fr) auto 14px; align-items:center; gap:12px; padding:14px 16px; border-radius:14px; text-decoration:none; color:#fff;
  background:linear-gradient(135deg,var(--mod),var(--mod-2)); box-shadow:0 10px 22px -14px var(--mod); transition:transform .12s, box-shadow .12s; }
.ob-acesso:hover { transform:translateY(-2px); box-shadow:0 14px 28px -14px var(--mod); }
.ob-ac-ic { width:40px; height:40px; border-radius:12px; background:rgba(255,255,255,.18); display:grid; place-items:center; }
.ob-ac-ic svg { width:22px; height:22px; }
.ob-ac-tx { min-width:0; display:flex; flex-direction:column; gap:2px; }
.ob-ac-tx b { font-size:15px; font-weight:800; }
.ob-ac-tx small { font-size:11.5px; color:rgba(255,255,255,.85); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ob-ac-n { min-width:30px; height:30px; padding:0 8px; border-radius:999px; background:#fff; color:var(--mod); font-weight:800; font-size:14px; display:grid; place-items:center; }
.ob-acesso.alerta .ob-ac-n { background:#FEE2E2; color:#B91C1C; }
.ob-ac-seta { font-size:22px; font-weight:700; opacity:.8; }

/* Obrigações · cabeçalho da seção (Urbanístico, Ambiental…) */
.ob-secao { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px; margin:6px 0 14px; padding:16px 20px; border-radius:14px; background:var(--mod-soft); border-left:5px solid var(--mod); }
.ob-secao-k { width:100%; font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--mod); }
.ob-secao h2 { margin:0; font-size:28px; font-weight:800; letter-spacing:-.02em; color:var(--ink); }
.ob-secao a { font-size:13px; font-weight:600; color:var(--mod); text-decoration:none; }
/* ficha: dados do imóvel e tabela de prazos */
.ob-imovel { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.ob-imovel > div { display:flex; flex-direction:column; gap:3px; padding:12px 14px; border-radius:10px; background:#F7F9FC; border:1px solid var(--line); min-width:0; }
.ob-imovel span { font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.ob-imovel b { font-size:18px; font-weight:800; color:var(--ink); }
.ob-imovel small { font-size:12px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ob-pz td.ob-pz-como { color:var(--muted); }
@media (max-width:900px) { .ob-imovel { grid-template-columns:repeat(2,minmax(0,1fr)); } }
/* ciclo urbanístico: o destaque é o nome da fase (Aprovação, Registro, TVO…); a data vem em seguida, mais leve */
.tv-tx { font-size:12px !important; font-weight:800 !important; color:var(--ink) !important; }
.tv-tx b { font-size:11.5px !important; font-weight:500 !important; color:var(--muted) !important; margin-left:2px; }
.tv-tx.laranja { color:#B45309 !important; } .tv-tx.vermelho { color:#BE123C !important; } .tv-tx.azul { color:#4338CA !important; }
.tv-tx.laranja b, .tv-tx.vermelho b, .tv-tx.azul b { color:var(--muted) !important; }

/* Obrigações · visão geral: blocos de pendência brancos (faixa na cor), barras por tipo na cor do módulo */
.pd-k { background:var(--card) !important; border:1px solid var(--line) !important; border-left:4px solid var(--c) !important; }
.pd-k b { color:var(--ink) !important; }
.pd-k:first-child:not(.zero) b { color:#B91C1C !important; }
.pd-tb i { background:var(--mod) !important; }
.pd-tipos b { color:var(--ink) !important; }
/* painel do empreendimento: os botões de acesso ficam soltos na página; "Próximos prazos" e
   "Validade das licenças" viram cartões próprios (sem o quadro branco em volta de tudo) */
.ob-emp-solo:has(> .ob-pane-painel:not([hidden])) { background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.ob-pane-painel .ob-pcard { background:var(--card); box-shadow:var(--sombra); border-radius:14px; padding:16px 18px; }
.ob-pane-painel .ob-acessos { margin-bottom:16px; }
/* Obrigações · seções do empreendimento: cada bloco é um quadro próprio (sem o quadro branco em volta de tudo) */
.ob-emp-solo { background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.ob-pane > .ob-block, .ob-pane > .ob-tcra, .ob-pane-painel .ob-pcard { background:var(--card); border:1px solid var(--line); box-shadow:var(--sombra); border-radius:14px; padding:18px 20px; margin-bottom:16px; }
/* cabeçalho da seção mais leve: título com a faixa do módulo, sem caixa colorida */
.ob-secao { background:transparent !important; border-left:4px solid var(--mod) !important; border-radius:0 !important; padding:2px 0 2px 14px !important; margin:4px 0 16px !important; }
.ob-secao h2 { font-size:24px !important; }
/* tabela de prazos vazia: aviso no lugar */
.jud-tab-wrap:has(.ob-pz tbody:not(:has(tr))) .ob-pz { display:none; }
.jud-tab-wrap:has(.ob-pz tbody:not(:has(tr)))::after { content:"Prazos ainda não calculáveis: informe aprovação, registro e lançamento em Editar dados."; display:block; padding:10px 2px; font-size:13px; color:var(--muted); }

/* ===== Obrigações · licenças em cartões ===== */
.ob-lcs { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:12px; margin-top:8px; }
.ob-lc { display:flex; flex-direction:column; gap:10px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:var(--card); border-top:3px solid var(--mod); min-width:0; }
.ob-lc.req { border-top-color:var(--mod-2); }
.ob-lc-top { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; }
.ob-lc-top b { font-size:15px; font-weight:800; color:var(--ink); line-height:1.25; }
.ob-lc-org { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; font-size:13px; color:var(--ink); }
.ob-lc-org span { color:var(--muted); } .ob-lc-org span::before { content:"· "; }
.ob-lc-dts { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.ob-lc-dts > div { display:flex; flex-direction:column; gap:2px; padding:8px 10px; border-radius:8px; background:#F7F9FC; }
.ob-lc-dts span { font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.ob-lc-dts b { font-size:15px; font-weight:800; color:var(--ink); }
.ob-lc-dts .pill { align-self:flex-start; margin-top:2px; }
.ob-lc-bar { height:6px; border-radius:3px; background:var(--line); overflow:hidden; } .ob-lc-bar i { display:block; height:100%; background:var(--mod); }
.ob-lc-bar.warn i { background:#F59E0B; } .ob-lc-bar.crit i { background:#E11D48; }
.ob-lc-obs { margin:0; font-size:12.5px; color:var(--muted); line-height:1.45; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.ob-lc-acao { font-size:12.5px; color:var(--ink); padding:8px 10px; border-radius:8px; background:var(--mod-soft); }
.ob-lc-acao span { display:block; font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--mod); margin-bottom:2px; }
.ob-lc-pe { display:flex; align-items:center; gap:8px; margin-top:auto; padding-top:8px; border-top:1px solid var(--line); }
/* ===== pendências e prazos em lista ===== */
.ob-pzls { display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.ob-pzl { display:grid; grid-template-columns:64px minmax(0,1fr) auto auto; gap:14px; align-items:center; padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--card); border-left:4px solid var(--line); }
.ob-pzl.crit { border-left-color:#E11D48; } .ob-pzl.warn { border-left-color:#F59E0B; } .ob-pzl.info { border-left-color:var(--mod-2); } .ob-pzl.ok { border-left-color:var(--mod); }
.ob-pzl.done { opacity:.65; }
.ob-pzl-d { display:flex; flex-direction:column; align-items:center; justify-content:center; height:56px; border-radius:10px; background:#F7F9FC; }
.ob-pzl-d b { font-size:20px; font-weight:800; color:var(--ink); line-height:1; } .ob-pzl-d span { font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase; }
.ob-pzl-t { min-width:0; } .ob-pzl-t > b { display:block; font-size:14px; font-weight:700; color:var(--ink); }
.ob-pzl-tags { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; margin-top:3px; font-size:12px; }
.ob-pzl-t p { margin:6px 0 0; font-size:12.5px; color:var(--ink); line-height:1.45; } .ob-pzl-t p span { font-weight:700; color:var(--mod); }
.ob-pzl-t p.ob-faint { color:var(--muted); }
.ob-pzl-a { display:flex; align-items:center; gap:6px; }
@media (max-width:760px) { .ob-pzl { grid-template-columns:56px minmax(0,1fr); } .ob-pzl-s, .ob-pzl-a { grid-column:2; } }

/* ===== Obrigações · seções no molde da página de empreendimento do IPTU ===== */
.ob-volta { display:inline-block; margin-top:8px; font-size:13px; font-weight:600; color:var(--mod); text-decoration:none; }
.ob-sec { display:flex; flex-direction:column; gap:16px; }
.ob-sec .og-kpis { margin-bottom:0; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important; }
.ob-sec .og-k { cursor:pointer; }
.ob-q { margin:0 !important; }
.ob-q .ip-chips { margin:6px 0 10px; }
.ob-qt td.ob-tx { white-space:normal !important; min-width:180px; }
.ob-qt td.ob-tx b { font-weight:700; color:var(--ink); }
.ob-qt tr.ob-feito td { opacity:.6; }
.ob-qt tr.ip-clic { cursor:pointer; } .ob-qt tr.ip-clic:hover td { background:#F8FAFC; } .ob-qt tr.ip-clic.on td { background:var(--mod-soft); }
.ob-det td { background:#F8FAFC; white-space:normal !important; }
.ob-det-g { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:12px 24px; padding:6px 4px; font-size:13px; color:var(--ink); line-height:1.45; }
.ob-det-g span { display:block; font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin-bottom:3px; }
.ob-det-acao { padding:8px 10px; border-radius:8px; background:var(--mod-soft); } .ob-det-acao span { color:var(--mod); }
.ob-q2 { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:16px; }
.ob-kv { display:flex; flex-direction:column; gap:12px; }
.ob-kv > div { display:flex; flex-direction:column; gap:3px; padding-bottom:10px; border-bottom:1px solid var(--line); }
.ob-kv > div:last-child { border-bottom:0; }
.ob-kv span { font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.ob-kv b { font-size:15px; font-weight:700; color:var(--ink); } .ob-kv small { font-size:12px; color:var(--muted); }
.ob-kv .btn-min { align-self:flex-start; margin-top:4px; }
@media (max-width:1100px) { .ob-q2 { grid-template-columns:1fr; } }

/* Obrigações · seções: leitura visual das tabelas */
.ob-qt .ob-rowacts { flex-wrap:nowrap !important; }
.ob-qt tbody tr.ip-clic td:first-child { box-shadow:inset 4px 0 0 var(--line); }
.ob-qt tr.ob-st-crit td:first-child { box-shadow:inset 4px 0 0 #E11D48; }
.ob-qt tr.ob-st-warn td:first-child { box-shadow:inset 4px 0 0 #F59E0B; }
.ob-qt tr.ob-st-ok td:first-child { box-shadow:inset 4px 0 0 var(--mod); }
.ob-qt tr.ob-st-info td:first-child { box-shadow:inset 4px 0 0 var(--mod-2); }
.ob-dtc { width:84px; }
.ob-dt { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; min-width:62px; padding:6px 8px; border-radius:10px; background:#F1F5F9; color:var(--ink); }
.ob-dt b { font-size:20px; font-weight:800; line-height:1; } .ob-dt small { font-size:11px; font-weight:700; text-transform:uppercase; color:var(--muted); }
.ob-dt.crit { background:#FEE2E2; color:#B91C1C; } .ob-dt.crit small { color:#B91C1C; }
.ob-dt.warn { background:#FEF3C7; color:#B45309; } .ob-dt.warn small { color:#B45309; }
.ob-dt.ok { background:var(--mod-soft); color:var(--mod); }
.ob-pt { display:flex; flex-wrap:wrap; align-items:center; gap:4px 8px; }
.ob-pt b { font-size:14px; font-weight:700; color:var(--ink); margin-right:4px; }
.ob-oq { margin-top:5px; font-size:12.5px; color:var(--muted); line-height:1.45; }
.ob-qt td.ob-tx { min-width:260px; }
button.og-k { font:inherit; text-align:left; cursor:pointer; width:100%; }

/* TCRA: termo em lista rótulo → valor (colunas largas) e observações à parte */
.ob-tt-acts { margin-left:auto; display:flex; gap:8px; }
.ob-termo { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); gap:24px; margin-top:8px; }
.ob-tl { display:flex; flex-direction:column; }
.ob-tr { display:grid; grid-template-columns:180px minmax(0,1fr); gap:16px; padding:10px 0; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--ink); line-height:1.45; }
.ob-tr:last-child { border-bottom:0; }
.ob-tr > span { font-size:12px; font-weight:700; color:var(--muted); padding-top:1px; }
.ob-tr .ob-emp-link { display:block; margin-top:2px; font-size:12.5px; color:var(--mod); }
.ob-tobs { padding:14px 16px; border-radius:12px; background:#F7F9FC; border:1px solid var(--line); align-self:start; }
.ob-tobs span { display:block; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); margin-bottom:6px; }
.ob-tobs p { margin:0; font-size:13px; color:var(--ink); line-height:1.6; white-space:pre-line; }
@media (max-width:1100px) { .ob-termo { grid-template-columns:1fr; } .ob-tr { grid-template-columns:140px minmax(0,1fr); } }

/* identificação do empreendimento (painel) */
.ob-ident { margin:0 0 16px !important; }
.ob-ident .tt { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.ob-id-g { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:0; margin-top:12px; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
.ob-id-i { display:flex; flex-direction:column; gap:4px; padding:14px 16px; border-right:1px solid var(--line); min-width:0; }
.ob-id-i:last-child { border-right:0; }
.ob-id-i span { font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.ob-id-i b { font-size:20px; font-weight:800; color:var(--ink); letter-spacing:-.01em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ob-id-i small { font-size:12px; color:var(--muted); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.ob-q1 { display:block; }
@media (max-width:1200px) { .ob-id-g { grid-template-columns:repeat(3,minmax(0,1fr)); } .ob-id-i:nth-child(3n) { border-right:0; } .ob-id-i:nth-child(-n+3) { border-bottom:1px solid var(--line); } }

/* identificação do empreendimento: faixa com ícones logo abaixo do cabeçalho */
.ob-ident { margin:0 0 16px; padding:16px 18px 18px; border-radius:16px; background:linear-gradient(180deg,var(--mod-soft),var(--card) 70%); border:1px solid var(--line); box-shadow:var(--sombra); }
.ob-id-cab { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.ob-id-cab > span:first-child { font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--mod); }
.ob-id-g { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px; border:0 !important; border-radius:0 !important; margin:0 !important; overflow:visible !important; }
.ob-id-i { display:flex; align-items:flex-start; gap:12px; padding:12px 14px !important; border:1px solid var(--line) !important; border-radius:12px; background:var(--card); min-width:0; }
.ob-id-ic { flex:none; width:38px; height:38px; border-radius:10px; display:grid; place-items:center; background:var(--mod-soft); color:var(--mod); }
.ob-id-ic svg { width:20px; height:20px; }
.ob-id-tx { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ob-id-tx > span { font-size:10.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.ob-id-tx b { font-size:18px; font-weight:800; color:var(--ink); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ob-id-tx b em { font-style:normal; font-size:13px; font-weight:600; color:var(--muted); }
.ob-id-tx small { font-size:11.5px; color:var(--muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
@media (max-width:1400px) { .ob-id-g { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) { .ob-id-g { grid-template-columns:1fr 1fr; } }
/* identificação: ícone ao lado do texto, cartões mais baixos, texto sempre dentro do cartão */
.ob-id-i { flex-direction:row !important; align-items:center !important; gap:14px !important; padding:14px 16px !important; }
.ob-id-ic { width:44px; height:44px; border-radius:12px; }
.ob-id-ic svg { width:22px; height:22px; }
.ob-id-tx { flex:1; overflow:hidden; }
.ob-id-tx b { font-size:20px; line-height:1.15; }
.ob-id-tx small { display:block; max-width:100%; }
.ob-ident { background:var(--card); }
.ob-id-cab > span:first-child { display:flex; align-items:center; gap:8px; }
.ob-id-cab > span:first-child::before { content:""; width:4px; height:16px; border-radius:2px; background:var(--mod); }

/* painel do empreendimento: títulos de seção no padrão da plataforma */
.ob-secn { margin:22px 0 12px !important; }
.ob-secn:first-of-type { margin-top:6px !important; }
.ob-secn .h { margin-left:auto; display:flex; gap:8px; align-items:center; }
.ob-ident { padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; }
.ob-id-g { margin:0 !important; }
.ob-pane-painel .ob-ars { display:none; }

/* botões das seções no painel: texto do resumo inteiro */
.ob-ac-tx small { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; }

/* identificação: texto da matrícula inteiro (quebra em linhas) e “sem registro” em vermelho; títulos dos quadros no padrão (17px) */
.ob-id-tx small { white-space:normal !important; overflow:visible !important; text-overflow:clip !important; line-height:1.4; }
.ob-id-i { align-items:flex-start !important; }
.ob-alerta-tx { color:#B91C1C; font-weight:800; }
.ob-sh h3 { font-size:17px !important; font-weight:800 !important; }
.ob-id-tx small b.ob-alerta-tx { color:#B91C1C !important; font-size:inherit; font-weight:800; }

/* ===== Painel do empreendimento: menos quadrinhos =====
   identificação = um quadro só, em destaque (faixa na cor do módulo, divisórias entre os dados);
   prazos = uma faixa compacta, sem cartões preenchidos */
.ob-ident { background:var(--card) !important; border:1px solid var(--line) !important; border-left:5px solid var(--mod) !important; border-radius:16px !important; box-shadow:var(--sombra) !important; padding:6px 4px !important; }
.ob-id-g { gap:0 !important; }
.ob-id-i { border:0 !important; border-radius:0 !important; background:transparent !important; padding:14px 18px !important; border-right:1px solid var(--line) !important; }
.ob-id-g > .ob-id-i:last-child { border-right:0 !important; }
.ob-id-tx b { font-size:22px !important; }
@media (max-width:1400px) { .ob-id-g > .ob-id-i:nth-child(3n) { border-right:0 !important; } .ob-id-g > .ob-id-i:nth-child(-n+3) { border-bottom:1px solid var(--line) !important; } }
/* faixa de prazos */
.ob-solo-kpis { display:grid !important; grid-template-columns:repeat(6,minmax(0,1fr)) !important; gap:0 !important; background:var(--card); border:1px solid var(--line); border-radius:14px; box-shadow:var(--sombra); overflow:hidden; }
.ob-solo-kpis > .og-hero, .ob-solo-kpis > .og-k { background:transparent !important; border:0 !important; border-right:1px solid var(--line) !important; border-radius:0 !important; box-shadow:none !important; padding:12px 16px !important; transform:none !important; min-height:0 !important; }
.ob-solo-kpis > :last-child { border-right:0 !important; }
.ob-solo-kpis > .og-hero::before, .ob-solo-kpis > .og-k::before { display:none !important; }
.ob-solo-kpis b { font-size:20px !important; color:var(--ink) !important; }
.ob-solo-kpis .og-alerta b { color:#B91C1C !important; }
.ob-solo-kpis .og-kl { color:var(--muted) !important; font-size:11px !important; margin-top:4px !important; }
.ob-solo-kpis small { color:var(--muted) !important; font-size:11.5px !important; }
.ob-solo-kpis > .og-hero .og-kl, .ob-solo-kpis > .og-hero small { color:var(--muted) !important; }
@media (max-width:1100px) { .ob-solo-kpis { grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
/* matrícula com mais espaço (texto do RI inteiro em até duas linhas) */
.ob-id-g { grid-template-columns:minmax(0,2fr) repeat(5,minmax(0,1fr)) !important; }
@media (max-width:1400px) { .ob-id-g { grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
.ob-id-tx small .ob-alerta-tx { display:inline; color:#B91C1C !important; font-size:inherit !important; font-weight:700 !important; letter-spacing:0 !important; text-transform:none !important; }

/* painel do empreendimento: botões no topo e gráficos */
.ob-acessos-topo { margin:4px 0 18px !important; }
.ob-graf { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:16px; margin-top:16px; }
.ob-gc { margin:0 !important; }
.ob-gb { display:flex; flex-direction:column; gap:14px; margin-top:14px; }
.ob-gb-l { display:grid; grid-template-columns:110px minmax(0,1fr) 36px; gap:12px; align-items:center; font-size:13px; font-weight:600; color:var(--ink); }
.ob-gb-l > b { text-align:right; font-weight:800; }
.ob-gb-trk { display:block; height:26px; border-radius:8px; background:var(--line); overflow:hidden; }
.ob-gb-trk > span { display:flex; gap:2px; height:100%; }
.ob-gb-trk i { display:flex; align-items:center; justify-content:center; font-style:normal; font-size:11.5px; font-weight:800; color:#fff; min-width:18px; }
.ob-gb-leg { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:14px; font-size:12px; color:var(--muted); }
.ob-gb-leg i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; vertical-align:-1px; }
.ob-graf .hero-pie.pie-lado .pie-in { flex-direction:row; align-items:center; gap:20px; }
.ob-graf .hero-pie .donut-wrap { width:190px !important; max-width:190px !important; flex:none; padding:0 !important; }
.ob-graf .donut-selo { display:none; }
.ob-graf .hero-pie.pie-lado .lg-pct { display:block !important; font-size:13px; font-weight:800; color:var(--ink); }
.ob-graf .hero-pie.pie-lado .lg-row { grid-template-columns:10px minmax(0,1fr) auto 40px !important; }
@media (max-width:1100px) { .ob-graf { grid-template-columns:1fr; } }
/* gráficos do painel: conteúdo centralizado na altura do quadro (sem sobra embaixo) e alinhado */
.ob-graf > .card { display:flex; flex-direction:column; }
.ob-graf > .card > .tt { margin-bottom:14px; }
.ob-graf > .card > .tt + * { margin-top:auto !important; }
.ob-graf > .card > :last-child:not(.tt) { margin-bottom:auto !important; }
.ob-gb { gap:16px; margin-top:0; }
.ob-gb-trk { height:30px; }
.ob-gb-trk i[style*="CBD5E1"] { color:#475569; }
.ob-graf .hero-pie.pie-lado .pie-in { justify-content:flex-start; gap:36px !important; margin:0 !important; }
.ob-graf .vg-lg { flex:0 1 320px !important; gap:12px !important; }

/* faixa de prazos do empreendimento: cada indicador abre a lista do que ele conta */
.ob-solo-kpis > a { text-decoration:none; color:inherit; cursor:pointer; transition:background .12s; }
.ob-solo-kpis > a:hover { background:var(--mod-soft) !important; }
.ob-solo-kpis > a:hover .og-kl { color:var(--mod) !important; }
/* rosca das licenças: a legenda ocupa o resto do quadro (rótulo à esquerda, número e % alinhados à direita) */
.ob-graf .vg-lg { flex:1 1 auto !important; max-width:none !important; }
.ob-graf .hero-pie.pie-lado .lg-row { grid-template-columns:10px minmax(0,1fr) 44px 52px !important; padding:6px 0; border-bottom:1px solid var(--line); }
.ob-graf .hero-pie.pie-lado .lg-row:last-child { border-bottom:0; }
.ob-graf .lg-n, .ob-graf .hero-pie.pie-lado .lg-pct { text-align:right !important; }
/* etiqueta da área nos próximos prazos e na validade das licenças */
.ob-cat { display:inline-block; margin-right:8px; padding:1px 8px; border-radius:6px; font-size:10.5px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; vertical-align:1px; }
.ob-cat.urb { background:#E0E7FF; color:#3730A3; }
.ob-cat.amb { background:var(--mod-soft); color:var(--mod); }
.ob-cat.tcra { background:#DCFCE7; color:#166534; }
.ob-pl-t b { white-space:normal !important; }

/* Prazos gerais: indicadores no padrão e tabela num quadro */
.ob-pz-kpis { grid-template-columns:repeat(5,minmax(0,1fr)) !important; margin-bottom:14px; }
.ob-pz-kpis .og-k { cursor:pointer; }
.ob-tbl-card { padding:8px 12px !important; }
.ob-tbl-card .ob-qt { width:100%; }
/* indicadores de vencidos (prazos e licenças) sempre em destaque: faixa e número em vermelho */
.og-k.og-alerta { --acc:#E11D48 !important; }
.og-k.og-alerta b { color:#DC2626 !important; }
.ob-solo-kpis > .og-k.og-alerta { box-shadow:inset 4px 0 0 #E11D48 !important; }

/* pendência: documento que trata dela e marco de referência */
.ob-doc { display:flex; flex-wrap:wrap; align-items:center; gap:4px 12px; margin-top:6px; font-size:12.5px; }
.ob-doc a { color:var(--mod); font-weight:600; text-decoration:none; } .ob-doc a:hover { text-decoration:underline; }
.ob-marco { padding:1px 8px; border-radius:6px; background:#EEF2FF; color:#3730A3; font-size:11.5px; font-weight:700; }
.ob-semprazo { padding:1px 8px; border-radius:6px; background:#FEF3C7; color:#B45309; font-size:11.5px; font-weight:700; }

/* linha de prazo limpa: documento e o que ele diz; data prevista pelo marco */
.ob-doc { display:block !important; margin-top:6px; font-size:12.5px; line-height:1.45; }
.ob-doc a, .ob-doc > span:first-child { font-weight:700; color:var(--mod); text-decoration:none; margin-right:6px; }
.ob-doc > span.ob-faint { color:var(--muted); font-weight:500; }
.ob-diz { color:var(--muted); }
.ob-diz::before { content:"— "; }
.ob-dt.prev { background:#EEF2FF; color:#3730A3; } .ob-dt.prev small { color:#3730A3; }
.ob-dt-nota { margin-top:4px; font-size:10.5px; font-weight:700; color:#3730A3; text-align:center; line-height:1.2; }
.ob-qt .ob-emp-link + .ob-cat { display:block; width:fit-content; margin-top:4px; }

/* prazos urbanísticos do loteamento: quadro compacto, só prazo e data */
.ob-pzcard { max-width:560px; } .ob-pzcard .ob-pz { width:100%; }
.ob-obrig { margin:6px 0 0; padding-left:18px; line-height:1.55; } .ob-obrig li { margin:3px 0; }
.jud-tab.ob-pz td:last-child, .jud-tab.ob-pz th:last-child { text-align:right; }

/* TCRA: dois termos lado a lado (com um só fica como está) */
.ob-tcras { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-items:stretch; }
.ob-tcras > .card { margin:0 !important; max-width:none !important; }
.ob-tcras .ob-termo { grid-template-columns:1fr; gap:14px; }
.ob-tcras .ob-tr { grid-template-columns:150px minmax(0,1fr); }
@media (max-width:1100px) { .ob-tcras { grid-template-columns:1fr; } }

/* TCRA: do que trata cada termo */
.ob-tsobre { margin:10px 0 4px; padding:10px 14px; border-radius:10px; background:color-mix(in srgb, var(--mod) 7%, #fff); border-left:3px solid var(--mod); font-size:13.5px; line-height:1.5; color:var(--ink); }
.ob-tsobre b { display:block; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--mod); margin-bottom:2px; }

/* TCRA: uma coluna por termo (termo e as áreas dele) */
.ob-tcol { display:flex; flex-direction:column; gap:16px; min-width:0; }
.ob-tcol > .card { margin:0 !important; }
.ob-tcol > .card:first-child { flex:1 1 auto; }
.ob-tcras { margin-bottom:16px; }

/* prazos: documento em coluna própria (o texto usa a largura toda) */
.ob-qt td.ob-docc { white-space:normal !important; min-width:160px; max-width:300px; font-size:12.5px; line-height:1.4; }
.ob-qt td.ob-docc a { color:var(--mod); font-weight:600; text-decoration:none; } .ob-qt td.ob-docc a:hover { text-decoration:underline; }
.ob-qt td.ob-docc .ob-adddoc { font-size:12px; }

/* ciclo urbanístico: nome do empreendimento em destaque, com a logo */
.tv-row { grid-template-columns:250px minmax(0,1fr) 220px; }
.tv-nome.tv-nome-logo { flex-direction:row; align-items:center; gap:10px; }
.tv-nome-logo > span:last-child { display:flex; flex-direction:column; min-width:0; }
.tv-nome-logo b { font-size:15px !important; white-space:normal !important; line-height:1.25; }
.tv-nome-logo .logo-eyebrow { flex:none; }
.tv-ini { display:inline-flex; align-items:center; justify-content:center; background:var(--mod-soft); color:var(--mod); font-size:11px; font-weight:800; letter-spacing:.04em; }

/* prestador contratado sinalizado na própria linha */
.ob-prest { margin-top:4px; }
.ob-prest .ob-contr { margin:2px 4px 0 0; }

/* IPTU: o que cada fonte (NEO, Talon, prefeitura) diz do lote sem contrato */
.ip-ind { margin-top:4px; font-size:12px; line-height:1.4; color:var(--ink); white-space:normal; max-width:560px; }

/* Módulos: sem as tags das funções, só o botão para entrar (alinhado no pé do cartão) */
.md-card .md-entrar { margin-top:auto; align-self:flex-start; padding:8px 16px; border-radius:10px; background:var(--c); color:#fff; font-size:13px; font-weight:700; transition:filter .12s; }
.md-card:hover .md-entrar { filter:brightness(1.08); }

/* seletor do topo na tela de Módulos: neutro, sem módulo escolhido */
.ms-btn.ms-neutro { background:linear-gradient(135deg,#334155,#475569); box-shadow:0 10px 22px -12px rgba(51,65,85,.6), inset 0 0 0 1px rgba(255,255,255,.18); }

/* Módulos: ícones com movimento ao passar o mouse no cartão — o traço se desenha e cada um faz um gesto da sua
   função (caneta escreve, check marca, broto balança, organograma pulsa, guia sobe, balança pende). Sem movimento
   para quem pediu menos animação no sistema. */
@keyframes mdDesenha { from { stroke-dashoffset:100; } to { stroke-dashoffset:0; } }
@keyframes mdEscreve { 0%,100% { transform:translate(0,0) rotate(0); } 30% { transform:translate(-1.5px,1px) rotate(-8deg); } 60% { transform:translate(1px,-1px) rotate(6deg); } }
@keyframes mdBalanca { 0%,100% { transform:rotate(0); } 25% { transform:rotate(-7deg); } 75% { transform:rotate(7deg); } }
@keyframes mdPende { 0%,100% { transform:rotate(0); } 30% { transform:rotate(-6deg); } 70% { transform:rotate(5deg); } }
@keyframes mdSobe { 0%,100% { transform:translateY(0); } 40% { transform:translateY(-3px); } 70% { transform:translateY(1px); } }
@keyframes mdPulsa { 0%,100% { transform:scale(1); } 50% { transform:scale(1.18); } }
.md-card .md-ic svg { overflow:visible; transition:transform .25s; }
.md-card .md-ic svg :is(path,rect) { transform-box:fill-box; transform-origin:center; }
.md-card:hover .md-ic svg :is(path,rect) { stroke-dasharray:100; animation:mdDesenha .7s ease-out both; }
.md-card:hover .md-ic[data-ic="mContratos"] svg path:last-child { animation:mdDesenha .5s ease-out both, mdEscreve .9s .5s ease-in-out 2; transform-origin:bottom left; }
.md-card:hover .md-ic[data-ic="mObrigacoes"] svg path:last-child { animation:mdDesenha .45s .35s ease-out both; }
.md-card:hover .md-ic[data-ic="mRural"] svg { transform-origin:50% 90%; animation:mdBalanca 1.4s ease-in-out 1; }
.md-card:hover .md-ic[data-ic="mSocietario"] svg rect { animation:mdDesenha .6s ease-out both, mdPulsa .5s ease-in-out both; }
.md-card:hover .md-ic[data-ic="mSocietario"] svg rect:nth-of-type(2) { animation-delay:0s, .25s; }
.md-card:hover .md-ic[data-ic="mSocietario"] svg rect:nth-of-type(3) { animation-delay:0s, .4s; }
.md-card:hover .md-ic[data-ic="mIptu"] svg { animation:mdSobe .8s ease-in-out 2; }
.md-card:hover .md-ic[data-ic="mContencioso"] svg { transform-origin:50% 15%; animation:mdPende 1.3s ease-in-out 1; }
.md-card .md-ic { transition:transform .2s, box-shadow .2s; }
.md-card:hover .md-ic { transform:scale(1.06); box-shadow:0 8px 18px -8px var(--c); }
@media (prefers-reduced-motion: reduce) {
  .md-card:hover .md-ic, .md-card:hover .md-ic svg, .md-card:hover .md-ic svg :is(path,rect) { animation:none !important; transform:none !important; stroke-dasharray:none !important; }
}

/* Ciclo urbanístico (visão geral de Obrigações): destaque em cartões, linha do tempo com etapas e datas visíveis,
   animada, e o "hoje" atravessando todas as linhas. Cores: tons da cor do módulo; âmbar/vermelho só para alerta. */
.cy .cy-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; margin:10px 0 18px; }
.cy-card { display:flex; flex-direction:column; gap:10px; padding:14px 16px 14px 18px; border-radius:16px; background:linear-gradient(160deg,var(--mod-soft),#fff 70%); border:1px solid rgba(var(--mod-rgb),.18); color:inherit; text-decoration:none; position:relative; overflow:hidden;
  animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i) * 70ms); transition:transform .18s, box-shadow .18s; }
.cy-card:hover { transform:translateY(-3px); box-shadow:0 14px 28px -16px rgba(var(--mod-rgb),.55); }
.cy-card::after { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mod); }
.cy-card.cy-warn::after { background:#F59E0B; } .cy-card.cy-crit::after { background:#E11D48; } .cy-card.cy-neutral::after { background:#CBD5E1; }
.cy-card-top { display:flex; align-items:center; gap:8px; min-width:0; }
.cy-card-top b { font-size:14px; font-weight:800; color:var(--navy); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cy-card-mid { display:flex; align-items:center; gap:12px; }
.cy-anel { width:58px; height:58px; flex:none; }
.cy-anel-f { fill:none; stroke:rgba(var(--mod-rgb),.14); stroke-width:6; }
.cy-anel-v { fill:none; stroke:var(--mod); stroke-width:6; stroke-linecap:round; stroke-dashoffset:var(--c2); animation:cyAnel 1.2s .2s cubic-bezier(.2,.8,.2,1) forwards; }
.cy-warn .cy-anel-v { stroke:#F59E0B; } .cy-crit .cy-anel-v { stroke:#E11D48; }
.cy-anel text { font-size:13px; font-weight:800; fill:var(--navy); }
.cy-anel-vazio { width:58px; height:58px; flex:none; display:grid; place-items:center; border-radius:50%; border:2px dashed #CBD5E1; color:#94A3B8; }
.cy-num { display:flex; flex-direction:column; line-height:1.05; }
.cy-num b { font-size:34px; font-weight:800; color:var(--navy); letter-spacing:-.02em; }
.cy-crit .cy-num b { color:#BE123C; } .cy-warn .cy-num b { color:#B45309; }
.cy-num small { font-size:11.5px; color:var(--cinza); margin-top:3px; }
.cy-card-pe { display:flex; justify-content:space-between; align-items:center; gap:8px; font-size:11.5px; }
.cy-st { padding:2px 9px; border-radius:999px; font-weight:800; background:rgba(var(--mod-rgb),.12); color:var(--mod); }
.cy-warn .cy-st { background:#FEF3C7; color:#B45309; } .cy-crit .cy-st { background:#FFE4E6; color:#BE123C; } .cy-neutral .cy-st { background:#F1F5F9; color:#64748B; }
.cy-data { color:var(--cinza); font-weight:600; }
.cy-leg { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:11.5px; color:var(--cinza); margin:0 0 8px; }
.cy-leg span { display:inline-flex; align-items:center; gap:6px; }
.cy-leg i { display:inline-block; width:18px; height:8px; border-radius:4px; }
.cy-l-obra { background:rgba(var(--mod-rgb),.3); } .cy-l-feito { background:var(--mod); }
.cy-l-prorr { background:repeating-linear-gradient(135deg,rgba(var(--mod-rgb),.4) 0 3px,transparent 3px 6px); }
.cy-l-ctr { background:rgba(var(--mod-rgb),.55); height:5px !important; }
.cy-l-tvo { width:10px !important; height:10px !important; border-radius:50% !important; background:#fff; border:3px solid var(--mod); }
.cy-l-hoje { width:3px !important; height:14px !important; background:#E11D48; border-radius:2px !important; }
/* linha do tempo */
.cy-tl { position:relative; display:flex; flex-direction:column; padding-top:4px; }
.cy-row { display:grid; grid-template-columns:200px minmax(0,1fr); align-items:center; gap:14px; padding:4px 8px; margin:0 -8px; border-radius:12px; color:inherit; text-decoration:none; }
a.cy-row { padding-top:8px; padding-bottom:8px; border-top:1px solid #F1F5F9; }
a.cy-row:hover { background:var(--mod-soft); }
.cy-nome { display:flex; align-items:center; gap:10px; min-width:0; }
.cy-nome b { font-size:14px; font-weight:700; color:var(--navy); line-height:1.25; }
.cy-trilhas { display:flex; flex-direction:column; gap:2px; min-width:0; }
.cy-trilha { position:relative; display:block; height:58px; }
.cy-tc { height:44px; }
.cy-cab .cy-trilha { height:24px; }
.cy-trilha > i, .cy-trilha > em, .cy-trilha > b, .cy-trilha > small { position:absolute; }
.cy-q { left:-2px; top:50%; transform:translate(-100%,-50%); padding-right:8px; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; display:none; }
.cy-ano { bottom:2px; padding-left:5px; font-style:normal; font-size:11px; font-weight:800; color:var(--cinza2); border-left:1px solid #E2E8F0; }
.cy-faixa { top:0; bottom:0; background:#F8FAFC; }
.cy-liga { top:28px; height:2px; background:repeating-linear-gradient(90deg,#CBD5E1 0 4px,transparent 4px 7px); }
.cy-liga-venc { background:repeating-linear-gradient(90deg,#F43F5E 0 4px,transparent 4px 7px); }
.cy-obra { top:21px; height:16px; border-radius:9px; background:rgba(var(--mod-rgb),.22); overflow:hidden; transform-origin:left; animation:cyCresce .9s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i) * 90ms + .1s); }
.cy-obra span, .cy-ctr span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:9.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.25); z-index:1; white-space:nowrap; }
.cy-feito { position:absolute; left:0; top:0; bottom:0; border-radius:9px; background:linear-gradient(90deg,var(--mod),var(--mod-2)); }
.cy-feito::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent); transform:translateX(-100%); animation:cyBrilho 3s 1.3s ease-in-out infinite; }
.cy-prorr { top:21px; height:16px; border-radius:0 9px 9px 0; background:repeating-linear-gradient(135deg,rgba(var(--mod-rgb),.35) 0 3px,transparent 3px 7px); transform-origin:left; animation:cyCresce .6s both; animation-delay:calc(var(--i) * 90ms + .8s); }
.cy-atraso { top:21px; height:16px; border-radius:0 9px 9px 0; background:#E11D48; opacity:.85; }
.cy-ctr { top:16px; height:12px; border-radius:7px; background:linear-gradient(90deg,rgba(var(--mod-rgb),.5),rgba(var(--mod-rgb),.7)); transform-origin:left; animation:cyCresce .9s both; animation-delay:calc(var(--i) * 90ms + .3s); overflow:hidden; }
.cy-ctr-tol { top:16px; height:12px; border-radius:0 7px 7px 0; background:repeating-linear-gradient(135deg,rgba(var(--mod-rgb),.3) 0 3px,transparent 3px 7px); }
.cy-mk { width:13px; height:13px; margin-left:-6.5px; border-radius:50%; background:#fff; border:3px solid #94A3B8; top:22.5px; z-index:2; animation:cyPop .4s cubic-bezier(.3,1.6,.5,1) both; animation-delay:calc(var(--i) * 90ms + .5s); }
.cy-mk-rg { border-color:var(--mod); background:var(--mod); box-shadow:0 0 0 2px #fff; }
.cy-mk-tvo { width:18px; height:18px; margin-left:-9px; top:20px; border-color:var(--mod); box-shadow:0 0 0 5px rgba(var(--mod-rgb),.18); animation-delay:calc(var(--i) * 90ms + 1s); }
.cy-mk-cr { width:11px; height:11px; margin-left:-5.5px; top:23.5px; border-radius:2px; transform:rotate(45deg); border-width:2px; animation:none; }
.cy-mk-lim { border-color:#E11D48; }
.cy-tc .cy-mk { top:15.5px; }
.cy-mk-lc { border-color:rgba(var(--mod-rgb),.7); }
.cy-mk-ent { border-color:var(--mod); width:16px; height:16px; margin-left:-8px; top:14px !important; }
/* etapa + data: em cima ou embaixo da barra */
.cy-lb { font-style:normal; font-size:11px; color:#64748B; white-space:nowrap; line-height:1; animation:cySobe .4s both; animation-delay:calc(var(--i) * 90ms + .6s); }
.cy-lb b { font-weight:700; color:#334155; }
.cy-lb.cima { top:3px; } .cy-lb.baixo { top:42px; }
.cy-tc .cy-lb.cima { top:1px; } .cy-tc .cy-lb.baixo { top:31px; }
.cy-lb.meio { transform:translateX(-50%); } .cy-lb.fim { transform:translateX(-100%); } .cy-lb.ini { transform:translateX(-4px); }
.cy-lb.forte, .cy-lb.forte b { color:var(--mod); font-weight:800; }
.cy-lb.forte2, .cy-lb.forte2 b { color:#334155; font-weight:800; }
.cy-lb.suave, .cy-lb.suave b { color:#94A3B8; font-weight:600; }
.cy-lb.verm, .cy-lb.verm b { color:#BE123C; font-weight:800; }
/* hoje: faixa forte atravessando todas as linhas, com a data e um pulso */
.cy-hoje-g { position:absolute; top:0; bottom:0; width:3px; margin-left:-1.5px; border-radius:2px; z-index:3; pointer-events:none;
  left:calc(200px + 14px + (100% - 214px) * var(--hj) / 100); background:linear-gradient(180deg,#E11D48,rgba(225,29,72,.55)); box-shadow:0 0 0 4px rgba(225,29,72,.10); }
.cy-hoje-g::before { content:""; position:absolute; top:-6px; left:-5.5px; width:14px; height:14px; border-radius:50%; background:#E11D48; animation:cyPulso 1.8s ease-out infinite; }
.cy-hoje-g b { position:absolute; top:-28px; left:50%; transform:translateX(-50%); padding:3px 10px; border-radius:999px; background:#E11D48; color:#fff; font-size:11px; font-weight:800; letter-spacing:.03em; white-space:nowrap; box-shadow:0 6px 14px -6px rgba(225,29,72,.7); }
.cy-tl { margin-top:30px; }
/* entregues */
.cy-ent-cab { display:flex; align-items:baseline; gap:10px; margin:22px 0 8px; padding-top:14px; border-top:1px solid #EEF1F5; }
.cy-ent-cab span { font-size:13px; font-weight:800; color:var(--navy); }
.cy-ent-cab small { font-size:11.5px; color:var(--cinza2); }
.cy-ent { display:flex; flex-direction:column; gap:4px; }
.cy-er { display:grid; grid-template-columns:200px minmax(0,1fr) 190px; align-items:center; gap:14px; padding:5px 8px; margin:0 -8px; border-radius:10px; color:inherit; text-decoration:none; }
.cy-er:hover { background:var(--mod-soft); }
.cy-eb { position:relative; height:12px; border-radius:6px; background:#F1F5F9; }
.cy-eb > i { position:absolute; top:0; bottom:0; }
.cy-eb-bar { left:0; border-radius:6px; background:var(--mod); transform-origin:left; animation:cyCresce .8s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i) * 80ms + .2s); }
.cy-eb-bar.cy-info { background:var(--mod-2); } .cy-eb-bar.cy-warn { background:#F59E0B; }
.cy-eb-pr { background:repeating-linear-gradient(135deg,rgba(var(--mod-rgb),.25) 0 3px,transparent 3px 6px); }
.cy-eb-pz { width:2px; top:-3px !important; bottom:-3px !important; background:#0F1B2E; z-index:2; }
.cy-et { font-size:12.5px; color:var(--cinza); display:flex; align-items:baseline; gap:6px; white-space:nowrap; }
.cy-et b { font-size:15px; color:var(--navy); }
.cy-et small { font-weight:800; } .cy-et small.cy-ok { color:var(--mod); } .cy-et small.cy-info { color:var(--mod-2); } .cy-et small.cy-warn { color:#B45309; }
@keyframes cyCresce { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes cyPop { from { transform:scale(0); } to { transform:scale(1); } }
@keyframes cySobe { from { opacity:0; transform:translateY(6px); } to { opacity:1; } }
@keyframes cyAnel { to { stroke-dashoffset:var(--off); } }
@keyframes cyPulso { 0% { box-shadow:0 0 0 0 rgba(225,29,72,.55); } 100% { box-shadow:0 0 0 14px rgba(225,29,72,0); } }
@keyframes cyBrilho { 0% { transform:translateX(-100%); } 60%,100% { transform:translateX(100%); } }
.cy-lb.meio { animation-name:cyLbMeio; } .cy-lb.fim { animation-name:cyLbFim; }
@keyframes cyLbMeio { from { opacity:0; } to { opacity:1; } }
@keyframes cyLbFim { from { opacity:0; } to { opacity:1; } }
@media (max-width:760px) { .cy-row, .cy-er { grid-template-columns:1fr; } .cy-cab { display:none; } .cy-hoje-g { display:none; } }
@media (prefers-reduced-motion: reduce) { .cy *, .cy *::before, .cy *::after { animation:none !important; } .cy-anel-v { stroke-dashoffset:var(--off); } }

/* Ciclo: os cartões ocupam toda a largura (dividem o espaço entre si) e o nome não é cortado */
.cy .cy-cards { grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }
.cy-card-top b { white-space:normal; overflow:visible; text-overflow:clip; line-height:1.2; }

/* Ciclo urbanístico · entregues: cartões de obra concluída (ocupam a largura toda) */
.cy-ent { display:grid !important; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; }
.cy-ec { display:flex; flex-direction:column; gap:8px; padding:14px 16px; border-radius:16px; background:#fff; border:1px solid #E2E8F0; color:inherit; text-decoration:none;
  animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i) * 70ms + .2s); transition:transform .18s, box-shadow .18s; }
.cy-ec:hover { transform:translateY(-3px); box-shadow:0 14px 28px -18px rgba(15,27,46,.35); }
.cy-ec-top { display:flex; align-items:center; gap:8px; min-width:0; }
.cy-ec-top b { flex:1; font-size:13.5px; font-weight:800; color:var(--navy); line-height:1.2; }
.cy-ec-ok { flex:none; width:22px; height:22px; border-radius:50%; display:grid; place-items:center; color:#fff; background:var(--mod); }
.cy-ec-tvo { font-size:11.5px; color:var(--cinza); }
.cy-ec-tvo b { color:#334155; font-weight:700; }
.cy-ec-num { display:flex; align-items:center; gap:10px; }
.cy-ec-num > b { font-size:30px; font-weight:800; color:var(--navy); letter-spacing:-.02em; line-height:1; }
.cy-ec-num span { display:flex; flex-direction:column; font-size:11.5px; color:var(--cinza); line-height:1.3; }
.cy-ec-num small { font-size:11px; color:#94A3B8; }
.cy-ec-res { align-self:flex-start; padding:2px 10px; border-radius:999px; font-size:11.5px; font-weight:800; background:rgba(var(--mod-rgb),.12); color:var(--mod); }
.cy-ec.cy-info .cy-ec-res { background:rgba(var(--mod-rgb),.08); color:#475569; }
.cy-ec.cy-warn .cy-ec-res { background:#FEF3C7; color:#B45309; }
.cy-ec.cy-neutral .cy-ec-res { background:#F1F5F9; color:#64748B; }

/* Visão geral de Obrigações · mesmos traços do Ciclo urbanístico nos quadros de baixo:
   cartões com faixa de cor, barras encorpadas que crescem ao abrir, logos e anéis de progresso. */
/* Pendências: blocos no estilo dos cartões do ciclo */
.pd-card .pd-ks { gap:12px !important; }
.pd-card .pd-k { position:relative; overflow:hidden; border-radius:16px !important; border:1px solid #E2E8F0 !important; background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,#fff),#fff 70%) !important;
  padding:14px 14px 14px 18px !important; animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; transition:transform .18s, box-shadow .18s; }
.pd-card .pd-k:nth-child(2) { animation-delay:.07s; } .pd-card .pd-k:nth-child(3) { animation-delay:.14s; } .pd-card .pd-k:nth-child(4) { animation-delay:.21s; }
.pd-card .pd-k::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--c); }
.pd-card .pd-k:hover { transform:translateY(-3px); box-shadow:0 14px 28px -18px color-mix(in srgb,var(--c) 70%,transparent); }
.pd-card .pd-k b { font-size:34px !important; letter-spacing:-.02em; }
.pd-card .pd-k.zero { opacity:.75; }
/* vencidas por tipo: barras grossas, arredondadas, crescendo em sequência */
.pd-tipos a { animation:cySobe .4s both; animation-delay:calc(var(--i, 0) * 60ms + .2s); }
.pd-tipos .pd-tb { height:12px !important; border-radius:7px !important; background:#F1F5F9 !important; }
.pd-tipos .pd-tb i { height:100% !important; border-radius:7px !important; background:linear-gradient(90deg,var(--mod),var(--mod-2)) !important; transform-origin:left; animation:cyCresce .8s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 60ms + .3s); }
.pd-tipos b { font-size:15px !important; }
/* todas as obrigações: barra segmentada mais alta, com respiro entre as partes */
.pd-card .pd-ctx { height:16px !important; gap:3px !important; border-radius:9px; overflow:hidden; background:transparent !important; }
.pd-card .pd-ctx i { border-radius:4px; transform-origin:left; animation:cyCresce .9s cubic-bezier(.2,.8,.2,1) both; animation-delay:.4s; }
.pd-card .pd-ctx i:first-child { border-radius:9px 4px 4px 9px; } .pd-card .pd-ctx i:last-child { border-radius:4px 9px 9px 4px; }
/* prazos por empreendimento: logo, barra empilhada encorpada, número em destaque */
.og-barras-v2 .og-bl { grid-template-columns:230px minmax(0,1fr) 44px !important; padding:6px 8px !important; margin:0 -8px; border-radius:12px; animation:cySobe .4s both; animation-delay:calc(var(--i, 0) * 60ms); }
.og-barras-v2 .og-bl:hover { background:var(--mod-soft); }
.og-nome-logo { display:flex !important; align-items:center; gap:10px; min-width:0; }
.og-nome-logo b { font-size:13.5px; font-weight:700; color:var(--navy); line-height:1.25; }
.og-barras-v2 .og-trk { height:16px !important; gap:3px; border-radius:9px; background:transparent !important; overflow:hidden; transform-origin:left; animation:cyCresce .9s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 70ms + .15s); }
.og-barras-v2 .og-trk i { border-radius:4px; }
.og-barras-v2 .og-trk i:first-child { border-radius:9px 4px 4px 9px; } .og-barras-v2 .og-trk i:last-child { border-radius:4px 9px 9px 4px; } .og-barras-v2 .og-trk i:only-child { border-radius:9px; }
.og-barras-v2 .og-bl > b { font-size:16px; font-weight:800; color:var(--navy); text-align:right; }
/* TCRA: logo, dois anéis (prazo decorrido e obrigações cumpridas) e a situação */
.og-tcra-v2 .og-tl { display:grid !important; grid-template-columns:minmax(0,1fr) auto 118px; align-items:center; gap:14px; padding:8px 8px !important; margin:0 -8px; border-radius:12px; animation:cySobe .4s both; animation-delay:calc(var(--i, 0) * 60ms); }
.og-tcra-v2 .og-tl:hover { background:var(--mod-soft); }
.og-tcra-v2 .og-nome-logo > span { display:flex; flex-direction:column; min-width:0; }
.og-tcra-v2 .og-nome-logo small { font-size:11px; color:var(--cinza2); margin-top:2px; }
.og-tcra-v2 .og-tl > .pill { justify-self:end; }
.og-aneis { display:flex; gap:14px; }
.og-anel { position:relative; display:grid; justify-items:center; width:52px; }
.og-anel svg { width:44px; height:44px; }
.og-anel .f { fill:none; stroke:rgba(var(--mod-rgb),.13); stroke-width:5; }
.og-anel .v { fill:none; stroke:var(--mod); stroke-width:5; stroke-linecap:round; stroke-dashoffset:var(--c2); animation:cyAnel 1.1s .25s cubic-bezier(.2,.8,.2,1) forwards; }
.og-anel-p .v { stroke:rgba(var(--mod-rgb),.55); }
.og-anel-a .v { stroke:#E11D48; }
.og-anel b { position:absolute; top:13px; left:0; right:0; text-align:center; font-size:11px; font-weight:800; color:var(--navy); }
.og-anel small { font-size:9.5px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:#94A3B8; margin-top:2px; }
@media (max-width:760px) { .og-barras-v2 .og-bl { grid-template-columns:1fr 40px !important; } .og-barras-v2 .og-bl .og-nome { grid-column:1 / -1; } .og-tcra-v2 .og-tl { grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce) { .pd-card *, .og-barras-v2 *, .og-tcra-v2 * { animation:none !important; } .og-anel .v { stroke-dashoffset:var(--off); } }

/* busca da visão geral de Obrigações: logo abaixo dos indicadores, em destaque */
.ob-q.ob-q-dest { position:relative; margin:6px 0 24px !important; }
.ob-q.ob-q-dest input { height:54px !important; padding:0 18px 0 52px !important; font-size:15px !important; border-radius:16px !important; border:1.5px solid rgba(var(--mod-rgb),.35) !important; background:linear-gradient(180deg,#fff,var(--mod-soft)) !important; box-shadow:0 10px 24px -16px rgba(var(--mod-rgb),.6); transition:border-color .15s, box-shadow .15s; }
.ob-q.ob-q-dest input:focus { outline:none; border-color:var(--mod) !important; box-shadow:0 0 0 4px rgba(var(--mod-rgb),.15), 0 10px 24px -16px rgba(var(--mod-rgb),.6); }
.ob-q.ob-q-dest input::placeholder { color:#64748B; }
.ob-q-ic { position:absolute; left:18px; top:50%; width:22px; height:22px; transform:translateY(-50%); color:var(--mod); pointer-events:none; }

/* ajustes: TCRA com logo ao lado do nome (linha baixa) e Pendências começando no topo do quadro */
.og-tcra-v2 .og-nome.og-nome-logo, .og-barras-v2 .og-nome.og-nome-logo { flex-direction:row !important; align-items:center !important; text-align:left !important; white-space:normal; }
.og-tcra-v2 .og-nome-logo > span { align-items:flex-start; }
.og-tcra-v2 .og-nome-logo b { font-size:13.5px; font-weight:700; color:var(--navy); }
.og-tcra-v2 .og-tl { padding:6px 8px !important; min-height:0; }
.og-tcra-v2 .og-anel svg { width:40px; height:40px; }
.og-tcra-v2 .og-anel b { top:12px; }
.og-grid > .pd-card, .pd-card { justify-content:flex-start !important; }

/* ajustes 2: na visão de Obrigações os quadros lado a lado não centralizam o conteúdo (sem espaço ocioso no topo);
   Pendências distribui a lista para ocupar a altura; anéis do TCRA maiores */
.og-grid > .card > .tt + * { margin-top:0 !important; }
.og-grid > .card > :last-child:not(.tt) { margin-bottom:0 !important; }
.pd-card .pd-tipos { flex:1 1 auto; display:flex; flex-direction:column; justify-content:space-around; }
.pd-card .pd-tipos a { padding-top:10px !important; padding-bottom:10px !important; }
.og-tcra-v2 .og-tl { grid-template-columns:minmax(0,1fr) auto 124px !important; }
.og-tcra-v2 .og-aneis { gap:18px; }
.og-tcra-v2 .og-anel { width:62px; }
.og-tcra-v2 .og-anel svg { width:56px !important; height:56px !important; }
.og-tcra-v2 .og-anel .f, .og-tcra-v2 .og-anel .v { stroke-width:4.5; }
.og-tcra-v2 .og-anel b { top:19px !important; font-size:13.5px !important; }
.og-tcra-v2 .og-anel small { font-size:10px; }

/* coluna Documento: conteúdo e botão "+ Documento" alinhados à esquerda, junto do título da coluna */
table.ob-qt tbody td.ob-docc.ob-docc { text-align:left !important; }
.ob-qt td.ob-docc .ob-adddoc { display:inline-flex; align-items:center; margin:0 !important; float:none !important; color:var(--mod); border-style:dashed; border-color:rgba(var(--mod-rgb),.45); background:transparent; }
.ob-qt td.ob-docc .ob-adddoc:hover { background:var(--mod-soft); }

/* prazo que vence hoje: cheio na cor do módulo (vermelho fica só para o vencido) */
.ob-dt.hoje { background:var(--mod); color:#fff; box-shadow:0 6px 14px -8px rgba(var(--mod-rgb),.9); } .ob-dt.hoje small { color:rgba(255,255,255,.9); }
.ob-qt tr.ob-st-hoje td:first-child { box-shadow:inset 4px 0 0 var(--mod); }

/* Painel do empreendimento (Obrigações) no padrão da visão geral: cartões com faixa de cor e entrada animada,
   anéis de progresso, barras encorpadas que crescem. Tons do módulo; âmbar/vermelho só para alerta. */
/* identificação: cada dado num cartão */
.ob-emp-v2 .ob-ident { background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.ob-emp-v2 .ob-id-g { display:grid !important; grid-template-columns:minmax(0,1.6fr) repeat(5,minmax(0,1fr)) !important; gap:12px !important; }
.ob-emp-v2 .ob-id-i { position:relative; overflow:hidden; border:1px solid rgba(var(--mod-rgb),.16) !important; border-radius:16px !important; background:linear-gradient(160deg,var(--mod-soft),#fff 72%) !important;
  padding:14px 14px 14px 18px !important; align-items:center !important; animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; transition:transform .18s, box-shadow .18s; }
.ob-emp-v2 .ob-id-i::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mod); }
.ob-emp-v2 .ob-id-i:hover { transform:translateY(-3px); box-shadow:0 14px 28px -18px rgba(var(--mod-rgb),.6); }
.ob-emp-v2 .ob-id-i:nth-child(2) { animation-delay:.05s; } .ob-emp-v2 .ob-id-i:nth-child(3) { animation-delay:.1s; } .ob-emp-v2 .ob-id-i:nth-child(4) { animation-delay:.15s; }
.ob-emp-v2 .ob-id-i:nth-child(5) { animation-delay:.2s; } .ob-emp-v2 .ob-id-i:nth-child(6) { animation-delay:.25s; }
.ob-emp-v2 .ob-id-ic { width:42px !important; height:42px !important; border-radius:12px !important; background:var(--mod) !important; color:#fff !important; box-shadow:0 8px 16px -10px rgba(var(--mod-rgb),.9); }
.ob-emp-v2 .ob-id-tx b { font-size:21px !important; color:var(--navy) !important; letter-spacing:-.01em; }
@media (max-width:1400px) { .ob-emp-v2 .ob-id-g { grid-template-columns:repeat(3,minmax(0,1fr)) !important; } }
@media (max-width:700px) { .ob-emp-v2 .ob-id-g { grid-template-columns:1fr 1fr !important; } }

/* indicadores: cartões com faixa, número grande e anel */
.ek-g { display:grid; grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)) minmax(0,1.3fr) minmax(0,1.2fr); gap:12px; margin:4px 0 16px; }
.ek { --c:var(--mod); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:16px 16px 16px 20px; border-radius:16px;
  border:1px solid #E2E8F0; background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,#fff),#fff 72%); color:inherit; text-decoration:none;
  animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 60ms); transition:transform .18s, box-shadow .18s; }
.ek::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--c); }
.ek:hover { transform:translateY(-3px); box-shadow:0 14px 28px -18px color-mix(in srgb,var(--c) 70%,transparent); }
.ek-tx { display:flex; flex-direction:column; min-width:0; }
.ek-tx b { font-size:32px; font-weight:800; line-height:1.05; letter-spacing:-.02em; color:var(--c); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ek-rot { margin-top:6px; font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--navy); }
.ek-tx small { margin-top:3px; font-size:12px; color:var(--cinza); line-height:1.3; }
.ek-mod2 { --c:color-mix(in srgb,var(--mod) 65%,#0F1B2E); }
.ek-warn { --c:#D97706; } .ek-crit { --c:#E11D48; }
.ek-zero { --c:#94A3B8; } .ek-zero .ek-tx b { color:#94A3B8; }
.ek-mod .ek-tx b, .ek-com-anel .ek-tx b { font-size:24px; }
.ek-hero { background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 80%,#0F1B2E),var(--mod)); border:0; color:#fff; }
.ek-hero::before { background:rgba(255,255,255,.5); }
.ek-hero .ek-tx b { font-size:40px !important; color:#fff; } .ek-hero .ek-rot { color:#fff; } .ek-hero .ek-tx small { color:rgba(255,255,255,.85); }
.ek-anel { width:58px; height:58px; flex:none; }
.ek-f { fill:none; stroke:color-mix(in srgb,var(--c) 15%,transparent); stroke-width:6; }
.ek-v { fill:none; stroke:var(--c); stroke-width:6; stroke-linecap:round; stroke-dashoffset:var(--c2); animation:cyAnel 1.2s .25s cubic-bezier(.2,.8,.2,1) forwards; }
.ek-anel text { font-size:12.5px; font-weight:800; fill:var(--navy); }
.ek-hero .ek-f { stroke:rgba(255,255,255,.25); } .ek-hero .ek-v { stroke:#fff; } .ek-hero .ek-anel text { fill:#fff; }
@media (max-width:1400px) { .ek-g { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:700px) { .ek-g { grid-template-columns:1fr 1fr; } .ek-anel { width:46px; height:46px; } }

/* gráficos: quadros no tom do módulo, barras encorpadas crescendo em sequência */
.ob-emp-v2 .ob-graf > .card { border-radius:18px !important; background:linear-gradient(170deg,var(--mod-soft),#fff 40%) !important; border:1px solid rgba(var(--mod-rgb),.14) !important; animation:cySobe .5s .2s cubic-bezier(.2,.8,.2,1) both; }
.ob-emp-v2 .ob-gb-l { animation:cySobe .4s both; animation-delay:calc(var(--i, 0) * 80ms + .3s); }
.ob-emp-v2 .ob-gb-trk { height:24px !important; border-radius:12px !important; background:#EEF2F6 !important; }
.ob-emp-v2 .ob-gb-trk > span { gap:3px !important; transform-origin:left; animation:cyCresce .9s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 80ms + .4s); }
.ob-emp-v2 .ob-gb-trk i { border-radius:5px; }
.ob-emp-v2 .ob-gb-trk i:first-child { border-radius:12px 5px 5px 12px; } .ob-emp-v2 .ob-gb-trk i:last-child { border-radius:5px 12px 12px 5px; } .ob-emp-v2 .ob-gb-trk i:only-child { border-radius:12px; }
.ob-emp-v2 .ob-gb-l > b { font-size:17px; color:var(--navy); }
.ob-emp-v2 .ob-gb-leg i { border-radius:50%; }
.ob-emp-v2 .donut-wrap { animation:cyPop .7s .3s cubic-bezier(.2,.8,.2,1) both; }
.ob-emp-v2 .vg-lg .lg-row { animation:cySobe .4s both; } .ob-emp-v2 .vg-lg .lg-row:nth-child(2) { animation-delay:.08s; } .ob-emp-v2 .vg-lg .lg-row:nth-child(3) { animation-delay:.16s; } .ob-emp-v2 .vg-lg .lg-row:nth-child(4) { animation-delay:.24s; }
.ob-emp-v2 .vg-lg .lg-dot { width:12px !important; height:12px !important; }
@media (prefers-reduced-motion: reduce) { .ob-emp-v2 *, .ek-g * , .ek { animation:none !important; } .ek-v { stroke-dashoffset:var(--off); } }

/* Empreendimento: identificação e linha do tempo num quadro só, com faixa de destaque na cor do módulo */
.ob-he { position:relative; margin:0 0 22px; border-radius:20px; background:#fff; border:1px solid rgba(var(--mod-rgb),.18); box-shadow:0 22px 44px -30px rgba(var(--mod-rgb),.75); overflow:hidden; animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; }
.ob-he-top { position:relative; display:flex; align-items:center; gap:16px; padding:20px 24px; color:#fff; overflow:hidden;
  background:radial-gradient(120% 160% at 100% 0%,rgba(255,255,255,.16),transparent 55%),linear-gradient(120deg,color-mix(in srgb,var(--mod) 72%,#0F1B2E),var(--mod)); }
.ob-he-top::after { content:""; position:absolute; inset:0; background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.14) 50%,transparent 70%); transform:translateX(-100%); animation:cyBrilho 3.2s 1s ease-in-out 1 both; pointer-events:none; }
.ob-he-top .logo-emp, .ob-he-top .logo-eyebrow { flex:none; width:58px !important; height:58px !important; max-height:none !important; border-radius:14px; background:#fff; padding:6px; box-sizing:border-box; object-fit:contain; box-shadow:0 8px 18px -10px rgba(0,0,0,.45); }
.ob-he-top .tv-ini { display:grid; place-items:center; color:var(--mod); font-weight:800; font-size:18px; }
.ob-he-nm { display:flex; flex-direction:column; min-width:0; flex:1; }
.ob-he-nm b { font-size:24px; font-weight:800; letter-spacing:-.02em; line-height:1.15; color:#fff; }
.ob-he-nm small { margin-top:4px; font-size:13px; color:rgba(255,255,255,.85); }
.ob-he-fase { flex:none; padding:5px 12px; border-radius:999px; font-size:12px; font-weight:800; background:rgba(255,255,255,.18); color:#fff; border:1px solid rgba(255,255,255,.35); }
.ob-he-fase.ok::before { content:"✓ "; }
.ob-he-btns { display:flex; gap:8px; flex:none; }
.ob-he-btns .btn-min { background:rgba(255,255,255,.14); color:#fff; border-color:rgba(255,255,255,.4); }
.ob-he-btns .btn-min:hover { background:rgba(255,255,255,.26); }
.ob-he > .ob-ident { padding:18px 20px 6px !important; margin:0 !important; }
.ob-emp-v2 .ob-he .ob-id-i { background:linear-gradient(160deg,var(--mod-soft),#fff 75%) !important; }
.ob-he-lt { padding:4px 8px 6px; }
.ob-he-lt > .lt { margin:0 !important; border:0 !important; box-shadow:none !important; background:transparent !important; border-top:1px dashed rgba(var(--mod-rgb),.25) !important; border-radius:0 !important; }
@media (max-width:760px) { .ob-he-top { flex-wrap:wrap; } .ob-he-btns { width:100%; } .ob-he-nm b { font-size:20px; } }
@media (prefers-reduced-motion: reduce) { .ob-he, .ob-he-top::after { animation:none !important; } }

/* Obrigações · lista de empreendimentos: cartões compactos em grade (logo, nome, dados e situação), levam ao painel */
.ob-el { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:14px; }
.ob-el-c { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:14px; padding:16px 16px 14px 20px; border-radius:18px; text-decoration:none; color:inherit;
  background:linear-gradient(160deg,var(--mod-soft),#fff 70%); border:1px solid rgba(var(--mod-rgb),.16);
  animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i, 0) * 50ms); transition:transform .18s, box-shadow .18s; }
.ob-el-c::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mod); }
.ob-el-c.crit::before { background:#E11D48; }
.ob-el-c:hover { transform:translateY(-3px); box-shadow:0 16px 30px -18px rgba(var(--mod-rgb),.65); }
.ob-el-top { display:flex; align-items:center; gap:12px; min-width:0; }
.ob-el-logo { flex:none; width:56px; height:56px; border-radius:14px; background:#fff; border:1px solid #E2E8F0; display:grid; place-items:center; overflow:hidden; }
.ob-el-logo img, .ob-el-logo .logo-lista { max-width:46px !important; max-height:46px !important; width:auto !important; height:auto !important; object-fit:contain; border:0 !important; margin:0 !important; }
.ob-el-ini { font-weight:800; font-size:17px; color:var(--mod); }
.ob-el-nm { display:flex; flex-direction:column; min-width:0; }
.ob-el-nm b { font-size:16px; font-weight:800; color:var(--navy); line-height:1.2; }
.ob-el-nm small { margin-top:3px; font-size:12.5px; color:var(--cinza); }
.ob-el-pe { display:flex; align-items:center; flex-wrap:wrap; gap:6px; font-size:11.5px; }
.ob-el-st, .ob-el-k, .ob-el-ab { padding:3px 10px; border-radius:999px; font-weight:700; white-space:nowrap; }
.ob-el-st { background:rgba(var(--mod-rgb),.12); color:var(--mod); }
.ob-el-ab { margin-left:auto; color:var(--cinza); background:#F1F5F9; }
.ob-el-k { background:#F1F5F9; color:#475569; } .ob-el-k b { font-weight:800; }
.ob-el-k.crit { background:#FFE4E6; color:#BE123C; }
.ob-el-k.hoje, .ob-el-k.ok { background:rgba(var(--mod-rgb),.12); color:var(--mod); }
.ob-el-k.warn { background:#FEF3C7; color:#B45309; }
.ob-el-k.info { background:#E0F2FE; color:#0369A1; }
@media (prefers-reduced-motion: reduce) { .ob-el-c { animation:none !important; } }

/* identificação e linha do tempo sem a faixa com o nome (já está no topo da página): destaque por um filete na cor do módulo */
.ob-he { border-top:4px solid var(--mod) !important; }
.ob-he > .ob-ident { padding-top:20px !important; }

/* Plataforma toda: quadros "flutuantes" no padrão do painel de Obrigações — fundo com degradê suave na cor do módulo
   (vem do --mod de cada módulo; as cores dos módulos não mudam), borda no mesmo tom e sombra colorida por baixo.
   Quadro dentro de quadro fica liso; na impressão, sem sombra nem degradê. */
@media screen {
  main .card { background:linear-gradient(170deg,rgba(var(--mod-rgb),.075),#fff 42%); border:1px solid rgba(var(--mod-rgb),.15); border-radius:18px;
    box-shadow:0 22px 44px -30px rgba(var(--mod-rgb),.7), 0 2px 6px -3px rgba(15,27,46,.08); }
  main .card .card { background:#fff; box-shadow:none; border-color:rgba(var(--mod-rgb),.12); }
  main a.card { transition:transform .18s, box-shadow .18s; }
  main a.card:hover { transform:translateY(-3px); box-shadow:0 26px 48px -28px rgba(var(--mod-rgb),.8), 0 2px 6px -3px rgba(15,27,46,.08); }
}

/* Plataforma toda (2): os indicadores e blocos soltos que não são "card" (bigstat, KPIs, tiles de cada módulo)
   também flutuam com o degradê na cor do módulo — só quando não estão dentro de outro quadro; destaques escuros ficam como estão. */
@media screen {
  main :is(.bigstat, .rk-k, .ai-met-k, .vg-tile, .tc-kpi, .ap-k, .disp-tile, .og-k, .cr-k, .cd-k, .fin-tile, .stat-tile, .proc-stat, .kpi, .par-box, .efd-bloco, .sit-card):not(.card *):not(.rk-k-forte):not(.og-hero):not(.bigstat-total):not(.tc-kpi-valor):not(.kpi.solido):not(.hg-kpis *) {
    background:linear-gradient(165deg,rgba(var(--mod-rgb),.09),#fff 62%) !important; border:1px solid rgba(var(--mod-rgb),.16) !important; border-radius:16px !important;
    box-shadow:0 18px 36px -26px rgba(var(--mod-rgb),.7), 0 2px 6px -3px rgba(15,27,46,.07) !important; transition:transform .18s, box-shadow .18s; }
  main :is(.bigstat, .rk-k, .ai-met-k, .vg-tile, .tc-kpi, .ap-k, .disp-tile, .og-k, .cr-k, .cd-k, .fin-tile, .stat-tile, .proc-stat, .kpi, .par-box, .sit-card):not(.card *):hover { transform:translateY(-2px); }
  /* quadros com classe própria que pintavam o fundo de branco */
  main .card:is(.jud-card, .vg-card, .og-card, .acao-card, .pg-card, .par-card, .so-card, .ru-card, .ob-tbl-card, .cx-card):not(.card *) {
    background:linear-gradient(170deg,rgba(var(--mod-rgb),.075),#fff 42%) !important; border:1px solid rgba(var(--mod-rgb),.15) !important;
    box-shadow:0 22px 44px -30px rgba(var(--mod-rgb),.7), 0 2px 6px -3px rgba(15,27,46,.08) !important; }
}

/* Contencioso · panorama: no padrão flutuante da plataforma (claro, degradê na cor do módulo, sombra colorida);
   cada seção num cartão branco com a faixa na cor da seção */
@media screen {
  .hero-big.hg-banner { background:linear-gradient(120deg,rgba(var(--mod-rgb),.12),#fff 55%) !important; color:var(--navy) !important; border:1px solid rgba(var(--mod-rgb),.18);
    box-shadow:0 26px 50px -32px rgba(var(--mod-rgb),.75), 0 2px 6px -3px rgba(15,27,46,.08) !important; position:relative; overflow:hidden; }
  .hero-big.hg-banner::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--mod); }
  .hg-banner .eb { color:var(--mod) !important; opacity:1 !important; }
  .hg-banner .huge { color:var(--mod) !important; }
  .hg-banner .hsub { color:var(--cinza) !important; opacity:1 !important; }
  .hg-banner .hg-sec { position:relative; overflow:hidden; background:#fff !important; border:1px solid rgba(var(--mod-rgb),.14) !important; color:var(--navy) !important; padding:16px 16px 16px 20px !important;
    box-shadow:0 16px 32px -24px rgba(var(--mod-rgb),.7); transition:transform .18s, box-shadow .18s; animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; }
  .hg-banner .hg-sec:nth-child(2) { animation-delay:.07s; } .hg-banner .hg-sec:nth-child(3) { animation-delay:.14s; }
  .hg-banner .hg-sec::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mod); }
  .hg-banner .hg-sec:nth-child(2)::before { background:color-mix(in srgb,var(--mod) 60%,#fff); } .hg-banner .hg-sec:nth-child(3)::before { background:color-mix(in srgb,var(--mod) 32%,#fff); }
  .hg-banner .hg-sec:hover { transform:translateY(-3px); background:#fff !important; box-shadow:0 20px 36px -22px rgba(var(--mod-rgb),.8); }
  .hg-banner .hg-sec b { color:var(--navy) !important; }
  .hg-banner .hg-sec small { color:var(--cinza) !important; opacity:1 !important; }
}

/* Contencioso · onde estão os processos: cabeçalho de cada seção em destaque (cartão no tom da seção, número grande) */
.hg-onde .hg-oc-cab { position:relative; overflow:hidden; padding:14px 16px 14px 20px !important; margin-bottom:12px !important; border:1px solid color-mix(in srgb,var(--c) 22%,#fff) !important; border-radius:14px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--c) 16%,#fff),#fff 80%); box-shadow:0 14px 28px -22px var(--c); transition:transform .18s, box-shadow .18s; }
.hg-onde .hg-oc-cab::before { content:""; position:absolute; left:0; top:0; bottom:0; width:5px; background:var(--c); }
.hg-onde .hg-oc-cab:hover { transform:translateY(-2px); box-shadow:0 18px 32px -20px var(--c); }
.hg-onde .hg-oc-cab span { font-size:15px !important; font-weight:800 !important; color:var(--navy); text-transform:uppercase; letter-spacing:.04em; }
.hg-onde .hg-oc-cab span .hg-dot { display:none; }
.hg-onde .hg-oc-cab b { font-size:30px !important; color:var(--navy); letter-spacing:-.02em; }

/* Contencioso · panorama no mesmo padrão dos indicadores de Contratos: total num cartão cheio na cor do módulo
   e, ao lado, um cartão flutuante por seção (os números que formam o total) */
@media screen {
  .hero-big.hg-banner { display:grid !important; grid-template-columns:minmax(0,1.35fr) minmax(0,3fr) !important; gap:14px !important; align-items:stretch !important;
    padding:0 !important; background:transparent !important; border:0 !important; box-shadow:none !important; border-radius:0 !important; overflow:visible !important; }
  .hero-big.hg-banner::before { display:none !important; }
  .hg-banner .hg-ban-tot { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center; padding:20px 22px; border-radius:18px; color:#fff;
    background:linear-gradient(135deg,color-mix(in srgb,var(--mod) 55%,#06101F) 0%,var(--mod) 70%,var(--mod-2) 140%); box-shadow:0 22px 40px -26px rgba(var(--mod-rgb),.9); animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; }
  .hg-banner .hg-ban-tot .eb { order:2; margin-top:8px; color:#fff !important; opacity:1 !important; font-size:12.5px; letter-spacing:.05em; }
  .hg-banner .hg-ban-tot .huge { order:1; margin:0 !important; color:#fff !important; font-size:clamp(30px,2.6vw,40px) !important; line-height:1.05 !important; }
  .hg-banner .hg-ban-tot .hsub { order:3; margin-top:4px; color:rgba(255,255,255,.85) !important; font-size:12.5px; }
  .hg-banner .hg-secs { gap:14px !important; height:100%; }
  .hg-banner .hg-sec { justify-content:center; border-radius:18px !important; padding:20px 22px 20px 24px !important;
    background:linear-gradient(165deg,rgba(var(--mod-rgb),.09),#fff 62%) !important; border:1px solid rgba(var(--mod-rgb),.16) !important; box-shadow:0 18px 36px -26px rgba(var(--mod-rgb),.7) !important; }
  .hg-banner .hg-sec::before { width:5px !important; }
  .hg-banner .hg-sec span { order:2; margin-top:8px; font-size:12.5px !important; font-weight:800 !important; text-transform:uppercase; letter-spacing:.05em; color:var(--navy); }
  .hg-banner .hg-sec b { order:1; font-size:clamp(26px,2.3vw,36px) !important; line-height:1.05 !important; color:var(--navy) !important; }
  .hg-banner .hg-sec small { order:3; margin-top:2px; }
  @media (max-width:1000px) { .hero-big.hg-banner { grid-template-columns:1fr !important; } }
}

/* Inadimplência · Acordos: quando todos estão na mesma situação, número em destaque em vez de uma barra solitária */
.jb-unica { display:flex; align-items:baseline; gap:10px; padding:10px 16px 12px 18px; margin-top:4px; border-radius:14px; position:relative; overflow:hidden;
  background:linear-gradient(120deg,rgba(var(--mod-rgb),.12),#fff 80%); border:1px solid rgba(var(--mod-rgb),.16); }
.jb-unica::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--mod); }
.jb-unica b { font-size:34px; font-weight:800; color:var(--mod); letter-spacing:-.02em; line-height:1; }
.jb-unica span { font-size:13.5px; font-weight:700; color:var(--navy); }

/* Inadimplência · evolução mês a mês: colunas empilhadas por empreendimento, crescendo ao abrir; mês sem relatório tracejado */
.evo-card { margin-top:14px; }
.evo-ctl { display:flex; flex-wrap:wrap; gap:10px 18px; justify-content:space-between; margin:4px 0 12px; }
.evo-chips { display:flex; flex-wrap:wrap; gap:6px; }
.evo-res { display:flex; flex-wrap:wrap; align-items:flex-end; gap:12px 28px; margin:0 0 14px; }
.evo-res > div { display:flex; flex-direction:column; }
.evo-res b { font-size:28px; font-weight:800; color:var(--navy); letter-spacing:-.02em; line-height:1.05; }
.evo-res small { font-size:12px; color:var(--cinza); margin-top:2px; }
.evo-var { font-size:16px; font-weight:800; color:var(--cinza); }
.evo-var.sobe { color:#BE123C; } .evo-var.desce { color:#0E9384; }
.evo-graf { display:grid; grid-template-columns:auto minmax(0,1fr); gap:10px; height:260px; }
.evo-eixo { display:flex; flex-direction:column; justify-content:space-between; padding-bottom:22px; font-size:11px; color:#94A3B8; text-align:right; }
.evo-eixo span { transform:translateY(50%); } .evo-eixo span:first-child { transform:translateY(-10%); }
.evo-area { position:relative; }
.evo-grade { position:absolute; inset:0 0 22px 0; display:flex; flex-direction:column-reverse; justify-content:space-between; pointer-events:none; }
.evo-grade i { display:block; border-top:1px solid #EEF2F6; } .evo-grade i:first-child { border-top-color:#CBD5E1; }
.evo-cols { position:relative; height:100%; display:flex; align-items:stretch; gap:6px; }
.evo-col { flex:1 1 0; min-width:0; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; padding-bottom:22px; position:relative; cursor:default; border-radius:8px; }
.evo-col:hover { background:rgba(var(--mod-rgb),.06); }
.evo-pilha { position:relative; width:min(34px,78%); display:flex; flex-direction:column; gap:2px; transform-origin:bottom; animation:evoSobe .8s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i) * 35ms); }
.evo-pilha i { display:block; min-height:2px; border-radius:2px; }
.evo-pilha i:first-of-type { border-radius:6px 6px 2px 2px; }
.evo-pilha em { position:absolute; bottom:100%; left:50%; transform:translateX(-50%); margin-bottom:4px; font-style:normal; font-size:11px; font-weight:800; color:var(--navy); white-space:nowrap; }
.evo-col.vazio::after { content:""; position:absolute; left:22%; right:22%; bottom:22px; height:38%; border:1.5px dashed #CBD5E1; border-bottom:0; border-radius:6px 6px 0 0; }
.evo-col.parcial .evo-pilha { opacity:.55; }
.evo-mes { position:absolute; bottom:2px; font-size:10.5px; color:#64748B; white-space:nowrap; }
.evo-leg { display:flex; flex-wrap:wrap; gap:6px 18px; margin-top:10px; font-size:12px; color:var(--cinza); }
.evo-leg span { display:inline-flex; align-items:center; gap:6px; }
.evo-leg i { width:12px; height:12px; border-radius:4px; display:inline-block; }
.evo-leg-vz i { border:1.5px dashed #CBD5E1; background:transparent; }
@keyframes evoSobe { from { transform:scaleY(0); } to { transform:scaleY(1); } }
@media (max-width:760px) { .evo-cols { gap:3px; } .evo-mes { font-size:9px; transform:rotate(-45deg); transform-origin:center; } }
@media (prefers-reduced-motion: reduce) { .evo-pilha { animation:none; } }

/* Inadimplência · evolução (v2): um indicador só — haste por empreendimento em cada mês (altura = valor em atraso,
   número em cima = inadimplentes) */
.evo-big b { font-size:28px; font-weight:800; color:var(--navy); letter-spacing:-.02em; line-height:1.05; }
.evo-big small { display:block; font-size:12px; color:var(--cinza); margin-top:2px; }
.evo-cmp { display:flex; flex-direction:column; gap:2px; padding-left:18px; border-left:1px solid #E2E8F0; }
.evo-cmp small { font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#94A3B8; }
.evo-cmp span { font-size:12.5px; color:var(--cinza); } .evo-cmp .evo-var { font-size:14px; }
.evo-hastes { height:100%; width:100%; display:flex; align-items:flex-end; justify-content:center; gap:4px; }
.evo-h { position:relative; flex:0 1 22px; min-width:8px; border-radius:6px 6px 2px 2px; background:var(--c); transform-origin:bottom; animation:evoSobe .8s cubic-bezier(.2,.8,.2,1) both; animation-delay:calc(var(--i) * 40ms); cursor:default; }
.evo-h:hover { filter:brightness(1.12); box-shadow:0 0 0 2px #fff, 0 0 0 4px var(--c); }
.evo-h em { position:absolute; bottom:100%; left:50%; transform:translateX(-50%); margin-bottom:3px; font-style:normal; font-size:10.5px; font-weight:800; color:var(--navy); white-space:nowrap; }
.evo-h.vazia { height:22%; background:transparent; border:1.5px dashed #CBD5E1; border-bottom:0; animation:none; }
.evo-col { padding-bottom:22px; }
.evo-leg-nota { color:#94A3B8; font-style:italic; }

/* Inadimplência · evolução (v3): altura = nº de inadimplentes; haste em duas partes — em cobrança (lisa) e no jurídico
   (listrada, em cima); rótulo com número e valor */
.evo-h { display:flex; flex-direction:column; flex:0 1 30px !important; background:transparent !important; border-radius:6px 6px 2px 2px; overflow:visible; }
.evo-h > i { display:block; min-height:2px; background:var(--c); }
.evo-h > i:first-of-type { border-radius:6px 6px 0 0; }
.evo-h > i:last-of-type { border-radius:0 0 2px 2px; }
.evo-h > i:only-of-type { border-radius:6px 6px 2px 2px; }
.evo-h > i.jur { background:repeating-linear-gradient(135deg,var(--c) 0 3px,color-mix(in srgb,var(--c) 35%,#fff) 3px 6px); }
.evo-h > i + i { margin-top:2px; }
.evo-h em { display:flex; flex-direction:column; align-items:center; line-height:1.05; }
.evo-h em b { font-size:11.5px; font-weight:800; color:var(--navy); }
.evo-h em small { font-size:9.5px; font-weight:600; color:#64748B; }
.evo-hastes { gap:8px !important; }
.evo-div { display:flex; flex-direction:column; gap:2px; margin-top:6px; font-size:12px; color:var(--cinza); }
.evo-div span { display:inline-flex; align-items:center; gap:6px; }
.evo-div i, .evo-l-c, .evo-l-j { display:inline-block; width:12px; height:12px; border-radius:3px; }
.evo-div i.c, .evo-l-c { background:#64748B; }
.evo-div i.j, .evo-l-j { background:repeating-linear-gradient(135deg,#64748B 0 3px,#CBD5E1 3px 6px); }
.evo-leg em { font-style:normal; color:#94A3B8; }
.evo-graf { height:300px !important; }

/* Inadimplência · tendência (reta dos meses com relatório): geral e por empreendimento; alta em vermelho, queda em verde */
.evo-tend { display:flex; flex-wrap:wrap; align-items:stretch; gap:10px; margin:0 0 16px; }
.evo-tend-tt { align-self:center; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; margin-right:4px; }
.evo-t { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:1px; min-width:170px; padding:10px 14px 10px 16px; border-radius:14px; background:#fff; border:1px solid #E2E8F0; box-shadow:0 10px 22px -18px rgba(15,27,46,.4); }
.evo-t::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:#94A3B8; }
.evo-t.alta::before { background:#E11D48; } .evo-t.queda::before { background:#0E9384; }
.evo-t.geral { background:linear-gradient(160deg,rgba(var(--mod-rgb),.1),#fff 70%); border-color:rgba(var(--mod-rgb),.2); }
.evo-t-rot { font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--navy); }
.evo-t b { display:flex; align-items:center; gap:6px; font-size:18px; font-weight:800; color:#475569; }
.evo-t b i { font-style:normal; font-size:20px; }
.evo-t.alta b { color:#BE123C; } .evo-t.queda b { color:#0E9384; }
.evo-t small { font-size:11.5px; color:var(--cinza); }
.evo-t-v.alta { color:#BE123C; } .evo-t-v.queda { color:#0E9384; }
.evo-t.poucos b { font-size:14px; color:#94A3B8; }
.evo-cols { position:relative; }
.evo-tline { position:absolute; left:0; right:0; top:0; bottom:22px; width:100%; height:calc(100% - 22px); pointer-events:none; overflow:visible; }
.evo-tline line { stroke:#64748B; stroke-width:2; stroke-dasharray:6 5; }
.evo-tline.alta line { stroke:#E11D48; } .evo-tline.queda line { stroke:#0E9384; }

/* Inadimplência · evolução (v4): linhas de tendência por empreendimento (na cor dele, tracejadas) e tabela de valores */
.evo-tlines { position:absolute; left:0; top:0; pointer-events:none; overflow:visible; z-index:2; }
.evo-tlines polyline { fill:none; stroke-width:2.5; stroke-dasharray:7 5; stroke-linecap:round; filter:drop-shadow(0 1px 0 #fff) drop-shadow(0 -1px 0 #fff); opacity:.95; animation:evoTl 1.2s .6s ease-out both; }
.evo-tlines text { font-size:18px; font-weight:800; }
.evo-tlines text.t-alta { fill:#E11D48; } .evo-tlines text.t-queda { fill:#0E9384; } .evo-tlines text.t-estavel { fill:#64748B; }
@keyframes evoTl { from { opacity:0; } to { opacity:.95; } }
.evo-l-t { width:18px !important; height:0 !important; border-top:2.5px dashed #475569; border-radius:0 !important; background:none !important; }
.evo-h em b { font-size:12px; }
.evo-h.vazia { height:10% !important; border-width:1px !important; opacity:.7; }
.evo-hastes { gap:6px !important; }
.evo-h { flex-basis:34px !important; }
.evo-tab-w { overflow-x:auto; margin-top:14px; border-top:1px solid #EEF2F6; padding-top:10px; }
.evo-tab { width:100%; border-collapse:collapse; font-size:12px; font-variant-numeric:tabular-nums; }
.evo-tab th { font-size:10.5px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#94A3B8; text-align:right; padding:4px 8px; white-space:nowrap; }
.evo-tab th:first-child, .evo-tab td:first-child { text-align:left; }
.evo-tab td { padding:6px 8px; text-align:right; color:var(--navy); border-top:1px solid #F1F5F9; white-space:nowrap; }
.evo-tab td:first-child { font-weight:700; display:flex; align-items:center; gap:6px; }
.evo-tab td:first-child i { width:10px; height:10px; border-radius:3px; display:inline-block; }
.evo-tab td.vz { color:#CBD5E1; }
.evo-tab tr.tot td { font-weight:800; border-top:1.5px solid #E2E8F0; }
/* tabela de valores: primeira coluna sem flex (o flex tirava a linha Total do alinhamento) */
.evo-tab td:first-child { display:table-cell !important; }
.evo-tab td:first-child i { margin-right:6px; vertical-align:-1px; }

/* Inadimplência · evolução (v5): leitura — números por cima das linhas (com halo branco), linhas mais leves, nome do
   empreendimento no fim da linha, listra do jurídico mais escura, mês parcial sinalizado, tendência geral no resumo */
.evo-tlines polyline { stroke-width:2 !important; opacity:.6 !important; animation:evoTl6 1s .7s ease-out both !important; filter:none !important; }
@keyframes evoTl6 { from { opacity:0; } to { opacity:.6; } }
.evo-tlines text { animation:evoTx .5s .8s ease-out both; }
@keyframes evoTx { from { opacity:0; } to { opacity:1; } }
.evo-tlines text.t-n { font-size:12px; font-weight:800; fill:var(--navy); text-anchor:middle; paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; }
.evo-tlines text.t-nome { font-size:11.5px; font-weight:800; paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; }
.evo-h > i.jur { background:repeating-linear-gradient(135deg,var(--c) 0 3px,color-mix(in srgb,var(--c) 55%,#0F1B2E) 3px 6px) !important; }
.evo-l-j, .evo-div i.j { background:repeating-linear-gradient(135deg,#94A3B8 0 3px,#334155 3px 6px) !important; }
.evo-mes { display:flex; flex-direction:column; align-items:center; line-height:1.1; }
.evo-mes small { font-size:9px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#D97706; }
.evo-col { padding-bottom:30px !important; } .evo-grade, .evo-eixo { padding-bottom:30px; } .evo-grade { inset:0 0 30px 0 !important; }
.evo-res { align-items:stretch !important; }
.evo-res .evo-t.geral { margin-left:auto; }
.evo-tend { gap:8px !important; margin-bottom:14px !important; }
.evo-tend .evo-t { min-width:0; flex:1 1 180px; padding:8px 12px 8px 14px; }
.evo-tend .evo-t b { font-size:15px; } .evo-tend .evo-t b i { font-size:16px; }
.evo-tend-tt { flex-basis:100%; }

/* ===== Inadimplência · evolução (v6): gráfico de linhas animado, destaque principal da tela ===== */
.evo5 { padding:22px 24px 18px !important; position:relative; overflow:hidden; background:radial-gradient(120% 90% at 100% 0%,rgba(var(--mod-rgb),.12),transparent 55%),linear-gradient(170deg,rgba(var(--mod-rgb),.06),#fff 45%) !important; }
.evo5::before { content:""; position:absolute; left:0; top:0; right:0; height:4px; background:linear-gradient(90deg,#1E3A8A,#2563EB,#38BDF8); }
.evo5-top { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:12px 20px; margin-bottom:16px; }
.evo5-eb { font-size:11px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; color:var(--mod); }
.evo5-tit h3 { margin:2px 0 2px; font-size:24px; font-weight:800; letter-spacing:-.02em; color:var(--navy); }
.evo5-tit small { font-size:12.5px; color:var(--cinza); }
.evo-pills { display:flex; flex-wrap:wrap; gap:6px; padding:4px; border-radius:999px; background:#EEF2F8; }
.evo-pill { border:0; background:transparent; padding:7px 14px; border-radius:999px; font:inherit; font-size:12.5px; font-weight:700; color:#475569; cursor:pointer; transition:background .15s, color .15s, box-shadow .15s; }
.evo-pill:hover { color:var(--navy); }
.evo-pill.on { background:#fff; color:var(--mod); box-shadow:0 4px 12px -6px rgba(var(--mod-rgb),.6); }
.evo5-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) auto minmax(0,.9fr); gap:14px; margin-bottom:16px; }
.evo5-k { position:relative; overflow:hidden; display:flex; flex-direction:column; gap:3px; padding:14px 16px; border-radius:16px; background:#fff; border:1px solid rgba(var(--mod-rgb),.14); box-shadow:0 16px 32px -26px rgba(var(--mod-rgb),.8); animation:cySobe .5s cubic-bezier(.2,.8,.2,1) both; }
.evo5-k:nth-child(2) { animation-delay:.06s; } .evo5-k:nth-child(3) { animation-delay:.12s; } .evo5-k:nth-child(4) { animation-delay:.18s; }
.evo5-k > span { font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; }
.evo5-k > b { font-size:36px; font-weight:800; letter-spacing:-.03em; line-height:1.05; color:var(--navy); }
.evo5-k small { font-size:12px; color:var(--cinza); }
.evo5-k small em { display:inline-block; width:9px; height:9px; border-radius:3px; margin-right:4px; vertical-align:-1px; }
.evo5-k small em.c { background:var(--mod); }
.evo5-k small em.j { background:repeating-linear-gradient(135deg,#1E3A8A 0 2px,#93C5FD 2px 4px); }
.evo5-bar { display:flex; gap:3px; height:8px; margin:6px 0 4px; border-radius:6px; overflow:hidden; }
.evo5-bar i { background:var(--mod); transform-origin:left; animation:cyCresce .9s .3s cubic-bezier(.2,.8,.2,1) both; }
.evo5-bar i.j { background:repeating-linear-gradient(135deg,#1E3A8A 0 3px,#93C5FD 3px 6px); }
.evo5-cmp { flex-direction:row !important; gap:18px !important; align-items:center; }
.evo5-cmp > div { display:grid; grid-template-columns:auto auto; column-gap:6px; row-gap:2px; align-items:baseline; }
.evo5-cmp > div > span { grid-column:1 / -1; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:#94A3B8; }
.evo5-cmp .evo-var { font-size:17px; }
.evo5-tg { color:#fff; border:0 !important; background:linear-gradient(135deg,#475569,#64748B); }
.evo5-tg.alta { background:linear-gradient(135deg,#9F1239,#E11D48); box-shadow:0 18px 34px -22px rgba(225,29,72,.9); }
.evo5-tg.queda { background:linear-gradient(135deg,#0F766E,#0E9384); box-shadow:0 18px 34px -22px rgba(14,147,132,.9); }
.evo5-tg > span, .evo5-tg small { color:rgba(255,255,255,.88) !important; }
.evo5-tg > b { color:#fff; font-size:28px; }
.evo5-ctl { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 18px; margin-bottom:6px; }
.evo-segs { display:inline-flex; padding:3px; border-radius:12px; background:#EEF2F8; }
.evo-seg { border:0; background:transparent; padding:6px 14px; border-radius:9px; font:inherit; font-size:12.5px; font-weight:700; color:#64748B; cursor:pointer; }
.evo-seg.on { background:var(--navy); color:#fff; }
.evo5-leg { display:flex; flex-wrap:wrap; gap:6px 16px; font-size:12px; color:var(--cinza); }
.evo5-leg span { display:inline-flex; align-items:center; gap:6px; }
.evo5-leg i { width:14px; height:4px; border-radius:3px; display:inline-block; }
.evo5-leg i.t { height:0; border-top:2px dashed #64748B; border-radius:0; }
.evo5-leg i.jur { width:12px; height:12px; background:repeating-linear-gradient(135deg,rgba(15,27,46,.35) 0 2px,transparent 2px 5px); border:1px solid #CBD5E1; }
.evo5-graf { position:relative; width:100%; min-height:260px; }
.evo5-svg { display:block; overflow:visible; }
.evo5-gr { stroke:#EEF2F6; stroke-width:1; }
.evo5-gr0 { stroke:#CBD5E1; stroke-width:1.2; }
.evo5-ax { font-size:11px; fill:#94A3B8; font-variant-numeric:tabular-nums; }
.evo5-parc { font-size:9px; font-weight:800; letter-spacing:.05em; fill:#D97706; text-transform:uppercase; }
.evo5-area { opacity:0; animation:evoFade 1s ease-out forwards; animation-delay:calc(var(--d, 0s) + .5s); }
.evo5-ln { fill:none; stroke-width:3.2; stroke-linecap:round; stroke-linejoin:round; filter:drop-shadow(0 6px 8px rgba(30,58,138,.18)); }
.evo5-ln.anim { stroke-dasharray:var(--len); stroke-dashoffset:var(--len); animation:evoDraw 1.6s cubic-bezier(.4,.1,.2,1) forwards; animation-delay:var(--d, 0s); }
.evo5-tr { stroke-width:1.8; stroke-dasharray:6 6; opacity:.55; animation:evoFlui 1.2s linear infinite; }
.evo5-nm { font-size:12px; font-weight:800; paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; opacity:0; animation:evoFade .5s 1.6s forwards; }
.evo5-pt { opacity:0; animation:evoPop .4s cubic-bezier(.2,.8,.2,1.4) forwards; animation-delay:var(--d, .6s); transform-box:fill-box; transform-origin:center; }
.evo5-lb { font-size:11.5px; font-weight:800; fill:var(--navy); paint-order:stroke; stroke:#fff; stroke-width:4px; stroke-linejoin:round; opacity:0; animation:evoFade .4s forwards; animation-delay:var(--d, .8s); }
.evo5-lb.ult { font-size:13.5px; }
.evo5-pulso { opacity:.5; transform-box:fill-box; transform-origin:center; animation:evoPulso 1.8s 2s ease-out infinite; }
.evo5-cruz { stroke:#94A3B8; stroke-width:1; stroke-dasharray:3 3; pointer-events:none; }
.evo5-tip { position:absolute; z-index:5; min-width:240px; max-width:340px; padding:10px 12px; border-radius:12px; background:rgba(15,27,46,.94); color:#fff; box-shadow:0 18px 40px -16px rgba(15,27,46,.6); pointer-events:none; }
.evo5-tt { font-size:11px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:#93C5FD; margin-bottom:6px; }
.evo5-tl { display:grid; grid-template-columns:10px 1fr; column-gap:8px; padding:4px 0; border-top:1px solid rgba(255,255,255,.08); }
.evo5-tl:first-of-type { border-top:0; }
.evo5-tl i { width:10px; height:10px; border-radius:3px; margin-top:3px; grid-row:span 3; }
.evo5-tl b { font-size:12.5px; }
.evo5-tl span { font-size:12px; color:#E2E8F0; }
.evo5-tl small { font-size:11px; color:#94A3B8; }
.evo5-tl.vz span { color:#64748B; }
.evo5-tcs { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:10px; margin-top:14px; }
.evo-tc { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start; gap:2px; text-align:left; padding:10px 14px 10px 16px; border-radius:14px; border:1px solid #E2E8F0; background:#fff; font:inherit; cursor:pointer; transition:transform .18s, box-shadow .18s, border-color .18s; }
.evo-tc::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--c); }
.evo-tc:hover { transform:translateY(-2px); box-shadow:0 14px 26px -18px rgba(15,27,46,.5); }
.evo-tc.on { border-color:var(--c); box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 30%,transparent); }
.evo-tc-nm { display:flex; align-items:center; gap:6px; font-size:12px; font-weight:800; color:var(--navy); }
.evo-tc-nm i { width:10px; height:10px; border-radius:3px; background:var(--c); }
.evo-tc-nm em { font-style:normal; font-weight:700; color:#94A3B8; }
.evo-tc b { font-size:16px; font-weight:800; color:#475569; }
.evo-tc.alta b { color:#BE123C; }
.evo-tc.queda b { color:#0E9384; }
.evo-tc small { font-size:11.5px; color:var(--cinza); }
.evo-tc small.alta { color:#BE123C; }
.evo-tc small.queda { color:#0E9384; }
.evo5-tg small.alta, .evo5-tg small.queda { color:#fff !important; font-weight:700; }
.evo5 .evo-tab-w { margin-top:16px; }
.evo5 .evo-tab tbody th { text-align:left; font-size:12px; font-weight:700; color:var(--navy); text-transform:none; letter-spacing:0; padding:6px 8px; border-top:1px solid #F1F5F9; white-space:nowrap; }
.evo5 .evo-tab tbody th i { display:inline-block; width:10px; height:10px; border-radius:3px; margin-right:6px; vertical-align:-1px; }
.evo5 .evo-tab tr.evo-tot th, .evo5 .evo-tab tr.evo-tot td { font-weight:800; border-top:1.5px solid #E2E8F0; }
@keyframes evoDraw { to { stroke-dashoffset:0; } }
@keyframes evoFade { to { opacity:1; } }
@keyframes evoPop { from { opacity:0; transform:scale(.2); } to { opacity:1; transform:scale(1); } }
@keyframes evoFlui { to { stroke-dashoffset:-24; } }
@keyframes evoPulso { 0% { transform:scale(1); opacity:.5; } 100% { transform:scale(3.2); opacity:0; } }
@media (max-width:1100px) { .evo5-hero { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) { .evo5-hero { grid-template-columns:1fr; } .evo5-k > b { font-size:30px; } }
@media (prefers-reduced-motion: reduce) { .evo5 *, .evo5 { animation:none !important; } .evo5-ln.anim { stroke-dasharray:none; stroke-dashoffset:0; } .evo5-area, .evo5-pt, .evo5-lb, .evo5-nm { opacity:1; } }

/* Inadimplência · evolução: tamanhos de fonte no padrão da plataforma (título 17px como os demais quadros; números dos
   indicadores 22–30px; rótulos e textos 12px) e mapa de calor dos valores por mês */
.evo5 .evo5-top { align-items:flex-start; margin-bottom:14px; }
.evo5 .evo5-top .tt { margin:0; }
.evo-pill, .evo-seg { font-size:12px !important; }
.evo5-k > span, .evo5-cmp > div > span, .evo-hm-tt { font-size:12px !important; letter-spacing:.04em !important; }
.evo5-k > b, .evo5-tg > b { font-size:clamp(22px,1.9vw,30px) !important; line-height:1.1 !important; }
.evo5-k small, .evo5-leg, .evo-tc small, .evo-tc-nm { font-size:12px !important; }
.evo5-cmp .evo-var { font-size:16px !important; }
.evo-tc b { font-size:16px !important; }
.evo5-lb, .evo5-lb.ult, .evo5-nm { font-size:12px !important; }
.evo5-ax { font-size:11px !important; }
.evo5-tl b, .evo5-tl span { font-size:12px !important; } .evo5-tl small, .evo5-tt { font-size:11px !important; }
/* mapa de calor */
.evo-hm-w { margin-top:16px; padding-top:14px; border-top:1px solid #EEF2F6; }
.evo-hm-tt { font-weight:800; text-transform:uppercase; color:#94A3B8; margin-bottom:8px; }
.evo-hm { display:grid; grid-template-columns:minmax(150px,1.4fr) repeat(var(--n),minmax(62px,1fr)); gap:4px; overflow-x:auto; overflow-y:hidden; padding-bottom:4px; }
.evo-hm-h { font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:#94A3B8; text-align:center; padding:2px 0; }
.evo-hm-n { display:flex; align-items:center; gap:8px; font-size:12px; font-weight:700; color:var(--navy); white-space:nowrap; padding-right:6px; }
.evo-hm-n i { width:10px; height:10px; border-radius:3px; flex:none; }
.evo-hm-c { display:flex; align-items:center; justify-content:center; height:34px; border-radius:8px; font-size:12px; font-weight:700; color:var(--navy); font-variant-numeric:tabular-nums; background:rgba(var(--mod-rgb),var(--a)); transition:transform .15s, box-shadow .15s; cursor:default; animation:cySobe .4s both; }
.evo-hm-c:hover { transform:translateY(-1px); box-shadow:0 8px 16px -10px rgba(var(--mod-rgb),.8); }
.evo-hm-c.vz { background:repeating-linear-gradient(135deg,#F1F5F9 0 4px,#fff 4px 8px); color:#CBD5E1; font-weight:600; }
.evo-hm-n.tot { font-weight:800; border-top:1.5px solid #E2E8F0; padding-top:6px; }
.evo-hm-c.tot { background:var(--navy); color:#fff; font-weight:800; border-radius:8px; margin-top:6px; }
.evo-hm-c.tot.vz { background:repeating-linear-gradient(135deg,#E2E8F0 0 4px,#F8FAFC 4px 8px); color:#94A3B8; }
.evo-hm-n.tot { margin-top:6px; }

/* valor em atraso por mês com a cor da tendência (variação sobre o mês anterior) */
.evo-hm-tt span { font-weight:600; text-transform:none; letter-spacing:0; color:#94A3B8; }
.evo-hm-tt span i { display:inline-block; width:10px; height:10px; border-radius:3px; vertical-align:-1px; }
.evo-hm-tt span i.sobe { background:rgba(225,29,72,.35); } .evo-hm-tt span i.desce { background:rgba(14,147,132,.35); }
.evo-hm-c { flex-direction:column; gap:1px; height:42px !important; line-height:1.1; }
.evo-hm-c b { font-size:12px; font-weight:800; }
.evo-hm-c small { font-size:10.5px; font-weight:800; }
.evo-hm-c.neu { background:#F1F5F9 !important; color:var(--navy); }
.evo-hm-c.sobe { background:rgba(225,29,72,var(--a)) !important; color:#881337; } .evo-hm-c.sobe small { color:#BE123C; }
.evo-hm-c.desce { background:rgba(14,147,132,var(--a)) !important; color:#134E4A; } .evo-hm-c.desce small { color:#0F766E; }
.evo-hm-c.tot { background:var(--navy) !important; color:#fff !important; }
.evo-hm-c.tot.sobe { box-shadow:inset 0 -4px 0 #F43F5E; } .evo-hm-c.tot.desce { box-shadow:inset 0 -4px 0 #2DD4BF; }
.evo-hm-c.tot.sobe small { color:#FDA4AF; } .evo-hm-c.tot.desce small { color:#5EEAD4; }
.evo-hm-c.vz { background:repeating-linear-gradient(135deg,#F1F5F9 0 4px,#fff 4px 8px) !important; color:#CBD5E1 !important; box-shadow:none; }
/* linha Total no mesmo padrão das demais (cor da tendência), só mais encorpada — sem o bloco escuro */
.evo-hm-c.tot { background:#F1F5F9 !important; color:var(--navy) !important; box-shadow:inset 0 0 0 1.5px rgba(15,27,46,.14) !important; margin-top:6px; }
.evo-hm-c.tot b { font-size:13px; font-weight:800; }
.evo-hm-c.tot.sobe { background:rgba(225,29,72,calc(var(--a) + .06)) !important; color:#881337 !important; box-shadow:inset 0 0 0 1.5px rgba(225,29,72,.35) !important; }
.evo-hm-c.tot.desce { background:rgba(14,147,132,calc(var(--a) + .06)) !important; color:#134E4A !important; box-shadow:inset 0 0 0 1.5px rgba(14,147,132,.35) !important; }
.evo-hm-c.tot.sobe small { color:#BE123C !important; } .evo-hm-c.tot.desce small { color:#0F766E !important; }
.evo-hm-n.tot { font-size:13px; font-weight:800; }
/* linha Total: tom próprio (azul do módulo, texto branco) e a tendência num selo vermelho/verde legível */
.evo-hm-c.tot, .evo-hm-c.tot.sobe, .evo-hm-c.tot.desce, .evo-hm-c.tot.neu { background:linear-gradient(135deg,#1E3A8A,var(--mod)) !important; color:#fff !important; box-shadow:0 10px 20px -14px rgba(var(--mod-rgb),.9) !important; gap:3px; }
.evo-hm-c.tot b { color:#fff; }
.evo-hm-c.tot small { color:#fff !important; padding:0 7px; border-radius:999px; line-height:15px; background:rgba(255,255,255,.22); }
.evo-hm-c.tot.sobe small { background:#E11D48 !important; } .evo-hm-c.tot.desce small { background:#0E9384 !important; }
.evo-hm-c.tot.vz { background:repeating-linear-gradient(135deg,#E2E8F0 0 4px,#F8FAFC 4px 8px) !important; color:#94A3B8 !important; box-shadow:none !important; }
.evo-hm .evo-hm-c.tot.sobe small, .evo-hm .evo-hm-c.tot.desce small, .evo-hm .evo-hm-c.tot.neu small { color:#fff !important; font-weight:800; }
/* linha Total: altura para caber valor + selo dentro do bloco */
.evo-hm .evo-hm-c.tot { height:auto !important; min-height:52px; padding:6px 4px; gap:4px; justify-content:center; overflow:hidden; }
.evo-hm .evo-hm-c.tot b { line-height:1.1; }
.evo-hm .evo-hm-c.tot small { display:inline-block; line-height:16px; font-size:10.5px; white-space:nowrap; }
.evo-hm-n.tot { align-self:center; }
