/* ==========================================================================
   Prototipo erp_kortexi
   Folha de estilo unica do prototipo. Complementa o Bootstrap 5.
   ========================================================================== */

:root {
  --k-espaco-1: 4px;
  --k-espaco-2: 8px;
  --k-espaco-3: 12px;
  --k-espaco-4: 16px;
  --k-espaco-5: 24px;
  --k-espaco-6: 32px;
  --k-raio: 8px;
  --k-foco: #1864ab;
  --k-azul: #1f3864;
  --k-azul-claro: #2b5a92;
  --k-azul-suave: #eef3fa;
  --k-borda: #d8e0ea;
  --k-fundo: #f4f6f9;
  --k-texto: #1f2937;
  --k-texto-suave: #5b6675;
  --k-verde: #11794b;
  --k-verde-suave: #e6f4ee;
  --k-amarelo: #8a5a00;
  --k-amarelo-suave: #fdf3e0;
  --k-vermelho: #a02020;
  --k-vermelho-suave: #fbeaea;
  --k-roxo: #5b2a86;
  --k-roxo-suave: #f2ecf8;
  --k-laranja: #c65300;
  --k-lateral: 264px;
  --k-lateral-recolhida: 64px;
}

html, body { height: 100%; }
html, body { max-width: 100%; overflow-x: hidden; }
.badge { white-space: normal; }
img, svg, video, canvas { max-width: 100%; height: auto; }
pre, code { overflow-wrap: anywhere; }

body {
  background: var(--k-fundo);
  color: var(--k-texto);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 0.9375rem;
}

a { color: var(--k-azul-claro); }
a:hover { color: var(--k-azul); }

.text-suave { color: var(--k-texto-suave); }

