:root {
  --preto: #010506;
  --grafite: #1e2325;
  --texto: #2b3032;
  --texto-2: #55595a;
  --linha: #e2e0d8;
  --fundo: #f6f5f1;
  --branco: #ffffff;
  --laranja: #e35f21;
  --laranja-esc: #b4471a;
  --azul: #008aa6;
  --azul-esc: #00708a;
  --ok: #1b7f5b;
  --raio: 10px;
  color-scheme: light;
}

* { box-sizing: border-box; }
html, body { margin: 0; }
body {
  font-family: "Red Hat Display", system-ui, -apple-system, "Segoe UI", sans-serif;
  color: var(--texto);
  background: var(--fundo);
  font-size: 15px;
  line-height: 1.45;
}
[hidden] { display: none !important; }
h1, h2 { color: var(--preto); margin: 0; line-height: 1.15; }
h1 { font-size: 26px; font-weight: 800; letter-spacing: -0.01em; }
h2 { font-size: 18px; font-weight: 800; }
.sub { color: var(--texto-2); margin: 6px 0 0; }
.vh { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- login ---------- */
.tela-login {
  min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 32px 16px; gap: 20px;
  background: var(--preto) url("/img/fundo-login.svg") center / cover no-repeat;
}
.cartao-login {
  width: 100%; max-width: 440px; background: var(--branco); border: 1px solid var(--linha);
  border-radius: 16px; padding: 40px 36px 32px; box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
}
.logo-mae { display: block; width: 260px; max-width: 100%; height: auto; margin: 0 0 28px; }
.cartao-login h1 { font-size: 22px; }
#form-login { margin-top: 26px; display: flex; flex-direction: column; gap: 10px; }
label { font-weight: 700; color: var(--preto); font-size: 14px; }
select, input[type="search"] {
  font: inherit; color: var(--preto); background: var(--branco);
  border: 1px solid #c9c6bb; border-radius: 8px; padding: 0 12px; min-height: 44px; width: 100%;
}
select:focus-visible, input:focus-visible, button:focus-visible {
  outline: 3px solid rgba(0, 138, 166, 0.45); outline-offset: 2px;
}
.btn-primario {
  margin-top: 8px; min-height: 48px; border: 0; border-radius: 8px; cursor: pointer;
  background: var(--preto); color: var(--branco); font: inherit; font-weight: 700; font-size: 15px;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
}
.btn-primario:hover:not(:disabled) { background: var(--grafite); }
.btn-primario:disabled { background: #b9bcbd; cursor: not-allowed; }
.ajuda { margin: 4px 0 0; font-size: 13px; color: var(--texto-2); }
.rodape { font-size: 12px; color: #c9c5b8; margin: 0; }

.aviso { margin-top: 18px; padding: 12px 14px; border-radius: 8px; font-size: 14px; }
.aviso-erro { background: #fbe9df; color: #7a2e0c; border: 1px solid #f1c2a6; }
.aviso-info { background: #e0f1f5; color: #0b4c5c; border: 1px solid #a9d7e2; margin: 0 0 18px; }

/* ---------- carregando ---------- */
.tela-carregando { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; color: var(--texto-2); }
.spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid var(--linha); border-top-color: var(--laranja); animation: gira 0.9s linear infinite; }
@keyframes gira { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation-duration: 3s; } }

/* ---------- painel ---------- */
.topo {
  background: var(--branco); border-bottom: 1px solid var(--linha);
  display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
  padding: 14px clamp(16px, 4vw, 40px);
}
.logo-empresa { height: 42px; width: auto; display: block; }
.topo-dir { display: flex; align-items: center; gap: 16px; }
.quem { display: flex; flex-direction: column; align-items: flex-end; }
.quem-nome { font-weight: 700; color: var(--preto); }
.quem-det { font-size: 12px; color: var(--texto-2); }
.btn-sec {
  min-height: 40px; padding: 0 16px; border-radius: 8px; border: 1px solid #c9c6bb; background: var(--branco);
  font: inherit; font-weight: 700; color: var(--preto); cursor: pointer;
}
.btn-sec:hover { background: var(--fundo); }

.conteudo { max-width: 1280px; margin: 0 auto; padding: 28px clamp(16px, 4vw, 40px) 48px; }
.titulo-linha { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.selo { font-size: 12px; font-weight: 700; color: var(--laranja-esc); background: #fbe9df; border-radius: 999px; padding: 5px 12px; }

.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin: 22px 0 26px; }
.kpi { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px 18px; display: flex; flex-direction: column; gap: 4px; }
.kpi-rot { font-size: 13px; color: var(--texto-2); font-weight: 500; }
.kpi strong { font-size: 30px; font-weight: 800; color: var(--preto); letter-spacing: -0.02em; }
.kpi-alerta strong { color: var(--laranja-esc); }

.bloco { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 20px; margin-bottom: 20px; }
.bloco h2 { margin-bottom: 14px; }
.bloco-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.bloco-cab h2 { margin: 0; }
.filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.filtros .campo { min-width: 200px; }
.chk { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; min-height: 44px; cursor: pointer; }
.chk input { width: 18px; height: 18px; accent-color: var(--azul); }

.tabela-rolagem { overflow-x: auto; position: relative; }
.tabela { width: 100%; border-collapse: collapse; font-size: 14px; }
.tabela th, .tabela td { padding: 10px 12px; border-bottom: 1px solid var(--linha); text-align: left; vertical-align: top; }
.tabela thead th { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--texto-2); font-weight: 700; background: #faf9f6; }
.tabela .num { text-align: right; white-space: nowrap; }
.col-barra { min-width: 200px; }
.barra { display: inline-block; vertical-align: middle; width: 140px; height: 8px; border-radius: 99px; background: #ecebe5; overflow: hidden; }
.barra span { display: block; height: 100%; background: var(--azul); border-radius: 99px; }
.pct { margin-left: 10px; font-weight: 700; color: var(--preto); font-size: 13px; }
.mista { margin-left: 8px; font-size: 11px; font-weight: 700; color: var(--azul-esc); background: #e0f1f5; border-radius: 99px; padding: 2px 8px; text-transform: none; letter-spacing: 0; }

.tag { display: inline-block; font-size: 11px; font-weight: 700; border-radius: 4px; padding: 2px 7px; text-transform: none; letter-spacing: 0; }
.tag-treinamento { background: #eef0f0; color: var(--grafite); }
.tag-politica { background: #fdeee6; color: var(--laranja-esc); }

.matriz { min-width: 760px; }
.matriz thead th.grupo { text-align: center; color: var(--preto); border-left: 1px solid var(--linha); }
.matriz thead th.sub-col { text-transform: none; letter-spacing: 0; color: var(--preto); font-size: 13px; border-left: 1px solid var(--linha); min-width: 150px; }
.matriz thead th.sub-col div { margin-top: 4px; font-weight: 700; }
.matriz tbody td { border-left: 1px solid var(--linha); }
.matriz .fixa { position: sticky; left: 0; background: var(--branco); z-index: 1; min-width: 210px; }
.matriz thead .fixa { background: #faf9f6; }
.pessoa { font-weight: 700; color: var(--preto); }
.email { font-size: 12px; color: var(--texto-2); font-weight: 400; }
.st { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 99px; padding: 3px 10px; white-space: nowrap; }
.st-concluido { background: #e3f3ec; color: var(--ok); }
.st-em_andamento { background: #e0f1f5; color: var(--azul-esc); }
.st-nao_iniciado { background: #eef0f0; color: #3e4446; }
.st-atrasado { background: #fbe9df; color: var(--laranja-esc); }
.det { font-size: 12px; color: var(--texto-2); margin-top: 4px; }
.vazio { color: #9a9d9e; }
.nota { font-size: 13px; color: var(--texto-2); margin: 12px 0 0; }

@media (max-width: 640px) {
  .cartao-login { padding: 28px 20px 24px; }
  .quem { align-items: flex-start; }
  .topo-dir { width: 100%; justify-content: space-between; }
  .filtros .campo { min-width: 0; flex: 1 1 100%; }
}

/* ---------- consulta por treinamento ---------- */
.consulta { border-top: 4px solid var(--azul); }
.consulta-ctrl { display: flex; flex-wrap: wrap; gap: 14px 18px; align-items: flex-end; margin-bottom: 16px; }
.campo-conteudo { flex: 1 1 340px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.segmento { display: inline-flex; flex-wrap: wrap; border: 1px solid #c9c6bb; border-radius: 8px; padding: 3px; margin: 0; gap: 3px; }
.segmento label { position: relative; font-weight: 500; }
.segmento input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.segmento label > span { display: inline-flex; align-items: center; gap: 6px; min-height: 38px; padding: 0 14px; border-radius: 6px; color: var(--texto); white-space: nowrap; }
.segmento b { font-variant-numeric: tabular-nums; font-size: 12px; background: #eef0f0; color: var(--grafite); border-radius: 99px; padding: 1px 8px; }
.segmento input:checked + span { background: var(--preto); color: var(--branco); }
.segmento input:checked + span b { background: rgba(255, 255, 255, 0.18); color: var(--branco); }
.segmento input:focus-visible + span { outline: 3px solid rgba(0, 138, 166, 0.45); outline-offset: 1px; }
.c-resumo { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 8px; }
.c-resumo strong { color: var(--preto); font-size: 15px; font-variant-numeric: tabular-nums; }
.barra-larga { width: min(320px, 100%); height: 10px; }
.btn-link { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: var(--azul-esc); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; min-height: 32px; }
.btn-link:hover { color: var(--preto); }

/* ---------- radar ---------- */
.radar { border-top: 4px solid var(--laranja); }
.radar .sub { font-size: 13px; }
.radar-ctrl { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.radar-ctrl .campo { display: flex; flex-direction: column; gap: 6px; min-width: 220px; font-size: 13px; }
.radar-corpo { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(240px, 1fr); gap: 20px; align-items: center; }
.radar-fig { margin: 0; min-width: 0; }
.radar-fig svg { display: block; width: 100%; height: auto; max-height: 470px; }
.radar-fig svg.compacto .r-rot { font-size: 14px; }
.radar-fig svg.compacto .r-rot-pct { font-size: 13px; }
.radar-lado { min-width: 0; }
.radar-legenda { list-style: none; padding: 0; margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 8px 16px; font-size: 13px; }
.radar-legenda li { display: inline-flex; align-items: center; gap: 8px; }
.radar-legenda i { width: 22px; height: 0; border-top: 3px solid; display: inline-block; }
.radar-legenda .lg-sel { border-color: var(--laranja); }
.radar-legenda .lg-emp { border-color: var(--azul); border-top-style: dashed; }
.radar-legenda .lg-meta { border-color: #9a9d9e; border-top-width: 2px; border-top-style: dotted; }
.radar-tab td.num, .radar-tab th.num { width: 1%; }
.radar-tab .abaixo { color: var(--laranja-esc); font-weight: 800; }
.radar-tab .acima { color: var(--ok); font-weight: 800; }
.radar-tab .grp { font-size: 12px; color: var(--texto-2); }
.r-grade { fill: none; stroke: #e2e0d8; }
.r-eixo { stroke: #e2e0d8; }
.r-meta { fill: none; stroke: #9a9d9e; stroke-width: 1.5; stroke-dasharray: 2 4; }
.r-emp { fill: rgba(0, 138, 166, 0.10); stroke: var(--azul); stroke-width: 2; stroke-dasharray: 6 4; }
.r-sel { fill: rgba(227, 95, 33, 0.18); stroke: var(--laranja); stroke-width: 2.5; stroke-linejoin: round; }
.r-ponto { fill: var(--laranja); stroke: #fff; stroke-width: 2; }
.r-ponto-emp { fill: var(--azul); stroke: #fff; stroke-width: 2; }
.r-ponto.abaixo { fill: var(--laranja-esc); }
.r-escala { font-size: 10px; fill: #8a8d8e; paint-order: stroke; stroke: #fff; stroke-width: 3px; stroke-linejoin: round; }
.r-rot { font-size: 13px; font-weight: 700; fill: var(--preto); }
.r-rot-pct { font-size: 12px; font-weight: 700; fill: var(--texto-2); }
@media (max-width: 860px) {
  .radar-corpo { grid-template-columns: 1fr; }
  .radar-ctrl .campo { min-width: 0; flex: 1 1 100%; }
}

/* ---------- administração da plataforma ---------- */
.link-admin-linha { margin: 18px 0 0; text-align: center; }
.link-admin { background: none; border: 0; padding: 6px 4px; font: inherit; font-size: 13px; color: var(--texto-2); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.link-admin:hover { color: var(--preto); }
.adm-marca { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.adm-tag { font-size: 12px; font-weight: 800; letter-spacing: 0.04em; text-transform: uppercase; color: var(--branco); background: var(--preto); border-radius: 99px; padding: 5px 12px; }
.btn-primario.btn-compacto { margin-top: 0; min-height: 44px; padding: 0 18px; }
.btn-sec.perigo { color: #9b2c12; border-color: #e7b8a3; }
.btn-sec.perigo:hover { background: #fbe9df; }
.titulo-linha .btn-primario { align-self: center; }
.titulo-linha { margin-bottom: 22px; }

input[type="text"], input[type="number"], input[type="password"] {
  font: inherit; color: var(--preto); background: var(--branco);
  border: 1px solid #c9c6bb; border-radius: 8px; padding: 0 12px; min-height: 44px; width: 100%;
}
input[type="file"] { font: inherit; font-size: 14px; max-width: 100%; }
input[readonly] { background: #faf9f6; }
.mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 13px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.form-grid.uma { grid-template-columns: minmax(0, 1fr); gap: 12px; }
.campo-form { display: flex; flex-direction: column; gap: 6px; font-size: 13px; min-width: 0; }
.campo-largo { grid-column: 1 / -1; }
.opc { font-weight: 500; color: var(--texto-2); }
.acoes { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.adm-form-bloco { border-top: 4px solid var(--azul); }
.adm-editor { border-top: 4px solid var(--laranja); }
.adm-editor .aviso-info { margin: 0 0 16px; }
.adm-emp { display: flex; align-items: center; gap: 12px; min-width: 0; }
.adm-mini-logo { height: 26px; width: 110px; object-fit: contain; object-position: left center; flex: none; }
.adm-ed-logo { height: 40px; width: auto; max-width: 220px; object-fit: contain; }
.adm-editor h2 { margin: 0; }
.adm-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.adm-caixa { border: 1px solid var(--linha); border-radius: var(--raio); padding: 16px; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.adm-caixa h3 { margin: 0; font-size: 15px; font-weight: 800; color: var(--preto); }
.adm-caixa .nota { margin: 0; }
.copiar-linha { display: flex; gap: 8px; }
.copiar-linha input { flex: 1; min-width: 0; }
.passos { margin: 0; padding-left: 20px; font-size: 13px; color: var(--texto); display: grid; gap: 4px; }
.adm-dados-status { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.campo-titulo { margin: 4px 0 0; font-weight: 800; color: var(--preto); font-size: 14px; }
.selo-dados { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 99px; padding: 3px 10px; white-space: nowrap; }
.selo-dados.sim { background: #fbe9df; color: var(--laranja-esc); }
.selo-dados.real { background: #e3f3ec; color: var(--ok); }
.guid { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 12px; color: var(--grafite); word-break: break-all; }
.adm-tabela { min-width: 720px; }
.adm-tabela tr.inativa th, .adm-tabela tr.inativa td { opacity: 0.6; }
@media (max-width: 860px) {
  .form-grid, .adm-grade { grid-template-columns: minmax(0, 1fr); }
  .copiar-linha { flex-direction: column; }
}
.adm-caixa > .btn-sec { align-self: flex-start; }
.sem-logo { display: inline-flex; align-items: center; justify-content: center; font-size: 11px; color: var(--texto-2); border: 1px dashed #c9c6bb; border-radius: 6px; }

/* ---------- risco combinado (KnowBe4 × Entra ID) ---------- */
.risco .bloco-cab { align-items: flex-start; }
.risco-indisp { margin: 0; padding: 12px 14px; border-radius: 8px; background: #faf9f6; border: 1px dashed #c9c6bb; color: var(--texto-2); font-size: 14px; }
.rk-linha { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-bottom: 18px; }
.rk { border: 1px solid var(--linha); border-radius: 8px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; background: #fdfcfa; }
.rk span { font-size: 13px; color: var(--texto-2); font-weight: 500; }
.rk strong { font-size: 26px; font-weight: 800; color: var(--preto); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.rk small { font-size: 12px; color: var(--texto-2); }
.rk-critico { border-left: 4px solid #b42318; }
.rk-critico strong { color: #b42318; }
.rk-alto { border-left: 4px solid var(--laranja); }
.rk-alto strong { color: var(--laranja-esc); }
.rk.zero strong { color: var(--ok); }
.risco-abas { margin-bottom: 12px; }
.risco-tab .motivo { font-weight: 600; color: var(--preto); }
.risco-tab .det, .risco-tab td.det { font-size: 12px; color: var(--texto-2); }
.nivel { display: inline-block; font-size: 12px; font-weight: 800; border-radius: 99px; padding: 3px 10px; white-space: nowrap; }
.nivel-critico { background: #b42318; color: #fff; }
.nivel-alto { background: #fbe9df; color: var(--laranja-esc); }
.nivel-medio { background: #eef0f0; color: #3e4446; }
.mfa { font-weight: 700; font-size: 13px; }
.mfa-sim { color: var(--ok); }
.mfa-nao { color: #b42318; }
.st-novo-concluido { background: #e3f3ec; color: var(--ok); }
.st-novo-em_andamento { background: #e0f1f5; color: var(--azul-esc); }
.st-novo-atrasado { background: #fde4e1; color: #b42318; }
.st-novo-aguardando_knowbe4 { background: #fbe9df; color: var(--laranja-esc); }
.st-novo-pre_admissao { background: #eef0f0; color: #3e4446; }
.st-rev-desligado_ativo_kb4 { background: #fde4e1; color: #b42318; }
.st-rev-sem_cobertura { background: #fbe9df; color: var(--laranja-esc); }
@media (max-width: 640px) {
  .rk-linha { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rk { padding: 10px 12px; }
  .rk strong { font-size: 22px; }
  .rk:first-child { grid-column: 1 / -1; }
  .risco-abas { display: flex; width: 100%; }
  .risco-abas label { flex: 1 1 100%; }
  .risco-tab thead { display: none; }
  .risco-tab, .risco-tab tbody, .risco-tab tr { display: block; width: 100%; }
  .risco-tab tr { border-bottom: 1px solid var(--linha); padding: 10px 0; }
  .risco-tab th, .risco-tab td { border: 0; padding: 3px 4px; }
  .risco-tab th[scope=row] { display: block; text-align: left; padding-bottom: 6px; }
  .risco-tab td { display: grid; grid-template-columns: max-content minmax(0, 1fr); column-gap: 14px; row-gap: 2px; text-align: right; justify-items: end; }
  .risco-tab td::before { content: attr(data-rot); font-size: 12px; color: var(--texto-2); text-align: left; grid-row: 1 / span 6; justify-self: start; padding-top: 2px; }
  .risco-tab td > * { grid-column: 2; margin-top: 0; }
}

/* ---------- prazos ---------- */
.prazo { display: inline-block; margin-top: 3px; font-size: 11px; font-weight: 700; border-radius: 99px; padding: 1px 8px; white-space: nowrap; }
.prazo-vencido { background: #fde4e1; color: #b42318; }
.prazo-vence-logo { background: #fbe9df; color: var(--laranja-esc); }
.prazo-no-prazo { background: #e3f3ec; color: var(--ok); }
.c-prazo { margin: 10px 0 4px; display: flex; flex-wrap: wrap; gap: 10px; align-items: center; font-size: 14px; color: var(--texto); }
/* barras (quando o radar não tem 3 pontas) */
#radar-svg .b-sel { fill: var(--laranja); }
#radar-svg .b-emp { fill: #c9c6bb; }
#radar-svg .b-val { font-size: 12px; font-weight: 700; fill: var(--preto); }
#radar-svg .b-val.abaixo { fill: var(--laranja-esc); }

/* ---------- pendências, gestores, comprovante ---------- */
.pd-abas { margin-bottom: 12px; }
.gest-sub { margin: -6px 0 14px; }
.pct.abaixo { color: var(--laranja-esc); }
.btn-link:disabled { color: var(--texto-2); text-decoration: none; cursor: default; }
.cp-campo { display: flex; flex-direction: column; gap: 6px; max-width: 560px; margin-bottom: 14px; }
.cp-campo > span { font-weight: 700; color: var(--preto); font-size: 14px; }
.cp-cab { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px 18px; padding: 14px 16px; margin-bottom: 14px;
  background: #faf9f6; border: 1px solid var(--linha); border-radius: 8px; }
.cp-cab > div { display: flex; flex-direction: column; gap: 2px; }
.cp-rot { font-size: 12px; color: var(--texto-2); }
.cp-cab strong { color: var(--preto); font-size: 14px; }
.email-cel { font-size: 13px; color: var(--texto-2); word-break: break-all; }

/* ---------- busca de treinamentos e políticas ---------- */
.bs-sub { margin: -6px 0 14px; }
.bs-ctrl { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; margin-bottom: 12px; }
.bs-campo { flex: 1 1 340px; min-width: 0; }
.bs-campo input { width: 100%; min-height: 44px; font-size: 15px; }
.segmento label[hidden] { display: none; }
  border-radius: 8px; padding: 10px 12px; cursor: pointer; display: flex; flex-direction: column; gap: 6px; }
.bs-sel { max-width: 720px; margin-bottom: 18px; }
.bs-sel > span { font-weight: 700; color: var(--preto); font-size: 14px; }
.bs-det { border-top: 1px solid var(--linha); padding-top: 18px; }
.bs-topo { display: flex; flex-wrap: wrap; gap: 12px 18px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.bs-nome-linha { display: flex; align-items: center; gap: 10px; min-width: 0; }
.bs-nome-linha h3 { margin: 0; font-size: 19px; color: var(--preto); letter-spacing: -0.01em; }
.bs-kpis { margin-bottom: 12px; }
.bs-camps { list-style: none; margin: 0 0 20px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 8px; }
.bs-camps li { border: 1px solid var(--linha); border-left: 4px solid var(--azul); border-radius: 8px; padding: 9px 12px; background: #fdfcfa; }
.bs-camps li.encerrada { border-left-color: #9a9d9e; }
.bs-camp-nome { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.bs-camp-nome .tag { margin-left: 0; }
.bs-camp-nome strong { color: var(--preto); font-size: 14px; }
.bs-quebra-cab { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; justify-content: space-between; margin: 18px 0 10px; }
.bs-quebra-cab h4 { margin: 0; font-size: 15px; color: var(--preto); }
.tag-encerrada { background: #e9e8e3; color: #4a4e50; margin-left: 6px; }
.tag-andamento { background: #e0f1f5; color: var(--azul-esc); }
.tag-arquivado { background: #eef0f0; color: #4a4e50; margin-left: 6px; vertical-align: 1px; }
@media (max-width: 640px) {
  .bs-kpis .rk:first-child { grid-column: auto; }
  .bs-topo .filtros { width: 100%; }
  .bs-topo .filtros .btn-sec { flex: 1 1 auto; }
}

/* ---------- consulta: grupo e PDF ---------- */
.campo-grupo { flex: 0 1 240px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.campo-grupo[hidden] { display: none; }
.c-prazo .tag-encerrada { margin-left: 0; }

/* ---------- documento PDF (termo de aceite / relatório) ---------- */
.doc-pdf { display: none; }
body.imprimir-pdf .doc-pdf { display: block; }
.doc-pdf { color: #1e2325; font-size: 10.5pt; line-height: 1.45; background: #fff; }
.dp-cab { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 10px; border-bottom: 2px solid var(--laranja); }
.dp-logo { max-height: 46px; max-width: 220px; object-fit: contain; }
.dp-cab-dir { display: flex; flex-direction: column; align-items: flex-end; font-size: 8.5pt; color: #55595a; }
.dp-titulo { font-size: 17pt; margin: 18px 0 2px; color: #010506; letter-spacing: -0.01em; }
.dp-subtitulo { font-size: 12pt; font-weight: 700; color: var(--laranja-esc); margin: 0 0 10px; }
.dp-texto { margin: 0 0 12px; text-align: justify; }
.dp-info { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 16px; padding: 10px 12px; border: 1px solid #d9d7cf; border-radius: 6px; margin-bottom: 10px; }
.dp-info-item { display: flex; flex-direction: column; }
.dp-info-item span { font-size: 8pt; color: #55595a; text-transform: uppercase; letter-spacing: 0.04em; }
.dp-info-item strong { font-size: 10pt; }
.dp-nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px; }
.dp-num { border: 1px solid #d9d7cf; border-radius: 6px; padding: 6px 10px; display: flex; flex-direction: column; }
.dp-num strong { font-size: 13pt; color: #010506; }
.dp-num span { font-size: 8.5pt; color: #55595a; }
.dp-num.ok strong { color: #1b7f5b; }
.dp-num.venc strong { color: #b42318; }
.dp-tabela { width: 100%; border-collapse: collapse; font-size: 9pt; }
.dp-tabela th { text-align: left; background: #f1efe9; border-bottom: 1px solid #c9c6bb; padding: 5px 6px; font-size: 8.5pt; }
.dp-tabela td { border-bottom: 1px solid #e2e0d8; padding: 4px 6px; vertical-align: top; }
.dp-tabela td:first-child, .dp-tabela th:first-child { width: 24px; color: #55595a; }
.dp-tabela tr { break-inside: avoid; }
.dp-arq { color: #55595a; font-size: 8pt; }
.dp-assinaturas { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin: 42px 0 18px; break-inside: avoid; }
.dp-assinaturas div { display: flex; flex-direction: column; gap: 4px; font-size: 9pt; color: #55595a; }
.dp-linha { border-bottom: 1px solid #1e2325; height: 28px; }
.dp-rodape { border-top: 1px solid #d9d7cf; padding-top: 6px; display: flex; flex-direction: column; gap: 1px; font-size: 8pt; color: #55595a; break-inside: avoid; }

/* ---------- módulos: navegação no topo ---------- */
.btn-logo { background: none; border: 0; padding: 0; cursor: pointer; display: flex; }
.btn-logo:focus-visible { outline: 3px solid rgba(0, 138, 166, 0.45); outline-offset: 4px; border-radius: 6px; }
.topo { justify-content: flex-start; }
.topo-dir { margin-left: auto; }
.nav-mod { display: flex; gap: 2px; align-self: stretch; margin: -14px 0; }
.nav-mod button { font: inherit; font-weight: 700; font-size: 15px; color: var(--texto-2); background: none; border: 0; border-bottom: 3px solid transparent;
  padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; min-height: 44px; }
.nav-mod button:hover { color: var(--preto); }
.nav-mod button[aria-current="page"] { color: var(--preto); border-bottom-color: var(--laranja); }
.nav-mod button:focus-visible { outline: 3px solid rgba(0, 138, 166, 0.45); outline-offset: -3px; }
.ico-mod { width: 14px; height: 14px; border-radius: 4px; display: inline-block; flex: none; }
.ico-cons { background: var(--laranja); }
.ico-iden { background: var(--azul); }
@media (max-width: 860px) {
  .nav-mod { order: 3; width: 100%; margin: 4px 0 -14px; overflow-x: auto; }
  .topo-dir { margin-left: auto; width: auto; }
}

/* ---------- início ---------- */
.mods { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 20px; }
.mod { background: var(--branco); border: 1px solid var(--linha); border-radius: 14px; padding: 22px 24px; border-left: 6px solid var(--laranja); display: flex; flex-direction: column; }
.mod-iden { border-left-color: var(--azul); }
.mod h2 { display: flex; align-items: center; gap: 10px; font-size: 20px; }
.mod .ico-mod { width: 18px; height: 18px; }
.mod-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0 12px; }
.mod-num { background: var(--fundo); border-radius: 9px; padding: 10px 12px; display: flex; flex-direction: column; }
.mod-num span { font-size: 12px; color: var(--texto-2); }
.mod-num strong { font-size: 24px; color: var(--preto); font-variant-numeric: tabular-nums; }
.mod-num.alerta strong { color: var(--laranja-esc); }
.mod-num.critico strong, .mod-num.ruim strong { color: #b42318; }
.mod-num.medio strong { color: #9a6a0c; }
.mod-num.bom strong { color: var(--ok); }
.mod-avisos { list-style: none; padding: 0; margin: 0 0 16px; display: flex; flex-direction: column; gap: 8px; font-size: 14px; flex: 1; }
.mod-avisos .nivel { margin-right: 4px; }
.nivel-baixo, .nivel-ok { background: #e3f3ec; color: var(--ok); }
.nivel-prazo { background: #fbe9df; color: var(--laranja-esc); }
.mod .btn-primario { align-self: flex-start; }
.mod-futuro { margin-top: 20px; border: 1.5px dashed #c9c6bb; border-radius: 12px; padding: 14px 22px; color: var(--texto-2); font-weight: 500; }
@media (max-width: 640px) { .mod-nums { grid-template-columns: 1fr 1fr; } .mod { padding: 18px; } }

/* ---------- identidade ---------- */
.id-abas { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 18px; }
.em-breve { font-size: 13px; font-weight: 500; color: #8a8d8e; border: 1.5px dashed #c9c6bb; border-radius: 8px; padding: 8px 12px; cursor: default; }
.em-breve::after { content: " · em breve"; font-size: 11px; }
.id-geral-grade { display: grid; grid-template-columns: minmax(240px, 300px) 1fr; gap: 20px; align-items: start; }
.id-nota { display: flex; flex-direction: column; align-items: center; text-align: center; }
#id-anel { width: 170px; height: 170px; }
#id-anel .anel-num { font-size: 40px; font-weight: 800; fill: var(--preto); }
#id-anel .anel-de { font-size: 12px; fill: var(--texto-2); }
.id-nota-rot { font-weight: 800; color: var(--preto); margin-top: 6px; }
.id-calculo { margin-top: 14px; width: 100%; text-align: left; font-size: 13px; }
.id-calculo summary { cursor: pointer; color: var(--azul-esc); font-weight: 700; }
.id-calculo table { margin-top: 8px; font-size: 13px; }
.id-calculo td { padding: 6px 4px; }
.id-problemas { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 10px; }
.id-problemas li { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.id-problemas li::marker { color: var(--texto-2); }
.prob-txt { flex: 1 1 260px; }
.forca { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 99px; padding: 2px 10px; white-space: nowrap; }
.forca-resistente { background: #e3f3ec; color: var(--ok); }
.forca-app { background: #e0f1f5; color: var(--azul-esc); }
.forca-fraco { background: #fbe9df; color: var(--laranja-esc); }
.forca-nenhum { background: #fde4e1; color: #b42318; }
.id-barra { display: flex; height: 34px; border-radius: 8px; overflow: hidden; gap: 2px; }
.id-barra .seg { display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 13px; padding: 0; border-radius: 0; min-width: 28px; }
.id-legenda { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 13px; color: var(--texto); }
.id-legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 3px; margin-right: 6px; vertical-align: -1px; }
.funcao-global { font-weight: 700; color: var(--preto); }
.id-sub-abas { margin-bottom: 14px; }
@media (max-width: 860px) { .id-geral-grade { grid-template-columns: 1fr; } }

@media print {
  body.imprimir-pdf { background: #fff; }
  body.imprimir-pdf > *:not(#doc-pdf) { display: none !important; }
  body.imprimir-pdf .doc-pdf { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  body.imprimir-comprovante { background: #fff; font-size: 11px; }
  body.imprimir-comprovante .topo .topo-dir, body.imprimir-comprovante #aviso-painel,
  body.imprimir-comprovante .conteudo > :not(#comprovante):not(.titulo-linha) { display: none !important; }
  body.imprimir-comprovante .titulo-linha .selo { display: none; }
  body.imprimir-comprovante #comprovante { border: 0; padding: 0; }
  body.imprimir-comprovante #comprovante .filtros, body.imprimir-comprovante .cp-campo { display: none; }
  body.imprimir-comprovante .tabela-rolagem { overflow: visible; }
  body.imprimir-comprovante .tabela th, body.imprimir-comprovante .tabela td { padding: 5px 6px; }
  body.imprimir-comprovante tr { break-inside: avoid; }
  body.imprimir-comprovante .risco-tab thead { display: table-header-group !important; }
  body.imprimir-comprovante .risco-tab, body.imprimir-comprovante .risco-tab tbody { display: table !important; width: 100%; }
  body.imprimir-comprovante .risco-tab tbody { display: table-row-group !important; }
  body.imprimir-comprovante .risco-tab tr { display: table-row !important; }
  body.imprimir-comprovante .risco-tab th, body.imprimir-comprovante .risco-tab td { display: table-cell !important; text-align: left; }
  body.imprimir-comprovante .risco-tab td::before { content: none !important; }
  @page { margin: 14mm; }
}
