/* VYNC · vync-ui.css — componentes visuais reutilizáveis (v104), na linha do Planejamento v103.
   Carregado em todas as páginas do Gestão, depois do theme-vync.css. Prefixo vx-.
   - .vx-hero        faixa-destaque verde (o número que mais importa na tela)
   - .vx-ind/.vx-blk blocos por tipo, cada um com cor, fundo e ícone animado (G.vivo.icone)
   - .vx-attn        "precisa de atenção" compacto: uma linha com pílulas clicáveis
   - .vx-tabcard     cartão com abas (troca o conteúdo sem sair da tela)
   - .vx-bar/.vx-seg barras simples e segmentadas; .vx-kv números pequenos com rótulo
   Cores por tipo: .c-verde .c-terra .c-folha .c-mostarda .c-petroleo .c-ameixa .c-rose
   Regra: animação nunca começa escondendo o dado (aba em segundo plano pausa a animação). */
.c-verde{--c:#24362F;--bg:linear-gradient(155deg,#FFFFFF 0%,#EEF2EF 100%)}
.c-terra{--c:#B85C3A;--bg:linear-gradient(155deg,#FFFBF8 0%,#F7E7DE 100%)}
.c-folha{--c:#2E7D5B;--bg:linear-gradient(155deg,#FAFCFA 0%,#E2EDE6 100%)}
.c-mostarda{--c:#A8762A;--bg:linear-gradient(155deg,#FFFDF8 0%,#F4E9D2 100%)}
.c-petroleo{--c:#3E7C8C;--bg:linear-gradient(155deg,#FAFCFD 0%,#E1ECEF 100%)}
.c-ameixa{--c:#7A5C7E;--bg:linear-gradient(155deg,#FDFBFD 0%,#EFE6EF 100%)}
.c-rose{--c:#B5677D;--bg:linear-gradient(155deg,#FFFBFC 0%,#F5E4E8 100%)}

/* ---------- faixa-destaque ---------- */
.vx-hero{position:relative;overflow:hidden;border-radius:22px;padding:24px 28px;margin-bottom:14px;color:#F3F1EA;
  background:radial-gradient(120% 140% at 100% 0%,rgba(184,92,58,.22),transparent 46%),radial-gradient(90% 120% at 0% 100%,rgba(143,166,153,.16),transparent 50%),linear-gradient(160deg,#2F4740 0%,#1A2823 100%);
  box-shadow:0 18px 44px rgba(30,45,38,.22)}
.vx-hero-eyebrow{display:flex;align-items:center;gap:10px;font-size:11.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:rgba(243,241,234,.66)}
.vx-hero-eyebrow .vv{color:#F3F1EA;--vv-ac:#E9A07F}
.vx-hero-big{font-size:clamp(30px,3.2vw,42px);font-weight:700;letter-spacing:-1.3px;line-height:1.05;margin-top:8px;color:#fff;font-variant-numeric:tabular-nums}
.vx-hero-sub{font-size:12.5px;color:rgba(243,241,234,.62);margin-top:6px}
.vx-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr);gap:26px;align-items:end}
.vx-hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vx-hero-stat{background:rgba(243,241,234,.07);border:1px solid rgba(243,241,234,.08);border-radius:14px;padding:12px 14px;min-width:0}
.vx-hero-stat small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:rgba(243,241,234,.58)}
.vx-hero-stat b{display:block;font-size:clamp(17px,1.5vw,21px);font-weight:700;letter-spacing:-.4px;color:#fff;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.vx-hero-stat span{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:rgba(243,241,234,.7);margin-top:4px}
.vx-hero-stat span.bom{color:#9FD7B8}.vx-hero-stat span.ruim{color:#F2B39B}

/* ---------- precisa de atenção (compacto) ---------- */
.vx-attn{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;margin-bottom:14px;border-radius:16px;background:rgba(255,255,255,.72);border:1px solid rgba(184,92,58,.18);box-shadow:0 1px 2px rgba(30,45,38,.04),0 8px 22px rgba(30,45,38,.06)}
.vx-attn-t{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:#9E4B2D;padding-right:4px}
.vx-attn-t .vv{color:#B85C3A;--vv-ac:#B85C3A}
.vx-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 12px 7px 10px;border-radius:99px;font-size:12.5px;font-weight:600;text-decoration:none;color:var(--ink);background:#fff;border:1px solid rgba(30,37,34,.09);transition:transform .15s,box-shadow .15s,border-color .15s}
.vx-pill:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(30,45,38,.10);border-color:var(--pc,rgba(30,37,34,.2))}
.vx-pill b{font-size:13.5px;color:var(--pc,var(--ink));font-variant-numeric:tabular-nums}
.vx-pill i{width:8px;height:8px;border-radius:50%;background:var(--pc,#8C948F)}
.vx-pill svg{width:12px;height:12px;opacity:.5}
.vx-pill.danger{--pc:#C25049}.vx-pill.warn{--pc:#A8762A}.vx-pill.info{--pc:#3E5A4F}
.vx-attn-ok{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#2E7D5B;font-weight:600}

/* ---------- blocos por tipo ---------- */
.vx-ind{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.vx-blk{position:relative;overflow:hidden;border-radius:18px;padding:16px;border:1px solid rgba(255,255,255,.9);background:var(--bg);color:inherit;text-decoration:none;display:block;
  box-shadow:0 1px 2px rgba(30,45,38,.05),0 10px 28px rgba(30,45,38,.08);transition:transform .18s ease,box-shadow .18s ease}
a.vx-blk:hover,button.vx-blk:hover{transform:translateY(-3px);box-shadow:0 2px 4px rgba(30,45,38,.06),0 18px 40px rgba(30,45,38,.13)}
button.vx-blk{font:inherit;text-align:left;cursor:pointer;width:100%}
.vx-blk::after{content:"";position:absolute;right:-30px;top:-30px;width:110px;height:110px;border-radius:50%;background:var(--c);opacity:.06;pointer-events:none}
.vx-blk-top{display:flex;align-items:center;gap:12px}
.vx-ic{width:50px;height:50px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;color:#fff;
  background:linear-gradient(150deg,color-mix(in srgb,var(--c) 80%,#fff),var(--c));box-shadow:0 8px 18px color-mix(in srgb,var(--c) 30%,transparent)}
.vx-ic .vv{--vv-ac:#F3D2C2}
.c-terra .vx-ic .vv{--vv-ac:#24362F}.c-mostarda .vx-ic .vv,.c-rose .vx-ic .vv{--vv-ac:#FFFFFF}
.vx-ic.sm{width:40px;height:40px;border-radius:12px}
.vx-num{font-size:30px;font-weight:700;letter-spacing:-.9px;line-height:1;color:var(--c);font-variant-numeric:tabular-nums}
.vx-num small{font-size:15px;font-weight:600;opacity:.6;letter-spacing:-.2px}
.vx-lbl{font-size:12.5px;font-weight:700;color:var(--ink);margin-top:3px}
.vx-lines{display:grid;gap:6px;margin-top:13px}
.vx-line{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-2)}
.vx-line i{width:8px;height:8px;border-radius:50%;flex:0 0 auto;background:var(--lc,#C3CCC4)}
.vx-line b{font-variant-numeric:tabular-nums;color:var(--ink)}
.vx-line.alerta{color:#A63D36}.vx-line.alerta b{color:#A63D36}.vx-line.alerta i{--lc:#C25049}
.vx-seg{display:flex;height:8px;border-radius:99px;overflow:hidden;background:rgba(30,37,34,.07);gap:2px;margin:12px 0 4px}
.vx-seg i{display:block;height:100%;transform-origin:left;animation:vx-cresce .9s cubic-bezier(.2,.8,.2,1) both}

/* ---------- cartão com abas ---------- */
.vx-tabcard{padding:0;overflow:hidden}
.vx-tabs{display:flex;gap:4px;padding:10px 12px 0;border-bottom:1px solid rgba(36,54,47,.09);overflow-x:auto;scrollbar-width:none}
.vx-tabs::-webkit-scrollbar{display:none}
.vx-tabs button{display:inline-flex;align-items:center;gap:8px;border:none;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--ink-3);padding:10px 14px 12px;border-radius:12px 12px 0 0;cursor:pointer;white-space:nowrap;position:relative;transition:color .15s,background .15s}
.vx-tabs button:hover{color:var(--ink);background:rgba(36,54,47,.04)}
.vx-tabs button.on{color:var(--c,#24362F)}
.vx-tabs button.on::after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:3px;border-radius:3px 3px 0 0;background:var(--c,#24362F)}
.vx-tabs .sp{flex:1}
.vx-tabs a.vx-abrir{align-self:center;font-size:12px;font-weight:700;color:var(--ink-3);text-decoration:none;padding:6px 8px;white-space:nowrap}
.vx-tabs a.vx-abrir:hover{color:var(--ink)}
.vx-tabbody{padding:18px 20px 20px;animation:vx-surge .35s ease both;min-height:210px}
.vx-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px}

/* ---------- peças de conteúdo ---------- */
.vx-bar{height:9px;border-radius:99px;background:rgba(30,37,34,.07);overflow:hidden}
.vx-bar i{display:block;height:100%;border-radius:99px;transform-origin:left;animation:vx-cresce 1s cubic-bezier(.2,.8,.2,1) both}
.vx-rows{display:grid;gap:4px}
.vx-row{display:grid;grid-template-columns:150px minmax(0,1fr) 46px;gap:12px;align-items:center;padding:7px 2px}
.vx-row span{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.vx-row b{font-size:13px;text-align:right;font-variant-numeric:tabular-nums}
.vx-kvs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.vx-kv{border-radius:14px;padding:12px 14px;background:rgba(30,37,34,.035);min-width:0}
.vx-kv small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3)}
.vx-kv b{display:block;font-size:19px;font-weight:700;letter-spacing:-.4px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.vx-kv span{display:block;font-size:11px;color:var(--ink-3);margin-top:2px}
.vx-kv.bom{background:rgba(46,125,91,.08)}.vx-kv.bom b{color:#2E7D5B}
.vx-kv.ruim{background:rgba(194,80,73,.08)}.vx-kv.ruim b{color:#A63D36}
.vx-split{display:flex;height:16px;border-radius:99px;overflow:hidden;gap:3px;margin:16px 0 8px}
.vx-split i{display:block;height:100%;transform-origin:left;animation:vx-cresce 1s cubic-bezier(.2,.8,.2,1) both}
.vx-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--ink-2)}
.vx-legend span{display:inline-flex;align-items:center;gap:6px}
.vx-legend i{width:9px;height:9px;border-radius:3px;display:inline-block}
.vx-cols{display:flex;align-items:flex-end;gap:10px;height:150px;padding-top:22px}
.vx-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;min-width:0}
.vx-col i{display:block;width:100%;max-width:46px;border-radius:9px 9px 4px 4px;background:linear-gradient(180deg,var(--c,#3E5A4F),color-mix(in srgb,var(--c,#3E5A4F) 55%,#fff));transform-origin:bottom;animation:vx-sobe 1s cubic-bezier(.2,.8,.2,1) both;position:relative}
.vx-col i em{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);font-style:normal;font-size:10.5px;font-weight:700;color:var(--ink-2);white-space:nowrap;margin-bottom:4px}
.vx-col span{font-size:11px;font-weight:600;color:var(--ink-3)}
.vx-vazio{display:flex;align-items:center;gap:16px;padding:18px 6px;color:var(--ink-2);font-size:13px}
.vx-vazio .vv{color:#8FA699;--vv-ac:#B85C3A}
.vx-vazio b{display:block;color:var(--ink);margin-bottom:3px}
.vx-foot{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:14px;padding-top:12px;border-top:1px solid rgba(30,37,34,.07);font-size:12px;color:var(--ink-3)}
.vx-foot b{color:var(--ink)}
.vx-anel{position:relative;flex:0 0 auto}
.vx-anel svg{display:block;animation:vx-gira-in .9s cubic-bezier(.2,.8,.2,1) both}
.vx-anel b{position:absolute;inset:0;display:grid;place-items:center;font-size:26px;font-weight:700;letter-spacing:-.8px}
.vx-anel b small{display:block;font-size:10px;font-weight:600;color:var(--ink-3);letter-spacing:0;text-align:center;margin-top:30px;position:absolute}

/* ---------- quadro de número (G.ui.statTile) — usado em todas as telas ---------- */
.vx-stat{flex:1 1 180px;min-width:168px;position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:13px 15px;border-radius:16px;
  background:linear-gradient(155deg,#FFFFFF 0%,color-mix(in srgb,var(--c) 7%,#FFFFFF) 100%);border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 2px rgba(30,45,38,.05),0 8px 22px rgba(30,45,38,.07);transition:transform .16s,box-shadow .16s}
.vx-stat:hover{transform:translateY(-2px);box-shadow:0 2px 4px rgba(30,45,38,.06),0 14px 30px rgba(30,45,38,.11)}
.vx-stat::after{content:"";position:absolute;right:-26px;top:-26px;width:80px;height:80px;border-radius:50%;background:var(--c);opacity:.06;pointer-events:none}
.vx-stat-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto;color:#fff;
  background:linear-gradient(150deg,color-mix(in srgb,var(--c) 78%,#fff),var(--c));box-shadow:0 6px 14px color-mix(in srgb,var(--c) 28%,transparent)}
.vx-stat-ic .vv{--vv-ac:#F3D2C2}
.vx-stat-ic > svg.icon{width:19px;height:19px;color:#fff}
.vx-stat b{display:block;font-size:clamp(16px,1.45vw,22px);font-weight:700;letter-spacing:-.6px;line-height:1.05;color:color-mix(in srgb,var(--c) 85%,#1E2522);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.vx-stat > div > span{display:block;font-size:11.5px;font-weight:600;color:var(--ink-2);margin-top:3px;line-height:1.3}
.vx-stat > div > small{display:block;font-size:10.5px;color:var(--ink-3);margin-top:2px}

/* ---------- Execução: escopo, etapas em sequência e colunas do quadro ---------- */
.vx-escopo{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;margin-bottom:12px}
.vx-escopo-t{font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3)}
.vx-segctl{display:inline-flex;padding:4px;border-radius:12px;background:rgba(30,37,34,.06);gap:2px;flex-wrap:wrap}
.vx-segctl button{display:inline-flex;align-items:center;gap:6px;border:none;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--ink-3);padding:7px 12px;border-radius:9px;cursor:pointer}
.vx-segctl button.on{background:#fff;color:#24362F;box-shadow:0 2px 8px rgba(30,45,38,.10)}
.vx-escopo-n{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2);font-weight:600}
.vx-escopo-n i{width:8px;height:8px;border-radius:50%;display:inline-block}
.vx-flow{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.vx-kcol{min-height:55vh;border-radius:16px;padding:6px;background:linear-gradient(180deg,color-mix(in srgb,var(--k) 12%,rgba(255,255,255,.6)) 0%,rgba(255,255,255,.35) 140px);border:1px solid rgba(255,255,255,.8);transition:background .12s}
.vx-kcol-h{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:color-mix(in srgb,var(--k) 70%,#1E2522);padding:6px 6px 10px}
.vx-kcol-h i{width:9px;height:9px;border-radius:50%;background:var(--k);box-shadow:0 0 0 3px color-mix(in srgb,var(--k) 22%,transparent)}
.vx-kcol-h b{margin-left:auto;font-size:11px;min-width:22px;text-align:center;padding:2px 7px;border-radius:99px;background:#fff;color:var(--ink-2)}
.vx-kcol-vazio{font-size:11.5px;color:var(--ink-3);text-align:center;padding:18px 6px;border:1.5px dashed rgba(30,37,34,.10);border-radius:12px;margin:2px}

/* ---------- Relatórios: galeria de relatórios ---------- */
.vx-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-bottom:16px}
.vx-pick{display:flex;align-items:center;gap:11px;text-align:left;font:inherit;color:var(--ink);cursor:pointer;padding:12px 13px;border-radius:15px;border:1px solid rgba(255,255,255,.9);
  background:linear-gradient(155deg,#FFFFFF,color-mix(in srgb,var(--c) 6%,#fff));box-shadow:0 1px 2px rgba(30,45,38,.05),0 6px 18px rgba(30,45,38,.06);transition:transform .15s,box-shadow .15s}
.vx-pick:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(30,45,38,.10)}
.vx-pick .vx-ic{width:40px;height:40px;border-radius:12px}
.vx-pick b{display:block;font-size:13px}
.vx-pick > span:last-child > span{display:block;font-size:11px;color:var(--ink-3);margin-top:2px;line-height:1.3}
.vx-pick.on{background:linear-gradient(150deg,color-mix(in srgb,var(--c) 85%,#fff),var(--c));color:#fff;border-color:transparent;box-shadow:0 12px 26px color-mix(in srgb,var(--c) 32%,transparent)}
.vx-pick.on > span:last-child > span{color:rgba(255,255,255,.8)}
.vx-pick.on .vx-ic{background:rgba(255,255,255,.2);box-shadow:none}
.vx-pick.destaque:not(.on){background:linear-gradient(160deg,#2F4740,#1A2823);color:#F3F1EA}
.vx-pick.destaque:not(.on) > span:last-child > span{color:rgba(243,241,234,.7)}

/* v105: Relatórios — escolha + filtros num cartão baixo; relatórios numa fileira só */
.vx-relbar{padding:12px 14px;margin-bottom:16px}
.vx-picker.compacto{grid-template-columns:repeat(var(--n,9),minmax(0,1fr));gap:8px;margin-bottom:12px}
.vx-picker.compacto .vx-pick{flex-direction:column;justify-content:center;gap:6px;padding:10px 6px;text-align:center;border-radius:13px}
.vx-picker.compacto .vx-pick .vx-ic{width:34px;height:34px;border-radius:11px}
.vx-picker.compacto .vx-pick b{font-size:12px;line-height:1.2}
.vx-relbar .row{display:flex !important;gap:10px !important;flex-wrap:wrap;align-items:flex-end}
.vx-relbar .row > .field{flex:1 1 150px;min-width:0}
.vx-relbar .row > .field .inp,.vx-relbar .row > .field .fskin-sel,.vx-relbar .row > .field .dd-btn{width:100% !important;min-width:0 !important;max-width:none !important}
.vx-relbar .row > .muted{flex:1 1 100%}
@media (max-width:1100px){.vx-picker.compacto{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (max-width:560px){.vx-picker.compacto{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Contratos: filtros e linhas ---------- */
.vx-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.vx-toolbar .sp{flex:1}
.vx-ct{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);
  box-shadow:0 1px 2px rgba(30,45,38,.05),0 6px 18px rgba(30,45,38,.06);color:inherit;text-decoration:none;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}
.vx-ct:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(30,45,38,.10)}
.vx-ct::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--c)}
.vx-ct-ic{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,color-mix(in srgb,var(--c) 78%,#fff),var(--c))}
.vx-ct-ic svg{width:19px}
.vx-ct-t b{font-size:14px}
.vx-ct-t small{display:block;font-size:12px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vx-ct-t .chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.vx-ct-v{text-align:right}
.vx-ct-v b{display:block;font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.vx-ct-v small{display:block;font-size:11px;color:var(--ink-3);margin-top:3px}
.vx-vig{width:120px}
.vx-vig small{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-3);margin-bottom:4px}
@media (max-width:860px){.vx-ct{grid-template-columns:auto minmax(0,1fr)}.vx-ct-v,.vx-vig{grid-column:2}.vx-ct-v{text-align:left}.vx-vig{width:100%}}

/* ---------- cabeçalho de cartão: ícone em degradê verde (todas as telas) ---------- */
.card-h .card-ic{background:linear-gradient(150deg,#3E5A4F,#24362F) !important;color:#F3F1EA !important;box-shadow:0 6px 14px rgba(36,54,47,.22) !important;border:none !important}
.card-h .card-ic .vv{--vv-ac:#E9A07F}

/* ---------- carregamento da marca (G.ui.carregando) ---------- */
.vx-load{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:80px 16px;min-height:52vh;text-align:center}
.vx-load.compacto{min-height:0;padding:36px 16px;gap:10px}
.vx-load-mark{position:relative;width:92px;height:92px;display:grid;place-items:center}
.vx-load.compacto .vx-load-mark{width:64px;height:64px}
.vx-load-ring{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(36,54,47,.35);animation:vx-anel 2.2s cubic-bezier(.2,.7,.3,1) infinite}
.vx-load-ring.r2{border-color:rgba(184,92,58,.45);animation-delay:1.1s}
.vx-load-img{position:relative;width:64%;height:64%;border-radius:22%;background:#F3F1EA;display:grid;place-items:center;overflow:hidden;
  box-shadow:0 10px 26px rgba(30,45,38,.18),inset 0 0 0 1px rgba(36,54,47,.08);animation:vx-flutua 2.6s ease-in-out infinite}
.vx-load-img img{width:72%;height:auto;display:block}
.vx-load-img::after{content:"";position:absolute;top:-30%;bottom:-30%;width:40%;left:-60%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:vx-brilho 2.6s ease-in-out infinite}
.vx-load-word{display:flex;gap:10px;font-size:20px;font-weight:700;letter-spacing:2px;color:#24362F}
.vx-load.compacto .vx-load-word{font-size:15px;gap:7px}
.vx-load-word i{font-style:normal;display:inline-block;animation:vx-onda-letra 1.6s ease-in-out infinite}
.vx-load-word i:nth-child(2){animation-delay:.12s}.vx-load-word i:nth-child(3){animation-delay:.24s}.vx-load-word i:nth-child(4){animation-delay:.36s;color:#B85C3A}
.vx-load-bar{width:150px;height:4px;border-radius:99px;background:rgba(36,54,47,.10);overflow:hidden}
.vx-load-bar i{display:block;width:40%;height:100%;border-radius:99px;background:linear-gradient(90deg,#24362F,#B85C3A);animation:vx-desliza 1.3s ease-in-out infinite}
.vx-load small{font-size:12px;color:var(--ink-3);font-weight:600;letter-spacing:.2px}
@keyframes vx-anel{0%{transform:scale(.62);opacity:.9}100%{transform:scale(1.25);opacity:0}}
@keyframes vx-flutua{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes vx-brilho{0%,55%{left:-60%}100%{left:130%}}
@keyframes vx-onda-letra{0%,60%,100%{transform:translateY(0);opacity:.85}30%{transform:translateY(-7px);opacity:1}}
@keyframes vx-desliza{0%{transform:translateX(-110%)}100%{transform:translateX(260%)}}
@media (prefers-reduced-motion:reduce){.vx-load *{animation:none !important}}

/* ---------- pasta: o conteúdo de uma aba dentro de um bloco ligado à aba ---------- */
.vx-pasta-tabs{display:flex;gap:4px;flex-wrap:wrap;padding:0 10px;position:relative;z-index:1}
.vx-pasta-tabs button{display:inline-flex;align-items:center;gap:7px;border:1px solid transparent;border-bottom:none;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--ink-3);padding:10px 16px;border-radius:14px 14px 0 0;cursor:pointer;margin-bottom:-1px}
.vx-pasta-tabs button:hover{color:var(--ink);background:rgba(255,255,255,.45)}
.vx-pasta-tabs button.on{color:#24362F;background:rgba(255,255,255,.86);border-color:rgba(36,54,47,.14);box-shadow:0 -4px 12px rgba(30,45,38,.05)}
.vx-pasta-tabs button.on::before{content:"";position:absolute;margin:-10px 0 0 -16px;width:calc(100% + 2px);height:3px;border-radius:14px 14px 0 0;background:#B85C3A;display:none}
.vx-pasta{border-radius:20px;border:1px solid rgba(36,54,47,.14);background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(255,255,255,.55) 220px);padding:14px;box-shadow:0 10px 30px rgba(30,45,38,.06)}

/* ---------- barra única de filtros ---------- */
.vx-filtros{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.vx-filtros .inp-ic{flex:1 1 220px;max-width:340px}
.vx-filtros .inp-ic .inp{max-width:none;width:100%}
.vx-filtros select.inp{width:auto;max-width:210px;height:38px}
.vx-filtros .fskin-sel{flex:0 1 210px;width:auto !important;min-width:160px;max-width:230px}
.vx-filtros .fskin-sel .dd-btn{width:100%;min-width:0}
.vx-filtros .vx-sp{flex:1}
.vx-flow.compacto{gap:8px;margin-bottom:12px}
.vx-flow.compacto .vx-stat{flex:1 1 140px;min-width:132px;padding:9px 12px;gap:10px;border-radius:14px;cursor:pointer}
.vx-flow.compacto .vx-stat-ic{width:32px;height:32px;border-radius:10px}
.vx-flow.compacto .vx-stat-ic .vv svg{width:20px;height:20px}
.vx-flow.compacto .vx-stat b{font-size:18px}
.vx-flow.compacto .vx-stat > div > span{font-size:11px;margin-top:1px}
.vx-flow.compacto .vx-stat > div > small{display:none}
.vx-flow .vx-stat.on{box-shadow:inset 0 0 0 2px var(--c),0 8px 20px color-mix(in srgb,var(--c) 22%,transparent)}
.vx-flow .vx-stat.apagado{opacity:.55}

/* ---------- ficha (cabeçalho com hierarquia + blocos de detalhes) ---------- */
.vx-ficha{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:24px;padding:22px 24px;margin-bottom:14px;border-radius:20px;
  background:linear-gradient(125deg,color-mix(in srgb,var(--c) 12%,#fff) 0%,#fff 60%);border:1px solid color-mix(in srgb,var(--c) 20%,transparent);box-shadow:0 10px 30px rgba(30,45,38,.08)}
.vx-ficha::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--c)}
.vx-ficha-id{display:flex;gap:16px;align-items:flex-start;min-width:0}
.vx-ficha-ic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:linear-gradient(150deg,color-mix(in srgb,var(--c) 78%,#fff),var(--c));box-shadow:0 8px 18px color-mix(in srgb,var(--c) 30%,transparent)}
.vx-ficha-ic svg{width:24px;height:24px}
.vx-ficha small,.vx-campo small,.vx-pessoa small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3)}
.vx-ficha h2{margin:3px 0 0;font-size:clamp(20px,2vw,26px);font-weight:700;letter-spacing:-.02em;line-height:1.2;color:var(--ink);text-wrap:balance}
.vx-ficha-sub{font-size:13px;color:var(--ink-2);margin-top:6px}
.vx-ficha-sub b{color:color-mix(in srgb,var(--c) 75%,#1E2522)}
.vx-ficha p{font-size:13px;color:var(--ink-2);margin:6px 0 0;line-height:1.5;max-width:75ch}
.vx-ficha-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.vx-ficha-valor{display:flex;flex-direction:column;align-items:flex-end;text-align:right;gap:2px}
.vx-ficha-valor > b{font-size:clamp(22px,2.2vw,30px);font-weight:700;letter-spacing:-.8px;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.1;margin-top:2px}
.vx-ficha-valor > span{font-size:12px;color:var(--ink-3)}
.vx-ficha-vig{width:100%;margin-top:12px;text-align:left}
.vx-ficha-vig small{display:flex !important;justify-content:space-between;margin-bottom:5px}
.vx-ficha-vig small b{font-size:11px;letter-spacing:0;text-transform:none}
.vx-ficha-vig > span{display:block;font-size:11.5px;color:var(--ink-3);margin-top:5px}
.vx-blocos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.vx-bloco{background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.9);border-radius:18px;padding:16px 18px;box-shadow:0 1px 2px rgba(30,45,38,.05),0 8px 22px rgba(30,45,38,.06)}
.vx-bloco h4{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#24362F}
.vx-campos{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px 18px}
.vx-campo b{display:block;font-size:14px;font-weight:600;color:var(--ink);margin-top:3px;overflow-wrap:anywhere}
.vx-campo.forte b{font-size:17px}
.vx-pessoas{display:grid;gap:10px}
.vx-pessoa{display:flex;gap:12px;align-items:flex-start}
.vx-pessoa-ini{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;font-size:12px;font-weight:800;color:#F3F1EA;background:#3E5A4F}
.vx-pessoa b{display:block;font-size:14px;margin-top:2px}
.vx-pessoa span{display:block;font-size:12px;color:var(--ink-3);margin-top:1px}
.vx-obs{font-size:13px;line-height:1.55;color:var(--ink-2);margin:0;white-space:pre-line}
@media (max-width:860px){.vx-ficha{grid-template-columns:1fr}.vx-ficha-valor{align-items:flex-start;text-align:left}.vx-blocos{grid-template-columns:1fr}}

/* ---------- janelas (G.modal / G.formModal) — v105 ---------- */
.ov{background:rgba(20,30,26,.30) !important;backdrop-filter:blur(3px)}
.modal{border-radius:22px !important;overflow:hidden;border:1px solid rgba(255,255,255,.9);box-shadow:0 30px 80px rgba(20,30,26,.30),0 4px 14px rgba(20,30,26,.12) !important}
.modal .mh{position:relative;display:flex;align-items:center;gap:12px;padding:18px 20px 14px !important;background:linear-gradient(180deg,#FFFFFF,#FBFAF6);border-bottom:1px solid rgba(36,54,47,.08)}
.modal .mh::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#24362F 0%,#3E5A4F 55%,#B85C3A 100%)}
.vx-mh-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:0 0 auto;color:#F3F1EA;background:linear-gradient(150deg,#3E5A4F,#24362F);box-shadow:0 6px 14px rgba(36,54,47,.25)}
.vx-mh-ic .vv{--vv-ac:#E9A07F}
.vx-mh-t{flex:1;min-width:0}
.vx-mh-t h3{margin:0;font-size:16.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
.vx-mh-t small{display:block;font-size:12px;color:var(--ink-3);margin-top:2px}
.modal .mh .mx{margin-left:auto}
.modal .mb{background:linear-gradient(180deg,#F8F7F2,#F3F1EA)}
.modal .mf{background:#FFFFFF;border-top:1px solid rgba(36,54,47,.08)}
.modal .field label:not(.opt){font-size:11px !important;font-weight:700 !important;letter-spacing:.45px;text-transform:uppercase;color:#4F5A55 !important;margin-bottom:6px}
.modal .inp{background:#fff}
.modal .inp:focus{background:#fff}
.vx-form{display:grid;gap:12px}
.vx-fgrupo{background:#FFFFFF;border:1px solid rgba(36,54,47,.08);border-radius:16px;padding:14px 16px;box-shadow:0 1px 2px rgba(30,45,38,.04)}
.vx-fgrupo .fg{margin:0}
.vx-fgrupo > .field:last-child,.vx-fgrupo .fg > .field{margin-bottom:0}
.vx-fgrupo > .field + .field{margin-top:12px}
.vx-fgrupo-t{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:-2px 0 12px;padding-bottom:10px;border-bottom:1px solid rgba(36,54,47,.07);font-size:12.5px;font-weight:800;letter-spacing:.3px;color:#24362F}
.vx-fgrupo-t small{font-size:11.5px;font-weight:500;letter-spacing:0;color:var(--ink-3)}
.vx-fgrupo.longo textarea.inp{min-height:96px}
/* janelas montadas à mão pelas telas: o grid de campos vira cartão também */
.modal .mb > .fg{background:#fff;border:1px solid rgba(36,54,47,.08);border-radius:16px;padding:14px 16px}
/* v106: cartões de campos com respiro ENTRE eles e sem sobra DENTRO (antes encostavam um no outro e o
   espaço de baixo de cada campo ficava dentro do cartão); campo solto também vira cartão */
.modal .mb > .fg{margin:0 0 12px;row-gap:12px}
.modal .mb > .fg > .field,.modal .mb > .fg > label.field{margin-bottom:0}
.modal .mb > label.field,.modal .mb > div.field{background:#fff;border:1px solid rgba(36,54,47,.08);border-radius:16px;padding:12px 16px 14px;margin:0 0 12px}
.modal .mb > .callout{margin-bottom:12px}
.modal .mb > :last-child{margin-bottom:0}
.modal .mb h4,.modal .mb h5{color:#24362F}

/* ---------- textos: nada de frase quebrada ---------- */
/* o título do estado vazio é <b> filho direto; negrito DENTRO do texto fica na linha (antes virava
   bloco e partia frases como "Aqui você diz / quais unidades este contrato atende / ...") */
.empty b{display:inline;margin:0;font-size:inherit}
.empty > b{display:block;font-size:15px;margin:0 0 4px}
.empty p{text-wrap:pretty;line-height:1.5;max-width:60ch}
.empty p b,.empty p strong{color:var(--ink);font-weight:600}
.callout > div{text-wrap:pretty}
.muted,p{text-wrap:pretty}

/* ---------- animações (partida sempre visível) ---------- */
@keyframes vx-cresce{from{transform:scaleX(.18)}to{transform:scaleX(1)}}
@keyframes vx-sobe{from{transform:scaleY(.2)}to{transform:scaleY(1)}}
@keyframes vx-surge{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes vx-gira-in{from{transform:rotate(-70deg) scale(.86)}to{transform:none}}
.vx-entra>*{animation:vx-surge .45s ease both}
.vx-entra>*:nth-child(2){animation-delay:.05s}.vx-entra>*:nth-child(3){animation-delay:.1s}.vx-entra>*:nth-child(4){animation-delay:.15s}.vx-entra>*:nth-child(5){animation-delay:.2s}
@media (prefers-reduced-motion:reduce){.vx-hero *,.vx-ind *,.vx-tabcard *,.vx-entra>*,.vx-bar i,.vx-seg i,.vx-split i,.vx-col i{animation:none !important}}

/* ---------- telas menores ---------- */
@media (max-width:1100px){.vx-ind{grid-template-columns:repeat(2,minmax(0,1fr))}.vx-hero-grid{grid-template-columns:1fr}}
@media (max-width:860px){.vx-duo{grid-template-columns:minmax(0,1fr)}.vx-kvs{grid-template-columns:1fr 1fr}.vx-row{grid-template-columns:110px minmax(0,1fr) 40px}}
@media (max-width:560px){.vx-ind{grid-template-columns:1fr}.vx-hero{padding:20px 18px}.vx-hero-stats{grid-template-columns:1fr 1fr}.vx-kvs{grid-template-columns:1fr}.vx-tabbody{padding:16px 14px}}

/* ---------- v106: CNPJ com busca na Receita (G.cnpjBusca, app.js) — Gestão e LicitaHub ---------- */
.vx-cnpj-linha{display:flex;gap:8px;align-items:stretch;min-width:0}
.vx-cnpj-linha .inp{flex:1 1 auto;min-width:0;font-variant-numeric:tabular-nums}
.vx-cnpj-btn{flex:0 0 auto;position:relative;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.vx-cnpj-btn.loading::after{border-color:rgba(36,54,47,.25);border-top-color:#24362F}
.vx-cnpj .hint{display:flex;gap:6px;align-items:flex-start}
.vx-cnpj.is-ok .hint{color:#2E7D5B;font-weight:600}
.vx-cnpj.is-error .hint{color:#C25049;font-weight:600}
.vx-cnpj.is-ok .inp{border-color:rgba(46,125,91,.55)}
/* campo que veio da Receita: destaque leve, some quando a pessoa edita */
.vx-cnpj-auto,.field .vx-cnpj-auto,.lh-form .vx-cnpj-auto{background:#EEF4EF !important;border-color:rgba(46,125,91,.42) !important;border-style:solid !important;box-shadow:inset 3px 0 0 rgba(46,125,91,.55)}
.vx-cnpj-aviso{display:flex;gap:10px;align-items:flex-start;margin:10px 0 0;padding:10px 12px;border-radius:12px;background:rgba(184,92,58,.08);border:1px solid rgba(184,92,58,.28);color:#1E2522;font-size:12.5px;line-height:1.45}
.vx-cnpj-aviso svg{flex:0 0 auto;width:16px;height:16px;color:#B85C3A;margin-top:1px}
.vx-cnpj-aviso .btn{margin-top:6px}
/* celular: a lupa fica só com o ícone, para o CNPJ inteiro caber no campo */
@media (max-width:480px){.vx-cnpj-btn span{display:none}.vx-cnpj-btn{padding-left:13px;padding-right:13px}}
/* ---------- v106 · "Ajuda & tour" no menu lateral (o "?" da barra saiu) ---------- */
.vx-ajuda-pop,.lh-ajuda-pop{position:fixed !important;right:auto !important;bottom:auto !important;z-index:9500;min-width:236px;padding:6px}
.vx-ajuda-pop-t,.lh-ajuda-pop-t{padding:8px 10px 6px;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3)}
.ritem{position:relative}
.ritem .tour-dot{position:absolute;top:7px;right:7px;width:8px;height:8px;border-radius:50%;background:#2E7D5B;box-shadow:0 0 0 2px #fff;pointer-events:none}
/* opção "Cadastrar empresa" no fim da lista de empresas */
.dd-pop .dd-opt.vx-dd-add{border-top:1px solid rgba(36,54,47,.08);margin-top:4px;padding-top:10px;color:#24362F;font-weight:700;text-decoration:none}
.dd-pop .dd-opt.vx-dd-add .icon{color:#B85C3A}
/* ---------- v106 · central de ajuda ---------- */
/* Layout da central (page-ajuda.js): lista de tópicos com a busca .inp-ic à esquerda, tópico na
   largura toda, cabeçalho com ícone vivo e as ações da tela, legenda em colunas, passo a passo e
   dúvidas lado a lado. Prévias: réplicas das telas com as mesmas peças (vx-hero, vx-blk, vx-ct, vx-ficha…). */
.vx-aj{display:grid;grid-template-columns:268px minmax(0,1fr);gap:18px;align-items:start}
.vx-aj-nav{position:sticky;top:14px;padding:12px;display:grid;gap:8px;max-height:calc(100vh - 28px);overflow:auto}
.vx-aj-nav .inp-ic .inp{width:100%;max-width:none}
.vx-aj-lista .grp{font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3);margin:10px 10px 4px;font-weight:800}
.vx-aj-lista a{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:10px;font-size:12.5px;font-weight:600;line-height:1.3;color:var(--ink-2);text-decoration:none}
.vx-aj-lista a .icon{width:15px;height:15px;flex:0 0 auto;color:var(--ink-3)}
.vx-aj-lista a:hover{background:rgba(36,54,47,.06);color:#24362F}
.vx-aj-lista a.on{background:#24362F;color:#F3F1EA}
.vx-aj-lista a.on .icon{color:#F3F1EA}
.vx-aj-lista [hidden]{display:none !important}
.vx-aj-nada{font-size:12px;line-height:1.5;color:var(--ink-3);padding:6px 10px;margin:0}
.vx-aj-atual{display:none}
.vx-aj-corpo{min-width:0}
.vx-aj-topico{padding:20px 22px;min-width:0}
.vx-aj-cab{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--line)}
.vx-aj-ic{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(150deg,#2F4740,#24362F);color:#F3F1EA;--vv-ac:#E3A283;box-shadow:0 6px 16px -8px rgba(36,54,47,.55)}
.vx-aj-cab-t{flex:1 1 220px;min-width:0}
.vx-aj-cab-t small{display:block;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#B85C3A}
.vx-aj-cab-t h2{margin:2px 0 0;font-size:21px;letter-spacing:-.3px;line-height:1.2;color:#1E2522}
.vx-aj-cab-a{display:flex;gap:8px;flex-wrap:wrap}
.vx-aj-topico p,.vx-aj-topico li{font-size:13px;line-height:1.6;color:var(--ink-2)}
.vx-aj-topico .vx-aj-lead{font-size:14.5px;line-height:1.6;color:var(--ink);margin:0 0 6px}
.vx-aj-sec{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:15.5px;margin:28px 0 6px;padding-top:18px;border-top:1px dashed var(--line);color:#1E2522}
.vx-aj-sec small{font-size:12px;font-weight:500;color:var(--ink-3)}
.aj-legend.vx-aj-leg{display:block;columns:2 300px;column-gap:28px;margin-top:14px}
.vx-aj-leg li{break-inside:avoid;margin-bottom:8px}
.vx-aj-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:14px;margin-top:18px;align-items:start}
.vx-aj-blc{--c:#2E7D5B;border-radius:18px;padding:14px 16px;border:1px solid rgba(255,255,255,.9);background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,#fff),rgba(255,255,255,.82));box-shadow:0 1px 2px rgba(30,37,34,.05);min-width:0}
.vx-aj-blc.c-verde{--c:#2E7D5B}.vx-aj-blc.c-terra{--c:#B85C3A}.vx-aj-blc.c-mostarda{--c:#A8762A}.vx-aj-blc.c-petroleo{--c:#3E7C8C}.vx-aj-blc.c-folha{--c:#24362F}
.vx-aj-blc-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.vx-aj-blc-h>div{flex:1 1 180px;min-width:0}
.vx-aj-blc-h b{display:block;font-size:14px;color:#1E2522}
.vx-aj-blc-h small{display:block;font-size:11.5px;color:var(--ink-3)}
.vx-aj-blc-ic{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:var(--c);color:#fff;--vv-ac:#F3D9CC}
.vx-aj-blc-a{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.vx-aj-blc .aj-faq details{background:rgba(255,255,255,.75)}
.vx-aj-passos{padding-left:22px;margin:4px 0 0}
.vx-aj-passos li{margin:5px 0}
.vx-aj-regra{margin-top:14px;font-size:12.5px}
.vx-aj-ex{margin-top:14px}
.vx-aj-pn{display:flex;justify-content:space-between;gap:10px;margin-top:12px;flex-wrap:wrap}
.vx-aj-pn a{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:#1E2522;font-size:13px;font-weight:700;max-width:100%}
.vx-aj-pn a small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--ink-3)}
.vx-aj-pn a .icon{width:16px;height:16px;flex:0 0 auto;color:#B85C3A}
.vx-aj-pn a.prox{margin-left:auto;text-align:right}
.vx-aj-pn a:hover{border-color:#24362F}
.vx-aj-tour{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding:14px 16px;border-radius:16px;background:linear-gradient(150deg,#2F4740,#24362F);color:#F3F1EA;--vv-ac:#E3A283}
.vx-aj-tour-ic{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:rgba(243,241,234,.1);flex:0 0 auto}
.vx-aj-tour>div{flex:1 1 260px;min-width:0}
.vx-aj-tour>div>b{display:block;font-size:14px}
.vx-aj-tour>div>span{font-size:12.5px;line-height:1.5;color:rgba(243,241,234,.82)}
.vx-aj-tour .btn-primary{background:#B85C3A;border-color:#B85C3A;color:#fff}
.vx-aj-tblw{overflow-x:auto}
.vx-aj-tbl td{vertical-align:top;font-size:12.5px}
.vx-aj-tbl td:first-child{font-weight:700;white-space:nowrap}
/* prévias */
.vx-aj .aj-prev{overflow-x:auto;margin-top:12px}
.vx-aj .aj-prev .page-head{margin-bottom:12px}
.vx-aj .aj-prev .page-head h1{font-size:20px}
.vx-aj .aj-prev .modal .mb{max-height:none;overflow:visible}
.vx-aj .aj-prev .vx-hero,.vx-aj .aj-prev .vx-attn,.vx-aj .aj-prev .vx-ind,.vx-aj .aj-prev .vx-toolbar{margin-bottom:12px}
.vx-aj .aj-prev .vx-kvs{grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr))}
.vx-aj .aj-prev .aj-num{display:inline-grid !important;place-items:center;min-width:19px !important;width:auto !important;height:19px !important;padding:0 5px !important;border-radius:10px !important;background:#B3362E !important;color:#fff !important;font-size:11px !important;font-weight:800 !important;line-height:1 !important;letter-spacing:0 !important;text-transform:none !important;margin:0 6px 0 0 !important;border:0 !important;flex:0 0 auto !important;position:static !important;vertical-align:middle}
.vx-aj-pin{position:absolute;left:4px;top:4px;z-index:2}
.vx-aj-pin .aj-num{margin:0 !important}
.vx-aj .aj-prev .vx-ct,.vx-aj .aj-prev .vx-ficha,.vx-aj .aj-prev .vx-blocos,.vx-aj .aj-prev .vx-relbar,.vx-aj .aj-prev .vx-flow{position:relative}
.vx-aj-tile{position:relative;min-width:0}
.vx-aj-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px 12px;align-items:start}
.vx-aj-campos .full{grid-column:1/-1}
.vx-aj-campos .field{margin:0}
.vx-aj-ph{flex-wrap:wrap;gap:10px}
.vx-aj-chip{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:5px 11px;border-radius:999px;background:rgba(36,54,47,.07);font-size:11px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#24362F}
.vx-aj-chip span{font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-3)}
.vx-aj-barra{display:block;height:6px;border-radius:99px;background:rgba(30,37,34,.1);overflow:hidden;margin:6px 0;min-width:60px}
.vx-aj-barra i{display:block;height:100%;border-radius:99px}
.vx-aj-step{display:flex;gap:4px;overflow-x:auto;padding:8px 0}
.vx-aj-step>div{flex:1 0 82px;text-align:center}
.vx-aj-step span{width:28px;height:28px;border-radius:50%;margin:0 auto;display:grid;place-items:center;font-size:12px;font-weight:800;border:2px solid var(--line);color:var(--ink-3)}
.vx-aj-step .feito span{background:#2E7D5B;border-color:#2E7D5B;color:#fff}
.vx-aj-step .on span{border-color:#C25049;color:#C25049}
.vx-aj-step b{display:block;font-size:11px;margin-top:5px}.vx-aj-step small{font-size:10px;color:var(--ink-3)}
/* menu lateral e barra */
.vx-aj-shell{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}
.vx-aj-rail{display:flex;flex-direction:column;gap:4px;padding:10px 8px;border-radius:22px;background:var(--surface);border:1px solid var(--line);min-width:200px}
.vx-aj-rail-sp{height:10px}
.vx-aj-ri{display:flex;align-items:center;gap:10px}
.vx-aj-ri-ic{position:relative;width:34px;height:34px;border-radius:11px;display:grid;place-items:center;color:#4E5B55;flex:0 0 auto}
.vx-aj-ri-ic .icon{width:17px;height:17px}
.vx-aj-ri.on .vx-aj-ri-ic{background:#24362F;color:#F3F1EA}
.vx-aj-ri-l{font-size:12px;font-weight:600;color:var(--ink-2);white-space:nowrap}
.vx-aj-dot{position:absolute;top:5px;right:5px;width:8px;height:8px;border-radius:50%;background:#2E7D5B;box-shadow:0 0 0 2px #fff}
.vx-aj-shell-m{flex:1 1 320px;min-width:0;display:grid;gap:12px}
.vx-aj-top{padding:10px 14px;flex-wrap:wrap;gap:8px}
.vx-aj-top .dd-btn{min-width:0;width:auto;max-width:230px;flex:0 1 auto}
.vx-aj-k{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-size:12px;color:var(--ink-3)}
.vx-aj-k .icon{width:14px;height:14px}
.vx-aj-k kbd{font-family:inherit;font-size:10.5px;font-weight:700;border:1px solid var(--line);border-radius:6px;padding:1px 6px;background:#fff;color:var(--ink-2)}
.vx-aj-pop{justify-self:start;display:grid;gap:2px;min-width:236px;padding:6px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 14px 32px -16px rgba(30,37,34,.35)}
.vx-aj-pop-t{padding:8px 10px 6px;font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3)}
.vx-aj-pop>span{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;font-size:13px;font-weight:600;color:#1E2522}
.vx-aj-pop>span:first-of-type{background:rgba(36,54,47,.06)}
.vx-aj-pop .icon{width:15px;height:15px;color:#B85C3A}
.vx-aj-nota{display:flex;gap:8px;align-items:flex-start;margin:0;font-size:12px !important;color:var(--ink-3) !important}
.vx-aj-nota .icon{width:14px;height:14px;flex:0 0 auto;margin-top:2px}
/* painel e planejamento */
.vx-aj-meta{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.vx-aj-meta>div{flex:1 1 180px;min-width:0}
.vx-aj-meta-n{font-size:26px;font-weight:700;letter-spacing:-.8px;line-height:1}
.vx-aj-meta-n span{font-size:13px;font-weight:600;letter-spacing:0;color:var(--ink-3)}
.vx-aj-meta small{font-size:11.5px;color:var(--ink-3)}
.vx-aj-obj-g{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:stretch}
.vx-aj-obj-t{font-size:18px;font-weight:700;line-height:1.35;margin:6px 0 12px;color:#fff}
.vx-aj-meses{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.vx-aj-meses span{font-size:9.5px;font-weight:700;text-transform:uppercase;color:rgba(255,255,255,.55);text-align:center}
.vx-aj-meses i{display:block;height:5px;border-radius:99px;background:rgba(255,255,255,.18);margin-bottom:4px}
.vx-aj-meses .feito i{background:rgba(169,201,181,.75)}
.vx-aj-meses .on i{background:#E3A283}.vx-aj-meses .on{color:#fff}
.vx-aj-ano{border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);padding:12px 14px;color:#fff}
.vx-aj-ano>small{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:rgba(255,255,255,.7)}
.vx-aj-ano-g{display:flex;gap:14px;align-items:center;margin-top:8px}
.vx-aj-ano-g>div{flex:1;min-width:0;font-size:12px}
.vx-aj-ano-g span{display:flex;justify-content:space-between;gap:8px}
.vx-aj-ano .vx-anel b{color:#fff}
.vx-aj-setores{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:8px 18px}
.vx-aj-setores>div{display:grid;grid-template-columns:auto minmax(0,1fr) 90px auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.vx-aj-setores b{display:block;font-size:12.5px}.vx-aj-setores small{font-size:11px;color:var(--ink-3)}
.vx-aj-setores em{font-style:normal;font-weight:800;font-size:12.5px}
.vx-aj-sq{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:800}
.vx-aj-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin-bottom:12px}
.vx-aj-st{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:14px;background:var(--surface);border:1px solid var(--line);min-width:0}
.vx-aj-st i{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;font-style:normal;font-size:11px;font-weight:800;color:#fff;background:var(--c)}
.vx-aj-st b{display:block;font-size:12px;line-height:1.25}.vx-aj-st small{font-size:10.5px;color:var(--ink-3)}
.vx-aj-st.on{background:color-mix(in srgb,var(--c) 14%,#fff);border-color:var(--c)}
.vx-aj-pasta{border-radius:20px;padding:14px;border:1px solid var(--line);background:rgba(255,255,255,.55);display:grid;gap:12px}
.vx-aj-pasta-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.vx-aj-pasta-h>b{font-size:16px}
.vx-aj-frase{font-size:15px;font-weight:600;color:#1E2522;margin:0}
.vx-aj-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:10px}
.vx-aj .aj-prev .dd-btn{width:auto;min-width:0;flex:0 0 auto}
.vx-aj .aj-prev .tabs,.vx-aj .aj-prev .seg{flex-wrap:wrap}
.vx-aj .aj-prev .vx-fgrupo{min-width:0}
.vx-aj .aj-prev .vx-fgrupo-t{white-space:normal;flex-wrap:wrap}
.vx-aj .aj-prev .dd-btn,.vx-aj .aj-prev .inp{max-width:100%}
.vx-aj .aj-prev .vx-hero-big{font-size:clamp(24px,3vw,34px)}
.vx-aj-lado{min-width:0}
.vx-aj-lado .inp{width:100%;max-width:100%;min-width:0}
.vx-aj-meta-c{position:relative;display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.vx-aj-meta-c>div{flex:1;min-width:0;font-size:12px}
.vx-aj-meta-h{display:flex;gap:6px;align-items:flex-start}
.vx-aj-meta-h b{flex:1;font-size:13px}
.vx-aj-tipo{display:block;font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#B85C3A;margin:2px 0 4px}
.vx-aj-pilar{position:relative;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c);font-size:12px}
.vx-aj-pilar>b{display:block;font-size:13px}.vx-aj-pilar>small{color:var(--ink-3)}
.vx-aj-link{font-size:11.5px;font-weight:700;color:#24362F}
.vx-aj-linha-tempo{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px;border-top:2px dashed rgba(36,54,47,.18);padding-top:8px}
.vx-aj-linha-tempo span{font-size:10px;font-weight:700;color:var(--ink-3);text-align:center}
.vx-aj-linha-tempo .feito{color:#2E7D5B}.vx-aj-linha-tempo .on{color:#B85C3A}
.vx-aj-mes{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.vx-aj-mes .sp{flex:1}
.vx-aj-foco{position:relative;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line);border-left:4px solid #3E7C8C;font-size:12.5px}
.vx-aj-foco-t{margin:6px 0 8px}
/* execução */
.vx-aj-cont{display:inline-flex;gap:12px;flex-wrap:wrap}
.vx-aj-flow{margin:10px 0}
.vx-aj-kan{gap:10px;align-items:start}
.vx-aj-kc{position:relative;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--t);border-radius:12px;padding:10px;margin-bottom:8px;font-size:12px}
.vx-aj-kc>b{display:block;font-size:12.5px;margin:4px 0}
.vx-aj-kc-h,.vx-aj-kc-m,.vx-aj-kc-a{display:flex;align-items:center;gap:6px}
.vx-aj-kc-h .chip{font-size:10px;color:var(--t);border-color:color-mix(in srgb,var(--t) 30%,transparent)}
.vx-aj-kc .sp{flex:1}
.vx-aj-kc-m{font-size:11px;color:var(--ink-3)}
.vx-aj-kc-a{justify-content:flex-end;gap:10px;margin-top:6px;color:var(--ink-3)}
.vx-aj-kc-a .icon:first-child{color:#2E7D5B}
.vx-aj-verso{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:14px}
.vx-aj-caixa{border:1px solid var(--line);border-radius:10px;padding:10px;font-size:12.5px;min-height:70px}
.vx-aj-lado{border-left:1px solid var(--line);padding-left:14px;display:grid;gap:8px}
.vx-aj-proj{padding:14px 18px}
.vx-aj-tiles3,.vx-aj-tiles4{display:grid;gap:8px;margin-bottom:12px}
.vx-aj-tiles3{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr))}
.vx-aj-tiles4{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
/* combinados */
.vx-aj-aceite{border-radius:18px;padding:12px;margin-bottom:12px;background:rgba(168,118,42,.1);border:1px solid rgba(168,118,42,.25)}
.vx-aj-aceite-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:13px}
.vx-aj-aceite-h .sp{flex:1}.vx-aj-aceite-h small{font-size:11px;color:var(--ink-3)}
.vx-aj-cb{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid #C9A86A}
.vx-aj-cb b{display:block;font-size:13px}.vx-aj-cb small{font-size:11px;color:var(--ink-3)}.vx-aj-cb p{margin:4px 0 8px;font-size:12.5px}
.vx-aj-filtro{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}
.vx-aj-filtro .inp{min-width:160px}
.vx-aj-cards2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:10px}
.vx-aj-cards3{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:10px}
.vx-aj-comb{position:relative;display:grid;gap:8px;padding:12px;border-radius:16px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--c);font-size:12.5px}
.vx-aj-dir{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}
.vx-aj-gat{background:var(--surface-2,#F6F5F0);border-radius:10px;padding:8px 10px;display:grid;gap:3px}
.vx-aj-gat small{font-size:10px;font-weight:800;text-transform:uppercase;color:var(--ink-3)}
.vx-aj-gat b{font-size:13px}
.vx-aj-acoes{display:grid;gap:4px}
.vx-aj-pe{display:flex;align-items:center;gap:6px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:8px}
.vx-aj-pe .sp{flex:1}
/* contratos, clientes, relatórios */
.vx-aj-lista{display:grid;gap:10px}
.vx-aj-cli{position:relative;display:grid;grid-template-columns:minmax(0,1.4fr) repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;align-items:stretch}
.vx-aj-cli-h{margin:0 !important;padding:14px 18px}
.vx-aj-cartao{position:relative;padding:12px 14px;border-radius:16px;background:#fff;border:1px solid var(--line);font-size:12.5px;min-width:0}
.vx-aj-cartao b{display:block;font-size:13px}
.vx-aj-cartao small{display:block;font-size:11.5px}
.vx-aj-cartao.novo{display:grid;place-items:center;gap:6px;border-style:dashed;color:var(--ink-3);min-height:96px;text-align:center}
.vx-aj-rfil{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:8px;margin-top:10px;align-items:end}
.vx-aj-rfil>.aj-num{align-self:center}
.vx-aj-rfil .field{margin:0}
.vx-aj-folha{position:relative;margin-top:12px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#fff}
.vx-aj-folha-h{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;padding:16px 18px;background:linear-gradient(150deg,#2F4740,#24362F);color:#F3F1EA}
.vx-aj-folha-h>div{flex:1;min-width:0}
.vx-aj-folha-h small{display:block;font-size:11px;font-weight:700;opacity:.75}
.vx-aj-folha-h b{display:block;font-size:17px;margin:2px 0}
.vx-aj-folha-h span{font-size:11.5px;opacity:.8}
.vx-aj-folha-b{padding:12px 18px}
.vx-aj-folha-k{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:8px;margin-bottom:10px}
.vx-aj-folha-k>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.vx-aj-folha-k small{display:block;font-size:10.5px;text-transform:uppercase;color:var(--ink-3)}
.vx-aj-folha-k b{font-size:14px}
.vx-aj-sigla{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto;color:#fff;font-weight:800;font-size:13px}
.vx-aj-sigla.p{width:36px;height:36px;border-radius:11px;font-size:11px}
.vx-aj-seg{margin-bottom:12px;flex-wrap:wrap}
.vx-aj-dados{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px 16px;font-size:12.5px}
.vx-aj-dados small{display:block;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--ink-3)}
/* configurações e perfil */
.vx-aj-gov-g{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px;align-items:start}
.vx-aj-gov-big{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:6px 0}
.vx-aj-gov-big b{font-size:34px;font-weight:700;color:#fff;line-height:1}.vx-aj-gov-big span{font-size:13px;color:rgba(255,255,255,.75);margin-right:10px}
.vx-aj-gov-ev{border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);padding:10px 12px;color:#fff;font-size:12px}
.vx-aj-gov-ev small{font-size:10.5px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:rgba(255,255,255,.7)}
.vx-aj-gov-ev ul{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:6px}
.vx-aj-gov-ev li{display:flex;align-items:center;gap:8px}
.vx-aj-gov-ev li i{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.vx-aj-gov-ev li span{flex:1;min-width:0;color:rgba(255,255,255,.85)}
.vx-aj-gov-ev li em{font-style:normal;font-size:11px;color:rgba(255,255,255,.6)}
.vx-aj-gov-ev b{color:#fff}
.vx-aj-cfgtabs button em{font-style:normal;font-size:10.5px;font-weight:800;background:rgba(36,54,47,.1);border-radius:99px;padding:0 7px;margin-left:4px}
.vx-aj-sec-t{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 280px}
.vx-aj-sec-t b{display:block;font-size:14px}.vx-aj-sec-t small{display:block;font-size:11.5px;color:var(--ink-3)}
.vx-aj-pessoa{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:14px;background:#fff;border:1px solid var(--line);font-size:12.5px}
.vx-aj-pessoa>div{flex:1 1 180px}
.vx-aj-pessoa b{display:block}.vx-aj-pessoa small{display:block;font-size:11.5px}
.vx-aj-perfil-g{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.vx-aj-foto{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;flex:0 0 auto;background:#B85C3A;color:#fff;font-size:22px;font-weight:800;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.vx-aj-perfil-n{font-size:20px;font-weight:700;color:#fff}
.vx-aj-perfil-c{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.vx-aj-perfil-c span{font-size:11px;font-weight:700;padding:3px 9px;border-radius:99px;background:rgba(255,255,255,.12);color:#fff}
.vx-aj-perfil-r{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:12px}
.vx-aj-perfil-r small{display:block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;opacity:.75}
.vx-aj-perfil-r span{display:block;margin:2px 0 6px;opacity:.85}
.vx-aj-perfil-r .vx-anel b{color:#fff}
@media (max-width:1100px){ .vx-aj{grid-template-columns:230px minmax(0,1fr)} .vx-aj-obj-g,.vx-aj-gov-g{grid-template-columns:minmax(0,1fr)} }
@media (max-width:900px){
  .vx-aj{grid-template-columns:minmax(0,1fr);gap:12px}
  .vx-aj-nav{position:static;max-height:none}
  .vx-aj-atual{display:flex;align-items:center;gap:9px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font:inherit;font-size:13px;font-weight:700;color:#1E2522;cursor:pointer;text-align:left}
  .vx-aj-atual span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .vx-aj-atual em{font-style:normal;font-size:11px;font-weight:700;color:var(--ink-3)}
  .vx-aj-atual .icon{width:16px;height:16px;flex:0 0 auto}
  .vx-aj-lista{display:none}
  .vx-aj-nav.aberto .vx-aj-lista,.vx-aj-nav.buscando .vx-aj-lista{display:block}
  .vx-aj-verso{grid-template-columns:minmax(0,1fr)}
  .vx-aj-lado{border-left:0;padding-left:0}
  .vx-aj-cli{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
  .vx-aj-topico{padding:16px 14px}
  .vx-aj-cab-t h2{font-size:18px}
  .vx-aj-ic{width:44px;height:44px;border-radius:13px}
  .vx-aj .aj-prev{padding-left:10px;padding-right:10px}
  .vx-aj-rail{min-width:0;width:100%}
  .vx-aj-pn a{flex:1 1 100%}
  .vx-aj-tbl td:first-child{white-space:normal}
  .vx-aj-setores>div{grid-template-columns:auto minmax(0,1fr) auto}
  .vx-aj-setores>div .vx-aj-barra{display:none}
  .vx-aj-meses span{font-size:0}
}

/* ---------- v107 · tarefas do LicitaHub no cartão e na Execução ---------- */
.cd-lh-chip{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:#9E4B2D;border-color:rgba(184,92,58,.35);background:rgba(184,92,58,.08);margin-left:6px}
.cd-lh-chip .icon{color:#B85C3A}
.cd-lh-link{display:block;padding:9px 11px;border-radius:12px;border:1px solid rgba(36,54,47,.12);background:#fff;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.cd-lh-link:hover{border-color:#B85C3A;box-shadow:0 4px 12px rgba(30,45,38,.08)}
.cd-lh-link b{display:block;font-size:12.5px;line-height:1.35}
.cd-lh-link small{display:block;font-size:11px;color:var(--ink-3);margin-top:2px}
.vx-origem-lh{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;padding:2px 7px;border-radius:99px;color:#9E4B2D;background:rgba(184,92,58,.1)}
.vx-origem-lh .icon{width:10px;height:10px}

/* ---------- v107 · central de ajuda ---------- */
/* legenda com separador discreto e mais respiro; número da prévia <-> item da legenda (page-ajuda.js, ligarLegendas) */
.aj-legend.vx-aj-leg{column-gap:34px;margin-top:16px}
.vx-aj-leg li{margin:0;padding:11px 10px 12px;border-radius:12px;background-image:linear-gradient(rgba(30,37,34,.08),rgba(30,37,34,.08));background-repeat:no-repeat;background-size:calc(100% - 20px) 1px;background-position:10px 100%;transition:background-color .18s}
.vx-aj-leg li.vx-aj-ligado{cursor:pointer}
.vx-aj-leg li.vx-aj-ligado:hover{background-color:rgba(36,54,47,.05)}
.vx-aj-leg li.vx-aj-ligado:focus-visible{outline:0;background-color:rgba(36,54,47,.05);box-shadow:0 0 0 2px rgba(184,92,58,.45)}
.vx-aj-leg li.vx-aj-flash{animation:vx-aj-flash 1.8s ease-out}
@keyframes vx-aj-flash{0%,40%{background-color:rgba(184,92,58,.16);box-shadow:0 0 0 2px rgba(184,92,58,.55)}100%{background-color:rgba(184,92,58,0);box-shadow:0 0 0 2px rgba(184,92,58,0)}}
.vx-aj .aj-prev .aj-num.vx-aj-alvo{cursor:pointer;transition:transform .15s,box-shadow .15s}
.vx-aj .aj-prev .aj-num.vx-aj-alvo:hover{transform:scale(1.18)}
.vx-aj .aj-prev .aj-num.vx-aj-acende{transform:scale(1.25);background:#B85C3A !important;box-shadow:0 0 0 2px #fff,0 0 0 4px #B85C3A;position:relative !important;z-index:4}
.vx-aj .aj-prev .aj-num.vx-aj-pulsa{position:relative !important;z-index:4;animation:vx-aj-pulsa 1.8s ease-out}
@keyframes vx-aj-pulsa{0%{transform:scale(1)}15%{transform:scale(1.45);box-shadow:0 0 0 3px #fff,0 0 0 7px rgba(184,92,58,.55)}35%{transform:scale(1.15)}50%{transform:scale(1.35);box-shadow:0 0 0 3px #fff,0 0 0 6px rgba(184,92,58,.4)}100%{transform:scale(1);box-shadow:0 1px 3px rgba(0,0,0,.25)}}
/* glossário em grupos coloridos (as cores seguem as de .vx-aj-blc) */
.vx-aj-gl-idx{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 14px}
.vx-aj-gl-pill{--c:#2E7D5B;display:inline-flex;align-items:center;gap:8px;padding:7px 10px 7px 11px;border-radius:99px;border:1px solid color-mix(in srgb,var(--c) 24%,transparent);background:color-mix(in srgb,var(--c) 7%,#fff);font:inherit;font-size:12.5px;font-weight:700;color:#1E2522;cursor:pointer;transition:border-color .15s,transform .15s,box-shadow .15s}
.vx-aj-gl-pill.c-verde{--c:#2E7D5B}.vx-aj-gl-pill.c-terra{--c:#B85C3A}.vx-aj-gl-pill.c-mostarda{--c:#A8762A}.vx-aj-gl-pill.c-petroleo{--c:#3E7C8C}.vx-aj-gl-pill.c-folha{--c:#24362F}
.vx-aj-gl-pill>i{width:9px;height:9px;border-radius:50%;background:var(--c);flex:0 0 auto}
.vx-aj-gl-pill em{font-style:normal;font-size:11px;font-weight:800;min-width:20px;padding:1px 6px;border-radius:99px;background:color-mix(in srgb,var(--c) 14%,#fff);color:var(--c);text-align:center}
.vx-aj-gl-pill:hover{border-color:var(--c);transform:translateY(-1px);box-shadow:0 6px 14px color-mix(in srgb,var(--c) 16%,transparent)}
.vx-aj-gl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:14px;align-items:start}
.vx-aj-gl{scroll-margin-top:16px;border-radius:18px}
.vx-aj-gl .vx-aj-blc{height:100%;box-shadow:0 1px 2px rgba(30,37,34,.05),0 8px 22px rgba(30,45,38,.06)}
.vx-aj-gl.vx-aj-flash{animation:vx-aj-flashb 1.8s ease-out}
@keyframes vx-aj-flashb{0%,40%{box-shadow:0 0 0 3px rgba(184,92,58,.45)}100%{box-shadow:0 0 0 3px rgba(184,92,58,0)}}
.vx-aj-gl-l{margin:0;display:grid}
.vx-aj-gl-l>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:4px 14px;padding:11px 2px;border-top:1px solid rgba(30,37,34,.07)}
.vx-aj-gl-l>div:first-child{border-top:0;padding-top:2px}
.vx-aj-gl-l dt{font-size:12.5px;font-weight:800;line-height:1.45;color:var(--c,#24362F)}
.c-mostarda .vx-aj-gl-l dt{color:#7A5518}
.vx-aj-gl-l dd{margin:0;min-width:0;font-size:13px;line-height:1.55;color:var(--ink-2)}
.vx-aj-cad{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:4px}
.vx-aj-gl-l dd>.vx-aj-cad:first-child{margin-top:0}
.vx-aj-chip{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;background:#fff;border:1px solid color-mix(in srgb,var(--c,#24362F) 20%,transparent);font-size:12px;font-weight:600;line-height:1.35;color:#1E2522}
.vx-aj-cad-s{display:inline-grid;place-items:center;font-style:normal;color:var(--c,#B85C3A)}
.vx-aj-cad-s .icon{width:12px;height:12px}
.vx-aj-cores{display:grid;gap:5px;margin-top:5px}
.vx-aj-cores>span{display:flex;gap:8px;align-items:baseline}
.vx-aj-cores i{width:10px;height:10px;border-radius:50%;background:var(--d);flex:0 0 auto;transform:translateY(1px);box-shadow:0 0 0 3px color-mix(in srgb,var(--d) 18%,transparent)}
.vx-aj-gl-pap{display:grid;gap:6px}
.vx-aj-gl-pap>span{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.vx-aj-gl-pap b{font-size:10.5px;font-weight:800;padding:2px 9px;border-radius:99px;background:var(--c,#24362F);color:#F3F1EA;white-space:nowrap}
@media (max-width:600px){
  .vx-aj-gl-l>div{grid-template-columns:minmax(0,1fr);gap:4px}
  .vx-aj-leg li{padding:10px 6px 11px;background-size:calc(100% - 12px) 1px;background-position:6px 100%}
}
@media (prefers-reduced-motion:reduce){.vx-aj-leg li.vx-aj-flash,.vx-aj .aj-prev .aj-num.vx-aj-pulsa,.vx-aj-gl.vx-aj-flash{animation:none}}

/* v107 · glossário: blocos em colunas sem buraco (masonry por colunas) e o termo em cima da definição */
.vx-aj-gl-grid{display:block;columns:2 420px;column-gap:14px}
.vx-aj-gl-grid>.vx-aj-gl{break-inside:avoid;margin:0 0 14px}
.vx-aj-gl-l>div{grid-template-columns:minmax(0,1fr);gap:6px}
.vx-aj-cores>span>span{min-width:0}

/* ---------- v107 · "?" de explicação ao lado de títulos de bloco (G.ui.dica) ---------- */
.vx-dica{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px;font-weight:400;text-transform:none;letter-spacing:0}
.vx-dica-b{display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border-radius:50%;border:1.5px solid rgba(36,54,47,.18);background:#fff;color:var(--ink-3);cursor:pointer;transition:color .15s,border-color .15s,transform .15s}
.vx-dica-b .icon{width:11px;height:11px}
.vx-dica-b:hover,.vx-dica.on .vx-dica-b{color:#B85C3A;border-color:#B85C3A;transform:translateY(-1px)}
.vx-dica-b:focus-visible{outline:2px solid #B85C3A;outline-offset:2px}
.vx-dica-pop{display:none;position:absolute;left:-12px;top:calc(100% + 9px);z-index:60;width:max-content;max-width:min(380px,82vw);padding:11px 14px;border-radius:12px;background:#fff;border:1px solid rgba(36,54,47,.12);box-shadow:0 14px 34px rgba(30,45,38,.18);font-size:12.5px;line-height:1.55;font-weight:500;color:var(--ink-2);text-align:left;white-space:normal;text-wrap:pretty}
.vx-dica-pop::before{content:"";position:absolute;left:16px;top:-6px;width:10px;height:10px;background:#fff;border-left:1px solid rgba(36,54,47,.12);border-top:1px solid rgba(36,54,47,.12);transform:rotate(45deg)}
.vx-dica-pop b{color:var(--ink)}
.vx-dica.on .vx-dica-pop{display:block;animation:phpop .16s ease-out}
.vx-dica.dir .vx-dica-pop{left:auto;right:-12px}
.vx-dica.dir .vx-dica-pop::before{left:auto;right:16px}
/* v107 · glossário: etiqueta das sequências (classe própria; a .vx-aj-chip da seção v106 volta ao desenho original) */
.vx-aj-chip{display:inline-flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 10px;padding:5px 11px;border-radius:999px;border:0;background:rgba(36,54,47,.07);font-size:11px;font-weight:800;letter-spacing:.4px;line-height:inherit;text-transform:uppercase;color:#24362F}
.vx-aj-etq{display:inline-flex;align-items:center;padding:3px 10px;border-radius:99px;background:#fff;border:1px solid color-mix(in srgb,var(--c,#24362F) 20%,transparent);font-size:12px;font-weight:600;line-height:1.35;color:#1E2522}

/* ---------- v107 · textos em dica e cortes ---------- */
/* corpo da aba entrava 6 px abaixo (translateY); com a aba do navegador em segundo plano a animação parava
   ali e a última linha ficava cortada pela borda do cartão: agora só a opacidade anima */
@keyframes vx-surge-op{from{opacity:.35}to{opacity:1}}
.vx-tabbody{animation-name:vx-surge-op}
/* lista de contratos: objeto em até 2 linhas (o texto inteiro fica no title) */
.vx-ct-t small{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:clip;line-height:1.4}
/* relatório: as regras de tela pequena do gab-ui.css vinham antes da regra base e perdiam; só na tela (o PDF segue igual) */
@media screen and (max-width:860px){.rpt-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.rpt-head,.rpt-body,.rpt-foot{padding-left:18px;padding-right:18px}}
@media screen and (max-width:520px){.rpt-kpis{grid-template-columns:minmax(0,1fr)}.rpt-head{padding-top:22px;padding-bottom:18px}.rpt-body{padding-top:20px;padding-bottom:20px}.rpt-head .top{flex-wrap:wrap;gap:10px}.rpt-foot{flex-wrap:wrap;gap:6px}.sig{gap:18px}}
.rpt-kpi .v{overflow-wrap:anywhere}
/* tabelas da folha: rolam para o lado dentro da folha no celular, com aviso logo acima */
@media screen and (max-width:640px){.sheet .rpt-body .tbl{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}
.vx-rel-cel{display:none}
@media screen and (max-width:640px){.vx-rel-cel{display:flex;align-items:center;gap:6px;margin:0 2px 8px;font-size:12px;font-weight:600;color:#9A7A34}.vx-rel-cel .icon{width:13px;height:13px}}
/* "?" dentro de rótulo de campo e de título de bloco: alinhado ao texto, sem herdar caixa-alta */
label .vx-dica,h3 .vx-dica,h4 .vx-dica,b .vx-dica{vertical-align:-3px}
.vx-dica-pop a{color:#B85C3A;font-weight:700}
/* v107 · ajuste: o "?" volta ao alinhamento central do texto (o -3px acima ficava baixo) */
label .vx-dica,h3 .vx-dica,h4 .vx-dica,b .vx-dica{vertical-align:middle}
/* v107 · janelas: o .modal{overflow:hidden} (v104, para os cantos arredondados) cortava janela comprida sem rolagem
   (Novo contrato, Nova empresa, Nova tarefa: o rodapé com Salvar ficava fora da tela). Rola na vertical, cantos seguem. */
.ov .modal{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
/* v107 · campo de arquivo: no celular o nome escolhido quebra linha em vez de virar "Nenhum arq…" */
@media (max-width:560px){.fskin-file .ff-nome{white-space:normal;overflow-wrap:anywhere;line-height:1.3}}
/* v107: balao do '?' encaixado pela caixa que o contem (app.js); a setinha segue o botao */
.vx-dica-pop.ajustado::before{left:var(--seta,16px);right:auto}
/* ---------- v108 · calendario: escolher mes e ano direto (ui-fields.js) ---------- */
.cal-nav{background:none;padding:0;font:inherit;flex:none}
.cal-nav:focus-visible,.cal-pick:focus-visible,.cal-m:focus-visible{outline:2px solid #B85C3A;outline-offset:2px}
.cal-tit{display:inline-flex;align-items:center;gap:2px;font-size:13.5px;font-weight:700;color:var(--ink)}
b.cal-tit{padding:0 6px;font-variant-numeric:tabular-nums}
.cal-pick{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 9px;border-radius:9px;border:1px solid transparent;background:none;font:inherit;font-size:13.5px;font-weight:700;color:var(--ink);cursor:pointer;transition:background .14s,border-color .14s}
.cal-pick::after{content:"";width:5px;height:5px;margin-top:-3px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg);opacity:.5}
.cal-pick:hover{background:rgba(36,54,47,.06);border-color:rgba(36,54,47,.14)}
.cal-grid.cal-mg{grid-template-columns:repeat(3,1fr);gap:6px;padding:2px 0 4px}
.cal-m{height:42px;display:grid;place-items:center;border-radius:11px;border:1px solid transparent;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--ink-2);cursor:pointer;font-variant-numeric:tabular-nums;transition:background .12s,border-color .12s}
.cal-m:hover{background:rgba(36,54,47,.07)}
.cal-m.today{border-color:rgba(184,92,58,.55);color:#B85C3A}
.cal-m.sel{background:#24362F;border-color:#24362F;color:#F3F1EA;box-shadow:0 4px 12px rgba(36,54,47,.28)}
.cal-m.off{opacity:.3;cursor:not-allowed;text-decoration:line-through}
.cal-m.off:hover{background:none}
/* ---------- v108 · atalho entre sistemas no menu lateral (G.ui.sistemaRail, app.js) ---------- */
/* destaque proprio: terracota claro com borda e setinha de "ir para"; o item ativo da pagina segue verde-escuro */
.rail .ritem.rsis{margin-top:12px;color:#9A4A2D;background:linear-gradient(155deg,#FBF1EB,#F3DFD3);box-shadow:inset 0 0 0 1.5px rgba(184,92,58,.42),0 6px 14px rgba(184,92,58,.14)}
.rail .ritem.rsis::after{content:"";position:absolute;top:-8px;left:10px;right:10px;height:1px;background:rgba(36,54,47,.14);pointer-events:none}
.rail .ritem.rsis:hover,.rail .ritem.rsis:focus-visible{color:#F3F1EA;background:linear-gradient(155deg,#C76A47,#9E4C2E);box-shadow:0 8px 18px rgba(184,92,58,.34);transform:translateY(-1px);outline:none}
.rail .ritem.rsis svg.sis-ic{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.rail .ritem.rsis .rsis-seta{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:#B85C3A;box-shadow:0 0 0 2px #fff;pointer-events:none}
.rail .ritem.rsis .rsis-seta svg{width:9px;height:9px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rail .ritem.rsis:hover .rsis-seta{background:#24362F}
.rail .ritem.rsis .rtip{background:#B85C3A}
/* icones vivos: so ao passar o mouse, partindo do desenho inteiro (nunca escondem o icone) */
.rsis .sis-b{transform-box:fill-box;transform-origin:50% 100%}
.rsis:hover .sis-b1{animation:sisBarra 1.1s ease-in-out infinite}
.rsis:hover .sis-b2{animation:sisBarra 1.1s ease-in-out .15s infinite}
.rsis:hover .sis-b3{animation:sisBarra 1.1s ease-in-out .3s infinite}
@keyframes sisBarra{0%,100%{transform:scaleY(1)}50%{transform:scaleY(.72)}}
.rsis .sis-anel{transform-box:fill-box;transform-origin:50% 50%}
.rsis:hover .sis-anel{animation:sisSelo 1.2s ease-in-out infinite}
@keyframes sisSelo{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.rsis:hover .sis-b,.rsis:hover .sis-anel{animation:none}}
/* menu lateral em tela baixa (notebook): itens mais compactos e, no limite, rola sem barra aparente */
.rail{overflow-y:auto;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
@media (max-height:860px){.rail{gap:3px;padding:12px 0}.rail .rbrand{margin-bottom:4px}.ritem{width:44px;height:40px;border-radius:13px}.ritem svg{width:19px;height:19px}.rail .ritem.rsis{margin-top:9px}.rail .ritem.rsis::after{top:-6px}.ritem.active::before{top:10px;bottom:10px}}
@media (max-height:700px){.rail{gap:1px;padding:10px 0}.ritem{height:36px}.rail .rbrand{width:34px;height:34px}}
/* ---------- v108 · previa do menu na Central: atalho do LicitaHub com destaque proprio ---------- */
.vx-aj-ri-sis{margin-top:6px}
.vx-aj-ri-sis .vx-aj-ri-ic{color:#9A4A2D;background:linear-gradient(155deg,#FBF1EB,#F3DFD3);box-shadow:inset 0 0 0 1.5px rgba(184,92,58,.42)}
.vx-aj-ri-sis .vx-aj-ri-ic svg.sis-ic{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
/* ---------- v109 · dinheiro com mascara, relogio de hora, data e hora (ui-fields.js) ---------- */
.fskin-native-0{width:0 !important;height:0 !important;min-width:0 !important}
.fskin-money{font-variant-numeric:tabular-nums}
td.n .fskin-money,.n .fskin-money{text-align:right}
.fskin-dt{display:flex;gap:8px;width:100%;min-width:0}
.fskin-dt>.fskin-date{flex:1.35 1 0;min-width:0}
.fskin-dt>.fskin-time{flex:1 1 0;min-width:104px}
.fskin-dt.falta-hora .fskin-time .fskin-datebox{border-color:#B85C3A;box-shadow:0 0 0 3px rgba(184,92,58,.14)}
.rl-pop .rl{padding:14px 14px 12px}
.rl-h{display:flex;justify-content:center;align-items:center;gap:4px}
.rl-seg{font:inherit;font-size:30px;font-weight:700;line-height:1;padding:7px 11px;border-radius:12px;border:0;background:rgba(36,54,47,.06);color:var(--ink-2);cursor:pointer;font-variant-numeric:tabular-nums;transition:background .14s,color .14s}
.rl-seg:hover{background:rgba(36,54,47,.11)}
.rl-seg.on{background:#24362F;color:#F3F1EA}
.rl-seg:focus-visible{outline:2px solid #B85C3A;outline-offset:2px}
.rl-dp{font-size:28px;font-weight:700;color:var(--ink-3);line-height:1}
.rl-dica{text-align:center;font-size:11.5px;color:var(--ink-3);margin:7px 0 9px}
.rl-dial{position:relative;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 50% 45%,#FBFAF6 0,#EFECE3 100%);box-shadow:inset 0 0 0 1px rgba(36,54,47,.08);touch-action:none;user-select:none;-webkit-user-select:none;cursor:pointer}
.rl-n{position:absolute;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--ink);pointer-events:none;z-index:2;font-variant-numeric:tabular-nums}
.rl-n.in{width:28px;height:28px;margin:-14px 0 0 -14px;font-size:11.5px;font-weight:500;color:var(--ink-3)}
.rl-n.on{color:#F3F1EA;font-weight:700}
.rl-centro{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#24362F;z-index:1}
.rl-ponteiro{position:absolute;left:50%;bottom:50%;width:2px;margin-left:-1px;background:#24362F;transform-origin:50% 100%;z-index:1;pointer-events:none}
.rl-ponta{position:absolute;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;background:#24362F;z-index:1;pointer-events:none;box-shadow:0 4px 10px rgba(36,54,47,.28)}
.rl-ponta.fina{width:10px;height:10px;margin:-5px 0 0 -5px;background:#B85C3A;box-shadow:none}
/* data e hora em coluna estreita: quebra em duas linhas em vez de cortar a data */
.fskin-dt{flex-wrap:wrap;row-gap:6px}
.fskin-dt>.fskin-date{flex:1 1 128px}
.fskin-dt>.fskin-time{flex:1 1 96px;min-width:96px}