/* Resumo cadastral da empresa */
.empresa-ficha { display: grid; gap: 16px; }
.empresa-ficha-topo { display: grid; grid-template-columns: 72px minmax(0,1fr) auto; align-items: center; gap: 18px; padding: 20px; border: 1px solid #dce7f5; border-radius: 12px; background: linear-gradient(120deg,#f6f9ff,#fff); }
.empresa-ficha-marca { display: grid; place-items: center; width: 72px; height: 72px; overflow: hidden; border: 1px solid #d5e2f2; border-radius: 12px; background: #fff; color: var(--k-azul-claro); font-size: 1.8rem; }
.empresa-ficha-marca img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.empresa-ficha-identidade { display: grid; gap: 3px; min-width: 0; }
.empresa-ficha-sobretitulo { color: var(--k-texto-suave); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.empresa-ficha-razao { color: var(--k-azul); font-size: 1.12rem; line-height: 1.25; overflow-wrap: anywhere; }
.empresa-ficha-fantasia { color: var(--k-texto-suave); font-size: .85rem; }
.empresa-ficha-papeis { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.empresa-ficha-documento { display: grid; justify-items: end; gap: 4px; min-width: 150px; }
.empresa-ficha-documento small { color: var(--k-texto-suave); font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.empresa-ficha-documento strong { color: var(--k-texto); font-size: .94rem; font-weight: 700; white-space: nowrap; }
.empresa-ficha-situacao { display: inline-flex; align-items: center; gap: 6px; padding: 3px 9px; border-radius: 999px; font-size: .74rem; font-weight: 700; }
.empresa-ficha-situacao::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.empresa-ficha-situacao.ativa { color: var(--k-verde); background: var(--k-verde-suave); }
.empresa-ficha-situacao.inativa { color: var(--k-texto-suave); background: #e9edf2; }
.empresa-ficha-secoes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.empresa-ficha-secao { min-width: 0; padding: 18px; border: 1px solid var(--k-borda); border-radius: 12px; background: #fff; }
.empresa-ficha-secao h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 13px; color: var(--k-azul); font-size: .88rem; font-weight: 700; }
.empresa-ficha-secao h3 i { color: var(--k-azul-claro); font-size: 1rem; }
.empresa-ficha-secao dl { display: grid; gap: 11px; margin: 0; }
.empresa-ficha-campo { min-width: 0; }
.empresa-ficha-campo + .empresa-ficha-campo { padding-top: 10px; border-top: 1px solid #edf1f6; }
.empresa-ficha-campo dt { margin: 0 0 2px; color: var(--k-texto-suave); font-size: .74rem; font-weight: 600; }
.empresa-ficha-campo dd { margin: 0; color: var(--k-texto); font-size: .88rem; font-weight: 600; overflow-wrap: anywhere; }
.empresa-ficha-vazio { color: #7b8795; font-weight: 400; }
.empresa-ficha-endereco,.empresa-ficha-observacao,.empresa-ficha-cnaes { grid-column: 1 / -1; }
.empresa-ficha-endereco { background: #f9fbfe; }
.empresa-ficha-endereco-principal { margin: 0 0 3px; color: var(--k-texto); font-size: .96rem; font-weight: 650; overflow-wrap: anywhere; }
.empresa-ficha-endereco-localidade { margin: 0; color: var(--k-texto-suave); font-size: .84rem; overflow-wrap: anywhere; }
.empresa-ficha-observacao p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
@media (max-width: 1100px) { .empresa-ficha-secoes { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) {
  .empresa-ficha-topo { grid-template-columns: 56px minmax(0,1fr); gap: 12px; padding: 15px; }
  .empresa-ficha-marca { width: 56px; height: 56px; }
  .empresa-ficha-documento { grid-column: 1 / -1; justify-items: start; min-width: 0; padding-top: 10px; border-top: 1px solid #dce7f5; }
  .empresa-ficha-secoes { grid-template-columns: 1fr; }
}

/* ---------- Area publica ---------- */

.publico-topo {
  background: #fff;
  border-bottom: 1px solid var(--k-borda);
  position: sticky;
  top: 0;
  z-index: 1030;
}

.marca {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  font-weight: 700;
  color: var(--k-azul);
  text-decoration: none;
  font-size: 2.15rem;
  letter-spacing: -.01em;
}

.marca:hover { color: var(--k-azul); }

/* Exibe o PNG aprovado em alta resolucao, removendo apenas suas margens transparentes. */
.marca-referencia {
  position: relative;
  display: block;
  overflow: hidden;
  width: 217px;
  height: 41px;
  flex: 0 0 auto;
}
.marca-referencia img {
  position: absolute;
  display: block;
  left: -13px;
  top: -20px;
  width: 243px;
  height: auto;
  max-width: none;
}
.marca-base-clara {
  display: inline-flex;
  padding: 6px 8px;
  border-radius: 8px;
  background: #fff;
}
@media (max-width: 767.98px) {
  .marca-referencia { width: 154px; height: 29px; }
  .marca-referencia img { left: -9.2px; top: -14px; width: 172.5px; }
}

.marca-produto > .marca-nome {
  display: inline-flex;
  align-items: baseline;
  color: inherit;
  font-weight: 800;
  letter-spacing: .035em;
  line-height: 1;
}

.marca-produto .marca-i { position: relative; display: inline-block; color: inherit; }
.marca-produto .marca-i::after {
  content: '';
  position: absolute;
  top: -.12em;
  left: .27em;
  width: .27em;
  height: .38em;
  background: var(--k-laranja);
  clip-path: polygon(55% 0, 100% 0, 45% 100%, 0 100%);
}
.rodape-publico .marca-produto .marca-i::after { background: #f08a3c; }

.marca-sigla {
  width: 34px; height: 34px;
  border-radius: 9px;
  background: var(--k-azul);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
}

.marca-clara, .marca-clara:hover { color: #fff; }
.marca-clara .marca-sigla { background: rgba(255,255,255,.16); }

.heroi {
  background: linear-gradient(160deg, var(--k-azul) 0%, #14294a 100%);
  color: #fff;
  padding: 4.5rem 0 5rem;
}

.heroi h1 { font-weight: 700; letter-spacing: -.02em; }
.heroi p { color: rgba(255,255,255,.82); }

.secao { padding: 4rem 0; }
.secao-clara { background: #fff; }

.secao-titulo { font-weight: 700; color: var(--k-azul); letter-spacing: -.01em; }

.cartao-recurso {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 14px;
  padding: 1.5rem;
  height: 100%;
  transition: box-shadow .16s ease, transform .16s ease;
}

.cartao-recurso:hover {
  box-shadow: 0 10px 28px rgba(31,56,100,.10);
  transform: translateY(-2px);
}

.icone-recurso {
  width: 44px; height: 44px;
  border-radius: 11px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  margin-bottom: .9rem;
}

.cartao-plano {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 16px;
  padding: 2rem 1.6rem;
  height: 100%;
}

.cartao-plano.destacado {
  border-color: var(--k-azul);
  box-shadow: 0 12px 34px rgba(31,56,100,.14);
}

.plano-preco { font-size: 2.1rem; font-weight: 700; color: var(--k-azul); }

.rodape-publico {
  background: #14294a;
  color: rgba(255,255,255,.72);
  padding: 3rem 0 1.5rem;
}

.rodape-publico a { color: rgba(255,255,255,.72); text-decoration: none; }
.rodape-publico a:hover { color: #fff; text-decoration: underline; }
.rodape-publico h6 { color: #fff; font-weight: 600; letter-spacing: .02em; }

/* ---------- Telas de acesso ---------- */

.tela-acesso {
  min-height: 100vh;
  display: flex;
  align-items: safe center;
  background: linear-gradient(160deg, var(--k-azul) 0%, #14294a 100%);
  padding: 2rem 0;
}

.caixa-acesso {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(10,20,40,.28);
  padding: 2.25rem;
}

.credenciais-demo {
  background: var(--k-azul-suave);
  border: 1px solid #cfe0f3;
  border-radius: 11px;
  padding: 1rem 1.1rem;
  font-size: .8125rem;
}

.credenciais-demo table { margin: 0; font-size: .8125rem; }
.credenciais-demo td { padding: .2rem .4rem; border: 0; background: transparent; }
.credenciais-demo .btn-usar { --bs-btn-padding-y: .05rem; --bs-btn-padding-x: .4rem; --bs-btn-font-size: .72rem; }

/* ---------- Estrutura interna ---------- */

.layout { min-height: 100vh; padding-top: 58px; position: relative; }

.barra-topo {
  background: var(--k-azul);
  color: #fff;
  height: 58px;
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 1040;
  display: flex;
  align-items: center;
  padding: 0 1rem;
  gap: .75rem;
}

.barra-topo .btn-menu {
  background: transparent;
  border: 0;
  color: #fff;
  font-size: 1.3rem;
  line-height: 1;
  padding: .25rem .5rem;
  border-radius: 8px;
}

.barra-topo .btn-menu:hover { background: rgba(255,255,255,.12); }
.barra-topo a.btn-menu { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.barra-topo .atalho-chat-topo.ativo { background: var(--k-azul-suave); color: var(--k-acento) !important; }

.barra-topo .dropdown-toggle { color: #fff; text-decoration: none; }

.seletor-negocio {
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  border-radius: 8px;
  padding: .25rem .6rem;
  font-size: .8125rem;
}

.seletor-negocio:hover { background: rgba(255,255,255,.2); color: #fff; }

.avatar {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .8125rem;
  font-weight: 600;
  flex: 0 0 auto;
}

.avatar-escuro { background: var(--k-azul); color: #fff; }
.avatar-foto { overflow: hidden; padding: 0; }
.avatar-foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dados-foto { display: flex; align-items: center; gap: 17px; padding: 15px; border: 1px solid #d9e5f3; border-radius: 11px; background: #f7faff; }
.dados-foto-preview { display: grid; flex: 0 0 86px; place-items: center; width: 86px; height: 86px; overflow: hidden; border: 2px solid #fff; border-radius: 50%; background: #e0ebf8; color: #244b78; box-shadow: 0 0 0 1px #cbdcf0; font-size: 1.25rem; font-weight: 700; }
.dados-foto-preview img { display: block; width: 100%; height: 100%; object-fit: cover; }
.logo-empresa-preview { display:grid; flex:0 0 138px; place-items:center; width:138px; height:82px; overflow:hidden; border:1px solid #cbdcf0; border-radius:10px; background:#fff; color:#70839d; font-size:1.6rem; }
.logo-empresa-preview img { display:block; width:100%; height:100%; object-fit:contain; padding:8px; }
.dados-foto-controles { min-width: 0; }
.dados-foto-controles > strong { display: block; color: #203a60; font-size: .87rem; }
.dados-foto-controles > p { margin: 3px 0 9px; color: #63758d; font-size: .75rem; line-height: 1.4; }
.dados-foto-controles [hidden] { display: none !important; }
.dados-foto-estado:not(:empty) { display: block; margin-top: 8px; color: #245c91; font-size: .73rem; }
@media (max-width: 480px) { .dados-foto { align-items: flex-start; gap: 12px; padding: 12px; } .dados-foto-preview { flex-basis: 66px; width: 66px; height: 66px; font-size: 1rem; } }

.topo-negocio-favoritos { display: flex; align-items: center; gap: 12px; min-width: 0; }
.area-favoritos-topo { display: flex; align-items: center; min-width: 0; }
.area-favoritos-topo[hidden] { display: none; }
.favoritos-topo { display: flex; align-items: center; gap: 4px; min-width: 0; }
.favoritos-topo-rotulo {
  color: var(--k-azul-claro);
  width: 28px; height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
}
.favorito-atalho {
  --favorito-cor: var(--k-azul-claro);
  --favorito-fundo: var(--k-azul-suave);
  width: 34px; height: 34px;
  display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto;
  border: 1px solid transparent;
  border-radius: 8px;
  background: var(--favorito-fundo);
  color: var(--favorito-cor);
  text-decoration: none;
  font-size: 1rem;
  transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.favorito-atalho:hover {
  color: var(--favorito-cor);
  border-color: var(--favorito-cor);
  transform: translateY(-1px);
}
.favorito-atalho.ativo {
  border-color: var(--favorito-cor);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--favorito-cor) 16%, transparent);
}
.favorito-atalho[data-grupo-favorito] {
  --favorito-cor: var(--k-azul-claro);
  --favorito-fundo: var(--k-azul-suave);
}
.favoritos-topo-mobile { display: none; }
.badge-contador-favoritos {
  position: absolute; top: -3px; right: -4px;
  min-width: 17px; height: 17px; padding-inline: 4px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px; background: var(--k-azul-claro); color: #fff;
  font-size: .62rem; font-weight: 700;
}
.btn-favorito { display: inline-flex; align-items: center; gap: 7px; }
.btn-favorito.ativo {
  background: var(--k-acento-suave);
  border-color: var(--k-acento);
  color: var(--k-acento);
}
.btn-favorito.ativo:hover { background: var(--k-acento); color: #fff; }

.menu-lateral {
  position: absolute;
  top: 58px; left: 0;
  width: var(--k-lateral);
  min-height: calc(100vh - 58px);
  background: #fff;
  border-right: 1px solid var(--k-borda);
  overflow: visible;
  z-index: 1035;
  padding: .75rem 0 2rem;
  transition: transform .2s ease;
}

.menu-lateral .grupo-titulo {
  font-size: .6875rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--k-texto-suave);
  padding: .9rem 1.15rem .3rem;
  font-weight: 700;
}

.menu-lateral .grupo-icone { display: inline-block; width: 1.15rem; margin-right: .45rem; text-align: center; font-size: .95rem; }

.menu-lateral a.item {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .5rem 1.15rem;
  color: var(--k-texto);
  text-decoration: none;
  font-size: .875rem;
  border-left: 3px solid transparent;
}

.menu-lateral a.item:hover { background: var(--k-azul-suave); color: var(--k-azul); }

.menu-lateral a.item.ativo {
  background: var(--k-azul-suave);
  color: var(--k-azul);
  border-left-color: var(--k-azul);
  font-weight: 600;
}

.menu-lateral a.item i { font-size: 1rem; width: 1.1rem; text-align: center; flex: 0 0 auto; }

.conteudo {
  margin-left: var(--k-lateral);
  padding: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.conteudo-interno { flex: 1 0 auto; padding: 1.25rem 1.5rem 2.5rem; }

.rodape-interno {
  border-top: 1px solid var(--k-borda);
  background: #fff;
  padding: .85rem 1.5rem;
  font-size: .8125rem;
  color: var(--k-texto-suave);
}

.fundo-menu {
  display: none;
  position: fixed;
  inset: 58px 0 0 0;
  background: rgba(10,20,40,.4);
  z-index: 1034;
}

body.menu-aberto .fundo-menu { display: block; }

@media (max-width: 991.98px) {
  .menu-lateral { transform: translateX(-100%); transition: none; }
  body.menu-animando .menu-lateral { transition: transform .2s ease; }
  body.menu-aberto .menu-lateral { transform: translateX(0); }
  .conteudo { margin-left: 0; }
  .conteudo-interno { padding: 1rem .9rem 2rem; }
}

/* ---------- Cabecalho de pagina ---------- */

.cabecalho-pagina {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: 1.1rem;
}

.cabecalho-pagina h1 {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--k-azul);
  margin: 0;
  letter-spacing: -.01em;
}

.cabecalho-pagina .subtitulo {
  color: var(--k-texto-suave);
  font-size: .875rem;
  margin: .15rem 0 0;
}

.breadcrumb { font-size: .8125rem; margin-bottom: .4rem; }
.breadcrumb-item + .breadcrumb-item::before { content: "/"; }

/* ---------- Cartoes e indicadores ---------- */

.cartao {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 12px;
}

.cartao > .cartao-cabecalho {
  padding: .85rem 1.1rem;
  border-bottom: 1px solid var(--k-borda);
  font-weight: 600;
  color: var(--k-azul);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  flex-wrap: wrap;
}

.cartao > .cartao-corpo { padding: 1.1rem; }

.indicador {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  height: 100%;
}

.indicador .rotulo {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--k-texto-suave);
  font-weight: 600;
}

.indicador .valor {
  font-size: 1.65rem;
  font-weight: 700;
  color: var(--k-azul);
  line-height: 1.2;
  margin-top: .2rem;
}

.indicador .apoio { font-size: .8125rem; color: var(--k-texto-suave); }

.indicador .icone {
  width: 38px; height: 38px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  background: var(--k-azul-suave);
  color: var(--k-azul);
}

/* ---------- Tabelas ---------- */

.tabela-lista { margin: 0; }

.tabela-lista thead th {
  background: #f7f9fc;
  border-bottom: 1px solid var(--k-borda);
  color: var(--k-azul);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-weight: 700;
  white-space: nowrap;
  vertical-align: middle;
}

.tabela-lista thead th.ordenavel { cursor: pointer; user-select: none; }
.tabela-lista thead th.ordenavel:hover { background: var(--k-azul-suave); }
.tabela-lista thead th .seta { opacity: .35; margin-left: .25rem; }
.tabela-lista thead th.ordenado .seta { opacity: 1; }

.tabela-lista tbody td { vertical-align: middle; font-size: .875rem; }
.tabela-lista tbody tr:hover { background: #f9fbfe; }
.tabela-lista .col-acoes { width: 1%; white-space: nowrap; text-align: right; }

.gestao-projetos-tabela { min-width: 900px; }
.gestao-projetos-tabela td:first-child { min-width: 240px; max-width: 350px; overflow-wrap: anywhere; }
.gestao-projetos-tabela td:nth-child(2) { min-width: 180px; max-width: 300px; overflow-wrap: anywhere; }
.gestao-projetos-tabela td:nth-child(3) { min-width: 135px; }
.gestao-projetos-tabela td:nth-child(5) { min-width: 130px; white-space: nowrap; }

.estado-vazio { padding: 3rem 1rem; text-align: center; color: var(--k-texto-suave); }
.estado-vazio i { font-size: 2.6rem; color: #c3cedd; display: block; margin-bottom: .6rem; }

/* ---------- Etiquetas de situacao ---------- */

.etiqueta {
  display: inline-block;
  padding: .18rem .55rem;
  border-radius: 999px;
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.5;
  white-space: nowrap;
  border: 1px solid transparent;
}

.etiqueta-neutra      { background: #eef1f5; color: #46525f; border-color: #dbe2ea; }
.etiqueta-azul        { background: #e8f1ff; color: #164785; border-color: #bdd5f5; }
.etiqueta-azul-marinho{ background: #e8edf5; color: #213657; border-color: #bdcbe0; }
.etiqueta-azul-claro  { background: #eef8ff; color: #246080; border-color: #c8e5f6; }
.etiqueta-ciano       { background: #e9f9fb; color: #12677c; border-color: #bce9f0; }
.etiqueta-turquesa    { background: #e6f7f5; color: #086b67; border-color: #b9e5e0; }
.etiqueta-verde       { background: var(--k-verde-suave); color: var(--k-verde); border-color: #bfe3d2; }
.etiqueta-verde-escuro{ background: #e9f2e9; color: #226044; border-color: #c8decf; }
.etiqueta-menta       { background: #eaf9f2; color: #1d6b52; border-color: #bfebd5; }
.etiqueta-lima        { background: #f3f9e7; color: #526b19; border-color: #dcebac; }
.etiqueta-oliva       { background: #f2f3e8; color: #5a632d; border-color: #dde0bb; }
.etiqueta-amarela     { background: var(--k-amarelo-suave); color: var(--k-amarelo); border-color: #f2ddb5; }
.etiqueta-dourada     { background: #faf2dc; color: #7b5714; border-color: #ecd393; }
.etiqueta-laranja     { background: #fff1e7; color: #98500e; border-color: #ffd1ac; }
.etiqueta-coral       { background: #fff0ec; color: #a44431; border-color: #f3c2b5; }
.etiqueta-salmao      { background: #fff1ee; color: #975248; border-color: #efcbc5; }
.etiqueta-vermelha    { background: var(--k-vermelho-suave); color: var(--k-vermelho); border-color: #f0c9c9; }
.etiqueta-vinho       { background: #f8eaf0; color: #7d294c; border-color: #e5c2d1; }
.etiqueta-rosa        { background: #fff0f5; color: #9a3b64; border-color: #f3c7d8; }
.etiqueta-magenta     { background: #f9ecf8; color: #872a78; border-color: #eac5e4; }
.etiqueta-roxa        { background: #f3ecfb; color: #67319d; border-color: #d9c5ef; }
.etiqueta-lilas       { background: #f6effb; color: #704d8c; border-color: #e0caee; }
.etiqueta-indigo      { background: #eceefd; color: #3c4e98; border-color: #cbd3f1; }
.etiqueta-marrom      { background: #f6efe9; color: #765038; border-color: #e6d3c1; }
.etiqueta-cinza       { background: #edf1f4; color: #465966; border-color: #d1dce4; }

/* ---------- Filtros ---------- */

.faixa-filtros {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 12px;
  padding: .9rem 1.1rem;
  margin-bottom: 1rem;
}

.faixa-filtros label { font-size: .78rem; font-weight: 600; color: var(--k-texto-suave); margin-bottom: .2rem; }

/* ---------- Quadro kanban ---------- */

.quadro { display: flex; gap: .9rem; overflow-x: auto; padding-bottom: .75rem; align-items: flex-start; }

.coluna-quadro {
  background: #eef1f6;
  border-radius: 12px;
  min-width: 268px;
  max-width: 268px;
  flex: 0 0 auto;
  padding: .7rem;
}

.coluna-quadro h6 {
  font-size: .8125rem;
  font-weight: 700;
  color: var(--k-azul);
  text-transform: uppercase;
  letter-spacing: .04em;
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: .6rem;
}

.cartao-quadro {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 9px;
  padding: .65rem .75rem;
  margin-bottom: .55rem;
  cursor: grab;
  font-size: .8125rem;
}

.cartao-quadro:hover { border-color: var(--k-azul-claro); box-shadow: 0 3px 12px rgba(31,56,100,.10); }
.cartao-quadro.arrastando { opacity: .45; }
.coluna-quadro.recebendo { background: #dde7f4; outline: 2px dashed var(--k-azul-claro); }
.cartao-quadro .titulo { font-weight: 600; color: var(--k-texto); display: block; margin-bottom: .3rem; }

/* ---------- Linha do tempo ---------- */

.linha-tempo { list-style: none; margin: 0; padding: 0 0 0 1.35rem; border-left: 2px solid var(--k-borda); }
.linha-tempo li { position: relative; padding: 0 0 1.1rem .3rem; }
.linha-tempo li::before {
  content: "";
  position: absolute;
  left: -1.72rem; top: .3rem;
  width: 11px; height: 11px;
  border-radius: 50%;
  background: var(--k-azul-claro);
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px var(--k-borda);
}
.linha-tempo .quando { font-size: .75rem; color: var(--k-texto-suave); }

/* ---------- Etapas do assistente ---------- */

.etapas { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.25rem; }

.etapa {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .45rem .8rem;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--k-borda);
  font-size: .8125rem;
  color: var(--k-texto-suave);
}

.etapa .numero {
  width: 20px; height: 20px;
  border-radius: 50%;
  background: #e3e9f1;
  color: var(--k-texto-suave);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: .7rem;
  font-weight: 700;
}

.etapa.ativa { border-color: var(--k-azul); color: var(--k-azul); font-weight: 600; }
.etapa.ativa .numero { background: var(--k-azul); color: #fff; }
.etapa.concluida { border-color: #bfe3d2; color: var(--k-verde); }
.etapa.concluida .numero { background: var(--k-verde); color: #fff; }

/* ---------- Graficos simples ---------- */

.barra-grafico { height: 9px; border-radius: 999px; background: #e7ecf3; overflow: hidden; }
.barra-grafico > span { display: block; height: 100%; border-radius: 999px; background: var(--k-azul-claro); }

.colunas-grafico { display: flex; align-items: flex-end; gap: .5rem; height: 170px; padding-top: .5rem;
  overflow-x: auto; overflow-y: hidden; max-width: 100%; padding-bottom: .25rem; }
.colunas-grafico .coluna { flex: 1 0 34px; min-width: 34px; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; height: 100%; gap: .35rem; }
.colunas-grafico .haste { width: 100%; max-width: 46px; border-radius: 6px 6px 0 0; background: var(--k-azul-claro); min-height: 3px; }
.colunas-grafico .haste.alternativa { background: #7fa8d4; }
.colunas-grafico .rotulo { font-size: .7rem; color: var(--k-texto-suave); white-space: nowrap; }

/* ---------- Anexos ---------- */

.item-anexo {
  display: flex;
  align-items: center;
  gap: .75rem;
  border: 1px solid var(--k-borda);
  border-radius: 10px;
  padding: .6rem .8rem;
  background: #fff;
  margin-bottom: .5rem;
}

.item-anexo .icone-arquivo {
  width: 36px; height: 36px;
  border-radius: 8px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
  flex: 0 0 auto;
}

.area-envio {
  border: 2px dashed var(--k-borda);
  border-radius: 12px;
  padding: 1.6rem 1rem;
  text-align: center;
  color: var(--k-texto-suave);
  background: #fbfcfe;
  cursor: pointer;
}

.area-envio:hover, .area-envio.sobre { border-color: var(--k-azul-claro); background: var(--k-azul-suave); }

/* ---------- Conversa ---------- */

.painel-conversa { display: flex; border: 1px solid var(--k-borda); border-radius: 12px; overflow: hidden; background: #fff; min-height: 520px; }
.lista-conversas { width: 290px; border-right: 1px solid var(--k-borda); overflow-y: auto; max-height: 620px; flex: 0 0 auto; }
.lista-conversas .conversa { padding: .75rem .9rem; border-bottom: 1px solid var(--k-borda); cursor: pointer; }
.lista-conversas .conversa:hover, .lista-conversas .conversa.ativa { background: var(--k-azul-suave); }
.area-mensagens { flex: 1 1 auto; display: flex; flex-direction: column; max-height: 620px; }
.mensagens { flex: 1 1 auto; overflow-y: auto; padding: 1rem; background: #f7f9fc; }
.balao { max-width: 74%; padding: .55rem .8rem; border-radius: 12px; margin-bottom: .6rem; font-size: .8438rem; }
.balao.recebida { background: #fff; border: 1px solid var(--k-borda); }
.balao.enviada { background: var(--k-azul-suave); border: 1px solid #cfe0f3; margin-left: auto; }
.balao .hora { font-size: .68rem; color: var(--k-texto-suave); display: block; text-align: right; margin-top: .2rem; }

@media (max-width: 767.98px) {
  .painel-conversa { flex-direction: column; }
  .lista-conversas { width: 100%; max-height: 220px; border-right: 0; border-bottom: 1px solid var(--k-borda); }
}

/* Governanca de listas e parametros */
.listas-sistema-layout {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  min-width: 0;
}
.listas-sistema-navegacao {
  position: sticky;
  top: 76px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  max-height: calc(100vh - 96px);
}
.listas-sistema-navegacao > .cartao-corpo {
  display: flex;
  flex-direction: column;
  max-height: inherit;
}
.lista-catalogos {
  min-height: 180px;
  overflow-y: auto;
  padding-right: 3px;
}
.lista-catalogos-contagem {
  padding: 3px 8px 9px;
  color: var(--k-texto-suave);
  font-size: .75rem;
}
.lista-catalogo-grupo {
  padding: 15px 8px 5px;
  color: #5b6a7c;
  font-size: .68rem;
  font-weight: 750;
  letter-spacing: .075em;
  text-transform: uppercase;
}
.lista-catalogo-item {
  width: 100%;
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  margin: 2px 0;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--k-texto);
  text-align: left;
}
.lista-catalogo-item:hover { background: #f1f4f8; }
.lista-catalogo-item.ativo {
  border-color: #c7d5e5;
  background: #e8eef6;
  box-shadow: inset 3px 0 0 var(--k-azul-claro);
}
.lista-catalogo-item:focus-visible {
  outline: 2px solid var(--k-azul-claro);
  outline-offset: 1px;
}
.lista-catalogo-icone {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
}
.lista-catalogo-total {
  flex: 0 0 auto;
  min-width: 26px;
  padding: 2px 5px;
  border-radius: 6px;
  background: #edf2f8;
  color: #4e6076;
  font-size: .72rem;
  font-weight: 700;
  text-align: center;
}
.lista-catalogo-contexto {
  margin-bottom: 6px;
  color: var(--k-texto-suave);
  font-size: .72rem;
  font-weight: 650;
  letter-spacing: .035em;
}
.lista-catalogo-cabecalho {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 14px;
}
.lista-catalogo-metricas {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}
.lista-catalogo-metricas span {
  padding: 7px 10px;
  border: 1px solid var(--k-borda);
  border-radius: 999px;
  background: #fff;
  color: var(--k-texto-suave);
  font-size: .8125rem;
}
.lista-catalogo-metricas strong { color: var(--k-texto); }
.listas-sistema-pagina .indicador { padding: 13px 15px; }
.listas-sistema-pagina .indicador .valor { font-size: 1.45rem; }
.lista-catalogo-tabela { width: 100%; }
.lista-catalogo-tabela thead th { padding: 13px 16px; }
.lista-catalogo-tabela tbody td { padding: 13px 16px; }
.lista-catalogo-tabela tbody tr:hover { background: #f7faff; }
.lista-catalogo-tabela th:first-child { width: 37%; }
.lista-catalogo-tabela th:last-child { width: 136px; }
.lista-catalogo-tabela-cadastro th:first-child { width: 75%; }
.lista-catalogo-tabela-cadastro th:last-child { width: 25%; }
.lista-catalogo-nome { color: var(--k-texto); font-size: .9rem; font-weight: 650; line-height: 1.35; }
.lista-catalogo-codigo {
  display: block;
  margin-top: 4px;
  color: #65758a;
  font-family: inherit;
  font-size: .72rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.lista-catalogo-vinculos { color: #526176; font-size: .8rem; white-space: nowrap; }
.lista-catalogo-tabela .col-acoes { text-align: right; white-space: nowrap; }
.lista-catalogo-tabela .col-acoes .btn { min-width: 34px; min-height: 34px; }
.lista-catalogo-tabela .col-acoes .btn:disabled { opacity: .65; }

@media (max-width: 991.98px) {
  .listas-sistema-layout { grid-template-columns: 1fr; }
  .listas-sistema-navegacao { position: static; max-height: none; }
  .lista-catalogos { max-height: 320px; }
}

@media (max-width: 575.98px) {
  .lista-catalogo-cabecalho { flex-direction: column; }
  .lista-catalogo-cabecalho .btn { width: 100%; }
  .lista-catalogo-tabela { display: block; min-width: 0; }
  .lista-catalogo-tabela thead { display: none; }
  .lista-catalogo-tabela tbody { display: grid; gap: 10px; padding: 12px; }
  .lista-catalogo-tabela tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 12px;
    padding: 13px;
    border: 1px solid var(--k-borda);
    border-radius: 9px;
    background: #fff;
  }
  .lista-catalogo-tabela tbody td { display: block; min-width: 0; padding: 0; border: 0; }
  .lista-catalogo-tabela tbody td:first-child { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid #e8edf4; }
  .lista-catalogo-tabela tbody td:nth-child(2) { grid-column: 1; }
  .lista-catalogo-tabela tbody td:nth-child(3) { grid-column: 2; text-align: right; }
  .lista-catalogo-tabela tbody td:nth-child(4) { grid-column: 1; align-self: center; text-align: left !important; }
  .lista-catalogo-tabela tbody td:nth-child(5) { grid-column: 2; text-align: right; }
  .lista-catalogo-tabela tbody td:not(:first-child)::before {
    display: block;
    margin-bottom: 3px;
    color: #68788c;
    content: attr(data-label);
    font-size: .66rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
  }
  .lista-catalogo-tabela-cadastro tbody td:nth-child(2) { grid-column: 1 / -1; text-align: left; }
}

/* Organograma por negocio */
.organograma-pagina .indicador { padding: 14px 16px; }
.organograma-pagina .indicador .valor { font-size: 1.5rem; }
.org-visualizacao { max-width: 100%; overflow-x: auto; padding: 16px 12px 22px; border: 1px solid #dce7f4; border-radius: 12px; background: radial-gradient(circle, #e6edf6 1px, transparent 1px) 0 0 / 20px 20px, #f8fbff; scrollbar-color: #aac0d9 transparent; }
.org-visualizacao:focus-visible { outline: 2px solid var(--k-foco); outline-offset: 2px; }
#arvoreOrganograma, .meus-org-arvore { display: flex; justify-content: center; width: max-content; min-width: 100%; }
.meus-org-visualizacao { min-height: 170px; }
.meus-org-visualizacao .org-cartao-rodape { justify-content: center; }
.meus-org-visualizacao .org-equipe { text-align: center; }
.meus-org-arvore .org-no-eu > .org-cartao { border-color: #83b9ad; border-top-color: #14816e; background: #f0fbf7; box-shadow: 0 5px 15px rgba(17, 110, 91, .13); }
.meus-org-arvore .org-no-eu > .org-cartao .org-avatar { background: #d9f2ea; color: #126d5d; }
.meus-org-arvore .org-no-eu > .org-cartao .org-nivel { background: #d4f0e7; color: #0b6657; }
.meus-org-arvore .org-no-ancestral > .org-cartao .org-nivel { background: #e8eef7; color: #4b6281; }
.org-raizes, .org-filhos { display: flex; justify-content: center; align-items: flex-start; list-style: none; margin: 0; padding: 0; }
.org-no[hidden], .org-filhos[hidden] { display: none; }
.org-raizes { gap: 12px; width: max-content; min-width: 100%; }
.org-no { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 4px; }
.org-filhos { position: relative; padding-top: 28px; }
.org-filhos::before { content: ''; position: absolute; top: 0; left: calc(50% - 1px); width: 2px; height: 14px; background: #a7bfdb; }
.org-filhos > .org-no::before { content: ''; position: absolute; top: -14px; right: 0; left: 0; height: 2px; background: #a7bfdb; }
.org-filhos > .org-no:first-child::before { left: 50%; }
.org-filhos > .org-no:last-child::before { right: 50%; }
.org-filhos > .org-no:only-child::before { display: none; }
.org-filhos > .org-no::after { content: ''; position: absolute; top: -14px; left: calc(50% - 1px); width: 2px; height: 14px; background: #a7bfdb; }
.org-cartao {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  width: 136px;
  min-height: 126px;
  padding: 8px 7px 6px;
  border: 1px solid #cddbed;
  border-top: 3px solid #78a1d1;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 3px 11px rgba(25, 55, 92, .07);
  text-align: center;
}
.org-no-raiz > .org-cartao { width: 166px; min-height: 135px; border-color: #a8c5e7; border-top-color: var(--k-azul); background: #f3f8ff; }
.org-cartao[data-org-detalhes] { cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
.org-cartao[data-org-detalhes]:hover { border-color: #6d9ace; box-shadow: 0 6px 16px rgba(25, 55, 92, .16); transform: translateY(-2px); }
.org-cartao[data-org-detalhes]:focus-visible { outline: 2px solid var(--k-foco); outline-offset: 3px; }
.org-avatar {
  display: grid;
  flex: 0 0 30px;
  place-items: center;
  width: 30px;
  height: 30px;
  overflow: hidden;
  border-radius: 50%;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  font-size: .62rem;
  font-weight: 750;
}
.org-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.org-avatar-detalhe { flex: 0 0 60px; width: 60px; height: 60px; font-size: 1rem; }
#modalPessoaOrganograma .modal-content { overflow: hidden; border: 1px solid #d7e3f2; border-radius: 16px; box-shadow: 0 22px 60px rgba(25, 55, 92, .23); }
#modalPessoaOrganograma .org-detalhe-cabecalho { align-items: flex-start; padding: 20px 24px; border-bottom: 1px solid #e4ebf5; }
#modalPessoaOrganograma .org-detalhe-sobretitulo { display: block; margin-bottom: 3px; color: #627b9b; font-size: .68rem; font-weight: 750; letter-spacing: .09em; text-transform: uppercase; }
#modalPessoaOrganograma .org-detalhe-corpo { padding: 24px; }
#modalPessoaOrganograma .org-detalhe-identidade { display: flex; align-items: center; gap: 16px; min-width: 0; padding: 20px; border: 1px solid #dbe8f6; border-radius: 12px; background: #f4f8fd; }
#modalPessoaOrganograma .org-avatar-detalhe { flex-basis: 68px; width: 68px; height: 68px; background: #dceafb; font-size: 1.1rem; }
#modalPessoaOrganograma .org-detalhe-apresentacao { display: flex; flex: 1 1 auto; flex-direction: column; gap: 3px; min-width: 0; }
#modalPessoaOrganograma .org-detalhe-nome { color: var(--k-texto); font-size: 1.13rem; line-height: 1.25; overflow-wrap: anywhere; }
#modalPessoaOrganograma .org-detalhe-cargo { color: #5d7089; font-size: .9rem; overflow-wrap: anywhere; }
#modalPessoaOrganograma .org-detalhe-status { flex: 0 0 auto; padding: 5px 10px; border: 1px solid #bfe1d0; border-radius: 20px; background: #e7f6ed; color: #18714a; font-size: .76rem; font-weight: 700; }
#modalPessoaOrganograma .org-detalhe-status-inativo { border-color: #d7dfe9; background: #edf1f5; color: #64748b; }
#modalPessoaOrganograma .org-detalhe-secao { margin-top: 24px; }
#modalPessoaOrganograma .org-detalhe-secao h3 { margin: 0 0 12px; color: #36577f; font-size: .83rem; font-weight: 750; }
#modalPessoaOrganograma .org-detalhe-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
#modalPessoaOrganograma .org-detalhe-grade-contato { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
#modalPessoaOrganograma .org-detalhe-campo { min-width: 0; padding: 14px 16px; border: 1px solid #e0e8f2; border-radius: 10px; background: #fff; }
#modalPessoaOrganograma .org-detalhe-campo dt { margin-bottom: 5px; color: #62758f; font-size: .74rem; font-weight: 650; }
#modalPessoaOrganograma .org-detalhe-campo dd { margin: 0; color: var(--k-texto); font-size: .88rem; line-height: 1.4; overflow-wrap: anywhere; word-break: break-word; }
@media (max-width: 575.98px) {
  #modalPessoaOrganograma .org-detalhe-cabecalho { padding: 17px 18px; }
  #modalPessoaOrganograma .org-detalhe-corpo { padding: 18px; }
  #modalPessoaOrganograma .org-detalhe-identidade { flex-wrap: wrap; gap: 12px; padding: 16px; }
  #modalPessoaOrganograma .org-avatar-detalhe { flex-basis: 54px; width: 54px; height: 54px; }
  #modalPessoaOrganograma .org-detalhe-status { margin-left: 66px; }
  #modalPessoaOrganograma .org-detalhe-grade, #modalPessoaOrganograma .org-detalhe-grade-contato { grid-template-columns: minmax(0, 1fr); }
}
.org-no-raiz > .org-cartao .org-avatar { background: #dceafb; }
.org-identidade { display: flex; flex-direction: column; align-items: center; gap: 1px; min-width: 0; }
.org-nome { color: var(--k-texto); font-size: .73rem; font-weight: 700; line-height: 1.2; overflow-wrap: anywhere; }
.org-cargo { color: #53677f; font-size: .64rem; line-height: 1.2; }
.org-setor { color: #8190a2; font-size: .6rem; line-height: 1.2; }
.org-nivel { display: inline-block; margin: 0 0 2px; padding: 1px 6px; border-radius: 20px; background: #dceafa; color: #315983; font-size: .56rem; font-weight: 700; }
.org-identidade .etiqueta { margin: 2px 0; }
.org-cartao-rodape { display: flex; align-items: center; justify-content: space-between; gap: 6px; width: 100%; margin-top: auto; padding-top: 6px; border-top: 1px solid #e5ecf5; }
.org-equipe { color: #657890; font-size: .56rem; line-height: 1.15; text-align: left; }
.org-cartao .org-alternar { display: inline-grid; flex: 0 0 26px; place-items: center; width: 26px; height: 26px; margin: -2px 0; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; cursor: pointer; transition: opacity .15s ease, transform .15s ease; }
.org-cartao .org-alternar img { display: block; width: 20px; height: 20px; }
.org-cartao .org-alternar:hover { opacity: .72; transform: scale(1.08); }
.org-cartao .org-alternar-texto { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.org-cartao .org-alternar:focus-visible { outline: 2px solid var(--k-foco); outline-offset: 2px; }
@media (max-width: 575.98px) {
  .org-visualizacao { padding: 14px 9px 20px; }
  .org-raizes { gap: 8px; }
  .org-no { padding: 0 3px; }
  .org-cartao { width: 132px; }
  .org-no-raiz > .org-cartao { width: 158px; }
}

/* ---------- Chat interno ---------- */

.min-w-0 { min-width: 0; }
.chat-interno-painel {
  display: grid;
  grid-template-columns: minmax(280px, 330px) minmax(0, 1fr);
  height: min(680px, calc(100vh - 220px));
  min-height: 560px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 12px;
}
.chat-interno-lista {
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--k-borda);
  background: #fbfcfe;
}
.chat-lista-topo {
  min-height: 66px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--k-borda);
  background: #fff;
}
.lista-chat-interno { flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.chat-conversa-item {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 14px;
  border: 0;
  border-bottom: 1px solid var(--k-borda);
  background: transparent;
  color: var(--k-texto);
  text-align: left;
}
.chat-conversa-item:hover { background: var(--k-acento-suave); }
.chat-conversa-item.ativa {
  background: var(--k-acento-suave);
  box-shadow: inset 3px 0 0 var(--k-acento);
}
.chat-conversa-conteudo { min-width: 0; flex: 1 1 auto; }
.chat-resumo { display: block; min-width: 0; color: var(--k-texto-suave); font-size: .8rem; }
.chat-horario { flex: 0 0 auto; color: var(--k-texto-suave); font-size: .7rem; font-weight: 500; }
.avatar-chat { position: relative; background: var(--k-acento-suave) !important; color: var(--k-acento) !important; }
.avatar-chat-grande { width: 40px; height: 40px; }
.presenca {
  position: absolute;
  right: -1px; bottom: -1px;
  width: 10px; height: 10px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #94a3b8;
}
.presenca.online { background: var(--k-verde); }
.chat-interno-area { min-width: 0; min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.chat-cabecalho {
  min-height: 66px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 18px;
  border-bottom: 1px solid var(--k-borda);
  background: #fff;
}
.chat-vazio {
  grid-row: 1 / -1;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background: linear-gradient(145deg, #fbfcfe, var(--k-acento-suave));
}
.chat-mensagens {
  min-height: 0;
  overflow-y: auto;
  padding: 20px;
  background-color: #f7f9fc;
  background-image: radial-gradient(circle at 1px 1px, rgba(71,85,105,.08) 1px, transparent 0);
  background-size: 18px 18px;
}
.chat-linha-mensagem { display: flex; margin-bottom: 10px; }
.chat-linha-mensagem.enviada { justify-content: flex-end; }
.chat-balao {
  max-width: min(76%, 620px);
  padding: 9px 11px 6px;
  border: 1px solid var(--k-borda);
  border-radius: 12px 12px 12px 4px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(31,41,55,.05);
  overflow-wrap: anywhere;
}
.chat-linha-mensagem.enviada .chat-balao {
  border-color: color-mix(in srgb, var(--k-acento) 24%, var(--k-borda));
  border-radius: 12px 12px 4px 12px;
  background: var(--k-acento-suave);
}
.chat-autor { margin-bottom: 2px; color: var(--k-acento); font-size: .72rem; font-weight: 700; }
.chat-texto { font-size: .875rem; line-height: 1.45; }
.chat-meta { display: flex; justify-content: flex-end; align-items: center; gap: 4px; margin-top: 4px; color: var(--k-texto-suave); font-size: .68rem; }
.chat-lida { color: var(--k-azul-claro); }
.chat-anexos-mensagem { display: grid; gap: 6px; margin-top: 7px; }
.chat-anexo {
  min-width: 220px;
  max-width: 100%;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border: 1px solid color-mix(in srgb, var(--k-acento) 25%, var(--k-borda));
  border-radius: 8px;
  background: rgba(255,255,255,.78);
  color: var(--k-texto);
  text-align: left;
  text-decoration: none;
  overflow: hidden;
}
.chat-anexo:hover { border-color: var(--k-acento); color: var(--k-acento); }
.chat-anexo > i { flex: 0 0 auto; color: var(--k-acento); font-size: 1.2rem; }
.chat-anexo > span { min-width: 0; }
.chat-compositor { padding: 12px 14px 10px; border-top: 1px solid var(--k-borda); background: #fff; transition: background .15s, box-shadow .15s; }
.chat-compositor.arrastando { background: var(--k-acento-suave); box-shadow: inset 0 0 0 2px var(--k-acento); }
.btn-anexar-chat,.btn-enviar-chat { width: 42px; min-width: 42px; height: 42px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.chat-ajuda-envio { margin-top: 5px; color: var(--k-texto-suave); font-size: .7rem; text-align: right; }
.chat-anexos-pendentes { display: flex; flex-wrap: wrap; gap: 6px; }
.chat-anexos-pendentes:not(:empty) { margin-bottom: 8px; }
.chat-anexo-pendente {
  max-width: 260px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 7px 5px 9px;
  border: 1px solid var(--k-borda);
  border-radius: 999px;
  background: var(--k-acento-suave);
  color: var(--k-acento);
  font-size: .75rem;
}
.chat-anexo-pendente > span { min-width: 0; }
.chat-anexo-pendente button { border: 0; background: transparent; color: inherit; padding: 0; line-height: 1; }
.lista-usuarios-chat { display: grid; gap: 6px; max-height: 420px; overflow-y: auto; }
.usuario-chat-opcao {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border: 1px solid var(--k-borda);
  border-radius: 9px;
  background: #fff;
  color: var(--k-texto);
}
.usuario-chat-opcao:hover { border-color: var(--k-acento); background: var(--k-acento-suave); }

@media (max-width: 767.98px) {
  .chat-interno-painel { grid-template-columns: 1fr; height: auto; min-height: 0; }
  .chat-interno-lista { max-height: 260px; border-right: 0; border-bottom: 1px solid var(--k-borda); }
  .lista-chat-interno { min-height: 120px; }
  .chat-interno-area { min-height: 540px; }
  .chat-balao { max-width: 90%; }
  .chat-mensagens { padding: 14px 10px; }
  .chat-ajuda-envio { text-align: left; }
}

/* ---------- GED ---------- */

.ged-contexto-perfil { display: flex; align-items: flex-start; }
.ged-biblioteca { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 16px; align-items: start; }
.ged-pastas { overflow: hidden; border: 1px solid var(--k-borda); border-radius: 10px; background: #fff; }
.ged-pastas-titulo { display: flex; flex-direction: column; padding: 14px 15px 10px; border-bottom: 1px solid var(--k-borda); }
.ged-pasta-item {
  width: 100%; min-height: 40px; display: flex; align-items: center; gap: 8px;
  padding: 8px 10px 8px calc(12px + var(--nivel-pasta, 0) * 16px);
  border: 0; border-bottom: 1px solid #edf1f5; background: #fff;
  color: var(--k-texto); text-align: left; font-size: .82rem;
}
.ged-pasta-item:hover { background: var(--k-acento-suave); color: var(--k-acento); }
.ged-pasta-item.ativa { background: var(--k-acento-suave); color: var(--k-acento); box-shadow: inset 3px 0 0 var(--k-acento); font-weight: 600; }
.ged-listagem { min-width: 0; }
.ged-documentos { display: grid; gap: 10px; }
.ged-documento-card {
  display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(180px, auto);
  gap: 14px; align-items: center; padding: 14px;
  border: 1px solid var(--k-borda); border-radius: 10px; background: #fff;
  transition: border-color .15s, box-shadow .15s, transform .15s;
}
.ged-documento-card:hover { border-color: var(--k-acento); box-shadow: 0 6px 18px rgba(31,41,55,.07); transform: translateY(-1px); }
.ged-documento-icone {
  width: 48px; height: 48px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 10px; background: var(--k-acento-suave); color: var(--k-acento);
  font-size: 1.35rem; flex: 0 0 auto;
}
.ged-documento-icone-grande { width: 58px; height: 58px; font-size: 1.65rem; }
.ged-documento-conteudo { min-width: 0; }
.ged-descricao { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ged-codigo { color: var(--k-acento); font-size: .72rem; font-weight: 700; letter-spacing: .04em; }
.ged-documento-lateral { display: flex; flex-direction: column; align-items: flex-end; gap: 7px; text-align: right; }
.ged-perfil { max-width: 240px; padding: 4px 8px; border-radius: 6px; background: var(--k-acento-suave); color: var(--k-acento); font-size: .75rem; font-weight: 600; }
.ged-pasta-icone,.ged-escudo {
  width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
  flex: 0 0 auto; border-radius: 9px; background: var(--k-acento-suave);
  color: var(--k-acento); font-size: 1.15rem;
}
.ged-pasta-icone.pasta-verde,
.ged-pasta-icone.pasta-roxa,
.ged-pasta-icone.pasta-amarela,
.ged-pasta-icone.pasta-vermelha {
  background: var(--k-azul-suave);
  color: var(--k-azul-claro);
}
.ged-metadados { margin: 0 0 16px; }
.ged-metadados dt,.ged-metadados dd { padding-block: 6px; margin: 0; border-bottom: 1px solid #edf1f5; }
.ged-metadados dt { color: var(--k-texto-suave); font-weight: 600; }
.ged-permissao-box { padding: 13px; border: 1px solid color-mix(in srgb, var(--k-acento) 28%, var(--k-borda)); border-radius: 10px; background: var(--k-acento-suave); }
.ged-permissao-box > div > i { color: var(--k-acento); font-size: 1.2rem; }
.ged-versoes { display: grid; gap: 8px; }
.ged-versao { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px; border: 1px solid var(--k-borda); border-radius: 8px; background: #fff; }

@media (max-width: 991.98px) {
  .ged-biblioteca { grid-template-columns: 1fr; }
  .ged-pastas { display: flex; overflow-x: auto; }
  .ged-pastas-titulo { min-width: 130px; border-right: 1px solid var(--k-borda); border-bottom: 0; }
  .ged-pasta-item { width: auto; min-width: max-content; border-right: 1px solid #edf1f5; border-bottom: 0; padding-left: 12px; }
}
@media (max-width: 575.98px) {
  .ged-documento-card { grid-template-columns: 42px minmax(0, 1fr); }
  .ged-documento-icone { width: 42px; height: 42px; }
  .ged-documento-lateral { grid-column: 1 / -1; align-items: stretch; text-align: left; }
  .ged-perfil { max-width: 100%; }
}

/* ---------- Calendario ---------- */

.calendario-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px 20px;
  padding: 13px 16px;
  margin-bottom: 16px;
  border: 1px solid var(--k-borda);
  border-radius: 10px;
  background: #f7faff;
}
.calendario-navegacao { display: flex; align-items: center; gap: 12px; min-width: 0; }
.calendario-periodo { min-width: 190px; text-align: center; }
.calendario-periodo-label {
  display: block;
  margin-bottom: 2px;
  color: var(--k-texto-suave);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}
.calendario-periodo h2 {
  margin: 0;
  color: var(--k-azul);
  font-size: 1.18rem;
  font-weight: 700;
  line-height: 1.35;
  white-space: nowrap;
}
.calendario-seta,
.calendario-hoje {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  border: 1px solid #c8d8ee;
  border-radius: 8px;
  background: #fff;
  color: var(--k-azul);
  font-weight: 600;
  transition: background-color .15s, border-color .15s, box-shadow .15s;
}
.calendario-seta { width: 36px; flex: 0 0 36px; }
.calendario-hoje { gap: 6px; padding: 0 13px; }
.calendario-seta:hover,
.calendario-hoje:hover { background: #e9f2ff; border-color: var(--k-azul-claro); }
.calendario-seta:focus-visible,
.calendario-hoje:focus-visible { outline: 2px solid var(--k-azul-claro); outline-offset: 2px; }
@media (max-width: 575.98px) {
  .calendario-barra { padding: 12px; }
  .calendario-navegacao { justify-content: space-between; width: 100%; gap: 4px; }
  .calendario-periodo { min-width: 0; }
  .calendario-periodo h2 { font-size: 1.05rem; }
  .calendario-hoje { margin-left: auto; }
}
.calendario { width: 100%; border-collapse: collapse; table-layout: fixed; background: #fff; }
.calendario th { background: #f7f9fc; color: var(--k-azul); font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; padding: .5rem; text-align: center; border: 1px solid var(--k-borda); }
.calendario td { border: 1px solid var(--k-borda); height: 104px; vertical-align: top; padding: .35rem; font-size: .78rem; }
.calendario td.fora { background: #fafbfd; color: #a9b4c0; }
.calendario td.hoje { background: var(--k-azul-suave); }
.calendario .dia { font-weight: 700; color: var(--k-texto-suave); display: block; margin-bottom: .2rem; }
.calendario .evento { display: block; background: var(--k-azul-suave); color: var(--k-azul); border-left: 3px solid var(--k-azul-claro); border-radius: 4px; padding: .1rem .3rem; margin-bottom: .15rem; cursor: pointer; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.agenda-fontes-barra { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; margin-bottom: 16px; padding-bottom: 14px; border-bottom: 1px solid var(--k-borda); }
.agenda-fontes-barra > div { min-width: min(100%, 280px); }
.agenda-fontes-barra .form-label { font-weight: 700; }
.agenda-fonte-marca { display: inline-block; width: 9px; height: 9px; margin-right: 7px; border-radius: 50%; background: var(--agenda-cor, var(--k-azul)); vertical-align: baseline; }
.agenda-fonte-icone { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid var(--k-borda); border-left: 4px solid var(--agenda-cor, var(--k-azul)); border-radius: 10px; background: #f7f9fc; color: var(--agenda-cor, var(--k-azul)); font-size: 1.1rem; }
.agenda-fonte-cartao .cartao-corpo { height: 100%; }
.calendario .evento.agenda-evento-fonte { background: #f5f7fb; color: var(--k-texto); border-left-color: var(--agenda-cor, var(--k-azul)); }

/* ---------- Matriz de permissoes ---------- */

.matriz-permissoes td, .matriz-permissoes th { font-size: .8125rem; }
.matriz-permissoes .grupo td { background: var(--k-azul-suave); font-weight: 700; color: var(--k-azul); }

.modal-dialog.modal-perfil-acesso {
  width: calc(100vw - 24px);
  max-width: 1540px;
  height: calc(100vh - 24px);
  margin: 12px auto;
}
.modal-perfil-acesso .modal-content { height: 100%; max-height: none; }
.modal-perfil-acesso .modal-header { padding: 18px 24px; }
.modal-perfil-acesso .modal-body { padding: 0; background: #f5f7fa; }
.modal-perfil-acesso .modal-footer { padding: 14px 24px; background: #fff; }
.perfil-editor > .nota-obrigatorios { margin: 0; padding: 12px 24px 0; background: #fff; }
.perfil-editor-identidade { padding: 18px 24px 22px; background: #fff; border-bottom: 1px solid var(--k-borda); }
.perfil-editor-apresentacao { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; }
.perfil-editor-icone {
  width: 50px; height: 50px; flex: 0 0 50px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px; background: var(--k-acento-suave); color: var(--k-acento); font-size: 1.35rem;
}
.perfil-editor-apresentacao > div { min-width: 0; flex: 1; }
.perfil-editor-tipo { display: block; color: var(--k-acento); font-size: .7rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.perfil-editor-apresentacao h3 { margin: 1px 0 2px; color: #27364a; font-size: 1.2rem; line-height: 1.3; overflow-wrap: anywhere; }
.perfil-editor-apresentacao p { margin: 0; color: var(--k-texto-suave); font-size: .82rem; }
.perfil-editor-usuarios { flex: 0 0 auto; padding: 7px 10px; border: 1px solid var(--k-borda); border-radius: 999px; color: var(--k-texto-suave); font-size: .78rem; font-weight: 600; }
.perfil-editor-aviso { display: flex; align-items: flex-start; gap: 8px; margin-top: 14px; padding: 10px 12px; border-radius: 8px; background: var(--k-amarelo-suave); color: var(--k-amarelo); font-size: .8rem; }

.perfil-editor-permissoes { min-height: 420px; padding: 0 24px 28px; }
.perfil-editor-barra {
  position: sticky; top: 0; z-index: 3; display: grid; grid-template-columns: minmax(190px,1fr) minmax(520px,1.45fr);
  gap: 14px 22px; align-items: center; margin: 0 -24px 18px; padding: 18px 24px 14px;
  border-bottom: 1px solid var(--k-borda); background: rgba(245,247,250,.97); backdrop-filter: blur(8px);
}
.perfil-editor-barra h4 { margin: 0 0 2px; color: #27364a; font-size: 1rem; }
.perfil-editor-barra p { margin: 0; color: var(--k-texto-suave); font-size: .78rem; }
.perfil-editor-ferramentas { display: grid; grid-template-columns: minmax(220px,1fr) auto auto; gap: 8px; }
.perfil-editor-ferramentas .btn { white-space: nowrap; }
.perfil-editor-resumo { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.perfil-editor-resumo span { padding: 5px 9px; border: 1px solid var(--k-borda); border-radius: 999px; background: #fff; color: var(--k-texto-suave); font-size: .75rem; }
.perfil-editor-resumo strong { color: var(--k-acento); font-variant-numeric: tabular-nums; }

.perfil-grupos { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; align-items: start; }
.perfil-grupo { overflow: hidden; border: 1px solid var(--k-borda); border-radius: 10px; background: #fff; box-shadow: 0 1px 2px rgba(31,56,100,.04); }
.perfil-grupo.completo { border-color: color-mix(in srgb,var(--k-acento) 38%,var(--k-borda)); }
.perfil-grupo.parcial { border-color: #d7b978; }
.perfil-grupo > header { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 12px 14px 10px; }
.perfil-grupo-icone { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: 9px; background: var(--k-acento-suave); color: var(--k-acento); }
.perfil-grupo h5 { margin: 0; color: #27364a; font-size: .9rem; }
.perfil-grupo header div > span { display: block; margin-top: 2px; color: var(--k-texto-suave); font-size: .7rem; }
.perfil-grupo-progresso { height: 3px; background: #e8edf3; }
.perfil-grupo-progresso span { display: block; width: 0; height: 100%; background: var(--k-acento); transition: width .18s ease; }
.perfil-permissoes-lista { display: grid; gap: 7px; padding: 11px 12px 13px; }
.perfil-permissao-item {
  display: grid; grid-template-columns: auto 34px minmax(0,1fr); gap: 9px; align-items: center; min-height: 54px;
  margin: 0; padding: 8px 10px; border: 1px solid transparent; border-radius: 8px; background: #f8fafc; cursor: pointer;
  transition: background .14s ease,border-color .14s ease;
}
.perfil-permissao-item:hover { border-color: var(--k-borda); background: #f1f4f8; }
.perfil-permissao-item:has(input:checked) { border-color: color-mix(in srgb,var(--k-acento) 28%,var(--k-borda)); background: color-mix(in srgb,var(--k-acento-suave) 58%,#fff); }
.perfil-permissao-item .form-check-input { margin: 0; }
.perfil-permissao-icone { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border-radius: 8px; background: #fff; color: var(--k-acento); border: 1px solid var(--k-borda); }
.perfil-permissao-texto { min-width: 0; }
.perfil-permissao-texto strong,.perfil-permissao-texto small { display: block; }
.perfil-permissao-texto strong { color: #27364a; font-size: .82rem; font-weight: 650; line-height: 1.3; }
.perfil-permissao-texto small { margin-top: 2px; color: var(--k-texto-suave); font-size: .69rem; line-height: 1.35; }
.perfil-sem-resultado { padding: 48px 20px; text-align: center; color: var(--k-texto-suave); }
.perfil-sem-resultado i,.perfil-sem-resultado strong,.perfil-sem-resultado span { display: block; }
.perfil-sem-resultado i { margin-bottom: 8px; font-size: 2rem; color: #a7b1bf; }
.perfil-sem-resultado span { margin-top: 3px; font-size: .78rem; }
.perfil-rodape-resumo { display: inline-flex; align-items: center; gap: 8px; color: var(--k-texto-suave); font-size: .82rem; }
.perfil-rodape-resumo > i { color: var(--k-acento); font-size: 1rem; }
.perfil-rodape-resumo strong { color: #27364a; font-variant-numeric: tabular-nums; }

@media (max-width: 1199.98px) {
  .perfil-editor-barra { grid-template-columns: 1fr; }
  .perfil-editor-ferramentas { grid-template-columns: minmax(200px,1fr) auto auto; }
  .perfil-grupos { grid-template-columns: 1fr; }
}
@media (max-width: 767.98px) {
  .modal-dialog.modal-perfil-acesso { width: calc(100vw - 8px); height: calc(100vh - 8px); margin: 4px auto; }
  .modal-perfil-acesso .modal-header,.modal-perfil-acesso .modal-footer { padding: 12px; }
  .perfil-editor > .nota-obrigatorios { padding: 10px 14px 0; }
  .perfil-editor-identidade { padding: 14px; }
  .perfil-editor-apresentacao { align-items: flex-start; flex-wrap: wrap; }
  .perfil-editor-usuarios { margin-left: 64px; margin-top: -8px; }
  .perfil-editor-permissoes { padding: 0 12px 18px; }
  .perfil-editor-barra { position: static; margin: 0 -12px 14px; padding: 14px 12px; }
  .perfil-editor-ferramentas { grid-template-columns: 1fr 1fr; }
  .perfil-editor-ferramentas .input-group { grid-column: 1 / -1; }
  .perfil-grupo > header { grid-template-columns: 34px minmax(0,1fr); }
  .perfil-grupo > header .btn { grid-column: 1 / -1; }
  .perfil-rodape-resumo { width: 100%; }
}

/* ---------- Utilitarios ---------- */

.obrigatorio::after { content: " *"; color: var(--k-vermelho); font-weight: 700; }

.carregando {
  display: inline-block;
  width: 1rem; height: 1rem;
  border: 2px solid var(--k-borda);
  border-top-color: var(--k-azul);
  border-radius: 50%;
  animation: girar .6s linear infinite;
}

@keyframes girar { to { transform: rotate(360deg); } }

.esqueleto {
  background: linear-gradient(90deg, #eef1f5 25%, #f6f8fa 50%, #eef1f5 75%);
  background-size: 200% 100%;
  animation: brilho 1.2s ease-in-out infinite;
  border-radius: 6px;
  height: .95rem;
}

@keyframes brilho { to { background-position: -200% 0; } }

.faixa-demonstracao {
  background: var(--k-amarelo-suave);
  border-bottom: 1px solid #f2ddb5;
  color: var(--k-amarelo);
  font-size: .78rem;
  padding: .35rem 1rem;
  text-align: center;
}

.btn-primary {
  --bs-btn-bg: var(--k-azul);
  --bs-btn-border-color: var(--k-azul);
  --bs-btn-hover-bg: #172b4e;
  --bs-btn-hover-border-color: #172b4e;
  --bs-btn-active-bg: #142544;
  --bs-btn-active-border-color: #142544;
  --bs-btn-disabled-bg: var(--k-azul);
  --bs-btn-disabled-border-color: var(--k-azul);
}

.btn-outline-primary {
  --bs-btn-color: var(--k-azul);
  --bs-btn-border-color: var(--k-azul);
  --bs-btn-hover-bg: var(--k-azul);
  --bs-btn-hover-border-color: var(--k-azul);
  --bs-btn-active-bg: var(--k-azul);
  --bs-btn-active-border-color: var(--k-azul);
}

.nav-tabs .nav-link { color: var(--k-texto-suave); font-size: .875rem; font-weight: 600; }
.nav-tabs .nav-link.active { color: var(--k-azul); }

.form-label { font-size: .8125rem; font-weight: 600; color: var(--k-texto-suave); margin-bottom: .25rem; }
.form-control, .form-select { font-size: .875rem; }
.form-control:focus, .form-select:focus { border-color: var(--k-azul-claro); box-shadow: 0 0 0 .2rem rgba(43,90,146,.15); }
.invalid-feedback { font-size: .78rem; }

.modal-title { color: var(--k-azul); font-size: 1.05rem; font-weight: 700; }

/* Vinculos de cada usuario com os negocios do grupo */
.usuario-negocios { min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--k-borda); border-radius: 12px; background: #fbfcff; }
.usuario-negocios legend { float: none; width: auto; margin: 0 0 2px; padding: 0 7px; color: var(--k-texto); font-size: 1rem; font-weight: 700; }
.usuario-negocios-ajuda { margin: 0 0 16px; color: var(--k-texto-suave); font-size: .82rem; line-height: 1.45; }
.usuario-negocios-rodape { margin-top: 14px; color: var(--k-texto-suave); font-size: .76rem; }
.usuario-negocio-card { overflow: hidden; border: 1px solid var(--k-borda); border-radius: 10px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.usuario-negocio-card.selecionado { border-color: #9fc2e8; box-shadow: 0 2px 10px rgba(31, 56, 100, .06); }
.usuario-negocio-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 68px; padding: 10px 12px; background: #f8fafc; }
.usuario-negocio-card.selecionado .usuario-negocio-topo { background: #f0f6ff; }
.usuario-negocio-selecao { display: flex; align-items: center; gap: 9px; flex: 1 1 auto; min-width: 0; margin: 0; cursor: pointer; }
.usuario-negocio-selecao .form-check-input { flex: 0 0 auto; margin: 0; cursor: pointer; }
.usuario-negocio-icone { display: grid; place-items: center; flex: 0 0 32px; width: 32px; height: 32px; border-radius: 8px; background: #e9eff8; color: var(--k-azul-claro); }
.usuario-negocio-identidade { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.usuario-negocio-identidade strong { color: var(--k-texto); font-size: .84rem; overflow-wrap: anywhere; }
.usuario-negocio-identidade small { margin-top: 2px; color: var(--k-texto-suave); font-size: .72rem; }
.usuario-negocio-status { flex: 0 0 auto; padding: 3px 8px; border-radius: 999px; background: #e9edf2; color: #516074; font-size: .69rem; font-weight: 700; white-space: nowrap; }
.usuario-negocio-card.selecionado .usuario-negocio-status { background: #dceafa; color: var(--k-azul); }
.usuario-negocio-detalhes { padding: 13px 14px 15px; border-top: 1px solid #dce7f4; }
.usuario-negocio-campos { display: grid; gap: 12px; }
.usuario-negocio-detalhes .form-label { margin-bottom: 5px; color: #42536b; }
@media (max-width: 575.98px) {
  .usuario-negocios { padding: 12px; }
  .usuario-negocio-topo { flex-wrap: wrap; }
  .usuario-negocio-status { margin-left: 57px; }
}

.toast-container { z-index: 1090; }

.table-responsive { border-radius: 12px; }

@media print {
  .barra-topo, .menu-lateral, .rodape-interno, .faixa-demonstracao, .btn, .fundo-menu, .area-favoritos-topo { display: none !important; }
  .conteudo { margin: 0; padding: 0; }
}

/* ==========================================================================
   Modulo de horas e alocacao
   ========================================================================== */

/* ---------- Planilha da semana ---------- */

.semana-cabecalho {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 12px;
  padding: .85rem 1.1rem;
  margin-bottom: 1rem;
}

.semana-dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .6rem; }

.dia-coluna {
  background: #fff;
  border: 1px solid var(--k-borda);
  border-radius: 11px;
  padding: .6rem;
  min-height: 150px;
  display: flex;
  flex-direction: column;
}

.dia-coluna.nao-util { background: #f7f8fa; }
.dia-coluna.hoje { border-color: var(--k-azul); box-shadow: 0 0 0 2px rgba(31,56,100,.12); }
.dia-coluna.travado { background: #f4f5f7; }

.dia-coluna .dia-topo {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .3rem;
  border-bottom: 1px solid var(--k-borda);
  padding-bottom: .4rem;
  margin-bottom: .45rem;
}

.dia-coluna .dia-nome {
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 700;
  color: var(--k-texto-suave);
}

.dia-coluna .dia-numero { font-size: 1.05rem; font-weight: 700; color: var(--k-azul); }
.dia-coluna .dia-total { font-size: .78rem; font-weight: 700; color: var(--k-azul-claro); }
.dia-coluna .dia-aviso { font-size: .68rem; color: var(--k-texto-suave); line-height: 1.25; }

.dia-coluna .dia-lista { flex: 1 1 auto; }

.dia-coluna .btn-lancar {
  margin-top: .4rem;
  width: 100%;
  --bs-btn-padding-y: .2rem;
  --bs-btn-font-size: .74rem;
}

.cartao-lancamento {
  border: 1px solid var(--k-borda);
  border-left: 3px solid var(--k-azul-claro);
  border-radius: 7px;
  padding: .35rem .45rem;
  margin-bottom: .35rem;
  font-size: .72rem;
  cursor: pointer;
  background: #fff;
  line-height: 1.3;
}

.cartao-lancamento:hover { border-color: var(--k-azul); background: var(--k-azul-suave); }
.cartao-lancamento.pendente { border-left-color: var(--k-amarelo); }
.cartao-lancamento.aprovado { border-left-color: var(--k-verde); }
.cartao-lancamento.reprovado { border-left-color: var(--k-vermelho); background: var(--k-vermelho-suave); }
.cartao-lancamento.fechado { border-left-color: #8a96a5; background: #f2f4f7; cursor: default; }
.cartao-lancamento .tempo { font-weight: 700; color: var(--k-azul); }
.cartao-lancamento .projeto { display: block; color: var(--k-texto-suave); }

@media (max-width: 991.98px) {
  .semana-dias { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575.98px) {
  .semana-dias { grid-template-columns: 1fr; }
  .dia-coluna { min-height: 0; }
}

/* ---------- Totalizador da semana ---------- */

.faixa-total {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  align-items: center;
  background: var(--k-azul-suave);
  border: 1px solid #cfe0f3;
  border-radius: 11px;
  padding: .7rem 1.1rem;
  margin-top: 1rem;
  font-size: .8125rem;
}

.faixa-total .numero { font-size: 1.2rem; font-weight: 700; color: var(--k-azul); display: block; }
.faixa-total .rotulo { color: var(--k-texto-suave); font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; }
.faixa-total .positivo { color: var(--k-verde); }
.faixa-total .negativo { color: var(--k-vermelho); }

/* ---------- Mapa de carga ---------- */

.barra-carga {
  position: relative;
  height: 20px;
  border-radius: 999px;
  background: #eef1f5;
  overflow: hidden;
  min-width: 120px;
}

.barra-carga .parte {
  position: absolute;
  top: 0; bottom: 0;
  border-right: 1px solid #fff;
}

.barra-carga .marca-cem {
  position: absolute;
  top: -3px; bottom: -3px;
  width: 2px;
  background: var(--k-azul);
  opacity: .55;
}

.carga-ociosa   { background: #cfd6e0; }
.carga-baixa    { background: #7fa8d4; }
.carga-adequada { background: #3f9d72; }
.carga-atencao  { background: #d9a441; }
.carga-excedida { background: #c05a5a; }

.legenda-carga { display: flex; flex-wrap: wrap; gap: 1rem; font-size: .78rem; color: var(--k-texto-suave); }
.legenda-carga span.amostra {
  display: inline-block;
  width: 14px; height: 10px;
  border-radius: 3px;
  margin-right: .3rem;
  vertical-align: middle;
}

/* ---------- Validacao do lancamento ---------- */

.painel-validacao { border-radius: 10px; padding: .75rem .9rem; font-size: .82rem; }
.painel-validacao ul { margin: .4rem 0 0; padding-left: 1.15rem; }
.painel-validacao li { margin-bottom: .2rem; }

.impedimento {
  display: flex;
  gap: .55rem;
  align-items: flex-start;
  border: 1px solid #f0c9c9;
  background: var(--k-vermelho-suave);
  border-radius: 9px;
  padding: .55rem .7rem;
  margin-bottom: .45rem;
  font-size: .8125rem;
}

.impedimento i { color: var(--k-vermelho); margin-top: .1rem; }
.impedimento .liberavel { display: block; margin-top: .25rem; }

.aviso-lancamento {
  display: flex;
  gap: .55rem;
  align-items: flex-start;
  border: 1px solid #f2ddb5;
  background: var(--k-amarelo-suave);
  border-radius: 9px;
  padding: .55rem .7rem;
  margin-bottom: .45rem;
  font-size: .8125rem;
}

.aviso-lancamento i { color: var(--k-amarelo); margin-top: .1rem; }

/* ---------- Competencia ---------- */

.cartao-competencia {
  border: 1px solid var(--k-borda);
  border-radius: 12px;
  background: #fff;
  padding: 1rem 1.1rem;
  height: 100%;
}

.cartao-competencia.fechada { background: #f6f7f9; }
.cartao-competencia .mes {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--k-azul);
  text-transform: capitalize;
}

.lista-conferencia { list-style: none; margin: 0; padding: 0; font-size: .82rem; }
.lista-conferencia li {
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem 0;
  border-bottom: 1px dashed var(--k-borda);
}
.lista-conferencia li:last-child { border-bottom: 0; }
.lista-conferencia .certo { color: var(--k-verde); }
.lista-conferencia .errado { color: var(--k-vermelho); }

/* ---------- Custo ---------- */

.valor-custo { font-variant-numeric: tabular-nums; white-space: nowrap; }
.oculto-custo { filter: blur(5px); user-select: none; transition: filter .15s ease; }
.oculto-custo:hover { filter: none; }

/* Revisão 1.1: fundamentos comuns aos portais interno e do fornecedor. */
body { line-height: 1.5; }
[hidden] { display: none !important; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 3px solid var(--k-foco); outline-offset: 3px;
}
.pular-conteudo { position: fixed; top: -100px; left: 16px; z-index: 2000; background: #fff; padding: 12px 18px; border: 2px solid var(--k-foco); border-radius: var(--k-raio); }
.pular-conteudo:focus { top: 8px; }
.barra-topo { background: #fff; color: var(--k-texto); border-bottom: 1px solid var(--k-borda); gap: 16px; }
.barra-topo .marca-clara,.barra-topo .dropdown-toggle,.barra-topo .btn-menu,.barra-topo .text-white { color: var(--k-azul) !important; }
.barra-topo .marca-cabecalho { flex: 0 0 auto; justify-content: flex-start; margin-left: 4px; white-space: nowrap; font-size: 1.95rem; }
@media (min-width: 768px) {
  .barra-topo .marca-cabecalho .marca-referencia { width: 182px; height: 35px; }
  .barra-topo .marca-cabecalho .marca-referencia img { left: -11px; top: -17px; width: 204px; }
}
.topo-relogio { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 7px; height: 38px; padding: 4px 8px 4px 5px; border: 1px solid #dce7f5; border-radius: 10px; background: #f8fbff; box-shadow: 0 1px 3px rgba(29, 58, 99, .05); color: #566d89; font-size: .73rem; white-space: nowrap; }
.topo-relogio i { display: inline-grid; flex: 0 0 25px; place-items: center; width: 25px; height: 25px; border-radius: 7px; background: #e8f1fc; color: #285d9d; font-size: .86rem; }
.topo-relogio-dia { color: #274b79; font-weight: 650; }
.topo-relogio-dia::after { content: '·'; margin-left: 7px; color: #a4b6cc; }
.topo-relogio-data { color: #526985; font-variant-numeric: tabular-nums; }
.topo-relogio-hora { margin-left: 2px; padding: 3px 8px; border-radius: 7px; background: #213b68; color: #fff; font-size: .78rem; line-height: 1.3; font-variant-numeric: tabular-nums; letter-spacing: .015em; }
.barra-topo .btn-menu { min-width: 40px; min-height: 40px; }
.barra-topo .btn-menu:hover { background: var(--k-azul-suave); }
.barra-topo .avatar { background: var(--k-azul-suave); color: var(--k-azul); }
.seletor-negocio { background: #f7f9fc; color: var(--k-texto); border-color: var(--k-borda); }
.seletor-negocio:hover { background: var(--k-azul-suave); color: var(--k-azul); }

/* Seletor de negocio: contexto visivel, papeis e troca sem destaque agressivo. */
.seletor-negocio-wrap { min-width: 0; }
.seletor-negocio {
  min-height: 42px;
  max-width: 290px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 5px 11px 5px 7px;
  border-radius: 10px;
  text-align: left;
  line-height: 1.15;
  box-shadow: 0 1px 2px rgba(15, 39, 72, .04);
}
.seletor-negocio::after { margin-left: 2px; color: var(--k-texto-suave); }
.seletor-negocio-icone {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  color: var(--k-azul-claro);
  background: var(--k-azul-suave);
  font-size: .95rem;
}
.seletor-negocio-texto { min-width: 0; flex-direction: column; gap: 2px; }
.seletor-negocio-texto small {
  color: var(--k-texto-suave);
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .02em;
}
.seletor-negocio-texto strong {
  display: block;
  max-width: 190px;
  overflow: hidden;
  color: var(--k-texto);
  font-size: .78rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.seletor-negocio[aria-expanded="true"] {
  background: #fff;
  border-color: #7ba3d1;
  box-shadow: 0 0 0 3px rgba(31, 94, 166, .13);
}
.menu-negocios {
  width: min(390px, calc(100vw - 20px));
  margin-top: 8px !important;
  padding: 8px;
  border: 1px solid #d7e0eb;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(15, 39, 72, .17);
}
.menu-negocios .dropdown-divider { margin: 7px 4px; border-color: #e8edf3; }
.menu-negocios-cabecalho {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 7px 6px 8px;
}
.menu-negocios-cabecalho-icone {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
}
.menu-negocios-cabecalho h6 { margin: 0 0 2px; color: var(--k-texto); font-size: .9rem; font-weight: 700; }
.menu-negocios-cabecalho p { margin: 0; color: var(--k-texto-suave); font-size: .72rem; line-height: 1.35; }
.menu-negocios-contagem {
  align-self: start;
  padding: 3px 7px;
  border-radius: 999px;
  background: #eef2f7;
  color: var(--k-texto-suave);
  font-size: .66rem;
  font-weight: 650;
  white-space: nowrap;
}
.negocio-item + .negocio-item { margin-top: 4px; }
.negocio-opcao {
  width: 100%;
  min-height: 62px;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--k-texto);
  text-align: left;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}
.negocio-opcao:hover { background: #f5f8fc; border-color: #dfe7f1; }
.negocio-opcao:not(.atual):hover { transform: translateX(2px); }
.negocio-opcao.atual { background: var(--k-azul-suave); border-color: #b7cce4; }
.negocio-opcao-icone {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: #eef3fa;
  color: var(--k-azul);
  font-size: 1rem;
}
.negocio-opcao.atual .negocio-opcao-icone { background: #dce9f7; color: var(--k-azul); }
.negocio-opcao-conteudo { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.negocio-opcao-conteudo strong {
  width: 100%;
  overflow: hidden;
  font-size: .82rem;
  font-weight: 650;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.negocio-papel {
  display: inline-flex;
  align-items: center;
  padding: 2px 7px;
  border-radius: 999px;
  font-size: .65rem;
  font-weight: 650;
  line-height: 1.35;
}
.negocio-papel.proprietario { background: var(--k-azul-suave); color: var(--k-azul); }
.negocio-papel.convidado { background: #eef1f5; color: #526174; }
.negocio-opcao-atual {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  color: var(--k-azul-claro);
}
.negocio-opcao-atual small { font-size: .61rem; font-weight: 700; }
.negocio-opcao-seta { color: #8996a8; font-size: .78rem; }
.menu-negocios-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 6px 3px;
  color: var(--k-texto-suave);
  font-size: .69rem;
}
.menu-negocios-rodape > span { display: flex; align-items: flex-start; gap: 6px; max-width: 245px; line-height: 1.35; }
.menu-negocios-rodape > span i { color: var(--k-azul-claro); }
.menu-negocios-rodape a { display: inline-flex; align-items: center; gap: 5px; font-weight: 650; text-decoration: none; white-space: nowrap; }
.menu-negocios-rodape a:hover { text-decoration: underline; }

/* Central compacta de notificacoes no cabecalho. */
.central-notificacoes-wrap { flex: 0 0 auto; }
.botao-notificacoes[aria-expanded="true"] { background: var(--k-azul-suave); box-shadow: 0 0 0 3px rgba(31, 94, 166, .13); }
.badge-notificacoes {
  position: absolute;
  top: -3px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #dc3545;
  color: #fff;
  font-size: .59rem;
  font-weight: 750;
  line-height: 1;
  box-sizing: content-box;
}
.central-notificacoes {
  width: min(410px, calc(100vw - 20px));
  margin-top: 8px !important;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d7e0eb;
  border-radius: 14px;
  box-shadow: 0 18px 44px rgba(15, 39, 72, .18);
}
.notificacoes-cabecalho {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid #e6ebf1;
  background: #fff;
}
.notificacoes-cabecalho-icone {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  background: var(--k-azul-suave);
  color: var(--k-azul-claro);
  font-size: 1rem;
}
.notificacoes-cabecalho h6 { margin: 0 0 2px; color: var(--k-texto); font-size: .94rem; font-weight: 700; }
.notificacoes-cabecalho p { margin: 0; color: var(--k-texto-suave); font-size: .72rem; }
.notificacoes-total {
  align-self: start;
  padding: 3px 7px;
  border-radius: 999px;
  background: #eef2f7;
  color: var(--k-texto-suave);
  font-size: .65rem;
  font-weight: 650;
  white-space: nowrap;
}
.notificacoes-lista {
  max-height: min(430px, calc(100vh - 190px));
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  background: #fff;
}
.notificacao-item {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) 8px 14px;
  align-items: center;
  gap: 10px;
  min-height: 82px;
  padding: 11px 12px;
  border-bottom: 1px solid #edf1f5;
  color: var(--k-texto);
  text-decoration: none;
  transition: background-color .15s ease;
}
.notificacao-item:last-child { border-bottom: 0; }
.notificacao-item:hover { background: #f5f8fc; color: var(--k-texto); }
.notificacao-item.nao-lida { background: #f8fbff; }
.notificacao-item.nao-lida:hover { background: #eef5fd; }
.notificacao-icone {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--k-azul-suave);
  color: var(--k-azul-claro);
  font-size: .95rem;
}
.notificacao-conteudo { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 3px; }
.notificacao-meta { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.notificacao-categoria {
  color: var(--k-texto-suave);
  font-size: .64rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.notificacao-meta time { color: var(--k-texto-suave); font-size: .66rem; white-space: nowrap; }
.notificacao-conteudo strong {
  width: 100%;
  overflow: hidden;
  color: var(--k-texto);
  font-size: .81rem;
  font-weight: 650;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.notificacao-item.nao-lida .notificacao-conteudo strong { color: #183b66; font-weight: 720; }
.notificacao-texto {
  display: -webkit-box;
  overflow: hidden;
  color: var(--k-texto-suave);
  font-size: .72rem;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.notificacao-estado { width: 7px; height: 7px; border-radius: 50%; background: transparent; }
.notificacao-item.nao-lida .notificacao-estado { background: #2b6cb0; box-shadow: 0 0 0 3px #dcebf9; }
.notificacao-seta { color: #97a3b3; font-size: .72rem; opacity: 0; transform: translateX(-3px); transition: opacity .15s ease, transform .15s ease; }
.notificacao-item:hover .notificacao-seta, .notificacao-item:focus-visible .notificacao-seta { opacity: 1; transform: translateX(0); }
.notificacoes-rodape {
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 12px;
  border-top: 1px solid #e6ebf1;
  background: #fafbfd;
}
.notificacoes-rodape > span { display: flex; align-items: flex-start; gap: 5px; color: var(--k-texto-suave); font-size: .65rem; line-height: 1.35; }
.notificacoes-rodape > span i { color: var(--k-azul); }
.notificacoes-rodape button {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 6px 8px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--k-azul);
  font-size: .7rem;
  font-weight: 650;
  white-space: nowrap;
}
.notificacoes-rodape button:hover:not(:disabled) { background: var(--k-azul-suave); }
.notificacoes-rodape button:disabled { color: #98a3b1; cursor: default; }
.notificacoes-vazias { min-height: 190px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; color: var(--k-texto-suave); text-align: center; }
.notificacoes-vazias i { color: var(--k-azul-claro); font-size: 1.8rem; }
.notificacoes-vazias strong { color: var(--k-texto); }
.notificacoes-vazias span { font-size: .75rem; }
.menu-lateral { display: flex; flex-direction: column; gap: 11px; background: #f4f8fd; padding: 12px 10px 14px; }
.busca-menu { position: sticky; top: 58px; background: #f4f8fd; padding: 4px 2px 5px; z-index: 1; }
.busca-menu > .bi { position: absolute; left: 15px; top: 15px; color: #617493; pointer-events: none; }
.busca-menu > input { padding-left: 36px; border-color: #d8e2ee; border-radius: 9px; background: #fff; }
.busca-menu > input:focus { border-color: #4e86ce; box-shadow: 0 0 0 3px rgba(43,90,146,.14); }
.menu-lateral .menu-bloco[hidden] { display: none; }
.menu-lateral .menu-bloco { padding: 8px 7px 10px; border: 1px solid #d9e5f4; border-radius: 12px; background: #fff; box-shadow: 0 2px 8px rgba(31,56,100,.04); }
.menu-lateral .menu-bloco + .menu-bloco { margin-top: 4px; }
.menu-lateral .menu-bloco-titulo { margin: 0 5px 5px; padding: 4px 5px 9px; border-bottom: 1px solid #e6edf7; color: #526b8a; font-size: .68rem; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; }
.menu-lateral .menu-data-atual { display: flex; align-items: center; gap: 8px; margin-top: 2px; padding: 10px 14px; border: 1px solid #d9e5f4; border-radius: 10px; background: #eaf2fc; color: #36577f; font-size: .76rem; font-weight: 650; }
.menu-lateral .menu-data-atual i { color: var(--k-azul); }
.menu-lateral .menu-data-atual time { white-space: nowrap; }
.grupo-menu { margin-bottom: 4px; }
.menu-lateral .grupo-titulo { padding: 12px 10px 8px; text-transform: none; letter-spacing: 0; font-size: .8rem; cursor: pointer; }
.menu-lateral a.item { padding: 9px 10px; min-height: 40px; border-radius: 6px; margin: 2px 0; }
.cabecalho-pagina { align-items: flex-start; gap: 16px; margin-bottom: 24px; }
.cabecalho-pagina h1 { font-size: clamp(1.25rem,1.6vw,1.6rem); font-weight: 650; line-height: 1.3; }
.cabecalho-pagina .subtitulo { max-width: 75ch; line-height: 1.5; margin-top: 6px; }
.breadcrumb { font-size: .8rem; margin-bottom: 12px; }
.cartao,.indicador,.cartao-plano,.cartao-recurso,.modal-content { border-radius: var(--k-raio); }
.cartao { box-shadow: none; }
.card > .card-header,
.cartao > .cartao-cabecalho { display: flex; align-items: center; min-height: 60px; padding: 14px 18px; gap: .75rem; flex-wrap: wrap; }
.cartao > .cartao-cabecalho { font-size: .95rem; background: #fff; }
.cartao > .cartao-corpo { padding: 16px; }
.indicador { padding: 16px; }
.indicador .valor { font-size: clamp(1.35rem,1.8vw,1.85rem); font-variant-numeric: tabular-nums; }
.indicador .apoio { line-height: 1.5; }
.btn { border-radius: 6px; }
.btn:not(.btn-sm):not(.btn-link) { min-height: 40px; }
.btn-group-sm .btn,.btn-sm { min-height: 32px; }
.form-control,.form-select { min-height: 40px; border-radius: 6px; }
.form-control-sm,.form-select-sm { min-height: 36px; }
.form-label { font-weight: 600; font-size: .875rem; }
.form-text { font-size: .8rem; color: var(--k-texto-suave); line-height: 1.5; }
.modal-header,.modal-footer { padding: 16px 20px; gap: 8px; }
.modal-body { padding: 20px; }
.modal-title { font-size: 1.15rem; line-height: 1.4; }
.resumo-validacao { font-size: .875rem; margin-bottom: 20px; }
.btn-erro-campo { border: 0; background: none; color: inherit; text-decoration: underline; text-align: left; padding: 4px 0; }
.faixa-filtros { padding: 16px; border-radius: var(--k-raio); background: #fff; margin-bottom: 16px; }
.faixa-filtros label { font-size: .8rem; color: var(--k-texto); }
.filtros-ativos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; width: 100%; }
.filtros-ativos:empty { display: none; }
.filtros-ativos:not(:empty) { padding-top: 12px; margin-top: 12px; border-top: 1px solid var(--k-borda); }
.filtro-chip { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #b8cce1; background: var(--k-azul-suave); color: var(--k-azul); font-size: .8rem; min-height: 32px; padding: 4px 10px; border-radius: 6px; max-width: 100%; overflow-wrap: anywhere; }
.filtros-avancados { margin-top: 12px; width: 100%; }
.filtros-avancados summary { color: var(--k-azul); font-size: .85rem; font-weight: 600; cursor: pointer; padding: 6px 0; }
.filtros-avancados .row { padding-top: 12px; }
.table-responsive { overscroll-behavior-x: contain; scrollbar-width: thin; }
:is(.tabela-lista,.table-lista) { margin-bottom: 0; }
:is(.tabela-lista,.table-lista) thead th { background: #f5f7fa; color: #465569; font-size: .75rem; font-weight: 650; vertical-align: middle; white-space: nowrap; padding: 12px; border-bottom: 1px solid var(--k-borda); }
:is(.tabela-lista,.table-lista) td { padding: 12px; font-size: .875rem; vertical-align: middle; }
:is(.tabela-lista,.table-lista) tr:focus-visible { outline-offset: -3px; }
:is(.tabela-lista,.table-lista) .col-acoes { width: 1%; white-space: nowrap; text-align: right; }
.btn-ordenar { display: inline-flex; align-items: center; gap: 6px; border: 0; padding: 4px 0; background: none; color: inherit; font: inherit; text-transform: inherit; letter-spacing: inherit; }
.btn-ordenar:hover { color: var(--k-azul); }
.tabela-rodape { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; font-size: .8rem; }
.nav-tabs { gap: 4px; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
.nav-tabs .nav-link { white-space: nowrap; padding: 12px 16px; }
.nav-tabs .nav-link.active { color: var(--k-azul); font-weight: 650; border-bottom: 2px solid var(--k-azul); }
.etiqueta { line-height: 1.4; }
.estado-vazio { padding: 40px 20px; }
.credenciais-demo summary { cursor: pointer; padding: 8px 0; }
.etapas { list-style: none; padding-left: 0; flex-wrap: wrap; }
.grupo-formulario { border: 0; padding: 0; margin: 0 0 24px; }
.grupo-formulario:last-child { margin-bottom: 0; }
.grupo-formulario legend { font-size: .9rem; font-weight: 650; color: var(--k-azul); padding-bottom: 10px; border-bottom: 1px solid var(--k-borda); margin-bottom: 16px; }
.portal-topo .portal-contexto { display: flex; flex-wrap: wrap; gap: 12px; }
.portal-topo #menuPortal { flex-basis: 100%; border-top: 1px solid var(--k-borda); padding-top: 8px; }
.portal-topo .nav-link { padding: 8px 12px; border-radius: 6px; }
.portal-topo .nav-link.active { background: var(--k-azul-suave); color: var(--k-azul); }
.portal-topo .contexto-empresa { max-width: 65%; overflow-wrap: anywhere; font-weight: 500; white-space: normal; }
.portal-topo .navbar-toggler { margin-left: auto; min-height: 40px; }
.usuario-portal { margin-left: auto; }
body:has(#topoPortal) > main.container,body:has(#topoPortal) .portal-contexto { max-width: 1440px; }

/* Paleta principal: azul para identidade, navegação e interação. As cores semânticas ficam restritas a estados. */
body,
body[data-grupo],
body:has(#topoPortal) {
  --k-acento: var(--k-azul-claro);
  --k-acento-suave: var(--k-azul-suave);
}

.cabecalho-pagina h1 { color: #27364a; }
.cabecalho-pagina h1 > i,
.cartao > .cartao-cabecalho i { color: var(--k-acento); }
.cartao > .cartao-cabecalho { color: #27364a; }
.modal-title { color: var(--k-acento); }
.nav-tabs .nav-link.active { color: var(--k-acento); border-bottom-color: var(--k-acento); }
.grupo-formulario legend,.filtros-avancados summary { color: var(--k-acento); }
.filtro-chip { background: var(--k-acento-suave); color: var(--k-acento); border-color: var(--k-acento); }
.progress-bar,.barra-grafico > span { background-color: var(--k-acento); }
.linha-tempo li::before { background: var(--k-acento); }
.etapa.ativa { border-color: var(--k-acento); color: var(--k-acento); }
.etapa.ativa .numero { background: var(--k-acento); }
.calendario td.hoje { background: var(--k-acento-suave); }
.calendario .evento { background: var(--k-acento-suave); color: var(--k-acento); border-left-color: var(--k-acento); }
.dia-coluna.hoje { border-color: var(--k-acento); box-shadow: 0 0 0 2px var(--k-acento-suave); }
.dia-coluna .dia-numero,.dia-coluna .dia-total,.cartao-lancamento .tempo { color: var(--k-acento); }
.cartao-lancamento { border-left-color: var(--k-acento); }
.cartao-lancamento:hover { border-color: var(--k-acento); background: var(--k-acento-suave); }

/* ---------- Histórico de relacionamento ---------- */

.historico-layout {
  display: grid;
  grid-template-columns: minmax(235px, 285px) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
  min-width: 0;
}

.historico-pessoas { position: sticky; top: 74px; min-width: 0; max-width: 100%; }
.historico-pessoas > .cartao-corpo { padding: 12px; }
.historico-lista-pessoas { min-width: 0; max-width: 100%; padding: 6px; max-height: calc(100vh - 285px); overflow-y: auto; scrollbar-width: thin; }

.historico-pessoa {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  border-left: 3px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--k-texto);
  text-align: left;
  padding: 9px 8px;
}
.historico-pessoa:hover { background: #f7f9fc; }
.historico-pessoa.ativo { background: var(--k-acento-suave); border-left-color: var(--k-acento); }
.historico-avatar { width: 34px; height: 34px; min-width: 34px; background: var(--k-acento-suave); color: var(--k-acento); }
.historico-avatar-grande { width: 54px; height: 54px; min-width: 54px; font-size: 1rem; background: var(--k-acento); color: #fff; }
.historico-pessoa-texto { min-width: 0; flex: 1; }
.historico-pessoa-texto strong, .historico-pessoa-texto small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.historico-pessoa-texto small { color: var(--k-texto-suave); font-size: .74rem; }
.historico-alerta { min-width: 20px; height: 20px; border-radius: 999px; background: var(--k-amarelo-suave); color: var(--k-amarelo); font-size: .7rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }

.historico-resumo { border-top: 4px solid var(--k-acento); }
.historico-indicadores .indicador .valor { color: var(--k-acento); font-size: 1.35rem; }
.historico-indicadores .indicador .icone { background: var(--k-acento-suave); color: var(--k-acento); }
.historico-abas { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; }
.historico-abas .nav-link { color: var(--k-texto-suave); white-space: nowrap; }
.historico-abas .nav-link.active { color: var(--k-acento); font-weight: 600; }
.historico-conteudo-aba { min-height: 360px; }

.historico-timeline { position: relative; padding-left: 42px; }
.historico-timeline::before { content: ""; position: absolute; left: 17px; top: 8px; bottom: 8px; width: 2px; background: var(--k-borda); }
.historico-evento { position: relative; display: flex; margin-bottom: 18px; }
.historico-evento:last-child { margin-bottom: 0; }
.historico-evento-icone { position: absolute; left: -42px; top: 0; z-index: 1; width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 3px solid #fff; }
.historico-evento-corpo { width: 100%; border: 1px solid var(--k-borda); border-radius: 9px; padding: 12px 14px; background: #fff; }
.historico-evento-corpo p { white-space: pre-line; }
.historico-cor-azul { background: var(--k-azul-suave); color: var(--k-azul-claro); }
.historico-cor-verde,
.historico-cor-roxa,
.historico-cor-amarela { background: var(--k-azul-suave); color: var(--k-azul-claro); }
.historico-cor-neutra { background: #eef1f5; color: #46525f; }
.historico-proximo { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; padding: 7px 9px; border-radius: 7px; background: var(--k-amarelo-suave); color: var(--k-amarelo); font-size: .8rem; }

.historico-tabela-dados th { width: 38%; color: var(--k-texto-suave); font-weight: 600; }
.historico-caixa-protegida { border: 1px solid #bfe3d2; background: var(--k-verde-suave); border-radius: 9px; padding: 14px; }
.historico-caixa-protegida > div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(17,121,75,.15); padding-bottom: 8px; margin-bottom: 8px; }
.historico-caixa-protegida span { color: var(--k-texto-suave); }

.historico-projetos, .historico-horas-projeto { display: grid; gap: 10px; }
.historico-projeto { border: 1px solid var(--k-borda); border-left: 4px solid var(--k-acento); border-radius: 8px; padding: 11px 12px; }
.historico-projeto strong, .historico-projeto span { display: block; }
.historico-projeto > div:first-child span { color: var(--k-texto-suave); font-size: .8rem; }
.historico-projeto-meta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; color: var(--k-texto-suave); font-size: .78rem; }
.historico-projeto-meta span { display: inline-flex; align-items: center; gap: 5px; }
.historico-horas-projeto .progress { height: 7px; margin-top: 4px; }
.historico-horas-projeto .progress-bar { background: var(--k-acento); }

@media (max-width: 991.98px) {
  .historico-layout { grid-template-columns: minmax(0, 1fr); }
  .historico-pessoas { position: static; }
  .historico-lista-pessoas { display: flex; gap: 6px; overflow-x: auto; overflow-y: hidden; max-height: none; padding: 8px; }
  .historico-pessoa { min-width: 220px; width: 220px; }
}

@media (max-width: 575.98px) {
  .historico-evento { margin-bottom: 14px; }
  .historico-timeline { padding-left: 32px; }
  .historico-timeline::before { left: 13px; }
  .historico-evento-icone { left: -32px; width: 28px; height: 28px; border-width: 2px; font-size: .75rem; }
  .historico-evento-corpo { padding: 10px; }
}
.portal-topo .nav-link.active { background: var(--k-acento-suave); color: var(--k-acento); }

.row > [class*="col-"] > .indicador {
  --indicador-cor: var(--k-azul-claro);
  --indicador-fundo: var(--k-azul-suave);
}
.indicador { border-color: var(--k-borda); }
.indicador .valor { color: #27364a; }
.indicador .icone { background: var(--indicador-fundo,var(--k-acento-suave)); color: var(--indicador-cor,var(--k-acento)); }

/* Painel inicial: cores de atenção e gráficos acessíveis por perfil. */
.painel-indicador { border-top: 3px solid #3976bc; transition: transform .15s ease, box-shadow .15s ease; }
a:hover .painel-indicador { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(28, 60, 102, .1); }
.painel-indicador.positivo { border-top-color: #159378; background: #f8fffd; }
.painel-indicador.positivo .valor { color: #08745f; }
.painel-indicador.positivo .icone { color: #08745f; background: #e3f8f1; }
.painel-indicador.alerta { border-top-color: #d86b52; background: #fffaf8; }
.painel-indicador.alerta .valor { color: #a83f31; }
.painel-indicador.alerta .icone { color: #b34b39; background: #ffebe5; }
.painel-grafico .cartao-corpo { padding: 1.1rem 1.25rem; }
.painel-grafico-linha + .painel-grafico-linha { margin-top: .85rem; }
.painel-grafico-legenda { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; font-size: .79rem; }
.painel-grafico-legenda strong { color: #253750; font-variant-numeric: tabular-nums; white-space: nowrap; }
.painel-grafico-trilha { height: 10px; margin-top: .35rem; border-radius: 99px; background: #edf2f8; overflow: hidden; }
.painel-grafico-barra { display: block; height: 100%; border-radius: inherit; background: #3976bc; }
.painel-grafico-barra.azul, .painel-grafico-barra.receber { background: #2778bc; }
.painel-grafico-barra.verde { background: #159378; }
.painel-grafico-barra.violeta { background: #8b64c5; }
.painel-grafico-barra.amarelo { background: #d69a27; }
.painel-grafico-barra.vermelho, .painel-grafico-barra.pagar { background: #df7654; }
.painel-grafico-chaves { display: flex; flex-wrap: wrap; gap: .8rem; font-size: .78rem; color: var(--k-texto-suave); }
.painel-grafico-chaves > span { display: inline-flex; align-items: center; gap: .35rem; }
.painel-chave { width: 9px; height: 9px; border-radius: 3px; display: inline-block; }
.painel-chave.receber { background: #2778bc; }
.painel-chave.pagar { background: #df7654; }
.painel-financeiro-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem 1.5rem; }
.painel-financeiro-mes { min-width: 0; padding: .75rem; border: 1px solid #e3ebf6; border-radius: 10px; background: #fafdff; }
.painel-financeiro-mes > strong { display: block; margin-bottom: .75rem; font-size: .82rem; color: #274e80; }
.painel-financeiro-mes .painel-grafico-legenda { font-size: .73rem; }
.aviso-data-especial { margin-top: .35rem; color: #895500; font-size: .78rem; line-height: 1.35; }
.aviso-data-especial::before { content: '\26A0'; margin-right: .3rem; }
@media (max-width: 991px) { .painel-financeiro-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 575px) { .painel-financeiro-grid { grid-template-columns: 1fr; } }

.grupo-menu {
  --menu-acento: var(--k-azul-claro);
  --menu-fundo: var(--k-azul-suave);
}
.menu-lateral .grupo-menu-wrap { border-bottom: 1px solid #e7edf5; }
.menu-lateral .grupo-direto {
  display: flex;
  align-items: center;
  min-height: 46px;
  margin: 2px 0 7px;
  padding: 7px 10px;
  border: 0;
  border-radius: 9px;
  background: #fff;
  color: #1f3864;
  font-size: .875rem;
  font-weight: 700;
  text-decoration: none;
}
.menu-lateral .grupo-direto[hidden] { display: none; }
.menu-lateral .grupo-direto .grupo-icone {
  width: 32px;
  height: 32px;
  margin-right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #edf4fc;
  color: var(--k-azul);
}
.menu-lateral .grupo-direto:hover { background: #f4f8fd; color: #1f3864; }
.menu-lateral .grupo-direto:focus-visible { outline: 2px solid var(--k-azul-claro); outline-offset: 2px; }
.menu-lateral .grupo-direto.ativo { background: #eaf3ff; color: #174d93; box-shadow: inset 3px 0 0 #2563ad; }
.menu-lateral .grupo-titulo { color: #1f3864; }
.menu-lateral .grupo-titulo .grupo-icone { color: var(--menu-acento,var(--k-azul)); }
.menu-lateral a.item i { color: #496b97; }
.menu-lateral a.item:hover { background: #f2f7fd; color: #1f3864; }
.menu-lateral a.item.ativo { background: #eaf3ff; color: #174d93; border-left: 3px solid #2b67b2; font-weight: 700; }
.menu-lateral .grupo-filhos {
  margin: 1px 8px 8px 26px;
  padding: 1px 0 1px 12px;
  border-left: 1px solid #d9e5f4;
}
.menu-lateral .grupo-filhos a.item {
  position: relative;
  min-height: 36px;
  margin: 2px 0;
  padding: 8px 9px;
  gap: 8px;
  font-size: .825rem;
  line-height: 1.3;
  border-left: 0;
  border-radius: 8px;
}
.menu-lateral .grupo-filhos a.item::before {
  content: '';
  position: absolute;
  left: -15px;
  top: 50%;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #c5d2e3;
  transform: translateY(-50%);
}
.menu-lateral .grupo-filhos a.item i { font-size: .93rem; }
.menu-lateral .grupo-filhos a.item.ativo { border-left: 0; padding-left: 9px; }
.menu-lateral .grupo-filhos a.item.ativo::before { width: 6px; height: 6px; background: #1f65bc; }
.menu-lateral .grupo-filhos a.item.ativo i { color: #1f65bc; }
.menu-lateral .menu-secao-titulo {
  margin: 10px 8px 3px;
  padding: 7px 4px 3px;
  border-top: 1px solid #e4eaf2;
  color: #52657d;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.menu-lateral .menu-secao-titulo[hidden] { display: none; }
.menu-lateral .grupo-menu > .grupo-titulo {
  display: flex;
  align-items: center;
  min-height: 46px;
  margin: 0;
  padding: 7px 12px;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: #1f3864;
  font-size: .875rem;
  font-weight: 700;
  list-style: none;
  transition: background .14s ease,box-shadow .14s ease;
}
.menu-lateral .grupo-menu > .grupo-titulo::-webkit-details-marker { display: none; }
.menu-lateral .grupo-menu > .grupo-titulo::after {
  content: '';
  width: 8px;
  height: 8px;
  margin-left: auto;
  margin-right: 3px;
  border-right: 1.5px solid #38577f;
  border-bottom: 1.5px solid #38577f;
  transform: rotate(-45deg);
  transition: transform .14s ease;
}
.menu-lateral .grupo-menu[open] > .grupo-titulo::after { transform: rotate(45deg); }
.menu-lateral .grupo-menu > .grupo-titulo .grupo-icone {
  width: 32px;
  height: 32px;
  margin-right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #edf4fc;
}
.menu-lateral .grupo-menu > .grupo-titulo:hover {
  background: #f4f8fd;
}
.menu-lateral .grupo-menu > .grupo-titulo:focus-visible {
  outline: 2px solid var(--k-azul-claro);
  outline-offset: 2px;
}
.menu-lateral .grupo-menu[open] > .grupo-titulo,
.menu-lateral .grupo-menu.ativo > .grupo-titulo {
  background: #fff;
  color: #1f3864;
  box-shadow: none;
}
.menu-lateral .grupo-menu.ativo > .grupo-titulo { position: relative; }
.menu-lateral .grupo-menu.ativo > .grupo-titulo::before {
  content: '';
  position: absolute;
  left: 3px;
  top: 10px;
  bottom: 10px;
  width: 3px;
  border-radius: 3px;
  background: #1f65bc;
}
.menu-legenda,.menu-legenda-direta { display: none; }
@media (min-width: 992px) {
  .layout { display: grid; grid-template-columns: var(--k-lateral) minmax(0,1fr); align-items: stretch; transition: grid-template-columns .18s ease; }
  .menu-lateral { position: static; width: auto; grid-column: 1; grid-row: 1; min-width: 0; transition: width .18s ease, box-shadow .18s ease, transform .2s ease; }
  .conteudo { grid-column: 2; grid-row: 1; margin-left: 0; min-width: 0; }
  body.menu-recolhido .layout { grid-template-columns: var(--k-lateral-recolhida) minmax(0,1fr); }
  body.menu-recolhido .menu-lateral { display: flex; width: var(--k-lateral-recolhida); padding-inline: 8px; overflow: visible; z-index: 1036; }
  body.menu-recolhido .menu-lateral .busca-menu,
  body.menu-recolhido .menu-lateral #menuSemResultado,
  body.menu-recolhido .menu-lateral .menu-bloco-titulo,
  body.menu-recolhido .menu-lateral .grupo-texto,
  body.menu-recolhido .menu-lateral .grupo-menu > div { display: none; }
  body.menu-recolhido .menu-lateral .menu-bloco { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
  body.menu-recolhido .menu-lateral .menu-bloco + .menu-bloco { margin-top: 6px; padding-top: 10px; border-top: 1px solid #cbd9ec; }
  body.menu-recolhido .menu-lateral .menu-data-atual { flex-direction: column; gap: 0; width: 48px; padding: 5px 1px; font-size: .62rem; }
  body.menu-recolhido .menu-lateral .menu-data-atual time { display: none; }
  body.menu-recolhido .menu-lateral .menu-data-atual::after { content: attr(data-dia); }
  body.menu-recolhido .menu-lateral .grupo-menu-wrap { position: relative; width: 48px; margin: 3px 0; border: 0; }
  body.menu-recolhido .menu-lateral .grupo-menu { margin: 0; }
  body.menu-recolhido .menu-lateral .grupo-titulo {
    width: 48px; height: 42px; padding: 0; border-radius: 8px; display: flex; align-items: center;
    justify-content: center; list-style: none; font-size: 1rem;
  }
  body.menu-recolhido .menu-lateral .grupo-direto {
    position: relative; width: 48px; height: 42px; padding: 0; margin: 3px 0; justify-content: center;
  }
  body.menu-recolhido .menu-lateral .grupo-titulo::-webkit-details-marker { display: none; }
  body.menu-recolhido .menu-lateral .grupo-menu > .grupo-titulo::after { display: none; }
  body.menu-recolhido .menu-lateral .grupo-menu.ativo > .grupo-titulo::before { display: none; }
  body.menu-recolhido .menu-lateral .grupo-icone { width: 30px; height: 30px; margin: 0; font-size: 1.08rem; }
  body.menu-recolhido .menu-lateral .grupo-menu.ativo > .grupo-titulo {
    background: #eaf3ff; color: #174d93; box-shadow: inset 3px 0 0 #2563ad;
  }
  body.menu-recolhido .menu-lateral .menu-legenda {
    position: absolute; top: 0; left: 100%; z-index: 1040;
    display: none; width: 248px; max-height: calc(100vh - 76px); overflow-y: auto;
    padding: 6px; border: 1px solid var(--k-borda); border-radius: 0 9px 9px 9px;
    background: #fff; box-shadow: 8px 8px 22px rgba(31,56,100,.16);
  }
  body.menu-recolhido .menu-lateral .grupo-menu-wrap:hover > .menu-legenda,
  body.menu-recolhido .menu-lateral .grupo-menu-wrap:focus-within > .menu-legenda { display: block; }
  body.menu-recolhido .menu-lateral .grupo-menu-wrap.legenda-oculta > .menu-legenda { display: none; }
  body.menu-recolhido .menu-lateral .menu-legenda-titulo {
    padding: 10px 12px 8px; border-bottom: 1px solid var(--k-borda);
    color: #27364a; font-size: .875rem; font-weight: 700;
  }
  body.menu-recolhido .menu-lateral .menu-legenda-lista { padding: 5px 0 0; }
  body.menu-recolhido .menu-lateral .menu-legenda .item { margin: 3px 0; padding: 9px 10px; }
  body.menu-recolhido .menu-lateral .menu-legenda-direta {
    position: absolute; top: 0; left: 100%; z-index: 1040; display: none;
    min-height: 42px; padding: 10px 14px; white-space: nowrap;
    border: 1px solid var(--k-borda); border-radius: 0 8px 8px 0;
    background: #fff; color: #27364a; box-shadow: 8px 8px 22px rgba(31,56,100,.16);
  }
  body.menu-recolhido .menu-lateral .grupo-direto:hover .menu-legenda-direta,
  body.menu-recolhido .menu-lateral .grupo-direto:focus-visible .menu-legenda-direta { display: block; }
  body.menu-aberto .fundo-menu { display: none; }
  .conteudo { transition: margin-left .2s ease; }
  .conteudo-interno { padding: 24px 28px 32px; }
}
@media (max-width: 1199.98px) {
  .topo-negocio-favoritos { gap: 8px; }
  .favoritos-topo { display: none; }
  .favoritos-topo-mobile { display: block; }
}
@media (max-width: 1599.98px) {
  .barra-topo { height: 92px; padding-bottom: 34px; }
  .layout { padding-top: 92px; }
  .menu-lateral { top: 92px; min-height: calc(100vh - 92px); }
  .busca-menu { top: 92px; }
  .fundo-menu { inset: 92px 0 0 0; }
  .topo-relogio { position: absolute; right: 0; bottom: 0; left: 0; justify-content: center; height: 34px; padding: 3px 8px; border: 0; border-top: 1px solid #dce7f5; border-radius: 0; background: linear-gradient(90deg, #f8fbff, #f1f6fd 50%, #f8fbff); box-shadow: none; }
}
@media (max-width: 399.98px) {
  .topo-relogio { gap: 5px; font-size: .68rem; }
  .topo-relogio i { flex-basis: 22px; width: 22px; height: 22px; }
  .topo-relogio-dia::after { margin-left: 5px; }
  .topo-relogio-hora { padding-inline: 6px; font-size: .73rem; }
}
@media (min-width: 1600px) {
  .conteudo-interno { max-width: 1800px; width: 100%; margin-inline: auto; padding-inline: 32px; }
}
@media (max-width: 767.98px) {
  .barra-topo { gap: 8px; padding-inline: 8px; }
  .barra-topo .marca-cabecalho { font-size: 1.2rem; }
  .cabecalho-pagina { flex-direction: column; margin-bottom: 20px; }
  #acoesPagina,#acoesTela { width: 100%; }
  .cabecalho-pagina .btn { flex: 1 1 auto; }
  .modal-dialog { margin: 8px; }
  .modal-body { padding: 16px; }
  .modal-footer .btn { flex: 1 1 auto; }
  .faixa-filtros { padding: 12px; }
  :is(.tabela-lista,.table-lista) td { padding: 10px; }
  .portal-topo .contexto-empresa { order: 3; width: 100%; max-width: 100%; margin: 0 !important; justify-content: flex-start; }
  .portal-topo #menuPortal { order: 4; }
  .seletor-negocio { min-width: 48px; justify-content: center; padding: 5px 7px; }
  .seletor-negocio::after { margin-left: 0; }
}
@media (max-width: 389.98px) {
  .barra-topo { gap: 8px; padding-inline: 8px; }
  .barra-topo .marca-cabecalho { font-size: 1.12rem; gap: 6px; }
  .barra-topo .marca-sigla { width: 26px; height: 26px; }
  .barra-topo .seletor-negocio { padding-inline: 6px; }
  .barra-topo .dropdown-menu { max-width: calc(100vw - 16px); }
  .menu-negocios-cabecalho { grid-template-columns: 34px minmax(0, 1fr); }
  .menu-negocios-cabecalho-icone { width: 34px; height: 34px; }
  .menu-negocios-contagem { display: none; }
  .menu-negocios-rodape { align-items: flex-start; }
  .menu-negocios-rodape > span { max-width: 190px; }
  .notificacoes-cabecalho { grid-template-columns: 36px minmax(0, 1fr); padding-inline: 11px; }
  .notificacoes-cabecalho-icone { width: 36px; height: 36px; }
  .notificacoes-total { display: none; }
  .notificacao-item { grid-template-columns: 36px minmax(0, 1fr) 7px; padding-inline: 10px; }
  .notificacao-icone { width: 36px; height: 36px; }
  .notificacao-seta { display: none; }
  .notificacoes-rodape > span { display: none; }
  .notificacoes-rodape { justify-content: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------- Cadastros de apoio ---------- */

.cadastro-form-contexto {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: -4px 0 20px;
  padding: 14px;
  border: 1px solid var(--k-borda);
  border-left: 4px solid var(--k-acento);
  border-radius: 8px;
  background: #f8fafc;
}
.cadastro-form-contexto .cadastro-form-icone {
  width: 38px; height: 38px; flex: 0 0 38px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 9px; background: var(--k-acento-suave); color: var(--k-acento); font-size: 1.05rem;
}
.cadastro-form-contexto strong,.cadastro-form-contexto span { display: block; }
.cadastro-form-contexto strong { color: #27364a; margin-bottom: 2px; }
.cadastro-form-contexto div > span { color: var(--k-texto-suave); font-size: .82rem; line-height: 1.45; }

.cadastro-detalhe-capa {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--k-borda);
  border-top: 4px solid var(--k-acento);
  border-radius: 10px;
  background: linear-gradient(135deg,#fff 55%,var(--k-acento-suave));
}
.cadastro-detalhe-icone {
  width: 54px; height: 54px; flex: 0 0 54px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 13px; background: var(--k-acento-suave); color: var(--k-acento); font-size: 1.35rem;
}
.cadastro-detalhe-titulo { min-width: 0; }
.cadastro-detalhe-titulo > span { display: block; color: var(--k-texto-suave); font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.cadastro-detalhe-titulo h3 { margin: 2px 0; color: #27364a; font-size: 1.25rem; line-height: 1.3; overflow-wrap: anywhere; }
.cadastro-detalhe-titulo small { color: var(--k-texto-suave); }
.cadastro-detalhe-uso {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 16px 0 20px;
  padding: 12px 14px;
  border-radius: 8px;
  background: #f5f7fa;
  color: var(--k-texto-suave);
}
.cadastro-detalhe-uso > i { color: var(--k-acento); margin-top: 2px; }
.cadastro-detalhe-uso strong { display: block; color: #27364a; font-size: .82rem; margin-bottom: 2px; }
.cadastro-detalhe-uso p { margin: 0; font-size: .82rem; line-height: 1.45; }
.cadastro-detalhe-subtitulo { margin: 0 0 10px; color: #27364a; font-size: .82rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.cadastro-detalhe-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0; }
.cadastro-detalhe-item { min-width: 0; padding: 12px 14px; border: 1px solid var(--k-borda); border-radius: 8px; background: #fff; }
.cadastro-detalhe-item dt { margin-bottom: 5px; color: var(--k-texto-suave); font-size: .74rem; font-weight: 650; }
.cadastro-detalhe-item dd { margin: 0; color: #27364a; font-weight: 600; overflow-wrap: anywhere; }
.cadastro-identificador { font-family: ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; color: var(--k-texto-suave); font-weight: 600; }

@media (max-width: 575.98px) {
  .cadastro-detalhe-capa { align-items: flex-start; padding: 14px; }
  .cadastro-detalhe-icone { width: 44px; height: 44px; flex-basis: 44px; }
  .cadastro-detalhe-grid { grid-template-columns: 1fr; }
  .cadastro-form-contexto { padding: 12px; }
}

/* ---------- Quadro de projetos configuravel ---------- */

.projetos-visualizacao-barra {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 1rem;
}
.projetos-visualizacao-modos { flex: 0 0 auto; }
.projetos-seletor-area {
  flex: 0 1 620px;
  min-width: 0;
  max-width: 620px;
}
.projetos-seletor-controles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.projetos-seletor-select { flex: 1 1 260px; min-width: 220px; }

.quadro-ferramentas {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid var(--k-borda);
  border-radius: 10px;
  background: #fff;
}
.coluna-quadro-cabecalho {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 6px;
  align-items: center;
  margin-bottom: 8px;
}
.coluna-quadro-cabecalho h6 { min-width: 0; margin: 0; }
.btn-alca-etapa {
  width: 28px;
  height: 30px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--k-texto-suave);
  cursor: grab;
}
.btn-alca-etapa:hover,.btn-alca-etapa:focus-visible { background: var(--k-azul-suave); color: var(--k-azul); }
.btn-alca-etapa:active { cursor: grabbing; }
.coluna-acoes .btn { padding: 2px 6px; }
.coluna-quadro.arrastando-etapa { opacity: .5; }
.coluna-quadro.recebendo-etapa { outline: 2px solid var(--k-azul-claro); outline-offset: 3px; }
.cartao-quadro { position: relative; }
.cartao-quadro:focus-visible { outline: 3px solid color-mix(in srgb,var(--k-foco) 28%,transparent); border-color: var(--k-foco); }
.cartao-quadro .etiqueta { padding: .1rem .4rem; font-size: .68rem; }
.envolvidos-cartao { display: flex; align-items: center; min-height: 24px; }
.envolvido-avatar {
  width: 25px;
  height: 25px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-right: -5px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  font-size: .62rem;
  font-weight: 700;
}
.envolvido-contagem { margin-right: 2px; background: #e3e9f1; color: var(--k-texto-suave); }
.selecao-relacionada {
  margin: 0;
  padding: 13px 14px;
  border: 1px solid var(--k-borda);
  border-radius: 10px;
  background: #f8fafc;
}
.selecao-relacionada legend { float: none; width: auto; margin: 0 0 8px; color: var(--k-azul); font-size: .82rem; font-weight: 700; }
.selecao-opcoes { display: flex; flex-wrap: wrap; gap: 7px; }
.selecao-chip { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.selecao-pessoas { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.selecao-pessoa {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border: 1px solid var(--k-borda);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}
.selecao-pessoa:hover { border-color: #b8cce1; background: var(--k-azul-suave); }
.selecao-pessoa > span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .78rem; }
.selecao-pessoa .envolvido-avatar { margin: 0; flex: 0 0 25px; }
.etapa-config-item,.etiqueta-config-item {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 10px;
  border: 1px solid var(--k-borda);
  border-radius: 9px;
  background: #fff;
}
.etapa-config-item + .etapa-config-item,.etiqueta-config-item + .etiqueta-config-item { margin-top: 8px; }
.etapa-config-editor { display: none; flex: 1 1 320px; align-items: center; gap: 6px; min-width: 0; }
.etapa-config-editor .form-control { flex: 1 1 180px; min-width: 120px; }
.etapa-config-item.em-edicao { border-color: var(--k-foco); background: #f7faff; }
.etapa-config-item.em-edicao .etapa-config-nome,
.etapa-config-item.em-edicao .etapa-config-badge,
.etapa-config-item.em-edicao .etapa-config-acoes { display: none !important; }
.etapa-config-item.em-edicao .etapa-config-editor { display: flex; }
.etapa-config-total { white-space: nowrap; }
@media (max-width: 575.98px) {
  .etapa-config-item { flex-wrap: wrap; }
  .etapa-config-item.em-edicao .etapa-config-editor { flex-wrap: wrap; }
}
.etapa-config-ordem {
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  font-size: .75rem;
  font-weight: 700;
}
.etiqueta-config-item { display: grid; grid-template-columns: 34px minmax(150px,1fr) minmax(120px,160px) auto 72px 36px; }
.etiqueta-config-item.em-edicao { border-color: var(--k-foco); background: #f7faff; box-shadow: 0 0 0 2px rgb(24 100 171 / 12%); }
.etiqueta-config-item [data-editar-etiqueta] { width: 72px; white-space: nowrap; }
.etiqueta-amostra { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid; border-radius: 8px; flex: 0 0 32px; }

.atividade-hierarquia { display: flex; align-items: flex-start; gap: 8px; min-width: 240px; }
.atividade-hierarquia > div { min-width: 0; }
.atividade-hierarquia-filha { padding-left: 16px; }
.atividade-hierarquia-filha > i { margin-top: 2px; color: var(--k-azul); }
.atividade-hierarquia-filha strong { color: #314c70; }
.atividade-progresso { max-width: 320px; margin: 8px 0 0; color: var(--k-texto-suave); font-size: .72rem; }
.atividade-progresso .progress { height: 5px; margin-top: 4px; background: #e7edf4; }
.atividade-progresso .progress-bar,.cartao-subprogresso .progress-bar { background: var(--k-azul); }
.subatividade-vinculo { display: flex; gap: 12px; padding: 14px; border: 1px solid #cbd9e8; border-radius: 10px; background: #f5f9fd; }
.subatividade-vinculo-icone {
  width: 38px; height: 38px; flex: 0 0 38px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: 9px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1rem;
}
.cartao-subatividade { border-left: 3px solid var(--k-azul-claro); background: #fbfdff; }
.cartao-vinculo { margin: -2px 0 7px; color: var(--k-azul); font-size: .68rem; font-weight: 650; line-height: 1.35; }
.cartao-subprogresso { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--k-borda); }
.cartao-subprogresso > div:first-child { display: flex; justify-content: space-between; gap: 8px; color: var(--k-texto-suave); font-size: .7rem; }
.cartao-subprogresso strong { color: var(--k-azul); }
.cartao-subprogresso .progress { height: 5px; margin-top: 5px; background: #e7edf4; }
.atividade-chamados { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 7px; color: var(--k-texto-suave); font-size: .72rem; }
.atividade-chamados > i { color: var(--k-azul); }
.atividade-chamados a { font-weight: 650; text-decoration: none; }
.atividade-chamados a:hover { text-decoration: underline; }
.cartao-chamado-acao { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 9px; padding-top: 7px; border-top: 1px solid var(--k-borda); }
.cartao-chamado-acao .btn-link { padding: 0; color: var(--k-azul); font-size: .72rem; font-weight: 650; text-decoration: none; }
.cartao-chamado-acao .btn-link:hover { text-decoration: underline; }
.chamado-atividade-contexto { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; padding: 14px; border: 1px solid #cbd9e8; border-radius: 10px; background: #f5f9fd; }
.chamado-atividade-icone { width: 42px; height: 42px; flex: 0 0 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1.1rem; }
.chamado-atividade-contexto span,.chamado-atividade-contexto strong,.chamado-atividade-contexto small { display: block; }
.chamado-atividade-contexto > div > span { color: var(--k-texto-suave); font-size: .72rem; font-weight: 650; text-transform: uppercase; }
.chamado-atividade-contexto strong { margin: 2px 0; color: #27364a; }
.chamado-atividade-contexto small { color: var(--k-texto-suave); }
.estado-sucesso-modal { padding: 24px 10px; text-align: center; }
.estado-sucesso-modal > span { width: 54px; height: 54px; display: inline-flex; align-items: center; justify-content: center; margin-bottom: 12px; border-radius: 50%; background: #e5f5ee; color: #087b5b; font-size: 1.45rem; }
.estado-sucesso-modal h6 { margin-bottom: 6px; color: #27364a; font-size: 1.1rem; }
.estado-sucesso-modal p { margin: 0; color: var(--k-texto-suave); }
.financeiro-contrato { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border: 1px solid #c9d8e8; border-left: 4px solid var(--k-azul); border-radius: 10px; background: linear-gradient(135deg,#fff 58%,#f1f6fb); }
.financeiro-contrato-icone { width: 48px; height: 48px; flex: 0 0 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1.25rem; }
.financeiro-contrato span,.financeiro-contrato h6 { display: block; }
.financeiro-contrato .flex-grow-1 > span { color: var(--k-texto-suave); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.financeiro-contrato h6 { margin: 2px 0; color: #27364a; font-size: 1rem; }
.financeiro-contrato .text-end > strong { margin: 7px 0 2px; color: #27364a; font-size: 1.05rem; }
.financeiro-contrato .text-end > a { display: block; font-size: .74rem; font-weight: 650; text-decoration: none; }
.indicador-financeiro { height: 100%; border-top: 3px solid #a8bfd7; }
.indicador-financeiro .valor { font-size: 1.25rem; }
.indicador-financeiro-alerta { border-top-color: #c43d4c; background: #fffafa; }
.financeiro-resultados { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin-bottom: 18px; }
.financeiro-resultados > div { padding: 12px; border: 1px solid var(--k-borda); border-radius: 9px; background: #f8fafc; }
.financeiro-resultados span,.financeiro-resultados strong { display: block; }
.financeiro-resultados span { margin-bottom: 4px; color: var(--k-texto-suave); font-size: .72rem; }
.financeiro-resultados strong { font-size: 1.08rem; }
.financeiro-barra + .financeiro-barra { margin-top: 14px; }
.financeiro-barra > div { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 5px; color: var(--k-texto-suave); font-size: .74rem; }
.financeiro-alerta-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--k-borda); font-size: .8rem; }
.financeiro-alerta-linha:first-child { padding-top: 0; }
.financeiro-alerta-linha:last-of-type { border-bottom: 0; }
.financeiro-alerta-linha span { color: var(--k-texto-suave); }
.financeiro-alerta-linha i { margin-right: 6px; color: var(--k-azul); }
.financeiro-alerta-linha strong { color: #27364a; text-align: right; }
.financeiro-tabela th { white-space: nowrap; }
.financeiro-tabela td { vertical-align: middle; }
.extrato-custos-contexto { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; padding: 17px 18px; border: 1px solid #c9d8e8; border-left: 4px solid var(--k-azul); border-radius: 10px; background: linear-gradient(135deg,#fff 58%,#f2f7fb); }
.extrato-custos-contexto-icone { width: 48px; height: 48px; flex: 0 0 48px; display: inline-flex; align-items: center; justify-content: center; border-radius: 11px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1.25rem; }
.extrato-custos-contexto span,.extrato-custos-contexto h5,.extrato-custos-contexto small { display: block; }
.extrato-custos-contexto .flex-grow-1 > span { color: var(--k-texto-suave); font-size: .7rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.extrato-custos-contexto h5 { margin: 2px 0; color: #27364a; font-size: 1.08rem; }
.extrato-custos-contexto small { color: var(--k-texto-suave); }
.extrato-custos-legenda { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; color: var(--k-texto-suave); font-size: .72rem; }
.extrato-custos-legenda span { display: inline-flex; align-items: center; gap: 5px; }
.extrato-custos-legenda i { width: 10px; height: 10px; display: inline-block; border-radius: 3px; }
.extrato-custos-legenda i.previsto { background: #adc4da; }
.extrato-custos-legenda i.realizado { background: var(--k-azul); }
.extrato-custo-indicador { height: 100%; border-top: 3px solid #aec4d9; }
.extrato-custo-indicador .valor { font-size: 1.28rem; }
.extrato-custos-grafico { display: grid; gap: 11px; }
.extrato-custos-mes { display: grid; grid-template-columns: 64px minmax(0,1fr); align-items: center; gap: 10px; }
.extrato-custos-mes > span { color: var(--k-texto-suave); font-size: .74rem; font-weight: 650; }
.extrato-custos-barras { display: grid; gap: 3px; min-width: 0; padding-right: 96px; }
.extrato-barra { min-width: 3px; height: 16px; border-radius: 0 5px 5px 0; position: relative; transition: width .2s ease; }
.extrato-barra.previsto { background: #adc4da; }
.extrato-barra.realizado { background: var(--k-azul); }
.extrato-barra span { position: absolute; left: calc(100% + 7px); top: 0; white-space: nowrap; color: var(--k-texto-suave); font-size: .66rem; line-height: 16px; }
.extrato-custos-atalho { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; border: 1px solid #cbd9e8; border-radius: 10px; background: #f5f9fd; }
.extrato-custos-atalho > div { display: flex; align-items: center; gap: 11px; }
.extrato-custos-atalho > div > i { color: var(--k-azul); font-size: 1.2rem; }
.extrato-custos-atalho span,.extrato-custos-atalho strong,.extrato-custos-atalho small { display: block; }
.extrato-custos-atalho strong { color: #27364a; }
.extrato-custos-atalho small { color: var(--k-texto-suave); }

@media (max-width: 767.98px) {
  .projetos-visualizacao-barra { align-items: stretch; flex-direction: column; }
  .projetos-seletor-area { flex: 0 0 auto; width: 100%; max-width: none; }
  .projetos-seletor-controles { justify-content: flex-start; }
  .projetos-seletor-select { flex-basis: 100%; width: 100%; min-width: 0; }
  .quadro-ferramentas { align-items: flex-start; flex-direction: column; }
  .selecao-pessoas { grid-template-columns: 1fr; }
  .etiqueta-config-item { grid-template-columns: 32px minmax(0,1fr) 72px 36px; }
  .etiqueta-config-item .etiqueta-amostra { grid-column: 1; grid-row: 1; }
  .etiqueta-config-item input { grid-column: 2 / -1; grid-row: 1; min-width: 0; }
  .etiqueta-config-item select { grid-column: 2 / -1; grid-row: 2; min-width: 0; }
  .etiqueta-config-item .text-nowrap { grid-column: 2; grid-row: 3; }
  .etiqueta-config-item [data-editar-etiqueta] { grid-column: 3; grid-row: 3; }
  .etiqueta-config-item [data-remover-etiqueta] { grid-column: 4; grid-row: 3; }
  .atividade-hierarquia-filha { padding-left: 4px; }
  .financeiro-contrato { align-items: flex-start; flex-wrap: wrap; padding: 14px; }
  .financeiro-contrato .text-end { width: 100%; text-align: left !important; padding-left: 62px; }
  .financeiro-resultados { grid-template-columns: 1fr; }
  .extrato-custos-contexto { align-items: flex-start; flex-wrap: wrap; padding: 14px; }
  .extrato-custos-legenda { width: 100%; justify-content: flex-start; padding-left: 62px; }
  .extrato-custos-atalho { align-items: flex-start; flex-direction: column; }
  .extrato-custos-atalho .btn { width: 100%; }
  .extrato-custos-mes { grid-template-columns: 52px minmax(0,1fr); }
  .extrato-custos-barras { padding-right: 0; }
  .extrato-barra span { display: none; }
}

/* ---------- Painel de projetos ---------- */
.dashboard-projetos-filtros { padding: 14px 16px 10px; border: 1px solid var(--k-borda); border-radius: 10px; background: #fff; }
.dashboard-projetos-filtros-rodape { min-height: 32px; margin-top: 5px; padding-top: 8px; border-top: 1px solid #edf1f5; }
.dashboard-projetos-filtros-rodape .btn-link { color: var(--k-azul-claro); }
.dashboard-projetos-kpi { height: 100%; min-height: 118px; border-top: 3px solid #9bb7d2; }
.dashboard-projetos-kpi .valor { margin-top: 4px; font-size: 1.7rem; line-height: 1.1; }
.dashboard-projetos-kpi .apoio { margin-top: 7px; line-height: 1.25; }
.dashboard-projetos-kpi.dashboard-kpi-alerta { border-top-color: #b54949; }
.dashboard-projetos-kpi.dashboard-kpi-alerta .icone { background: var(--k-vermelho-suave); color: var(--k-vermelho); }
.dashboard-projetos-painel { overflow: hidden; }
.dashboard-projetos-cabecalho { min-height: 64px; }
.dashboard-projetos-cabecalho > div > span { color: var(--k-texto-suave); font-size: .74rem; font-weight: 400; }
.dashboard-projetos-cabecalho > strong { color: var(--k-azul); font-size: .82rem; white-space: nowrap; }
.dashboard-projetos-legenda { color: var(--k-texto-suave); font-size: .7rem; }
.dashboard-projetos-contador { min-width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; background: var(--k-vermelho-suave); color: var(--k-vermelho); font-size: .75rem; font-weight: 750; }
.dashboard-barra { height: 6px; overflow: hidden; border-radius: 999px; background: #e5ebf2; }
.dashboard-barra > span { display: block; height: 100%; border-radius: inherit; background: var(--k-azul-claro); transition: width .2s ease; }
.dashboard-situacoes { display: grid; gap: 14px; }
.dashboard-situacao > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 5px; }
.dashboard-situacao span { color: #344256; font-size: .78rem; font-weight: 600; }
.dashboard-situacao strong { color: var(--k-azul); font-size: .88rem; }
.dashboard-situacao small { display: block; margin-top: 4px; color: var(--k-texto-suave); font-size: .66rem; text-align: right; }
.dashboard-carga-lista { display: grid; gap: 4px; }
.dashboard-carga-item { display: flex; align-items: center; gap: 11px; padding: 9px 2px; border-bottom: 1px solid #edf1f5; }
.dashboard-carga-item:last-child { border-bottom: 0; }
.dashboard-avatar { width: 34px; height: 34px; flex: 0 0 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--k-azul-suave); color: var(--k-azul); font-size: .7rem; font-weight: 750; }
.dashboard-carga-corpo { flex: 1; min-width: 0; }
.dashboard-carga-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.dashboard-carga-topo strong,.dashboard-carga-topo span { display: block; }
.dashboard-carga-topo > div:first-child strong { overflow: hidden; color: #27364a; font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-carga-topo > div:first-child span { color: var(--k-texto-suave); font-size: .68rem; }
.dashboard-carga-topo .text-end > strong { color: #27364a; font-size: .82rem; }
.dashboard-nivel { font-size: .62rem; font-weight: 700; }
.dashboard-nivel.equilibrada { color: var(--k-azul-claro); }
.dashboard-nivel.atencao { color: var(--k-amarelo); }
.dashboard-nivel.alta { color: var(--k-vermelho); }
.dashboard-riscos { display: grid; gap: 8px; }
.dashboard-risco { display: block; padding: 11px 12px; border: 1px solid var(--k-borda); border-radius: 9px; color: inherit; text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease; }
.dashboard-risco:hover { border-color: #9db6cf; box-shadow: 0 3px 10px rgba(31,56,100,.08); color: inherit; }
.dashboard-risco-topo,.dashboard-risco-progresso { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.dashboard-risco-topo { margin-bottom: 6px; }
.dashboard-risco-topo small { color: var(--k-vermelho); font-size: .7rem; font-weight: 650; }
.dashboard-risco > strong { display: block; overflow: hidden; color: #27364a; font-size: .79rem; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-risco > span { display: block; margin-top: 3px; color: var(--k-texto-suave); font-size: .68rem; }
.dashboard-risco-progresso { margin-top: 8px; }
.dashboard-risco-progresso .dashboard-barra { flex: 1; }
.dashboard-risco-progresso small { color: var(--k-texto-suave); font-size: .65rem; }
.dashboard-prazos { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.dashboard-prazo { display: grid; grid-template-columns: 50px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--k-borda); border-radius: 9px; color: inherit; text-decoration: none; transition: border-color .15s ease, background .15s ease; }
.dashboard-prazo:hover { border-color: #a5bad0; background: #f8fafc; color: inherit; }
.dashboard-prazo-data { padding-right: 9px; border-right: 1px solid var(--k-borda); text-align: center; }
.dashboard-prazo-data strong,.dashboard-prazo-data small,.dashboard-prazo-corpo strong,.dashboard-prazo-corpo small { display: block; }
.dashboard-prazo-data strong { color: var(--k-azul); font-size: .84rem; }
.dashboard-prazo-data small { color: var(--k-texto-suave); font-size: .62rem; }
.dashboard-prazo-corpo { min-width: 0; }
.dashboard-prazo-corpo strong,.dashboard-prazo-corpo small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-prazo-corpo strong { color: #27364a; font-size: .76rem; }
.dashboard-prazo-corpo small { margin-top: 3px; color: var(--k-texto-suave); font-size: .65rem; }
.dashboard-prazo-progresso { display: flex; align-items: center; gap: 6px; color: var(--k-azul-claro); }
.dashboard-prazo-progresso strong { font-size: .72rem; }

@media (max-width: 1199.98px) {
  .dashboard-prazos { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 767.98px) {
  .dashboard-projetos-kpi { min-height: 108px; }
  .dashboard-projetos-kpi .valor { font-size: 1.4rem; }
  .dashboard-prazos { grid-template-columns: 1fr; }
  .dashboard-projetos-cabecalho { align-items: flex-start; flex-direction: column; gap: 8px; }
}

/* ---------- Resumo do projeto ---------- */
.projeto-detalhe-abas {
  gap: 4px;
  padding: 6px;
  border: 1px solid var(--k-borda);
  border-radius: 11px;
  background: #fff;
}
.projeto-detalhe-abas .nav-link {
  min-height: 40px;
  padding: 9px 14px;
  border: 0 !important;
  border-radius: 7px;
  color: #4b5a70;
}
.projeto-detalhe-abas .nav-link:hover { background: #f6f8fb; color: var(--k-azul); }
.projeto-detalhe-abas .nav-link.active {
  border: 0;
  background: var(--k-azul-suave);
  box-shadow: inset 0 0 0 1px #d9e5f2;
  color: var(--k-azul);
}
.projeto-resumo { display: grid; gap: 16px; }
.projeto-resumo-indicadores {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 12px;
}
.projeto-resumo-kpi {
  min-width: 0;
  min-height: 142px;
  padding: 15px 16px;
  border: 1px solid var(--k-borda);
  border-top: 3px solid #9fb9d4;
  border-radius: 10px;
  background: #fff;
}
.projeto-resumo-kpi.atencao { border-top-color: #c48a23; }
.projeto-resumo-kpi.alerta { border-top-color: #b54949; }
.projeto-resumo-kpi.sucesso { border-top-color: #6c9d82; }
.projeto-resumo-kpi.neutro { border-top-color: #acb5c1; }
.projeto-resumo-kpi-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.projeto-resumo-kpi-topo > span {
  color: #526077;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .035em;
  line-height: 1.25;
  text-transform: uppercase;
}
.projeto-resumo-kpi-topo > i {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: var(--k-azul-suave);
  color: var(--k-azul-claro);
  font-size: .96rem;
}
.projeto-resumo-kpi.alerta .projeto-resumo-kpi-topo > i { background: var(--k-vermelho-suave); color: var(--k-vermelho); }
.projeto-resumo-kpi.atencao .projeto-resumo-kpi-topo > i { background: var(--k-amarelo-suave); color: var(--k-amarelo); }
.projeto-resumo-kpi.sucesso .projeto-resumo-kpi-topo > i { background: var(--k-verde-suave); color: var(--k-verde); }
.projeto-resumo-kpi > strong { display: block; margin-top: 8px; color: #24344b; font-size: 1.55rem; line-height: 1.05; }
.projeto-resumo-kpi > strong small { color: var(--k-texto-suave); font-size: .72rem; font-weight: 600; }
.projeto-resumo-kpi > p { min-height: 18px; margin: 6px 0 0; color: var(--k-texto-suave); font-size: .78rem; line-height: 1.35; }
.projeto-resumo-grade { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(330px,.85fr); gap: 16px; }
.projeto-resumo-grade-secundaria { grid-template-columns: minmax(0,1.35fr) minmax(340px,.65fr); }
.projeto-resumo-painel { min-width: 0; height: 100%; }
.projeto-resumo-painel > .cartao-corpo { height: 100%; }
.projeto-resumo-titulo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 17px; }
.projeto-resumo-titulo span,.projeto-resumo-titulo h3 { display: block; }
.projeto-resumo-titulo span { margin-bottom: 2px; color: var(--k-texto-suave); font-size: .72rem; font-weight: 650; letter-spacing: .045em; text-transform: uppercase; }
.projeto-resumo-titulo h3 { margin: 0; color: #27364a; font-size: .98rem; font-weight: 700; }
.projeto-resumo-titulo .btn-link { padding-right: 0; color: var(--k-azul-claro); text-decoration: none; }
.projeto-resumo-medida + .projeto-resumo-medida { margin-top: 13px; }
.projeto-resumo-medida > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.projeto-resumo-medida span { color: #44536a; font-size: .8rem; font-weight: 600; }
.projeto-resumo-medida strong { color: #27364a; font-size: .8rem; }
.projeto-resumo-barra { height: 7px; overflow: hidden; border-radius: 999px; background: #e8edf3; }
.projeto-resumo-barra > span { display: block; height: 100%; border-radius: inherit; background: var(--k-azul-claro); transition: width .2s ease; }
.projeto-resumo-barra.atencao > span { background: #b87d18; }
.projeto-resumo-barra.alerta > span { background: #b54949; }
.projeto-resumo-kpi > .projeto-resumo-barra { margin-top: 9px; }
.projeto-resumo-marcos {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);
  align-items: center;
  gap: 12px;
  margin-top: 17px;
  padding: 12px 14px;
  border: 1px solid #e1e7ef;
  border-radius: 9px;
  background: #f8fafc;
}
.projeto-resumo-marcos > i { color: #a1adbc; font-size: .7rem; }
.projeto-resumo-marcos span,.projeto-resumo-marcos strong { display: block; }
.projeto-resumo-marcos span { color: var(--k-texto-suave); font-size: .7rem; }
.projeto-resumo-marcos span i { margin-right: 5px; color: var(--k-azul-claro); }
.projeto-resumo-marcos strong { margin-top: 3px; color: #27364a; font-size: .8rem; }
.projeto-resumo-alertas { display: grid; gap: 6px; margin-top: 12px; }
.projeto-resumo-alerta { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border-radius: 7px; background: #f4f7fa; color: #48566b; font-size: .78rem; line-height: 1.4; }
.projeto-resumo-alerta > i { margin-top: 1px; color: var(--k-azul-claro); }
.projeto-resumo-alerta.alerta { background: var(--k-vermelho-suave); color: #7e2727; }
.projeto-resumo-alerta.alerta > i { color: var(--k-vermelho); }
.projeto-resumo-alerta.atencao { background: var(--k-amarelo-suave); color: #704d0a; }
.projeto-resumo-alerta.atencao > i { color: var(--k-amarelo); }
.projeto-resumo-alerta.ok { background: var(--k-verde-suave); color: #276246; }
.projeto-resumo-alerta.ok > i { color: var(--k-verde); }
.projeto-resumo-dados { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 18px; margin: 0; }
.projeto-resumo-dados > div { min-width: 0; padding-bottom: 10px; border-bottom: 1px solid #edf1f5; }
.projeto-resumo-dados > div:last-child { border-bottom: 0; padding-bottom: 0; }
.projeto-resumo-dados dt { margin-bottom: 5px; color: var(--k-texto-suave); font-size: .72rem; font-weight: 600; }
.projeto-resumo-dados dd { display: flex; align-items: center; min-height: 24px; margin: 0; overflow-wrap: anywhere; color: #27364a; font-size: .82rem; font-weight: 600; }
.projeto-resumo-dados .etiqueta { max-width: 100%; align-items: flex-start; white-space: normal; }
.projeto-resumo-dado-largo { grid-column: 1 / -1; }
.projeto-resumo-avatar { width: 24px; height: 24px; flex: 0 0 24px; display: inline-flex; align-items: center; justify-content: center; margin-right: 7px; border-radius: 50%; background: var(--k-azul-suave); color: var(--k-azul); font-size: .56rem; font-weight: 750; }
.projeto-resumo-etapas-barra { height: 11px; display: flex; overflow: hidden; margin: 4px 0 16px; border-radius: 999px; background: #edf1f5; }
.projeto-resumo-etapa-segmento { min-width: 2px; height: 100%; }
.projeto-resumo-etapas-barra .etapa-1,.projeto-resumo-etapa-cor.etapa-1 { background: #cdddec; }
.projeto-resumo-etapas-barra .etapa-2,.projeto-resumo-etapa-cor.etapa-2 { background: #9dbbd8; }
.projeto-resumo-etapas-barra .etapa-3,.projeto-resumo-etapa-cor.etapa-3 { background: #6794bf; }
.projeto-resumo-etapas-barra .etapa-4,.projeto-resumo-etapa-cor.etapa-4 { background: #3f70a2; }
.projeto-resumo-etapas-barra .etapa-5,.projeto-resumo-etapa-cor.etapa-5 { background: #1f3864; }
.projeto-resumo-etapas-legenda { display: grid; grid-template-columns: repeat(auto-fit,minmax(110px,1fr)); gap: 10px; }
.projeto-resumo-etapa-item { min-width: 0; display: flex; align-items: center; gap: 8px; padding: 8px 9px; border: 1px solid #e2e8f0; border-radius: 8px; background: #fbfcfd; }
.projeto-resumo-etapa-cor { width: 8px; height: 28px; flex: 0 0 8px; border-radius: 999px; }
.projeto-resumo-etapa-item strong,.projeto-resumo-etapa-item small { display: block; }
.projeto-resumo-etapa-item strong { color: #27364a; font-size: .85rem; line-height: 1; }
.projeto-resumo-etapa-item small { margin-top: 3px; overflow: hidden; color: var(--k-texto-suave); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.projeto-resumo-hierarquia { margin: 12px 0 0; color: var(--k-texto-suave); font-size: .74rem; }
.projeto-resumo-contrato .cartao-corpo { display: flex; flex-direction: column; }
.projeto-resumo-contrato-topo { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.projeto-resumo-contrato-icone { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1rem; }
.projeto-resumo-contrato-topo > div > span,.projeto-resumo-contrato-topo > div > strong { display: block; }
.projeto-resumo-contrato-topo > div > span { color: var(--k-texto-suave); font-size: .7rem; }
.projeto-resumo-contrato-topo > div > strong { margin-top: 2px; color: #27364a; font-size: .9rem; }
.projeto-resumo-contrato-objeto { margin: 14px 0; color: #3c4b60; font-size: .8rem; line-height: 1.5; }
.projeto-resumo-contrato-dados { display: grid; gap: 8px; margin: 0 0 14px; padding: 11px 12px; border-radius: 8px; background: #f7f9fc; }
.projeto-resumo-contrato-dados > div { display: grid; grid-template-columns: 76px minmax(0,1fr); gap: 8px; }
.projeto-resumo-contrato-dados dt { color: var(--k-texto-suave); font-size: .7rem; font-weight: 600; }
.projeto-resumo-contrato-dados dd { margin: 0; color: #344256; font-size: .74rem; }
.projeto-resumo-contrato-vazio { flex: 1; display: flex; align-items: center; justify-content: center; flex-direction: column; min-height: 190px; text-align: center; }
.projeto-resumo-contrato-vazio > i { margin-bottom: 8px; color: #9aa7b6; font-size: 1.6rem; }
.projeto-resumo-contrato-vazio > strong { color: #27364a; font-size: .88rem; }
.projeto-resumo-contrato-vazio > p { max-width: 270px; margin: 6px auto 12px; color: var(--k-texto-suave); font-size: .7rem; }
.projeto-resumo-descricao p { max-width: 1050px; margin: -3px 0 0; color: #44536a; font-size: .85rem; line-height: 1.65; white-space: pre-line; }
.projeto-resumo-vazio { min-height: 90px; display: flex; align-items: center; justify-content: center; gap: 9px; border: 1px dashed var(--k-borda); border-radius: 9px; color: var(--k-texto-suave); font-size: .72rem; }
.projeto-resumo-vazio > i { color: var(--k-azul-claro); font-size: 1.1rem; }
.projeto-resumo-atalhos { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; padding: 4px 1px 2px; }
.projeto-resumo-atalhos > span { margin-right: 3px; color: var(--k-texto-suave); font-size: .66rem; font-weight: 650; text-transform: uppercase; }
.projeto-resumo-atalhos a,.projeto-resumo-atalhos button { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 5px 10px; border: 1px solid var(--k-borda); border-radius: 8px; background: #fff; color: #42526a; font-size: .74rem; font-weight: 600; text-decoration: none; }
.projeto-resumo-sem-previsao { min-height: 30px; display: flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius: 7px; background: var(--k-vermelho-suave); color: #7e2727; font-size: .76rem; }
.projeto-resumo-atalhos a:hover,.projeto-resumo-atalhos button:hover { border-color: #9fb7d0; background: var(--k-azul-suave); color: var(--k-azul); }
.projeto-resumo-atalhos a:focus-visible,.projeto-resumo-atalhos button:focus-visible,.projeto-detalhe-abas .nav-link:focus-visible { outline: 3px solid rgba(43,90,146,.2); outline-offset: 2px; }

@media (max-width: 1199.98px) {
  .projeto-resumo-indicadores { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .projeto-resumo-grade,.projeto-resumo-grade-secundaria { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
  .projeto-detalhe-abas { margin-right: -4px; margin-left: -4px; padding: 4px; border-radius: 9px; }
  .projeto-detalhe-abas .nav-link { min-height: 38px; padding: 8px 11px; }
  .projeto-resumo-indicadores { grid-template-columns: 1fr; }
  .projeto-resumo-kpi { min-height: 128px; }
  .projeto-resumo-titulo { align-items: stretch; flex-direction: column; }
  .projeto-resumo-titulo .btn,.projeto-resumo-titulo .btn-link { width: 100%; text-align: center; }
  .projeto-resumo-dados { grid-template-columns: 1fr; }
  .projeto-resumo-dado-largo { grid-column: auto; }
  .projeto-resumo-marcos { grid-template-columns: 1fr auto 1fr; }
  .projeto-resumo-etapas-legenda { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .projeto-resumo-contrato-topo { grid-template-columns: 40px minmax(0,1fr); }
  .projeto-resumo-contrato-topo > .etiqueta { grid-column: 2; justify-self: start; }
  .projeto-resumo-atalhos { align-items: stretch; flex-direction: column; }
  .projeto-resumo-atalhos > span { margin: 0 0 2px; }
  .projeto-resumo-atalhos a,.projeto-resumo-atalhos button { justify-content: center; width: 100%; }
}

/* ---------- Relatorios de projetos ---------- */
.relatorios-projetos-seletor { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; margin-bottom: 16px; }
.relatorio-projeto-tipo { display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 78px; padding: 12px 14px; border: 1px solid var(--k-borda); border-radius: 10px; background: #fff; color: inherit; text-align: left; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.relatorio-projeto-tipo:hover { border-color: #a7bdd3; box-shadow: 0 3px 10px rgba(31,56,100,.07); }
.relatorio-projeto-tipo.ativo { border-color: #8faccc; background: #f6f9fc; box-shadow: inset 3px 0 0 var(--k-azul-claro); }
.relatorio-projeto-tipo > span { width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1.08rem; }
.relatorio-projeto-tipo strong,.relatorio-projeto-tipo small { display: block; }
.relatorio-projeto-tipo strong { color: #27364a; font-size: .84rem; }
.relatorio-projeto-tipo small { margin-top: 3px; color: var(--k-texto-suave); font-size: .68rem; line-height: 1.25; }
.relatorio-projeto-tipo > i { color: #91a0b3; font-size: .8rem; }
.relatorio-projeto-tipo.ativo > i { color: var(--k-azul-claro); }
.relatorio-projeto-filtros { overflow: visible; }
.relatorio-projeto-filtros-faixa { margin: 0; padding: 16px; border: 0; border-radius: 0; background: transparent; }
.relatorio-projeto-cabecalho { min-height: 62px; }
.relatorio-projeto-cabecalho > div > span { color: var(--k-texto-suave); font-size: .72rem; font-weight: 400; }
.relatorio-projeto-cabecalho .btn-link { color: var(--k-azul-claro); }
.relatorio-projeto-acoes { margin-left: auto; }
.relatorio-projeto-indicador { height: 100%; min-height: 112px; border-top: 3px solid #a2bad2; }
.relatorio-projeto-indicador .valor { margin-top: 3px; font-size: 1.55rem; }
.relatorio-projeto-indicador .apoio { margin-top: 7px; line-height: 1.2; }
.relatorio-projeto-indicador.alerta { border-top-color: #b54949; }
.relatorio-projeto-indicador.alerta .icone { background: var(--k-vermelho-suave); color: var(--k-vermelho); }
.relatorio-projeto-resultado { overflow: hidden; }
.relatorio-projeto-tabela { font-size: .78rem; }
.relatorio-projeto-tabela thead th { padding: 11px 12px; border-bottom-width: 1px; background: #f6f8fb; color: #435168; font-size: .67rem; letter-spacing: .025em; text-transform: uppercase; white-space: nowrap; }
.relatorio-projeto-tabela tbody td { padding: 11px 12px; }
.relatorio-projeto-tabela tbody tr:last-child td { border-bottom: 0; }
.relatorio-projeto-link { display: block; min-width: 150px; color: inherit; text-decoration: none; }
.relatorio-projeto-link strong,.relatorio-projeto-link span { display: block; }
.relatorio-projeto-link strong { color: var(--k-azul); font-size: .76rem; }
.relatorio-projeto-link span { margin-top: 2px; color: #27364a; font-size: .75rem; }
.relatorio-projeto-link:hover strong,.relatorio-projeto-link:hover span { color: var(--k-azul-claro); }
.relatorio-progresso > div:first-child { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 5px; color: var(--k-texto-suave); font-size: .65rem; }
.relatorio-progresso > div:first-child strong { color: #27364a; }
.relatorio-responsavel { display: flex; align-items: center; gap: 9px; min-width: 170px; }
.relatorio-responsavel > span { width: 34px; height: 34px; flex: 0 0 34px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: var(--k-azul-suave); color: var(--k-azul); font-size: .68rem; font-weight: 750; }
.relatorio-responsavel strong,.relatorio-responsavel small { display: block; }
.relatorio-responsavel strong { color: #27364a; font-size: .77rem; }
.relatorio-responsavel small { margin-top: 2px; color: var(--k-texto-suave); font-size: .65rem; }

@media (max-width: 991.98px) {
  .relatorios-projetos-seletor { grid-template-columns: 1fr; }
  .relatorio-projeto-tipo { min-height: 68px; }
  .relatorio-projeto-acoes { width: 100%; margin-left: 0; }
  .relatorio-projeto-acoes .btn { width: 100%; }
}
@media (max-width: 575.98px) {
  .relatorio-projeto-cabecalho { align-items: flex-start; flex-direction: column; gap: 9px; }
  .relatorio-projeto-cabecalho .btn { width: 100%; }
  .relatorio-projeto-indicador { min-height: 105px; }
  .relatorio-projeto-indicador .valor { font-size: 1.35rem; }
}

/* ---------- Modal amplo de atividade ---------- */
.modal-dialog.modal-atividade-amplo { width: calc(100vw - 24px); max-width: 1320px; margin: 12px auto; }
.modal-atividade-amplo .modal-content { max-height: calc(100vh - 24px); }
.modal-atividade-amplo .modal-body { padding: 16px 20px; }
.modal-atividade-amplo .form-atividade-amplo > .row { --bs-gutter-y: .75rem; }
.modal-atividade-amplo .form-label { margin-bottom: .2rem; font-size: .8rem; }
.modal-atividade-amplo .form-control,.modal-atividade-amplo .form-select { min-height: 38px; }
.modal-atividade-amplo .subatividade-vinculo { padding: 10px 12px; }
.modal-atividade-amplo .subatividade-vinculo-icone { width: 34px; height: 34px; flex-basis: 34px; }
.modal-atividade-amplo .subatividade-vinculo .form-text { margin-top: 4px; font-size: .7rem; line-height: 1.3; }
.modal-atividade-amplo .selecao-relacionada { padding: 10px 12px; }
.modal-atividade-amplo .selecao-relacionada legend { margin-bottom: 6px; }
.modal-atividade-amplo .selecao-relacionada > p { margin-bottom: 6px !important; font-size: .7rem; }
.modal-atividade-amplo .selecao-pessoas { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; }
.modal-atividade-amplo .selecao-pessoa { padding: 6px 8px; }

.atividade-anexos-resumo {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 2px 7px;
  border-radius: 999px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  font-size: .7rem;
  font-weight: 650;
}
.atividade-anexos-cabecalho {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.atividade-anexos-cabecalho legend { margin-bottom: 2px !important; }
.atividade-anexos-contador {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  font-size: .7rem;
  font-weight: 700;
}
.atividade-anexos-layout {
  display: grid;
  grid-template-columns: minmax(250px,.72fr) minmax(0,1.28fr);
  gap: 12px;
  align-items: start;
}
.atividade-anexos-envio {
  min-height: 112px;
  padding: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
}
.atividade-anexos-envio > i { color: var(--k-azul); font-size: 1.45rem; }
.atividade-anexos-envio > span { font-size: .7rem; }
.atividade-anexos-envio.limite-atingido { opacity: .72; }
.atividade-anexos-envio:focus-visible { border-color: var(--k-azul); box-shadow: 0 0 0 3px rgba(24,84,150,.14); outline: 0; }
.atividade-anexos-lista { max-height: 174px; overflow-y: auto; padding-right: 3px; }
.atividade-anexo-item { min-height: 48px; margin-bottom: 6px; padding: 6px 8px; }
.atividade-anexo-item .icone-arquivo { width: 32px; height: 32px; }
.atividade-anexo-acoes { display: inline-flex; align-items: center; gap: 5px; flex: 0 0 auto; }
.atividade-anexos-vazio {
  min-height: 112px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  border: 1px dashed var(--k-borda);
  border-radius: 10px;
  color: var(--k-texto-suave);
  font-size: .75rem;
}
.atividade-anexos-vazio > i { color: var(--k-azul-claro); font-size: 1.3rem; }
.atividade-anexos-removidos {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 5px 8px;
  border-radius: 8px;
  background: #f3f6fa;
  color: var(--k-texto-suave);
  font-size: .7rem;
}

/* ---------- Seletor escalavel de envolvidos ---------- */
.seletor-envolvidos-cabecalho {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.seletor-envolvidos-cabecalho legend { margin-bottom: 2px !important; }
.envolvidos-contador {
  flex: 0 0 auto;
  padding: 4px 9px;
  border-radius: 999px;
  background: var(--k-azul-suave);
  color: var(--k-azul);
  font-size: .7rem;
  font-weight: 700;
}
.envolvidos-selecionados {
  min-height: 31px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0;
}
.envolvido-chip {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 29px;
  padding: 2px 7px 2px 3px;
  border: 1px solid #cbd9e8;
  border-radius: 999px;
  background: #fff;
  color: #27364a;
  font-size: .72rem;
  font-weight: 600;
}
.envolvido-chip .envolvido-avatar {
  width: 23px;
  height: 23px;
  flex-basis: 23px;
  margin: 0;
  border: 0;
  font-size: .57rem;
}
.envolvido-chip button {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--k-texto-suave);
}
.envolvido-chip button:hover,.envolvido-chip button:focus-visible { background: #e8eef5; color: var(--k-azul); }
.envolvido-chip-principal { border-color: #a9c2dc; background: var(--k-azul-suave); }
.envolvido-chip-papel {
  padding: 2px 6px;
  border-radius: 999px;
  background: #fff;
  color: var(--k-azul);
  font-size: .58rem;
  font-weight: 700;
  text-transform: uppercase;
}
.envolvido-chip-resumo { background: #eef2f6; color: var(--k-texto-suave); }
.envolvidos-ferramentas {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 8px;
  margin-bottom: 8px;
}
.envolvidos-resultados {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 6px;
  min-height: 50px;
}
.envolvidos-resultados .selecao-pessoa {
  min-height: 48px;
  padding: 5px 7px;
}
.envolvidos-resultados .selecao-pessoa.selecionada { border-color: #93b4d6; background: var(--k-azul-suave); }
.envolvidos-resultados .selecao-pessoa.responsavel-principal { border-color: var(--k-azul-claro); }
.envolvidos-resultados .selecao-pessoa > span:last-child { overflow: visible; }
.envolvido-dados { min-width: 0; display: flex; flex: 1 1 auto; flex-direction: column; line-height: 1.15; }
.envolvido-dados strong,.envolvido-dados small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.envolvido-dados strong { color: #27364a; font-size: .73rem; font-weight: 650; }
.envolvido-dados small { margin-top: 3px; color: var(--k-texto-suave); font-size: .62rem; }
.envolvido-papel {
  flex: 0 0 auto;
  padding: 2px 5px;
  border-radius: 999px;
  background: #fff;
  color: var(--k-azul);
  font-size: .54rem !important;
  font-weight: 700;
  text-transform: uppercase;
}
.envolvidos-vazio {
  grid-column: 1 / -1;
  min-height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px dashed var(--k-borda);
  border-radius: 8px;
  color: var(--k-texto-suave);
  font-size: .74rem;
}

@media (max-width: 991.98px) {
  .modal-dialog.modal-atividade-amplo { width: calc(100vw - 16px); margin: 8px auto; }
  .modal-atividade-amplo .modal-content { max-height: calc(100vh - 16px); }
  .envolvidos-resultados { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .atividade-anexos-layout { grid-template-columns: 1fr; }
  .atividade-anexos-envio { min-height: 92px; }
}
@media (max-width: 575.98px) {
  .modal-atividade-amplo .selecao-pessoas { grid-template-columns: 1fr; }
  .seletor-envolvidos-cabecalho { align-items: flex-start; flex-direction: column; gap: 6px; }
  .envolvidos-ferramentas { grid-template-columns: 1fr; }
  .envolvidos-resultados { grid-template-columns: 1fr; }
  .atividade-anexos-cabecalho { align-items: flex-start; flex-direction: column; gap: 6px; }
  .atividade-anexos-lista { max-height: none; }
}

/* ---------- Comentarios do projeto ---------- */
.comentarios-projeto-topo,
.comentarios-projeto-lista-topo,
.comentario-projeto-cabecalho,
.comentario-projeto-autor,
.comentario-projeto-vinculos {
  display: flex;
  align-items: center;
}
.comentarios-projeto-topo,
.comentarios-projeto-lista-topo,
.comentario-projeto-cabecalho { justify-content: space-between; gap: 16px; }
.comentarios-projeto-lista-topo {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--k-borda);
}
.comentario-projeto {
  padding: 16px 0;
  border-bottom: 1px solid var(--k-borda);
}
.comentario-projeto:last-child { padding-bottom: 0; border-bottom: 0; }
.comentario-projeto-autor { min-width: 0; gap: 10px; }
.comentario-projeto-avatar {
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--k-azul-suave);
  color: var(--k-azul);
}
.comentario-projeto-vinculos { flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.comentario-projeto-origem,
.comentario-projeto-atividade {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: .7rem;
  line-height: 1.25;
}
.comentario-projeto-origem { background: var(--k-azul-suave); color: var(--k-azul); font-weight: 700; }
.comentario-projeto-atividade { border: 1px solid var(--k-borda); background: #f8fafc; color: var(--k-texto-suave); }
.comentario-projeto-texto { margin: 12px 0 0 44px; white-space: pre-wrap; color: var(--k-texto); }
.comentario-projeto-enviar { min-height: 39px; }
.comentario-projeto-selecao-arquivos,
.comentario-projeto-arquivos { display: flex; flex-wrap: wrap; gap: 8px; }
.comentario-projeto-selecao-arquivos { margin-top: 8px; }
.comentario-projeto-arquivo-selecionado,
.comentario-projeto-arquivo {
  display: inline-flex; align-items: center; gap: 7px; max-width: 100%;
  padding: 6px 9px; border: 1px solid var(--k-borda); border-radius: 8px;
  background: #f8fafc; color: var(--k-texto); font-size: .78rem; overflow-wrap: anywhere;
}
.comentario-projeto-arquivo-selecionado small,
.comentario-projeto-arquivo small { color: var(--k-texto-suave); white-space: nowrap; }
.comentario-projeto-arquivo-selecionado .btn { padding: 0 3px; }
.comentario-projeto-arquivo { text-decoration: none; }
a.comentario-projeto-arquivo:hover { border-color: var(--k-azul); color: var(--k-azul); }
.comentario-projeto-anexos { margin: 12px 0 0 44px; }
.comentario-projeto-anexos-titulo {
  display: inline-flex; align-items: center; gap: 6px; margin-bottom: 7px;
  color: var(--k-texto-suave); font-size: .75rem; font-weight: 700;
}

@media (max-width: 767.98px) {
  .comentarios-projeto-topo,
  .comentario-projeto-cabecalho { align-items: flex-start; flex-direction: column; gap: 10px; }
  .comentario-projeto-cabecalho time { margin-left: 44px; }
  .comentario-projeto-texto { margin-left: 0; }
  .comentario-projeto-anexos { margin-left: 0; }
}
/* Cadastro de usuarios: acoes visiveis sem rolagem horizontal em telas menores. */
@media (min-width: 768px) and (max-width: 1399.98px) {
  #areaTabela .tabela-lista th:nth-child(7),
  #areaTabela .tabela-lista td:nth-child(7) { display: none; }
}

@media (max-width: 767.98px) {
  #areaTabela .table-responsive { overflow: visible; }
  #areaTabela .tabela-lista { display: block; width: 100%; min-width: 0; }
  #areaTabela .tabela-lista thead { display: none; }
  #areaTabela .tabela-lista tbody { display: grid; gap: 10px; padding: 12px; }
  #areaTabela .tabela-lista tbody tr {
    display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px;
    padding: 14px; border: 1px solid #d7e1ed; border-radius: 10px; background: #fff;
  }
  #areaTabela .tabela-lista tbody td { display: block; min-width: 0; padding: 0; border: 0; font-size: .82rem; }
  #areaTabela .tabela-lista tbody td:first-child {
    grid-column: 1 / -1; padding-bottom: 9px; border-bottom: 1px solid #e4ebf4;
  }
  #areaTabela .tabela-lista tbody td:nth-child(2),
  #areaTabela .tabela-lista tbody td:nth-child(3),
  #areaTabela .tabela-lista tbody td:nth-child(7) { display: none; }
  #areaTabela .tabela-lista tbody td:nth-child(4) { grid-column: 1; }
  #areaTabela .tabela-lista tbody td:nth-child(5) { grid-column: 1 / -1; overflow-wrap: anywhere; }
  #areaTabela .tabela-lista tbody td:nth-child(6) { grid-column: 2; grid-row: 2; align-self: start; }
  #areaTabela .tabela-lista tbody td:nth-child(8) {
    grid-column: 1 / -1; padding-top: 9px; border-top: 1px solid #e4ebf4;
    display: flex; width: 100%; white-space: normal;
    justify-self: stretch; justify-content: flex-end;
  }
  #areaTabela .tabela-lista tbody td:nth-child(4)::before,
  #areaTabela .tabela-lista tbody td:nth-child(5)::before {
    display: block; margin-bottom: 3px; color: #617087; font-size: .68rem;
    font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  }
  #areaTabela .tabela-lista tbody td:nth-child(4)::before { content: 'Perfil'; }
  #areaTabela .tabela-lista tbody td:nth-child(5)::before { content: 'Negócios com acesso'; }
}

@media (max-width: 359.98px) {
  .barra-topo { gap: 4px; padding-inline: 4px; }
  .barra-topo .btn-menu { min-width: 34px; min-height: 34px; padding: 2px; }
  .barra-topo .marca-cabecalho { font-size: 1.05rem; margin-left: 0; }
  .topo-negocio-favoritos { flex: 0 0 auto; gap: 4px; }
  .seletor-negocio { min-width: 40px; padding: 4px; }
  .seletor-negocio-icone { flex-basis: 26px; width: 26px; height: 26px; }
  .barra-topo .avatar { width: 28px; height: 28px; }
}

/* Fluxo de avaliações DISC */
.disc-resumo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.disc-resumo-item{border:1px solid #d5e1f2;background:#fff;border-radius:12px;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;color:#36516e}
.disc-resumo-item strong{font-size:1.55rem;color:#173663}
.disc-lista{display:grid;gap:7px;max-height:460px;overflow:auto}
.disc-linha{border:1px solid #d8e3f0;background:#fff;border-radius:9px;width:100%;padding:11px 13px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#172e4e}
.disc-linha:hover,.disc-linha.ativo{border-color:#2260b1;background:#f1f6ff}
.disc-linha small{display:block;color:#60738e;margin-top:2px}
.disc-fatores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.disc-fator{background:#f7faff;border:1px solid #e0e9f4;border-radius:10px;padding:12px}
.disc-fator strong,.disc-fator span{font-size:.9rem}
.disc-barra{height:9px;background:#dce7f6;border-radius:99px;overflow:hidden;margin:9px 0 4px}
.disc-barra span{display:block;height:100%;background:linear-gradient(90deg,#426da7,#1876d2);border-radius:99px}
.disc-timeline{list-style:none;padding:0 0 0 15px;margin:0;border-left:2px solid #d8e5f6}
.disc-timeline li{position:relative;padding:0 0 17px 14px;display:grid;gap:2px;font-size:.85rem}
.disc-timeline li:before{content:"";position:absolute;left:-21px;top:4px;width:10px;height:10px;background:#2768ba;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #a9c7eb}
.disc-timeline small{color:#64758d}.disc-link{margin-top:18px}
.disc-responder-pagina{min-height:100vh;background:linear-gradient(135deg,#142e52,#28538e);padding:32px 16px}
.disc-responder-card{max-width:900px;margin:auto;background:#fff;border-radius:16px;box-shadow:0 20px 50px #081c3760;padding:28px 36px}
.disc-responder-card header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e8f2;padding-bottom:16px}
.disc-responder-card .marca-referencia{display:block;width:160px;height:31px}
.disc-responder-card .marca-referencia img{left:-9.5px;top:-14px;width:180px}
.disc-introducao-topo,.disc-andamento{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.disc-introducao{color:#253954}.disc-introducao p,.disc-introducao li{line-height:1.55}
.disc-instrucoes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
.disc-instrucoes-grid section{border:1px solid #d9e5f3;border-radius:12px;background:#f8fbff;padding:18px}
.disc-instrucoes-grid section p:last-child,.disc-instrucoes-grid section ol:last-child{margin-bottom:0}
.disc-instrucoes-grid ol{padding-left:20px}.disc-instrucoes-grid li+li{margin-top:8px}
.disc-escala-explicacao{border:1px solid #c7d9ef;border-radius:12px;padding:15px 18px;margin-top:16px;background:#f3f8ff}
.disc-escala-explicacao>div{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:10px}
.disc-escala-explicacao span{font-size:.8rem;line-height:1.35}.disc-escala-explicacao b{display:block;color:#165bb0;font-size:1.05rem}
.disc-relogio{display:flex;align-items:center;gap:8px;color:#1b508e;font-weight:700;font-variant-numeric:tabular-nums;font-size:1.15rem}
.disc-progresso{position:sticky;top:0;z-index:2;border:1px solid #d7e4f3;border-radius:10px;background:#fff;padding:10px 14px;margin:18px 0;box-shadow:0 5px 16px #183e6b12}
.disc-progresso strong{font-size:.85rem}.disc-progresso-trilho{height:6px;background:#dce8f6;border-radius:99px;overflow:hidden;margin-top:7px}
.disc-progresso-trilho span{display:block;height:100%;width:0;background:#1d65bb;border-radius:99px;transition:width .2s ease}
.disc-pergunta{border:1px solid #dce5f0;border-radius:12px;padding:16px;margin:0 0 12px}
.disc-pergunta legend{float:none;width:auto;font-size:1rem;font-weight:600;margin:0 0 14px;display:flex;gap:10px;align-items:flex-start}
.disc-pergunta legend span{background:#e9f2ff;border-radius:50%;min-width:25px;height:25px;text-align:center;color:#21579a}
.disc-escala{display:flex;gap:8px}.disc-escala label{flex:1;text-align:center;cursor:pointer}
.disc-escala input{position:absolute;opacity:0}.disc-escala span{display:block;border:1px solid #cad9ea;border-radius:8px;padding:7px;background:#f7faff}
.disc-escala input:checked+span{background:#1e60ac;border-color:#1e60ac;color:#fff}
.disc-escala input:focus-visible+span{outline:3px solid #f2a148;outline-offset:2px}
@media(max-width:700px){.disc-resumo,.disc-fatores,.disc-instrucoes-grid{grid-template-columns:1fr}.disc-responder-card{padding:20px}.disc-escala-explicacao>div{grid-template-columns:repeat(2,minmax(0,1fr))}}

.disc-aviso-pendente{display:flex;align-items:center;gap:14px;margin:0 0 18px;padding:14px 16px;border:1px solid #bad4f5;border-left:4px solid #2767b7;border-radius:10px;background:#f1f7ff;color:#19385f}
.disc-aviso-pendente .disc-aviso-icone{display:grid;flex:0 0 36px;place-items:center;width:36px;height:36px;border-radius:10px;background:#dcecff;color:#19599f;font-size:1.05rem}
.disc-aviso-pendente div{display:grid;gap:2px;flex:1}.disc-aviso-pendente strong{font-size:.91rem}.disc-aviso-pendente span{font-size:.8rem}
@media(max-width:600px){.disc-aviso-pendente{flex-wrap:wrap}.disc-aviso-pendente .btn{width:100%}}

/* Central de certificados */
.cert-btn-adicionar{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:39px;padding:5px 13px 5px 6px;border:1px solid #9dbce1;border-radius:9px;background:#f3f8ff;color:#1d518e;font-size:.81rem;font-weight:700;white-space:nowrap;transition:background .15s,border-color .15s,box-shadow .15s}
.cert-btn-adicionar:hover{border-color:#397dc5;background:#e5f1ff;color:#174a87;box-shadow:0 2px 7px rgba(32,76,133,.1)}
.cert-btn-adicionar:focus-visible{outline:3px solid #8cb9f3;outline-offset:2px}
.cert-btn-mais{display:grid;place-items:center;flex:0 0 27px;width:27px;height:27px;border-radius:7px;background:#245c9e;color:#fff}
.cartao > .cartao-cabecalho .cert-btn-adicionar i{color:#fff}
.icone-resumo{display:inline-flex;align-items:center;justify-content:center;flex:0 0 42px;width:42px;height:42px;border-radius:12px;font-size:1.05rem;background:var(--k-azul-suave);color:var(--k-azul)}
.icone-resumo-roxa{background:#f0eaff;color:#6741a6}.icone-resumo-verde{background:var(--k-verde-suave);color:var(--k-verde)}.icone-resumo-laranja{background:var(--k-amarelo-suave);color:#8a5b0d}

/* Cadastro de modelos DISC */
.disc-modelos-lista{display:grid;gap:8px}
.disc-modelo-item{width:100%;display:flex;justify-content:space-between;align-items:flex-start;gap:12px;text-align:left;border:1px solid #d8e3f2;border-radius:10px;background:#fff;padding:12px;color:#233955}
.disc-modelo-item:hover,.disc-modelo-item:focus-visible{border-color:#6d9bd6;background:#f6faff}
.disc-modelo-item.ativo{border-color:#2c67b1;background:#edf5ff;box-shadow:inset 3px 0 #2c67b1}
.disc-modelo-item span:first-child{display:grid;gap:4px}.disc-modelo-item small{color:var(--k-texto-suave)}
.disc-modelos-fatores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.disc-modelo-fator{border:1px solid #dbe5f1;border-radius:12px;background:#fafcff;padding:15px}
.disc-modelo-pergunta{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:start;gap:8px;padding:9px 0;border-top:1px solid #e2e9f2}
.disc-modelo-numero{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e7f0fb;color:#1e518b;font-size:.78rem;font-weight:700}
.disc-modelo-acoes{display:flex;gap:4px}
@media(max-width:900px){.disc-modelos-fatores{grid-template-columns:1fr}}
@media(max-width:530px){.disc-modelo-pergunta{grid-template-columns:24px minmax(0,1fr)}.disc-modelo-acoes{grid-column:2}}
.arquivo-preview-acao { white-space: nowrap; }
#arquivoPreviewModal .modal-dialog { max-width: min(96vw, 1500px); }
#arquivoPreviewModal .modal-content { max-height: 94vh; }
.arquivo-preview-corpo { min-height: min(68vh, 680px); display: flex; align-items: center; justify-content: center; overflow: auto; background: #f4f7fb; }
.arquivo-preview-pdf { display: block; width: 100%; height: min(72vh, 850px); min-height: 480px; border: 0; background: #fff; }
.arquivo-preview-imagem { display: block; max-width: 100%; max-height: 74vh; object-fit: contain; }
.arquivo-preview-texto { width: 100%; max-height: 74vh; margin: 0; padding: 1rem; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; background: #fff; border: 1px solid #dce4f0; border-radius: .5rem; font: 13px/1.55 Consolas, monospace; }
.arquivo-preview-mensagem { max-width: 34rem; padding: 2rem; text-align: center; color: #52657c; }
@media (max-width: 575px) { .arquivo-preview-acao { margin-top: .35rem; } .arquivo-preview-pdf { min-height: 55vh; } }

/* Pastas das telas de projetos */
.projeto-comentario-anexos { padding: 14px 16px; border: 1px solid var(--k-borda); border-radius: 8px; background: #f8fafd; }
.projeto-comentario-anexos .form-label { margin-bottom: 7px; }
.projeto-comentario-anexos .form-text { margin-top: 6px; }
.projeto-comentario-acoes { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--k-borda); }
.projeto-comentario-acoes .btn { min-width: 170px; }
@media (max-width: 575.98px) { .projeto-comentario-acoes .btn { width: 100%; } }
.projeto-identidade > .projeto-identidade-cabecalho { min-height: 82px; padding: 16px 20px; background: #fff; }
.projeto-identidade-icone { display: inline-flex; flex: 0 0 44px; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 10px; background: var(--k-azul-suave); color: var(--k-azul); font-size: 1.15rem; }
.projeto-identidade-titulo { flex: 1 1 280px; min-width: 0; }
.projeto-identidade-codigo { display: block; margin-bottom: 2px; color: var(--k-texto-suave); font-size: .72rem; font-weight: 600; }
.projeto-identidade-titulo h2 { margin: 0; color: var(--k-azul); font-size: 1.2rem; font-weight: 700; line-height: 1.3; overflow-wrap: anywhere; }
.projeto-identidade-status { margin-left: auto; padding: 4px 10px; font-size: .74rem; }
.cartao > .cartao-corpo.projeto-identidade-dados { display: grid; grid-template-columns: repeat(auto-fit,minmax(230px,1fr)); gap: 1px; padding: 0; background: var(--k-borda); }
.projeto-identidade-dados > div { min-width: 0; padding: 13px 20px 15px; background: #fff; }
.projeto-identidade-dados > div > span { display: block; margin-bottom: 4px; color: var(--k-texto-suave); font-size: .72rem; font-weight: 600; }
.projeto-identidade-dados strong,.projeto-identidade-dados a { color: #27364a; font-size: .84rem; font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }
.projeto-identidade-dados a { color: var(--k-azul); text-decoration: none; }
.projeto-identidade-dados a:hover { text-decoration: underline; }
@media (max-width: 1050px) { .cartao > .cartao-corpo.projeto-identidade-dados { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 575.98px) { .cartao > .cartao-corpo.projeto-identidade-dados { grid-template-columns: 1fr; } .projeto-identidade-status { margin-left: 0; } }
.projeto-pastas-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 20px; align-items: start; }
.projeto-pastas-nav { position: sticky; top: 20px; padding: 14px; border: 1px solid var(--k-borda); border-radius: 10px; background: #fff; }
.projeto-pastas-titulo { margin: 0 0 9px; padding: 0 8px; color: var(--k-texto-suave); font-size: .72rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.projeto-pastas-links { display: grid; gap: 3px; }
.projeto-pastas-links .nav-link { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 40px; padding: 8px 10px; border: 0; border-radius: 7px; background: transparent; color: var(--k-texto); font-size: .86rem; text-align: left; text-decoration: none; }
.projeto-pastas-links .nav-link:hover, .projeto-pastas-links .nav-link:focus-visible { background: #edf4ff; color: var(--k-azul); }
.projeto-pastas-links .nav-link.active { background: #edf4ff; box-shadow: inset 3px 0 0 var(--k-azul); color: var(--k-azul); font-weight: 700; }
.projeto-pastas-links .nav-link:focus-visible { outline: 2px solid var(--k-foco); outline-offset: 2px; }
.projeto-pastas-links .nav-link i { width: 18px; color: var(--k-azul-claro); text-align: center; }
.projeto-pastas-principal { min-width: 0; }
.projeto-pastas-principal .cartao-cabecalho h2 { margin: 0; font-size: 1.05rem; font-weight: 650; }
.projeto-atalhos-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.projeto-atalhos-grid a { display: flex; align-items: center; gap: 12px; min-height: 54px; padding: 11px 14px; border: 1px solid var(--k-borda); border-radius: 8px; color: var(--k-azul); text-decoration: none; }
.projeto-atalhos-grid a:hover, .projeto-atalhos-grid a:focus-visible { background: #edf4ff; border-color: var(--k-azul-claro); }
.projeto-atalhos-grid a i { font-size: 1.1rem; }
@media (max-width: 900px) { .projeto-pastas-layout { grid-template-columns: 1fr; } .projeto-pastas-nav { position: static; } .projeto-pastas-links { display: flex; flex-wrap: wrap; } .projeto-pastas-links .nav-link { min-height: 36px; width: auto; } }
@media (max-width: 600px) { .projeto-atalhos-grid { grid-template-columns: 1fr; } }
.projeto-detalhe-abas { display: flex; width: max-content; max-width: 100%; padding: .3rem; border: 1px solid var(--k-azul); border-radius: .65rem; background: #f1f5fa; }
.projeto-detalhe-abas-lista { gap: .15rem; min-width: 0; scrollbar-width: thin; }
.projeto-detalhe-abas-lista .nav-item { flex: 0 0 auto; }
.projeto-detalhe-abas-lista .nav-link { display: inline-flex; align-items: center; gap: .3rem; min-height: 34px; padding: .35rem .65rem; border: 1px solid transparent; border-radius: .35rem; color: #4a5d79; font-size: .85rem; font-weight: 400; white-space: nowrap; }
.projeto-detalhe-abas-lista .nav-link:hover, .projeto-detalhe-abas-lista .nav-link:focus-visible { background: #e4edf9; color: #173766; }
.projeto-detalhe-abas .nav-link.active { background: transparent; color: var(--k-azul); font-weight: 700; box-shadow: none; }
.projeto-detalhe-abas-lista .nav-link:focus-visible { outline: 2px solid var(--k-foco); outline-offset: 2px; }
.projeto-detalhe-abas-lista .nav-link.active i { color: inherit; }
