/* Nau Incorp — tokens e componentes de tela, derivados do PADRAO-VISUAL-NAU.md R01.
   Paleta, tipografia e componentes (cards, selos, tabelas, caixas) são os do padrão;
   a casca de navegação (grade de obras, colunas) é a adaptação do padrão para UI. */

:root {
  --roxo:        #552781;
  --roxo-escuro: #2A1240;
  --coral:       #EE7064;
  --verde:       #2E8A66;
  --roxo-claro:  #C9AEE4;
  --roxo-claro2: #D8C7EA;
  --texto:       #1A1420;
  --cinza:       #6B6472;
  --cinza-azul:  #8E9EAB;
  --linha:       #E4E0E8;
  --fundo:       #F6F4F8;
  --zebra:       #FAF9FB;
  --branco:      #FFFFFF;
  --serif: 'Archivo', 'Segoe UI', Arial, sans-serif;
  --sans:  'IBM Plex Sans', 'Segoe UI', Arial, sans-serif;
  --mono:  'IBM Plex Mono', Consolas, monospace;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: var(--sans); color: var(--texto); background: var(--fundo);
  font-size: 14px; line-height: 1.55;
}
a { color: var(--roxo); text-decoration: none; }
a:hover { text-decoration: underline; }

.num { font-family: var(--mono); white-space: nowrap; }
td.num, th.num { text-align: right; }

/* ------------------------------------------------ cabeçalho global */
.topo {
  display: flex; align-items: center; gap: 10px;
  background: var(--branco); border-bottom: 1px solid var(--roxo);
  padding: 8px 18px; font-family: var(--serif);
}
.topo img.simbolo { height: 15px; }
.topo img.lockup { height: 30px; display: block; }
.topo .marca {
  font-weight: 600; font-size: 11px; letter-spacing: .1em;
  text-transform: uppercase; color: var(--roxo);
}
.topo .doc { flex: 1; text-align: center; color: var(--cinza); font-size: 11.5px; }
.topo .cod { font-family: var(--mono); font-size: 11px; color: var(--roxo); }

/* ------------------------------------------------ grade de seleção de obra */
.selecao { max-width: 1060px; margin: 0 auto; padding: 40px 24px; }
.selecao .eyebrow {
  font-family: var(--serif); font-weight: 600; font-size: 11px;
  letter-spacing: .22em; text-transform: uppercase; color: var(--coral);
}
.selecao .regua-coral { width: 56px; height: 3px; background: var(--coral); margin: 22px 0 12px; }
.selecao h1 {
  font-family: var(--serif); font-weight: 700; font-size: 34px;
  letter-spacing: -.015em; color: var(--roxo-escuro); line-height: 1.05;
  margin-bottom: 6px;
}
.selecao .sub { color: var(--cinza); max-width: 70%; margin-bottom: 30px; }
.grade-obras {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 18px;
}
.card-obra {
  display: block; background: var(--branco); border: 1px solid var(--linha);
  border-top: 3px solid var(--roxo); padding: 18px 20px 16px;
  transition: box-shadow .15s ease, transform .15s ease; color: var(--texto);
}
.card-obra:hover {
  text-decoration: none; box-shadow: 0 6px 22px rgba(42,18,64,.12);
  transform: translateY(-2px);
}
.card-obra .rev {
  font-family: var(--mono); font-size: 11px; color: var(--cinza); float: right;
}
.card-obra h2 {
  font-family: var(--serif); font-weight: 700; font-size: 19px;
  color: var(--roxo-escuro); margin-bottom: 2px;
}
.card-obra .onde { font-size: 12px; color: var(--cinza); margin-bottom: 12px; }
.card-obra .kpis { display: flex; gap: 22px; margin-bottom: 10px; }
.card-obra .kpi .rot {
  font-family: var(--serif); font-weight: 600; font-size: 8.5px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--cinza);
}
.card-obra .kpi .val {
  font-family: var(--serif); font-weight: 700; font-size: 15px; white-space: nowrap;
  color: var(--roxo-escuro);
}
.card-obra .rodape-card {
  border-top: 1px solid var(--linha); padding-top: 8px;
  display: flex; align-items: center; justify-content: space-between;
  font-size: 11px; color: var(--cinza);
}
.card-nova {
  display: flex; align-items: center; justify-content: center;
  border: 1.5px dashed var(--roxo-claro); color: var(--roxo);
  font-family: var(--serif); font-weight: 600; min-height: 150px;
  background: transparent; cursor: not-allowed; opacity: .75;
}

/* ------------------------------------------------ casca: colunas até o topo,
   barra branca fixa, rolagem só no conteúdo (itens 16/17) */
.casca { display: flex; height: 100vh; overflow: hidden; }

.col-modulos {
  width: 190px; flex-shrink: 0; background: var(--roxo-escuro);
  color: var(--branco); display: flex; flex-direction: column;
  height: 100vh; overflow-y: auto;
}
/* card do seletor de obra — espec do designer (760×384 exibida a 190×96) */
.obra-ativa {
  position: relative; display: block; width: 190px; height: 96px;
  flex-shrink: 0; color: var(--branco);
  background: #2A1240 url('marca/botao-obra-ativa-arte.png') center / 190px 96px no-repeat;
  border-bottom: 1px solid rgba(201,174,228,.25);
}
.obra-ativa:hover { text-decoration: none; }
.obra-ativa::after {
  content: ''; position: absolute; inset: 0; background: transparent;
  transition: background .15s ease;
}
.obra-ativa:hover::after {
  background: rgba(255,255,255,.06); box-shadow: 0 2px 7px rgba(0,0,0,.2);
}
.obra-ativa .ponto {
  position: absolute; left: 13px; top: 14px; width: 4px; height: 4px;
  border-radius: 50%; background: #4ADE80;
}
.obra-ativa .rotulo {
  position: absolute; left: 22px; top: 10px; font-family: var(--serif);
  font-weight: 600; font-size: 7px; letter-spacing: .2em;
  text-transform: uppercase; color: #C9AEE4;
}
.obra-ativa .nome {
  position: absolute; left: 13px; top: 27px; right: 28px;
  font-family: var(--serif); font-weight: 700; font-size: 13px;
  letter-spacing: -.01em; line-height: 1.12; text-transform: uppercase;
  color: #fff; max-height: 30px; overflow: hidden;
}
.obra-ativa .chev {
  position: absolute; right: 11px; top: 30px;
  transition: transform .16s ease;
}
.obra-ativa:hover .chev { transform: rotate(180deg); }
.obra-ativa .rev {
  position: absolute; left: 13px; bottom: 10px; font-size: 9.5px;
  font-weight: 500; color: #C9AEE4;
}
.obra-ativa .hash {
  position: absolute; left: 42px; bottom: 10px; font-size: 9.5px;
  color: rgba(201,174,228,.65);
}
.obra-ativa .trocar {
  position: absolute; right: 12px; bottom: 10px; font-family: var(--serif);
  font-weight: 600; font-size: 7.5px; letter-spacing: .16em;
  text-transform: uppercase; color: var(--coral);
}
.col-modulos .titulo-col {
  font-family: var(--serif); font-weight: 600; font-size: 8.5px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--roxo-claro);
  padding: 16px 16px 6px;
}
.modulo {
  display: block; padding: 10px 16px; color: var(--branco);
  font-family: var(--serif); font-weight: 600; font-size: 11.5px;
  letter-spacing: .03em; text-transform: uppercase; white-space: nowrap;
  border-left: 3px solid transparent;
}
.modulo.ativo { background: var(--roxo); border-left-color: var(--coral); }
.modulo.breve { color: rgba(201,174,228,.55); cursor: not-allowed; }
.modulo.breve:hover { text-decoration: none; }
.modulo.breve .tag {
  font-size: 8px; letter-spacing: .1em; color: var(--coral);
  border: 1px solid var(--coral); padding: 1px 4px; margin-left: 6px;
  border-radius: 2px; vertical-align: 1px;
}

.col-secoes {
  width: 216px; flex-shrink: 0; background: var(--branco);
  border-right: 1px solid var(--linha); padding-top: 10px;
  height: 100vh; overflow-y: auto;
}
.col-secoes .titulo-col {
  font-family: var(--serif); font-weight: 600; font-size: 8.5px;
  letter-spacing: .12em; text-transform: uppercase; color: var(--cinza);
  padding: 10px 18px 6px;
}
.secao-link {
  display: block; padding: 9px 18px; color: var(--texto); font-size: 13px;
  border-left: 3px solid transparent;
}
.secao-link .n {
  font-family: var(--mono); font-size: 10.5px; color: var(--cinza); margin-right: 7px;
}
.secao-link.ativa {
  background: var(--fundo); border-left-color: var(--roxo);
  font-weight: 600; color: var(--roxo-escuro);
}
.secao-link.breve { color: var(--cinza-azul); cursor: not-allowed; }
.secao-link.breve:hover { text-decoration: none; }
.secao-link.breve .fase {
  font-family: var(--mono); font-size: 9px; color: var(--cinza-azul); float: right;
  margin-top: 2px;
}

.zona-conteudo {
  flex: 1; min-width: 0; height: 100vh; overflow-y: auto;
  display: flex; flex-direction: column;
}
.conteudo { padding: 26px 34px 60px; max-width: 1120px; width: 100%; }

/* barra branca fixa do topo (item 17) */
.barra-topo {
  position: sticky; top: 0; z-index: 30; flex-shrink: 0;
  display: flex; align-items: center; gap: 14px;
  background: var(--branco); border-bottom: 1px solid var(--linha);
  padding: 0 20px; height: 48px;
}
.marca-topo img { height: 30px; display: block; }
.meio-topo { flex: 1; display: flex; justify-content: center; min-width: 0; }
.obra-topo {
  display: flex; flex-direction: column; align-items: center;
  line-height: 1.2; white-space: nowrap;
}
.obra-topo b {
  font-family: var(--serif); font-weight: 700; font-size: 13.5px;
  color: var(--roxo-escuro); letter-spacing: .02em;
}
.rev-topo { font-size: 10px; color: var(--coral); }
.rev-topo.ras { color: var(--coral); font-weight: 700; }
.busca-topo {
  width: 165px; display: flex; flex-shrink: 0;
  align-items: center; gap: 8px; background: var(--fundo);
  border-radius: 16px; padding: 6px 13px; color: var(--cinza-azul);
  transition: width .18s ease;
}
.busca-topo:focus-within { width: 280px; }
.busca-topo input {
  border: none; background: none; outline: none; flex: 1;
  font-size: 12.5px; font-family: var(--sans); color: var(--texto);
}
.alertas-topo { margin-left: auto; display: flex; align-items: center; gap: 4px;
  position: relative; }
.ic-alerta {
  position: relative; border: none; background: none; cursor: pointer;
  color: var(--cinza); padding: 8px; border-radius: 6px; line-height: 0;
}
.ic-alerta:hover { background: var(--fundo); color: var(--roxo); }
.selo-num {
  position: absolute; top: 1px; right: 0; background: #D64541; color: #fff;
  font-size: 8.5px; font-weight: 700; min-width: 14px; height: 14px;
  border-radius: 7px; display: flex; align-items: center; justify-content: center;
  padding: 0 3px; font-family: var(--sans);
}
.usuario-topo {
  width: 30px; height: 30px; border-radius: 50%; background: var(--roxo);
  color: #fff; font-family: var(--serif); font-weight: 700; font-size: 11px;
  display: flex; align-items: center; justify-content: center;
  margin-left: 8px; cursor: default; flex-shrink: 0;
}
.painel-alerta {
  position: absolute; right: 0; top: 42px; width: 320px; background: #fff;
  border: 1px solid var(--linha); box-shadow: 0 10px 30px rgba(42,18,64,.18);
  border-radius: 8px; padding: 12px 15px; z-index: 60;
}
.painel-alerta.fechado { display: none; }
.painel-alerta .rot {
  font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--roxo);
  margin-bottom: 7px;
}
.painel-alerta ul { list-style: none; }
.painel-alerta li {
  font-size: 12px; padding: 6px 0; border-top: 1px solid var(--fundo);
  color: var(--texto);
}
.painel-alerta .vazio { font-size: 12px; color: var(--cinza-azul); }

/* tarja de rascunho (item 11) — presa logo abaixo da barra */
.tarja-ras {
  position: sticky; top: 48px; z-index: 29; flex-shrink: 0;
  background: var(--coral); color: #fff; font-size: 12.5px;
  padding: 8px 20px; display: flex; align-items: center; gap: 8px;
  flex-wrap: wrap;
}
.tarja-ras b { font-family: var(--serif); letter-spacing: .04em; }
.tarja-ras .acoes-tarja { margin-left: auto; display: flex; gap: 16px; }
.tarja-ras a {
  color: #fff; text-decoration: underline; font-weight: 600; font-size: 12px;
}
.tarja-ras.leve {
  background: #FDF3F1; color: var(--texto); border-bottom: 1px solid var(--coral);
}
.tarja-ras.leve a { color: var(--coral); }
.tarja-ras.erro { background: #D9A441; color: #2A1240; }
.tarja-ras.erro a { color: #2A1240; }

/* transições suaves entre páginas (item 12) */
@view-transition { navigation: auto; }
.col-modulos { view-transition-name: rail; }
.col-secoes { view-transition-name: secoes; }
.barra-topo { view-transition-name: barra; }
::view-transition-old(root), ::view-transition-new(root) {
  animation-duration: .18s;
}
@keyframes vt-gaveta {
  from { transform: translateX(-46px); opacity: 0; }
}
::view-transition-new(secoes) { animation: vt-gaveta .22s ease; }
::view-transition-old(secoes) { animation: none; opacity: 0; }

/* ------------------------------------------------ faixa de título de seção */
.faixa-secao { display: flex; margin-bottom: 20px; break-inside: avoid; }
.faixa-secao .quadro {
  background: var(--roxo); color: var(--branco); font-family: var(--serif);
  font-weight: 700; font-size: 20px; padding: 12px 18px;
  display: flex; align-items: center;
}
.faixa-secao .painel { background: var(--fundo); padding: 9px 16px; flex: 1; }
.faixa-secao h1 {
  font-family: var(--serif); font-weight: 600; font-size: 15.5px;
  letter-spacing: .02em; text-transform: uppercase; color: var(--roxo-escuro);
}
.faixa-secao .objetivo { font-size: 11.5px; color: var(--cinza); }
.faixa-secao .objetivo b { color: var(--roxo); font-family: var(--serif); }

/* ------------------------------------------------ subseção (traço curto) */
.subsecao {
  display: flex; align-items: center; gap: 8px; margin: 26px 0 12px;
  font-family: var(--serif); font-weight: 600; font-size: 11.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--roxo-escuro);
}
.subsecao .traco { width: 22px; height: 2.5px; background: var(--roxo); }
.subsecao.g-verde  { color: var(--verde); }  .subsecao.g-verde .traco  { background: var(--verde); }
.subsecao.g-roxo   { color: var(--roxo); }   .subsecao.g-roxo .traco   { background: var(--roxo); }
.subsecao.g-coral  { color: var(--coral); }  .subsecao.g-coral .traco  { background: var(--coral); }

/* ------------------------------------------------ cards de indicador */
.grade-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.card-ind { border-top: 2.5px solid var(--roxo); padding-top: 9px; }
.card-ind.g-verde { border-top-color: var(--verde); }
.card-ind.g-coral { border-top-color: var(--coral); }
.card-ind .rot {
  font-family: var(--serif); font-weight: 600; font-size: 9px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--cinza);
}
.card-ind .val {
  font-family: var(--serif); font-weight: 700; font-size: 19px;
  color: var(--roxo-escuro); margin: 1px 0 2px;
}
.card-ind .nota { font-size: 10.5px; color: var(--cinza); }
.card-ind .nota.critico, .card-ind .nota.atencao { color: var(--coral); }

/* ------------------------------------------------ selos de situação */
.selo {
  display: inline-block; font-family: var(--serif); font-weight: 600;
  font-size: 9px; letter-spacing: .07em; text-transform: uppercase;
  padding: 2.5px 6px; white-space: nowrap;
}
.selo.bom     { box-shadow: inset 0 0 0 1px var(--verde); color: var(--verde); }
.selo.atencao { box-shadow: inset 0 0 0 1px var(--coral); color: var(--coral); }
.selo.critico { background: var(--coral); color: var(--branco); }
.selo.sem     { box-shadow: inset 0 0 0 1px var(--roxo-claro); color: var(--roxo); }

/* ------------------------------------------------ tabelas */
table.nau { border-collapse: collapse; width: 100%; }
table.nau th {
  background: var(--roxo); color: var(--branco); font-family: var(--serif);
  font-weight: 600; font-size: 10px; letter-spacing: .06em;
  text-transform: uppercase; text-align: left; padding: 6px 10px;
}
table.nau th.num { text-align: right; }
table.nau td {
  border-bottom: 1px solid var(--linha); padding: 6px 10px;
  font-size: 12.5px; vertical-align: top;
}
table.nau tr:nth-child(even) td { background: var(--zebra); }
table.nau tr.total td {
  border-top: 1.5px solid var(--roxo); background: var(--branco);
  font-family: var(--serif); font-weight: 600; text-transform: uppercase;
  font-size: 11px;
}
table.nau tr.total td.num { font-family: var(--mono); font-weight: 600; }
table.nau tr.final td {
  background: var(--roxo); color: var(--branco); border-bottom: none;
  font-family: var(--serif); font-weight: 600; font-size: 11.5px;
  letter-spacing: .08em; text-transform: uppercase;
}
table.nau tr.final td.num { font-family: var(--mono); font-weight: 600; font-size: 13px; }
table.nau tr.destaque td { background: var(--fundo); }

/* ------------------------------------------------ caixas de destaque */
.caixa {
  background: var(--fundo); border-top: 2px solid var(--roxo);
  padding: 12px 16px; margin: 14px 0;
}
.caixa.coral { border-top-color: var(--coral); }
.caixa .rot {
  font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--roxo);
  margin-bottom: 4px;
}
.caixa.coral .rot { color: var(--coral); }
.caixa p { font-size: 12.5px; }
.caixa ul { margin-left: 16px; font-size: 12.5px; }
.caixa li { margin: 3px 0; }

/* ------------------------------------------------ gráficos */
.bloco-grafico { margin: 8px 0 26px; break-inside: avoid; }
.bloco-grafico svg { width: 100%; height: auto; display: block; }
.legenda {
  display: flex; flex-wrap: wrap; gap: 9px 22px; margin-top: 8px;
  font-size: 11.5px; color: var(--texto);
}
.legenda .item { display: flex; align-items: center; gap: 7px; }
.legenda .amostra-linha { width: 20px; height: 3px; }
.legenda .amostra-ponto { width: 12px; height: 12px; border-radius: 50%; }
.legenda .nome {
  font-family: var(--serif); font-weight: 600; font-size: 10px;
  letter-spacing: .06em; text-transform: uppercase;
}
.nota-grafico { font-size: 11px; color: var(--cinza); margin-top: 6px; }

/* ------------------------------------------------ botões */
.botao {
  display: inline-block; background: var(--roxo); color: var(--branco);
  font-family: var(--serif); font-weight: 600; font-size: 11px;
  letter-spacing: .08em; text-transform: uppercase; padding: 9px 16px;
  border: none; cursor: pointer;
}
.botao:hover { background: var(--roxo-escuro); text-decoration: none; color: var(--branco); }
.botao.contorno {
  background: transparent; color: var(--roxo);
  box-shadow: inset 0 0 0 1.5px var(--roxo);
}
.botao.coral { background: var(--coral); }
.botao.coral:hover { background: #D95C50; }
.carimbo-vig {
  display: inline-block; background: var(--roxo); color: #fff;
  font-family: var(--serif); font-weight: 700; font-size: 10px;
  letter-spacing: .09em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 3px; vertical-align: 2px;
}
.carimbo-vig .hash { font-family: var(--mono); font-weight: 400; opacity: .8; }
.carimbo-ras {
  display: inline-block; background: var(--coral); color: #fff;
  font-family: var(--serif); font-weight: 700; font-size: 10px;
  letter-spacing: .09em; text-transform: uppercase;
  padding: 3px 10px; border-radius: 3px; vertical-align: 2px;
}

/* rodapé da tela */
.rodape {
  border-top: 1px solid var(--linha); margin-top: 40px; padding-top: 8px;
  display: flex; justify-content: space-between; font-size: 11px; color: var(--cinza);
}
.rodape .ancora { font-family: var(--mono); }

/* ------------------------------------------------ rail compacto (só ícones) */
.col-modulos.compacta { width: 64px; align-items: center; padding-top: 10px; }
.icone-mod {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; margin: 3px 0; color: var(--roxo-claro);
  border-radius: 6px; border-left: none;
}
.icone-mod.casa { color: var(--branco); margin-bottom: 12px;
  border-bottom: 1px solid rgba(201,174,228,.25); border-radius: 0;
  width: 56px; padding-bottom: 10px; height: 52px; }
.icone-mod.ativo { color: var(--coral); background: rgba(238,112,100,.12);
  box-shadow: inset 0 0 0 1.5px var(--coral); }
.icone-mod.breve { color: rgba(201,174,228,.35); cursor: not-allowed; }
.icone-mod:hover { text-decoration: none; }
.modulo { display: flex; align-items: center; gap: 10px; padding-left: 14px; padding-right: 10px; overflow: hidden; }
.modulo .tag { flex-shrink: 0; }
.modulo .ic { display: inline-flex; }
.modulo.breve .tag { margin-left: auto; }

/* mini-cabeçalho da coluna de seções */
.obra-mini { padding: 12px 18px 10px; border-bottom: 1px solid var(--linha); }
.obra-mini .nome {
  display: block; font-family: var(--serif); font-weight: 700;
  font-size: 13px; color: var(--roxo-escuro); line-height: 1.2;
}
.obra-mini .rev { font-size: 10px; color: var(--cinza); }

/* landing da obra */
.landing { max-width: 860px; padding-top: 12px; }
.landing .regua-coral { width: 56px; height: 3px; background: var(--coral); margin: 10px 0 12px; }
.landing .eyebrow {
  font-family: var(--serif); font-weight: 600; font-size: 10px;
  letter-spacing: .22em; text-transform: uppercase; color: var(--coral);
}
.landing h1 {
  font-family: var(--serif); font-weight: 700; font-size: 32px;
  letter-spacing: -.015em; color: var(--roxo-escuro); line-height: 1.05;
  margin: 4px 0 6px;
}
.landing .sub { color: var(--cinza); margin-bottom: 26px; }
.landing .grade-cards { margin-bottom: 22px; }

/* campo roxo da capa de seleção */
.campo-roxo {
  background: #552781; padding: 20px 32px; margin: 0 0 26px;
  display: flex; align-items: center; justify-content: space-between;
}
.campo-roxo { padding: 26px 36px; }
.campo-roxo img { height: 96px; display: block; }
.campo-roxo .cod { font-family: var(--mono); font-size: 11px; color: var(--roxo-claro); }

/* ------------------------------------------------ hover dos cards de indicador */
.card-ind {
  padding: 9px 10px 10px; margin: -0px -10px 0;
  transition: box-shadow .15s ease, background .15s ease, transform .15s ease;
}
.card-ind:hover {
  background: var(--branco);
  box-shadow: 0 4px 18px rgba(42,18,64,.10), inset 0 0 0 1.5px var(--roxo-claro);
  transform: translateY(-2px);
}
.card-ind.g-coral:hover { box-shadow: 0 4px 18px rgba(42,18,64,.10), inset 0 0 0 1.5px var(--coral); }
.card-ind.g-verde:hover { box-shadow: 0 4px 18px rgba(42,18,64,.10), inset 0 0 0 1.5px var(--verde); }

/* ------------------------------------------------ donut de composição */
.bloco-donut { display: flex; gap: 30px; align-items: flex-start; margin: 6px 0 10px; }
.donut-caixa { width: 300px; flex-shrink: 0; }
.donut-caixa svg { width: 100%; height: auto; }
.donut .fatia { transition: opacity .12s ease, transform .12s ease; transform-origin: 130px 130px; cursor: pointer; }
.donut.foco .fatia { opacity: .28; }
.donut.foco .fatia.viva { opacity: 1; transform: scale(1.045); }
.donut-tabela { flex: 1; min-width: 0; }
table.nau .quad, .legenda .quad {
  display: inline-block; width: 11px; height: 11px; border-radius: 2px;
  margin-right: 8px; vertical-align: -1px;
}
tr.linha-fatia { cursor: pointer; }
tr.linha-fatia.viva td { background: var(--fundo) !important; font-weight: 600; }
table.nau.compacta td { padding: 4px 8px; font-size: 11.5px; }
table.nau.compacta th { padding: 5px 8px; font-size: 9px; }

/* ------------------------------------------------ quadrantes (T4) */
.grade-cards.g4 { grid-template-columns: repeat(4, 1fr); margin-bottom: 4px; }
.grade-quadrantes { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 16px; }
.quadrante {
  background: var(--branco); border: 1px solid var(--linha);
  border-top: 3px solid var(--roxo); padding: 12px 16px 14px;
}
.quadrante .bloco-grafico { margin-bottom: 4px; }
.quadrante-cta { border-top-color: var(--coral); display: flex; flex-direction: column; }
.quadrante-cta p { font-size: 12px; color: var(--cinza); margin: 6px 0 14px; }
.rolagem { overflow-x: auto; }

/* gráfico mensal + tabelinha viva */
.mensal-wrap { display: flex; gap: 22px; align-items: flex-start; }
.mensal-graf { flex: 1; min-width: 0; }
.tooltip-mes {
  width: 210px; flex-shrink: 0; background: var(--fundo);
  border-top: 2px solid var(--roxo); padding: 10px 12px;
}
.tooltip-mes .tt-titulo {
  font-family: var(--serif); font-weight: 700; font-size: 16px;
  color: var(--roxo-escuro); margin-bottom: 6px;
}
.tooltip-mes table { background: transparent; }
.tooltip-mes td { background: transparent !important; }
.g-mensal .hover-mes { cursor: crosshair; }

/* fluxo completo */
#fluxo-completo.fechado { display: none; }
table.fluxo-full th, table.fluxo-full td { white-space: nowrap; }
table.fluxo-full tr.grupos th {
  background: var(--roxo-escuro); text-align: center;
  border-left: 1px solid rgba(255,255,255,.25); font-size: 9px;
}
table.fluxo-full td.fixa, table.fluxo-full th:first-child {
  position: sticky; left: 0; background: var(--branco);
  border-right: 1.5px solid var(--roxo); z-index: 2;
}
table.fluxo-full tr:nth-child(even) td.fixa { background: var(--zebra); }
table.fluxo-full tr.total td { background: var(--fundo) !important; }
table.fluxo-full tr.total td.fixa { background: var(--fundo); }

/* ------------------------------------------------ métricas por blocos */
table.nau.metricas tr.grupo td {
  background: var(--fundo); color: var(--roxo);
  font-family: var(--serif); font-weight: 700; font-size: 11px;
  letter-spacing: .05em; text-transform: uppercase;
  border-bottom: 1px solid var(--linha); border-top: 2px solid var(--roxo);
  padding: 6px 10px;
}
table.nau.metricas td.input {
  background: #FFFCF0 !important; font-weight: 600;
  border-bottom: 1px solid #EBDFB4;
}
table.nau.metricas td.sentido { color: var(--cinza); font-size: 11.5px; }
table.nau.metricas td.nota-metrica { color: var(--cinza-azul); font-size: 11px; }
.legenda .input-amostra { background: #FFFCF0; border-bottom: 2px solid #EBDFB4; }
td.ref { color: var(--cinza); font-size: 11.5px; }

/* fechar coluna de seções */
.obra-mini { position: relative; padding-right: 34px; }
.fechar-secoes {
  position: absolute; right: 8px; top: 8px; width: 22px; height: 22px;
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; color: var(--cinza); border-radius: 4px; line-height: 1;
}
.fechar-secoes:hover { background: var(--fundo); color: var(--coral); text-decoration: none; }

/* coluna do cenário Base (destaque como na apresentação) */
table.nau th.col-base-th { background: var(--coral); }
table.nau td.col-base { background: #FBEBE9 !important; font-weight: 600; color: var(--roxo-escuro); }

/* ------------------------------------------------ números negativos */
td.neg, .neg { color: #C0392B; }

/* ------------------------------------------------ cards de obra com foto */
.grade-obras { grid-template-columns: repeat(auto-fill, minmax(225px, 1fr)); }
.card-obra { padding: 0; overflow: hidden; }
.card-obra .foto {
  position: relative; aspect-ratio: 246/308; background: var(--roxo-escuro);
  overflow: hidden;
}
.card-obra .foto img { width: 100%; height: 100%; object-fit: cover; display: block;
  transition: transform .25s ease; }
.card-obra:hover .foto img { transform: scale(1.04); }
.card-obra .foto-vazia {
  width: 100%; height: 100%; background: var(--roxo);
  display: flex; align-items: center; justify-content: center;
}
.card-obra .foto-vazia img { width: 70%; height: auto; object-fit: contain; }
.selo-foto {
  position: absolute; top: 10px; left: 10px;
  font-family: var(--serif); font-weight: 600; font-size: 9px;
  letter-spacing: .07em; text-transform: uppercase; padding: 2.5px 7px;
  background: var(--branco);
}
.selo-foto.bom { color: var(--verde); box-shadow: inset 0 0 0 1px var(--verde); }
.selo-foto.atencao { color: var(--coral); box-shadow: inset 0 0 0 1px var(--coral); }
.selo-foto.critico { background: var(--coral); color: var(--branco); }
.card-obra .corpo-card { padding: 12px 14px 12px; }
.card-obra h2 { font-size: 16px; display: flex; justify-content: space-between;
  align-items: baseline; }
.card-obra h2 .ano {
  font-family: var(--mono); font-weight: 400; font-size: 11px; color: var(--coral);
}
.card-obra .linha-vgv { font-size: 11.5px; color: var(--texto); margin: 3px 0 9px; }
.card-obra .rodape-card { margin-top: 0; }
.card-obra.vitrine { cursor: default; }
.card-obra.vitrine:hover { transform: none; box-shadow: 0 3px 12px rgba(42,18,64,.08); }
.card-obra.vitrine .foto img { filter: saturate(.92); }
.card-obra .fase-tag {
  font-family: var(--mono); font-size: 9px; color: var(--cinza-azul);
  border: 1px solid var(--linha); padding: 1px 5px; border-radius: 2px;
}
.card-obra.card-nova {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; border: 1.5px dashed var(--roxo-claro); background: transparent;
  min-height: 0; color: var(--roxo); font-family: var(--serif); font-weight: 600;
}
.card-obra.card-nova .mais { font-size: 34px; line-height: 1; color: var(--roxo-claro); }

/* ------------------------------------------------ interruptor (expandir fluxo) */
.interruptor { display: inline-flex; align-items: center; gap: 12px; cursor: pointer;
  user-select: none; }
.interruptor input { display: none; }
.interruptor .trilho {
  width: 64px; height: 30px; border-radius: 15px; background: var(--linha);
  position: relative; transition: background .2s ease; flex-shrink: 0;
  box-shadow: inset 0 1px 3px rgba(42,18,64,.15);
}
.interruptor .botao-desliza {
  position: absolute; top: 3px; left: 3px; width: 24px; height: 24px;
  border-radius: 50%; background: var(--branco);
  box-shadow: 0 1px 4px rgba(42,18,64,.3); transition: left .2s ease;
}
.interruptor input:checked + .trilho { background: var(--coral); }
.interruptor input:checked + .trilho .botao-desliza { left: 37px; }
.interruptor .rotulo-sw {
  font-family: var(--serif); font-weight: 600; font-size: 11.5px;
  letter-spacing: .06em; text-transform: uppercase; color: var(--coral);
}

/* ------------------------------------------------ fluxo completo transposto */
table.fluxo-full td.fixa {
  min-width: 138px; font-family: var(--sans); font-size: 11px;
}
table.fluxo-full th.col-total, table.fluxo-full td.forte {
  font-weight: 600;
}
table.fluxo-full td.ctot {
  background: #EFEAF5 !important; font-weight: 500; font-size: 12px;
  color: var(--roxo-escuro); -webkit-font-smoothing: antialiased;
  border-left: 1px solid var(--roxo-claro2); border-right: 1px solid var(--roxo-claro2);
}
table.fluxo-full td.ctot.neg { color: #C0392B; }
table.fluxo-full th.ctot { background: var(--roxo-escuro); }
table.fluxo-full tr.banda td {
  background: var(--roxo-escuro) !important; color: var(--branco);
  font-family: var(--serif); font-weight: 600; font-size: 10px;
  letter-spacing: .08em; text-transform: uppercase; padding: 5px 10px;
}
table.fluxo-full tr.banda td.fixa { background: var(--roxo-escuro) !important; }
table.fluxo-full tr.forte-linha td { border-top: 1.5px solid var(--roxo); }


/* ------------------------------------------------ rodada 27/08 — fluxo */
.grade-cards.g5 { grid-template-columns: repeat(5, 1fr); gap: 12px; margin-bottom: 4px; }
.grade-cards.g5 .card-ind .val { font-size: 16px; }
.rolagem-v { max-height: 430px; overflow-y: auto; }
.rolagem-v.alta { max-height: 72vh; }
.rolagem-v thead th { position: sticky; top: 0; z-index: 3; }
table.mensal10 th.banco { background: var(--roxo-escuro); }
table.mensal10 td.fixa { font-weight: 600; color: var(--roxo-escuro); }
table.fluxo-full thead th.fixa { z-index: 4; background: var(--roxo); }
.quadrante { transition: box-shadow .15s ease; position: relative; }
.quadrante:hover { box-shadow: 0 6px 22px rgba(42,18,64,.10); }
.expandir {
  position: absolute; top: 10px; right: 10px; width: 28px; height: 28px;
  border: 1px solid var(--linha); background: var(--branco); color: var(--roxo);
  font-size: 15px; cursor: pointer; border-radius: 5px; line-height: 1; z-index: 2;
}
.expandir:hover { background: var(--roxo); color: var(--branco); }
.cta-linha { display: flex; align-items: center; justify-content: space-between; gap: 26px; }
.kv-duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 0 34px; }
table.nau.kv td { padding: 6px 8px; font-size: 12.5px; }
table.nau.kv td.num.forte { color: var(--roxo); font-weight: 600; }
table.nau.kv tr:nth-child(even) td { background: transparent; }
table.nau.kv td.num.neg { color: var(--coral); font-weight: 600; }

/* modal de gráfico */
.modal-fundo {
  position: fixed; inset: 0; background: rgba(42,18,64,.55); z-index: 50;
  display: flex; align-items: center; justify-content: center;
}
.modal-fundo.fechado { display: none; }
.modal-caixa {
  background: var(--branco); width: min(960px, 92vw); max-height: 88vh;
  overflow: auto; padding: 22px 26px 20px; position: relative;
  border-top: 4px solid var(--roxo); box-shadow: 0 18px 60px rgba(42,18,64,.35);
}
.modal-fechar {
  position: absolute; top: 10px; right: 12px; width: 30px; height: 30px;
  border: none; background: transparent; color: var(--cinza); font-size: 22px;
  cursor: pointer; line-height: 1;
}
.modal-fechar:hover { color: var(--coral); }

/* bandas recolhíveis */
table.fluxo-full tr.banda { cursor: pointer; }
table.fluxo-full tr.banda .seta { display: inline-block; width: 14px;
  transition: transform .15s ease; }
table.fluxo-full tr.banda.recolhida .seta { transform: rotate(-90deg); }
tr.linha-bloco.escondida { display: none; }

table.fluxo-full td.fixa, table.fluxo-full thead th.fixa { min-width: 150px; max-width: 150px; }
table.fluxo-full td.ctot.esq, table.fluxo-full th.ctot.esq {
  position: sticky; left: 150px; z-index: 2;
}
table.fluxo-full thead th.ctot.esq { z-index: 4; }

.separador-grosso { height: 6px; background: var(--roxo); margin: 30px 0 4px; }

.modulo .cadeado {
  margin-left: auto; display: inline-flex; color: var(--coral);
  opacity: .8; flex-shrink: 0;
}

/* banner da capa + badges de status */
.banner-capa { width: 100%; display: block; margin: 0 0 28px; }
.card-obra .badge {
  position: absolute; width: 24px; height: 24px; border-radius: 5px;
  background: rgba(255,255,255,.94); display: flex; align-items: center;
  justify-content: center; box-shadow: 0 1px 4px rgba(42,18,64,.25);
}
.card-obra .badge svg { width: 14px; height: 14px; }
.card-obra .badge.tr { top: 10px; right: 10px; }
.card-obra .badge.br { bottom: 10px; right: 10px; }

/* ================================================= T3 · Premissas */
.t3-wrap { display: flex; gap: 26px; align-items: flex-start; }
.t3-form { flex: 1; min-width: 0; }
.bloco-card {
  background: var(--branco); border: 1px solid var(--linha);
  border-left: 3px solid var(--roxo); margin-bottom: 12px;
}
.bloco-card summary {
  cursor: pointer; list-style: none; padding: 13px 18px;
  font-family: var(--serif); font-weight: 600; font-size: 12.5px;
  letter-spacing: .05em; text-transform: uppercase; color: var(--roxo-escuro);
  display: flex; align-items: center; gap: 10px;
}
.bloco-card summary::-webkit-details-marker { display: none; }
.bloco-card summary .seta { color: var(--coral); transition: transform .15s ease;
  display: inline-block; font-size: 13px; }
.bloco-card[open] summary .seta { transform: rotate(90deg); }
.bloco-card[open] summary { border-bottom: 1px solid var(--linha); }
.bloco-card > div, .bloco-card > table, .bloco-card > button, .bloco-card > p {
  margin-left: 18px; margin-right: 18px;
}
.bloco-card > .grade-campos { margin-top: 14px; margin-bottom: 14px; }
.bloco-card > table { margin-bottom: 10px; }
.bloco-card > p { margin-bottom: 12px; }
.bloco-card > button { margin-bottom: 14px; }
.resumo-soma { margin-left: auto; font-size: 11px; color: var(--cinza); }
.resumo-soma.ok { color: var(--verde); }
.resumo-soma.ruim { color: #C0392B; font-weight: 600; }

.grade-campos {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 14px 26px;
}
.campo label {
  display: block; font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .07em; text-transform: uppercase; color: #55505C;
  margin-bottom: 3px;
}
.campo.largo { grid-column: 1 / -1; }
.campo.travado label { color: var(--cinza-azul); }
.cadeado-mini { display: inline-block; margin-left: 5px; vertical-align: -1px; }
.ent {
  width: 100%; border: none; border-bottom: 1.5px solid var(--linha);
  background: transparent; padding: 4px 2px; font-size: 13.5px;
  color: #000; font-family: var(--sans);
}
.ent.num { font-family: var(--mono); text-align: right; color: #000; font-weight: 500; }
.ent:focus {
  outline: none; border-bottom-color: var(--roxo); background: #FFFCF0;
}
.ent.trav { border-bottom: 1.5px dashed var(--linha); color: var(--cinza-azul);
  padding: 4px 2px; font-size: 13px; }
.ent-wrap { display: flex; align-items: baseline; gap: 7px; }
.ent-wrap .sufixo { font-family: var(--mono); font-size: 10.5px; color: var(--cinza-azul);
  flex-shrink: 0; }
.nota-campo { font-size: 10.5px; color: var(--cinza-azul); margin-top: 3px; }
.nota-campo.coral { color: var(--coral); opacity: .85; }

.pilulas { display: flex; flex-wrap: wrap; gap: 6px; }
.pilula input { display: none; }
.pilula span {
  display: inline-block; padding: 4px 11px; border: 1.5px solid var(--roxo-claro2);
  border-radius: 14px; font-size: 11.5px; color: var(--roxo); cursor: pointer;
  background: var(--branco); transition: all .12s ease;
}
.pilula span:hover { border-color: var(--roxo); }
.pilula input:checked + span {
  border-color: #552781; background: #552781; color: #FFFFFF;
  font-weight: 600; box-shadow: 0 1px 5px rgba(85, 39, 129, .35);
}
.checkbox input { display: none; }
.checkbox span {
  display: inline-block; width: 19px; height: 19px; border-radius: 4px;
  border: 1.5px solid var(--cinza-azul); cursor: pointer; position: relative;
}
.checkbox input:checked + span { background: var(--roxo); border-color: var(--roxo); }
.checkbox input:checked + span::after {
  content: ''; position: absolute; left: 5.5px; top: 2px; width: 5px; height: 9px;
  border: solid #fff; border-width: 0 2.2px 2.2px 0; transform: rotate(43deg);
}
.interruptor.mini .trilho { width: 44px; height: 22px; border-radius: 11px; }
.interruptor.mini .botao-desliza { width: 16px; height: 16px; }
.interruptor.mini input:checked + .trilho { background: var(--verde); }
.interruptor.mini input:checked + .trilho .botao-desliza { left: 25px; }
.interruptor.mini .rotulo-sw { font-size: 10px; color: var(--cinza); }

.grade-edit input.ent, .grade-edit select.ent { border-bottom-color: transparent; }
.grade-edit input.ent:hover, .grade-edit select.ent:hover { border-bottom-color: var(--linha); }
.grade-edit input.ent:focus { border-bottom-color: var(--roxo); }
.grade-edit td { padding: 2px 6px !important; }
.grade-edit .curta { width: 74px; }
.grade-edit .sel { width: auto; font-size: 12px; }
.rm-linha {
  border: none; background: transparent; color: var(--cinza-azul);
  font-size: 15px; cursor: pointer; line-height: 1; padding: 2px 5px;
}
.rm-linha:hover { color: var(--coral); }
.botao.mini { padding: 6px 12px; font-size: 10px; }
.botao.descartar { background: transparent; color: var(--cinza);
  box-shadow: inset 0 0 0 1.5px var(--linha); }
.botao.descartar:hover { color: #C0392B; box-shadow: inset 0 0 0 1.5px #C0392B; background: transparent; }
tr.molde { display: none; }
.cen-edit td.col-base input { font-weight: 600; }
.subtitulo-grade {
  font-family: var(--serif); font-weight: 600; font-size: 10px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--roxo);
  margin: 4px 18px 8px;
}

.painel-vivo {
  width: 250px; flex-shrink: 0; position: sticky; top: 64px;
  background: var(--branco); border: 1px solid var(--linha);
  border-top: 3px solid var(--roxo); padding: 14px 16px 16px;
}
.painel-vivo .acoes { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
.painel-vivo .acoes .botao { width: 100%; text-align: center; }
.painel-vivo .titulo-painel {
  font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .1em; text-transform: uppercase; color: var(--cinza);
  margin-bottom: 10px;
}
.ind-vivo { border-top: 1px solid var(--linha); padding: 8px 0; }
.ind-vivo .rot { font-family: var(--serif); font-weight: 600; font-size: 8.5px;
  letter-spacing: .07em; text-transform: uppercase; color: var(--cinza); }
.ind-vivo .linha-v { display: flex; align-items: center; justify-content: space-between; }
.ind-vivo .val { font-family: var(--serif); font-weight: 700; font-size: 15px;
  color: var(--roxo-escuro); }
.ind-vivo .delta { font-size: 10.5px; color: var(--cinza); }
.t3-form[data-leitura] input, .t3-form[data-leitura] select,
.t3-form[data-leitura] .pilula span, .t3-form[data-leitura] .checkbox span,
.t3-form[data-leitura] .interruptor { pointer-events: none; opacity: .75; }

/* ===== T1 · seletor de cenário no painel ===== */
.sel-cenario {
  display: flex; align-items: center; gap: 7px; background: var(--fundo);
  padding: 9px 16px 9px 0;
}
.sel-cenario .rot-sel {
  font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .07em; text-transform: uppercase; color: var(--cinza);
  margin-right: 2px;
}
.pill-cen {
  display: inline-block; padding: 4px 13px; border: 1.5px solid var(--roxo-claro2);
  border-radius: 15px; font-size: 11.5px; color: var(--roxo); background: var(--branco);
  transition: all .12s ease; white-space: nowrap;
}
.pill-cen:hover { border-color: var(--roxo); text-decoration: none; }
.pill-cen.viva {
  border-color: #552781; background: #552781; color: #FFFFFF; font-weight: 600;
  box-shadow: 0 1px 5px rgba(85, 39, 129, .35);
}
.pill-cen .marca-ativo { font-size: 9.5px; opacity: .75; font-weight: 400; }

.caixa.ambar { border-top-color: #D9A441; }
.caixa.ambar .rot { color: #B8860B; }
.caixa-cen .corpo-cen {
  display: flex; align-items: center; justify-content: space-between;
  gap: 18px; flex-wrap: wrap; font-size: 12.5px;
}
.botao-cen {
  border: 1.5px solid var(--roxo); background: var(--branco); color: var(--roxo);
  border-radius: 6px; padding: 6px 14px; font-family: var(--serif); font-weight: 600;
  font-size: 12px; cursor: pointer; text-align: left;
}
.botao-cen:hover { background: var(--roxo); color: #fff; }
.botao-cen:hover .mini-nota { color: #E8DFF2; }
.botao-cen .mini-nota {
  display: block; font-family: var(--sans); font-weight: 400; font-size: 10px;
  color: var(--cinza-azul); margin-top: 1px;
}

/* ===== T3 · interruptor duplo (não · bolinha · sim) ===== */
.interruptor.duplo { gap: 8px; }
/* .campo label { display:block } ganharia do .interruptor — devolve o flex */
.campo label.interruptor.duplo {
  display: inline-flex; align-items: center; margin-top: 5px;
  text-transform: none; letter-spacing: normal;
}
.interruptor.duplo .lado {
  font-family: var(--serif); font-weight: 600; font-size: 10.5px;
  letter-spacing: .07em; text-transform: uppercase; color: var(--cinza-azul);
  transition: color .15s ease;
}
.interruptor.duplo input:not(:checked) ~ .lado.nao { color: var(--coral); font-weight: 700; }
.interruptor.duplo input:checked ~ .lado.sim { color: var(--coral); font-weight: 700; }
.interruptor.duplo .trilho {
  width: 46px; height: 22px; border-radius: 11px; background: #EFEAF5;
  box-shadow: inset 0 0 0 1.5px var(--linha), inset 0 1px 3px rgba(42,18,64,.08);
}
.interruptor.duplo .botao-desliza {
  width: 16px; height: 16px; top: 3px; left: 3px;
  background: var(--coral); box-shadow: 0 1px 4px rgba(238,112,100,.55);
}
.interruptor.duplo input:checked ~ .trilho .botao-desliza { left: 27px; }

/* cenários dentro da moldura */
.cen-edit { min-width: 520px; }
.cen-edit input.ent { width: 110px; max-width: 100%; margin-left: auto; display: block; }

/* grade dos cronogramas personalizados (M0..M(NM-1) — a largura segue o motor, rolagem horizontal) */
.grade-crn th, .grade-crn td { padding: 2px 4px !important; }
.grade-crn td + td { border-left: 1px solid #F1EEF5; }
.grade-crn input.crn { width: 44px; text-align: center; font-size: 11.5px;
  border-bottom: 1.5px solid var(--linha); border-bottom-color: var(--linha); }
.grade-crn input.crn:focus { border-bottom-color: var(--roxo); }
.grade-crn th.num { font-size: 9px; text-align: center; }
.grade-crn .rot-crn {
  position: sticky; left: 0; background: var(--branco); z-index: 2;
  white-space: nowrap; font-size: 11px; padding-right: 10px !important;
}
.grade-crn thead .rot-crn { background: var(--roxo); }
.grade-crn .tot-crn {
  position: sticky; right: 0; background: var(--fundo); z-index: 2;
  font-size: 11px; white-space: nowrap; min-width: 64px;
}
.grade-crn thead .tot-crn { background: var(--roxo); }
.tot-crn.ok { color: var(--verde); }
.tot-crn.ruim { color: #C0392B; font-weight: 600; }

/* ===== capa: rolagem própria + barra ===== */
.pagina-capa { height: 100vh; overflow-y: auto; display: flex; flex-direction: column; }
.pagina-capa .barra-topo { position: sticky; top: 0; }

/* ===== banner vivo do portfólio (item 15) ===== */
.nau-header {
  position: relative; width: 1012px; max-width: 100%; height: 148px;
  margin: 0 0 28px;
  background: #552781 url('marca/banner-nau-incorp-arte.png') left center / 1012px 148px no-repeat;
}
.nau-kpi { position: absolute; top: 22px; cursor: default; }
.nau-kpi-rotulo {
  display: block; font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .14em; text-transform: uppercase; color: #C9AEE4;
}
.nau-kpi-valor {
  display: block; margin-top: 3px; font-family: var(--mono); font-weight: 500;
  font-size: 23px; line-height: 1; color: #fff; white-space: nowrap;
  transition: text-shadow .15s ease, transform .15s ease;
}
.nau-kpi:hover .nau-kpi-valor {
  text-shadow: 0 0 14px rgba(255,255,255,.55); transform: translateY(-1px);
}
.nau-fase { position: absolute; top: 78px; cursor: default; }
.nau-fase-barra {
  display: block; height: 9px; width: 100%; border-radius: 1px;
  transition: filter .15s ease, transform .15s ease;
}
.nau-fase:hover .nau-fase-barra { filter: brightness(1.18); transform: scaleY(1.25); }
.nau-fase:hover .nau-fase-vgv { text-shadow: 0 0 12px rgba(255,255,255,.5); }
.nau-fase-nome {
  display: block; margin-top: 8px; font-family: var(--serif); font-weight: 600;
  font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase;
  white-space: nowrap;
}
.nau-fase-vgv {
  display: block; margin-top: 3px; font-family: var(--mono); font-weight: 500;
  font-size: 17px; line-height: 1; color: #fff; white-space: nowrap;
  transition: text-shadow .15s ease;
}
.nau-fase-sub {
  display: block; margin-top: 4px; font-family: var(--mono); font-size: 10px;
  color: #D8C7EA; white-space: nowrap;
}

/* ===== capa: controles de status nos cards (item 18) ===== */
.badge-btn { cursor: pointer; transition: transform .12s ease, box-shadow .12s ease; }
.badge-btn:hover { transform: scale(1.12); box-shadow: 0 2px 8px rgba(42,18,64,.35); }
.badge-fase { position: absolute; }
.menu-fase {
  position: absolute; top: 28px; right: 0; z-index: 50; width: 150px;
  background: #fff; border: 1px solid var(--linha); border-radius: 7px;
  box-shadow: 0 8px 24px rgba(42,18,64,.22); padding: 5px; cursor: default;
}
.menu-fase.fechado { display: none; }
.opcao-fase {
  display: flex; align-items: center; gap: 8px; padding: 7px 9px;
  font-size: 12px; color: var(--texto); border-radius: 5px; cursor: pointer;
  font-family: var(--sans); text-transform: none; letter-spacing: 0;
}
.opcao-fase:hover { background: var(--fundo); }
.opcao-fase.ativa { background: #F3EDF9; font-weight: 600; }
.opcao-fase .mini-ic { display: inline-flex; width: 14px; }
.opcao-fase .mini-ic svg { width: 14px; height: 14px; }

/* ===== T3 rodada F2d ===== */
/* véu de bloqueio (financiamento OFF · modo de orçamento inativo) */
.campo.velado, #bloco-etapas.velado {
  opacity: .38; pointer-events: none; user-select: none;
  filter: grayscale(.65); transition: opacity .18s ease;
}
#bloco-etapas .subtitulo-grade { margin-left: 0; margin-right: 0; }
#bloco-etapas > .rolagem { margin-bottom: 8px; }
#bloco-etapas > button { margin-bottom: 14px; }

/* célula da tabela de cenários com sufixo */
.cen-cel { display: inline-flex; align-items: baseline; gap: 5px; width: 100%; }
.cen-cel .sufixo {
  font-family: var(--mono); font-size: 10px; color: var(--cinza-azul);
  flex-shrink: 0; min-width: 12px; text-align: left;
}

/* meses fora da janela no cronograma (item 7) */
.grade-crn td.fora { background: #EFEDF2; }
.grade-crn td.fora input { color: transparent; cursor: not-allowed; }
.grade-crn th.fora { opacity: .5; }

/* quadro de unidades mais leve (item 9) */
#grade-unidades thead th {
  background: #F3EDF9; color: var(--roxo); font-size: 9px;
  border-bottom: 1.5px solid var(--roxo-claro2);
}
#grade-unidades tr:nth-child(even) td { background: transparent; }
#grade-unidades td { border-bottom: 1px solid #F1EEF5; }

/* item 26: com a tarja de rascunho presente, o painel flutuante desce */
.tarja-ras:not(.leve):not(.erro) ~ .conteudo .painel-vivo { top: 104px; }
.tarja-ras.leve ~ .conteudo .painel-vivo,
.tarja-ras.erro ~ .conteudo .painel-vivo { top: 100px; }

/* ===== T2: régua de cards (item 22) ===== */
.regua-cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
  margin: 16px 0 26px;
}
.card-regua {
  position: relative; background: var(--branco); border: 1px solid var(--linha);
  border-top: 3px solid var(--roxo); padding: 14px 16px 12px;
  transition: transform .15s ease, box-shadow .15s ease;
}
.card-regua:hover {
  transform: translateY(-3px); box-shadow: 0 8px 24px rgba(42,18,64,.14);
}
.card-regua .rot {
  font-family: var(--serif); font-weight: 600; font-size: 9.5px;
  letter-spacing: .08em; text-transform: uppercase; color: var(--cinza);
  padding-right: 24px;
}
.card-regua .val {
  font-family: var(--serif); font-weight: 700; font-size: 24px;
  color: var(--roxo-escuro); margin: 3px 0 2px;
  transition: color .15s ease;
}
.card-regua:hover .val { color: var(--roxo); }
.card-regua .sub { font-size: 11px; color: var(--cinza); }
.card-regua .sub.bom { color: var(--verde); }
.card-regua .sub.atencao { color: var(--coral); }
.card-regua .sub.critico { color: #C0392B; font-weight: 600; }
.ic-info {
  position: absolute; top: 10px; right: 10px; border: none; background: none;
  color: var(--cinza-azul); cursor: pointer; padding: 3px; border-radius: 50%;
  line-height: 0;
}
.ic-info:hover { color: var(--roxo); background: var(--fundo); }
.painel-info {
  position: absolute; top: 34px; right: 8px; z-index: 45; width: 290px;
  background: #fff; border: 1px solid var(--linha); border-radius: 8px;
  box-shadow: 0 10px 30px rgba(42,18,64,.2); padding: 11px 13px;
  font-size: 11.5px; line-height: 1.5; color: var(--texto);
}
.painel-info.fechado { display: none; }

/* item 25: mercado na moldura, títulos centralizados */
#grade-mercado { min-width: 640px; }
#grade-mercado thead th, #grade-mercado tr:first-child th { text-align: center; }
.aviso-crn { color: var(--coral); }
.aviso-crn.ativa { color: var(--cinza-azul); }

/* ===== capa: modos de exibição (item 28) e arrastar (item 27) ===== */
.fechado { display: none !important; }
.grade-obras.pequenos { grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; }
.grade-obras.pequenos .foto { height: 90px; }
.grade-obras.pequenos .foto img { height: 90px; }
.grade-obras.pequenos h2 { font-size: 12.5px; }
.grade-obras.pequenos .linha-vgv { font-size: 10px; }
.grade-obras.pequenos .rodape-card { display: none; }
.grade-obras.pequenos .corpo-card { padding: 8px 10px; }
.grade-obras.pequenos .badge { width: 20px; height: 20px; }
.grade-obras.pequenos .selo-foto { display: none; }
.lista-obras { margin-top: 4px; }
.lista-obras tr.linha-sistema { cursor: pointer; }
.lista-obras tr.linha-sistema:hover td { background: var(--fundo); }
.opcao-modo {
  padding: 7px 9px; font-size: 12.5px; border-radius: 5px; cursor: pointer;
}
.opcao-modo:hover { background: var(--fundo); }
.arrastavel { cursor: grab; }
.arrastavel.arrastando { opacity: .45; transform: scale(.97); cursor: grabbing; }

/* ===== F2f ===== */
/* 29: cards pequenos — ícones fora da imagem, à direita embaixo */
.grade-obras.pequenos .card-obra { position: relative; }
.grade-obras.pequenos .foto { position: static; }
.grade-obras.pequenos .badge-fase {
  top: auto; bottom: 7px; right: 7px; left: auto;
}
.grade-obras.pequenos .badge-cadeado {
  top: auto; bottom: 7px; right: 33px; left: auto;
}
.grade-obras.pequenos .menu-fase { top: auto; bottom: 28px; }
.grade-obras.pequenos .corpo-card { padding-right: 62px; }
/* 29: lista — situação com texto + ícones à direita */
.lista-obras .col-sit { min-width: 190px; }
.lista-obras td.col-sit {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
}
.lista-obras .sit-icones { display: inline-flex; gap: 7px; margin-left: auto; }
.lista-obras .mini-ic { display: inline-flex; }
.lista-obras .mini-ic svg { width: 14px; height: 14px; }
/* 33/34: somas do cronograma */
.tot-crn.inativa { color: var(--cinza-azul) !important; font-weight: 400 !important; }
.tot-crn.quase { color: #B8860B; }
/* 35: sufixo R$ no mercado */
.cel-rs { display: inline-flex; align-items: baseline; gap: 5px; width: 100%; }
.cel-rs .sufixo { font-family: var(--mono); font-size: 10px; color: var(--cinza-azul); }
/* 37: setinhas de reordenação das etapas */
.mv-linha {
  border: none; background: transparent; color: var(--cinza-azul);
  font-size: 11px; cursor: pointer; line-height: 1; padding: 2px 3px;
}
.mv-linha:hover { color: var(--roxo); }
.acoes-linha { white-space: nowrap; }

/* F2f-ajustes: CTAs 4.5/4.6 alinhadas e colunas padronizadas */
.quadrante-cta .interruptor { width: 236px; flex-shrink: 0; }
.quadrante-cta .rotulo-sw { flex: 1; }
.fluxo-full th.num:not(.ctot), .fluxo-full td.num:not(.ctot) { min-width: 84px; }

/* ===== T7 · linha do tempo ===== */
.tl-revisoes { position: relative; margin: 4px 0 26px; padding-left: 22px; }
.tl-revisoes::before {
  content: ''; position: absolute; left: 5px; top: 6px; bottom: 6px;
  width: 2px; background: var(--linha);
}
.tl-item { position: relative; padding: 7px 0; }
.tl-ponto {
  position: absolute; left: -22px; top: 13px; width: 12px; height: 12px;
  border-radius: 50%; background: var(--branco); border: 2.5px solid var(--cinza-azul);
}
.tl-item.vigente .tl-ponto { border-color: var(--roxo); background: var(--roxo); }
.tl-item.rascunho .tl-ponto { border-color: var(--coral); }
.tl-topo { display: flex; align-items: center; gap: 10px; }
.tl-topo b { font-family: var(--serif); font-size: 15px; color: var(--roxo-escuro); }
.tl-meta { font-size: 11px; color: var(--cinza); }
.sel-comp { display: flex; align-items: center; gap: 9px; margin-bottom: 12px;
  font-size: 12.5px; color: var(--cinza); }
.sel-comp select { width: auto; }
.card-nova.ativa {
  cursor: pointer; opacity: 1; color: var(--roxo);
  flex-direction: column; gap: 4px;
  border-color: var(--roxo-claro);
}
.card-nova.ativa:hover { border-color: var(--coral); color: var(--coral);
  text-decoration: none; box-shadow: none; transform: none; }
.card-nova .mais { font-size: 30px; line-height: 1; }

/* foto de capa: botão de câmera nos cards */
.card-obra .badge.bl { bottom: 10px; left: 10px; opacity: 0; transition: opacity .14s ease; }
.card-obra:hover .badge.bl { opacity: 1; }
.grade-obras.pequenos .badge-foto { display: none; }

/* ===== modal de enquadramento da foto de capa ===== */
.crop-fundo {
  position: fixed; inset: 0; z-index: 200; display: none;
  align-items: center; justify-content: center; background: rgba(42,18,64,.55);
}
.crop-fundo.aberto { display: flex; }
.crop-caixa {
  background: var(--branco); border-radius: 10px; padding: 18px 20px 16px;
  box-shadow: 0 18px 60px rgba(42,18,64,.4); width: 340px;
}
.crop-titulo {
  font-family: var(--serif); font-weight: 700; font-size: 14px;
  color: var(--roxo-escuro); margin-bottom: 12px;
}
.crop-area { display: flex; justify-content: center; background: #14101a;
  border-radius: 6px; padding: 14px; }
.crop-vista {
  position: relative; width: 264px; height: 330px; overflow: hidden;
  cursor: grab; touch-action: none;
  background: #C6C4CA;   /* item 82: preview igual ao export (sobra cinza) */
}
.crop-vista:active { cursor: grabbing; }
.crop-vista img {
  position: absolute; left: 0; top: 0; max-width: none; user-select: none;
}
.crop-moldura {
  position: absolute; inset: 0; pointer-events: none;
  border: 2px dashed var(--coral);
  box-shadow: 0 0 0 400px rgba(20,16,26,.55);
}
.crop-controles {
  display: flex; align-items: center; gap: 10px; margin: 13px 0 12px;
  font-size: 11px; color: var(--cinza);
}
.crop-controles input[type=range] { flex: 1; accent-color: var(--roxo); }
.crop-dica { color: var(--cinza-azul); font-size: 10px; }
.crop-acoes { display: flex; gap: 8px; }
.crop-mais-menos {
  width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--roxo);
  background: var(--branco); color: var(--roxo); font-size: 15px; line-height: 1;
  cursor: pointer; flex-shrink: 0; font-weight: 600;
}
.crop-mais-menos:hover { background: var(--roxo); color: #fff; }

/* ===== T5 · drivers (tornado) ===== */
.linha-drv { display: flex; align-items: center; gap: 12px; padding: 7px 0;
  border-top: 1px solid var(--fundo); }
.rot-drv { width: 190px; flex-shrink: 0; font-size: 12px; }
.trilho-drv {
  position: relative; flex: 1; height: 12px; background: var(--fundo);
  border-radius: 6px; overflow: hidden;
}
.faixa-drv {
  position: absolute; top: 0; bottom: 0; background: var(--roxo);
  opacity: .8; border-radius: 6px;
}
.amp-drv { width: 90px; flex-shrink: 0; text-align: right; font-size: 11.5px;
  color: var(--cinza); }

/* ===== rodada T5+ (itens 39-44) ===== */
/* 39 — histograma com hover */
.g-hist { position: relative; }
.g-hist .cap-hist { cursor: crosshair; }
.g-hist .b-hist.acesa { fill: var(--coral); opacity: 1; }
.tt-hist {
  position: absolute; z-index: 60; width: 220px;
  transform: translate(-50%, 0); pointer-events: none;
  background: #fff; border: 1px solid var(--linha); border-radius: 7px;
  box-shadow: 0 8px 24px rgba(42,18,64,.22); padding: 9px 11px;
}
.tt-hist .tt-titulo {
  font-size: 12px; font-weight: 700; color: var(--roxo-escuro);
  margin-bottom: 6px; white-space: nowrap;
}
.tt-hist .tt-linha {
  display: flex; justify-content: space-between; gap: 12px;
  font-size: 11.5px; color: var(--texto); padding: 1.5px 0;
}
.tt-hist .tt-linha span:first-child { color: var(--cinza); }
.tt-hist .tt-vsbase {
  margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--linha);
  font-size: 11px; color: var(--coral); font-family: var(--mono);
}

/* 40 — tornado estilo relatório */
.linha-tor { display: flex; align-items: center; gap: 10px; padding: 6px 0;
  border-bottom: 1px solid #F1EDF4; }
.linha-tor:last-child { border-bottom: none; }
.linha-tor .rot-drv { width: 170px; }
.val-tor { width: 64px; flex-shrink: 0; font-size: 11px; color: var(--cinza); }
.val-tor.esq { text-align: right; }
.val-tor.dir { text-align: left; }
.trilho-tor {
  position: relative; flex: 1; height: 18px; background: var(--fundo);
  border-radius: 3px; overflow: visible;
}
.seg-tor { position: absolute; top: 3px; bottom: 3px; border-radius: 2px; }
.seg-tor.coral { background: var(--coral); }
.seg-tor.roxo { background: var(--roxo); }
.eixo-tor {
  position: absolute; top: -4px; bottom: -4px; width: 2px; margin-left: -1px;
  background: var(--roxo-escuro); z-index: 1;
}

/* 40b — sensibilidade cruzada com mira */
.tab-mx { cursor: crosshair; max-width: 760px; }
.tab-mx .canto-mx { font-size: 10px; color: var(--cinza-azul); }
.tab-mx .cab-mx { transition: color .1s ease; }
.tab-mx .cel-mx { transition: box-shadow .1s ease; }
.tab-mx .cel-mx.mira-l,
.tab-mx .cel-mx.mira-c {
  background-image: linear-gradient(rgba(42,18,64,.14), rgba(42,18,64,.14));
}
.tab-mx .cel-mx.mira-l.mira-c:not(.alvo-mx) {
  background-image: linear-gradient(rgba(42,18,64,.22), rgba(42,18,64,.22));
}
.tab-mx .cel-mx.alvo-mx { box-shadow: inset 0 0 0 2px var(--coral); font-weight: 700; }
.tab-mx .cab-acesa { color: var(--coral) !important; }
.tab-mx .cel-base { box-shadow: inset 0 0 0 2px var(--roxo); font-weight: 700; }
.tab-mx .cel-base.alvo-mx { box-shadow: inset 0 0 0 2px var(--coral); }
.tab-mx .cel-neg { color: #C0392B; }

/* 43 — nota metodológica */
.nota-metod {
  margin-top: 22px; background: #fff; border: 1px solid var(--linha);
  border-left: 3px solid var(--roxo); border-radius: 7px; padding: 16px 20px;
}
.nota-metod .nm-titulo {
  font-size: 11.5px; font-weight: 700; letter-spacing: .08em;
  text-transform: uppercase; color: var(--roxo); margin: 14px 0 6px;
}
.nota-metod .nm-titulo:first-child { margin-top: 0; }
.nota-metod p { margin: 0; font-size: 12.5px; line-height: 1.65; color: var(--texto); }

/* 42 — olho de congelar + status no modo lista */
.lista-obras tr.congelada { opacity: .55; }
.lista-obras tr.congelada td { color: var(--cinza); }
.lista-obras tr.congelada b { color: var(--cinza); }
.lista-obras tr.congelada .mini-ic svg { filter: grayscale(1); }
.lista-obras tr.congelada .olho-cong .mini-ic svg { filter: none; }
.lista-obras .lista-badge {
  display: inline-flex; align-items: center; cursor: pointer;
}
.lista-obras .badge-fase.lista-badge { position: relative; }
.lista-obras .lista-badge .menu-fase { top: 20px; }
.olho-cong .mini-ic svg { stroke: var(--cinza-azul); }
.olho-cong:hover .mini-ic svg { stroke: var(--coral); }
.olho-cong.cortado { opacity: 1; }

/* ===== ajuste fino T5 (itens 46-51) ===== */
/* 48 — nota introdutória do Monte Carlo (item 57: alinhada à direita) */
.nota-intro {
  margin: 2px 0 16px; padding: 10px 14px;
  background: #F3EDF9; border-left: 3px solid var(--roxo);
  border-radius: 0 7px 7px 0; font-size: 12.5px; line-height: 1.6;
  color: var(--texto);
}

/* 46 — rótulo coral na caixinha do histograma */
.tt-hist .tt-rotulo {
  font-size: 11.5px; font-weight: 700; letter-spacing: .05em;
  text-transform: uppercase; color: var(--coral); margin-bottom: 2px;
}

/* 49 — tornado: subtítulo e rótulos da primeira barra */
.sub-tornado {
  margin: 0 0 2px; font-size: 12px; color: var(--cinza); font-style: italic;
}
.linha-tor.primeira { padding-top: 20px; }
.lab-tor {
  position: absolute; top: -16px; transform: translateX(-50%);
  font-family: var(--mono); font-size: 10px; font-weight: 700;
  white-space: nowrap;
}
.lab-tor.coral { color: var(--coral); }
.lab-tor.roxo { color: var(--roxo); }

/* 50 — matriz esticada, cabeçalhos por célula */
.tab-mx { width: 100%; max-width: none; }
.tab-mx .canto-mx { width: 110px; padding: 0; }
.tab-mx .cab-r {
  width: 110px; text-align: left; font-family: var(--mono);
  font-size: 11px; white-space: nowrap;
}
.tab-mx .cel-mx { padding: 9px 12px; font-size: 12.5px; }

/* 44 — objetivo de subseção (padrão relatório) */
.objetivo-sub {
  margin: -4px 0 12px; font-size: 12px; color: var(--roxo);
}
.objetivo-sub b { letter-spacing: .02em; }

/* 51 — botão-foguete */
.form-foguete { display: inline-block; }
.botao-foguete {
  position: relative; display: inline-flex; align-items: center; gap: 11px;
  padding: 13px 28px 13px 22px; border: none; border-radius: 999px;
  background: linear-gradient(180deg, #F58A7E, #EE7064 55%, #E15D50);
  color: #fff; font-family: var(--sans); font-size: 12.5px; font-weight: 700;
  letter-spacing: .09em; text-transform: uppercase; cursor: pointer;
  box-shadow: 0 4px 0 #C24A3E, 0 8px 20px rgba(238,112,100,.4);
  transition: transform .12s ease, box-shadow .12s ease;
}
.botao-foguete:hover {
  transform: translateY(-1px);
  box-shadow: 0 5px 0 #C24A3E, 0 10px 26px rgba(238,112,100,.55);
}
.botao-foguete:active,
.botao-foguete.lancando {
  transform: translateY(4px);
  box-shadow: 0 0 0 #C24A3E, inset 0 3px 9px rgba(90,20,10,.35);
}
.fog-ic { display: inline-flex; transition: transform .15s ease; }
.botao-foguete:hover .fog-ic { transform: rotate(-10deg) translateY(-1px); }
.fog-chama {
  opacity: 0; fill: #FFD9A0; stroke: #FFD9A0;
  transition: opacity .15s ease;
}
.botao-foguete:hover .fog-chama,
.botao-foguete.lancando .fog-chama { opacity: 1; }
.botao-foguete.lancando { animation: fog-pulsa 1.1s ease-in-out infinite; }
.botao-foguete.lancando .fog-ic {
  animation: fog-decola 1.5s cubic-bezier(.5, -.2, .8, .6) forwards;
}
.fog-rastro {
  position: absolute; left: 30px; top: 50%; width: 0;
  border-top: 2px dotted rgba(255,255,255,.85); opacity: 0;
  transform: rotate(-38deg); transform-origin: left center;
  pointer-events: none;
}
.botao-foguete.lancando .fog-rastro {
  animation: fog-rastro 1.5s ease-out forwards;
}
@keyframes fog-decola {
  0%   { transform: rotate(-10deg) translate(0, 0); opacity: 1; }
  70%  { opacity: 1; }
  100% { transform: rotate(-14deg) translate(46px, -58px); opacity: 0; }
}
@keyframes fog-rastro {
  0%   { width: 0; opacity: 0; }
  25%  { opacity: .9; }
  100% { width: 66px; opacity: 0; }
}
@keyframes fog-pulsa {
  0%, 100% { filter: brightness(1); }
  50%      { filter: brightness(1.12); }
}

/* ===== rodada 52-55 ===== */
/* 52 — direção da premissa em cada ponta do tornado */
.dir-tor {
  display: block; font-style: normal; font-family: var(--mono);
  font-size: 9.5px; font-weight: 700; line-height: 1.3;
}
.dir-tor.coral { color: var(--coral); }
.dir-tor.roxo { color: var(--roxo); }

/* 54 — foguetinho no menu lateral (T5), coral (item 58) */
.secao-link .fog-menu {
  margin-left: 6px; vertical-align: -1px; opacity: .85;
  color: var(--coral); stroke: var(--coral);
}
.secao-link .fog-menu path, .secao-link .fog-menu circle { stroke: var(--coral); }
.secao-link.ativa .fog-menu, .secao-link:hover .fog-menu { opacity: 1; }

/* 54 — nota introdutória com botão "Atualizar Monte Carlo" */
.nota-intro { display: flex; align-items: center; gap: 18px; }
.nota-intro p { margin: 0; flex: 1; }
.botao-atualizar-mc {
  flex-shrink: 0; display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 16px; border: 1.5px solid var(--coral); border-radius: 999px;
  background: #fff; color: var(--coral); font-family: var(--sans);
  font-size: 11px; font-weight: 700; letter-spacing: .07em;
  text-transform: uppercase; cursor: pointer; white-space: nowrap;
  transition: background .12s ease, color .12s ease, box-shadow .12s ease;
}
.botao-atualizar-mc:hover {
  background: var(--coral); color: #fff;
  box-shadow: 0 4px 14px rgba(238,112,100,.35);
}

/* item 63 — composição da receita */
.sub-fatia { font-size: 10px; color: var(--cinza); margin-top: 1px; }
.fatia-info td { color: var(--cinza); font-style: italic; border-top: 1px dashed var(--linha); }

/* ===== T8 · composição e identificação (item 64) ===== */
.grade-ident, .grade-coments {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 22px;
  max-width: 940px;
}
.grade-coments { grid-template-columns: 1fr; }
.campo-rel { display: flex; flex-direction: column; gap: 4px; }
.campo-rel > span {
  font-size: 11px; font-weight: 600; letter-spacing: .05em;
  text-transform: uppercase; color: var(--cinza);
}
.campo-rel > span em { font-style: normal; text-transform: none;
  font-weight: 400; color: var(--cinza-azul); }
.campo-rel textarea.ent { resize: vertical; font-family: var(--sans);
  font-size: 12.5px; line-height: 1.5; }
.linha-presets {
  display: flex; align-items: center; gap: 14px; margin: 0 0 10px;
  flex-wrap: wrap;
}
.preset-opc {
  display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px;
  cursor: pointer; padding: 5px 12px; border: 1px solid var(--linha);
  border-radius: 999px; background: #fff;
}
.preset-opc:has(input:checked) {
  border-color: var(--roxo); background: #F3EDF9; font-weight: 600;
}
.grade-secoes {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 18px;
  max-width: 940px;
}
.sec-opc {
  display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px;
  cursor: pointer; padding: 3px 0;
}
.sec-opc input { accent-color: var(--roxo); }
.bloco-nota {
  border: 1px solid var(--linha); border-left: 3px solid var(--roxo);
  border-radius: 0 7px 7px 0; padding: 10px 12px; margin-bottom: 10px;
  max-width: 940px; background: #fff;
}
.cab-nota { display: flex; gap: 8px; margin-bottom: 6px; }
.cab-nota input { flex: 1; font-weight: 600; }
.rm-nota {
  border: 1px solid var(--linha); background: #fff; color: var(--coral);
  border-radius: 6px; width: 28px; cursor: pointer; font-size: 15px;
}
.rm-nota:hover { background: var(--coral); color: #fff; }
.bloco-nota textarea { width: 100%; box-sizing: border-box; }

/* ===== T8 rodada 65-73 ===== */
/* 68 — núcleo com cadeado */
.sec-opc.nucleo { display: inline-flex; align-items: center; gap: 7px; }
.cadeado-sec {
  border: none; background: none; cursor: pointer; padding: 0;
  color: var(--cinza-azul); display: inline-flex;
}
.cadeado-sec:hover { color: var(--coral); }
.cadeado-sec.aberto { color: var(--coral); }
.cadeado-sec.aberto .haste { d: path("M8 11V7.5a4 4 0 0 1 7.6-1.4"); }
.sec-opc.nucleo.travada label {
  pointer-events: none; color: var(--cinza); opacity: .75;
}
.sec-opc.nucleo label { display: inline-flex; align-items: center; gap: 7px;
  cursor: pointer; }

/* 70 — bloco de personalização velado quando desligado */
#bloco-perso { transition: opacity .15s ease; }
#bloco-perso.velado-perso {
  opacity: .38; pointer-events: none; user-select: none;
  filter: grayscale(.6);
}

/* 67 — excluir relatório gerado */
.btn-excluir-rel {
  border: 1px solid var(--linha); background: #fff; color: var(--cinza);
  border-radius: 6px; padding: 5px 8px; cursor: pointer; vertical-align: middle;
}
.btn-excluir-rel:hover { background: var(--coral); border-color: var(--coral);
  color: #fff; }

/* ===== rodada 74-85 ===== */
/* 80/85 — lixeira da obra e promoção da vitrine, afastadas dos 3 ícones */
.lista-obras .lixeira-lista {
  display: inline-flex; align-items: center; margin-left: 34px;
}
.lista-obras .btn-promover { color: var(--verde); }
.lista-obras .btn-promover:hover { color: var(--roxo); }
.lista-obras .btn-promover svg { display: block; }
/* 84 — backup manual: só no modo lista, centralizado abaixo da última obra */
#backup-capa {
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  margin: 22px 0 8px;
}
#lista-capa.fechado + #backup-capa { display: none; }
#backup-capa .bk-ok {
  font-size: 11px; color: var(--verde); background: #EAF4EF;
  border: 1px solid #CBE5D8; border-radius: 6px; padding: 5px 12px;
}
#backup-capa .bk-erro {
  font-size: 11.5px; color: #B03A2E; background: #FBEEEC;
  border: 1px solid #F2D2CD; border-radius: 6px; padding: 5px 12px;
}

/* ===== COMERCIAL · C2 Parâmetros ===== */
.bloco-meta { margin-bottom: 4px; }
.cartao-meta {
  border: 1px solid var(--linha); border-top: 3px solid var(--roxo);
  border-radius: 10px; padding: 14px 18px; background: #fff;
}
.cartao-meta .rot {
  font: 600 10px/1.3 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .08em; color: var(--roxo);
}
.cartao-meta .sub-rot { color: var(--cinza); font-weight: 400; text-transform: none; letter-spacing: 0; }
.cartao-meta .val {
  font: 700 30px/1.15 Archivo, sans-serif; color: var(--roxo-escuro);
  margin: 6px 0 8px; transition: color .3s;
}
.cartao-meta .val.pulsa { color: var(--coral); }
.cartao-meta .linha-deriva {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
  font-size: 11px; color: var(--cinza-azul);
  border-top: 1px solid var(--linha); padding-top: 8px;
}
.cartao-meta .linha-deriva b { color: var(--roxo-escuro); font-weight: 600; }
#soma-faixas.neg { color: #B03A2E; }

/* ===== COMERCIAL · C3 Tabela de Vendas ===== */
.recon-tabela {
  position: sticky; top: 0; z-index: 5;
  display: flex; flex-wrap: wrap; gap: 6px 22px; align-items: center;
  padding: 9px 16px; margin-bottom: 16px;
  border: 1px solid var(--linha); border-left: 4px solid var(--verde);
  border-radius: 8px; background: #fff;
  font-size: 12px; color: var(--cinza-azul);
  box-shadow: 0 2px 8px rgba(42,18,64,.06);
}
.recon-tabela b { color: var(--roxo-escuro); font-family: 'IBM Plex Mono', monospace; }
.recon-tabela.fora { border-left-color: #B03A2E; }
.recon-tabela .selo-recon {
  margin-left: auto; font: 600 10px/1 Archivo, sans-serif;
  text-transform: uppercase; letter-spacing: .06em;
  padding: 4px 10px; border-radius: 20px;
  background: #EAF4EF; color: var(--verde);
}
.recon-tabela.fora .selo-recon { background: #FBEEEC; color: #B03A2E; }
.grade-coefs {
  display: grid; grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 14px; margin-bottom: 8px;
}
.bloco-coef {
  border: 1px solid var(--linha); border-radius: 8px; padding: 10px 12px;
  background: #fff;
}
.bloco-coef .rot-coef {
  font: 600 10px/1.3 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .08em; color: var(--roxo); margin-bottom: 7px;
}
.bloco-coef label {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px; font-size: 11.5px; color: var(--cinza-azul); margin-bottom: 5px;
}
.rolagem-tabela { overflow-x: auto; }
.tab-vendas { font-size: 11.5px; }
.tab-vendas .mini-sel { font-size: 11px; padding: 3px 4px; max-width: 108px; }
.tab-vendas .col-sel { width: 26px; }
.tab-vendas .th-sub {
  display: block; font: 400 9px/1.2 'IBM Plex Sans', sans-serif;
  text-transform: none; letter-spacing: 0; opacity: .75;
}
.tab-vendas .celula-final { white-space: nowrap; }
.tab-vendas .trava-final { vertical-align: middle; margin-left: 4px; }
.linha-permuta td { color: var(--cinza); background: #FAF9FB; }
.linha-permuta .perm-txt {
  font: 600 10px/1.3 Archivo, sans-serif; letter-spacing: .06em;
}
.painel-massa {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
  border: 1px dashed var(--linha); border-radius: 8px;
  padding: 12px 16px; background: #FBFAFC; font-size: 12px;
}
.painel-massa .nota-massa, .nota-massa {
  font-size: 11px; color: var(--cinza); max-width: 420px;
}
.mini-trava {
  display: inline-block; border: 1px solid var(--linha); border-radius: 3px;
  font-size: 9px; padding: 0 3px; color: var(--roxo);
}

/* ===== COMERCIAL · C5 Vendas & VGV ===== */
.grade-cards.g4 { grid-template-columns: repeat(4, minmax(160px, 1fr)); }
.quadro-espelho {
  display: grid; grid-template-columns: minmax(380px, 1.4fr) minmax(280px, 1fr);
  gap: 16px; align-items: start;
}
.espelho {
  border: 1px solid var(--linha); border-radius: 10px;
  padding: 14px 16px; background: #fff;
}
.linha-pav {
  display: grid; grid-template-columns: 76px 1fr;
  align-items: center; gap: 10px; padding: 5px 0;
  border-bottom: 1px dashed var(--linha);
}
.linha-pav:last-child { border-bottom: none; }
.rot-pav {
  font: 600 9.5px/1.2 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .05em; color: var(--cinza-azul); text-align: right;
}
.chips-pav { display: flex; flex-wrap: wrap; gap: 6px; }
.chip-un {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 1px;
  min-width: 52px; padding: 5px 7px;
  border-radius: 7px; border: 1.4px solid transparent;
  cursor: pointer; transition: transform .12s, box-shadow .12s;
  font-family: 'IBM Plex Mono', monospace;
}
.chip-un:hover { transform: translateY(-1px); box-shadow: 0 3px 8px rgba(42,18,64,.14); }
.chip-un.viva { border-color: var(--roxo-escuro); }
.chip-un .n-un { font: 600 12px/1.1 'IBM Plex Mono', monospace; }
.chip-un .t-un { font: 400 8px/1.1 'IBM Plex Sans', sans-serif; opacity: .8; }
.chip-un.disponivel { background: #EAF4EF; color: var(--verde); }
.chip-un.reservada  { background: #F0E9F7; color: var(--roxo); }
.chip-un.vendida    { background: #FCE8E4; color: #C9503F; }
.chip-un.permuta    { background: #F1F0F3; color: var(--cinza); cursor: default; }
.legenda-espelho {
  display: flex; gap: 18px; margin: 10px 2px 0;
  font-size: 11px; color: var(--cinza-azul);
}
.legenda-espelho .lg {
  display: inline-block; width: 11px; height: 11px; border-radius: 3px;
  vertical-align: -1px; margin-right: 5px;
}
.lg.disponivel { background: #BFE0CE; }
.lg.reservada  { background: #C9AEE4; }
.lg.vendida    { background: #F5B9AE; }
.lg.permuta    { background: #DEDCE2; }
.painel-un {
  border: 1px solid var(--linha); border-top: 3px solid var(--roxo);
  border-radius: 10px; padding: 12px 16px 14px; background: #fff;
  position: sticky; top: 12px;
}
.painel-un .vazio-un { font-size: 12px; color: var(--cinza); padding: 10px 0 6px; }
.painel-un .titulo-un {
  font: 700 17px/1.2 Archivo, sans-serif; color: var(--roxo-escuro);
  margin: 6px 0 4px; display: flex; align-items: center; gap: 8px;
}
.selo-un {
  font: 600 9px/1 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .06em; padding: 4px 9px; border-radius: 20px;
}
.selo-un.disponivel { background: #EAF4EF; color: var(--verde); }
.selo-un.reservada  { background: #F0E9F7; color: var(--roxo); }
.selo-un.vendida    { background: #FCE8E4; color: #C9503F; }
.selo-un.permuta    { background: #F1F0F3; color: var(--cinza); }
.kv-un { font-size: 11.5px; color: var(--cinza-azul); margin: 3px 0 9px; }
.form-un { border-top: 1px solid var(--linha); padding-top: 10px; margin-top: 6px; }
.form-un .grade-un {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8px 10px;
  margin-bottom: 10px;
}
.form-un label {
  display: flex; flex-direction: column; gap: 3px;
  font: 600 9.5px/1.3 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .05em; color: var(--cinza-azul);
}
.form-un .ent { font-size: 12px; padding: 5px 8px; }
.grade-venda {
  display: grid; grid-template-columns: repeat(4, minmax(170px, 1fr));
  gap: 12px 16px; max-width: 1040px; margin-bottom: 12px;
}
.grade-venda label {
  display: flex; flex-direction: column; gap: 4px;
  font: 600 10px/1.3 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .06em; color: var(--cinza-azul);
}
.rodape-venda { display: flex; align-items: center; gap: 14px; }
.linha-distrato td { color: #B03A2E; background: #FDF6F5; }
tr.faixa-viva td { background: #F7F3FB; }
.bloco-ritmo { max-width: 760px; }
.cab-ritmo {
  display: flex; align-items: center; gap: 18px;
  font-size: 11px; color: var(--cinza-azul); margin-bottom: 6px;
}
.cab-ritmo .lg-linha {
  display: inline-block; width: 18px; height: 0;
  border-top: 2.4px solid var(--roxo); vertical-align: 3px; margin-right: 6px;
}
.cab-ritmo .lg-linha.prev { border-top: 2px dashed #C9AEE4; }
.cab-ritmo .tt-ritmo { margin-left: auto; color: var(--roxo-escuro); font-weight: 600; }

/* ===== COMERCIAL · C4 Propostas ===== */
.dobra-comprador { margin: 4px 0 14px; }
.dobra-comprador summary {
  font-size: 11.5px; color: var(--roxo); cursor: pointer;
  padding: 4px 0; user-select: none;
}
.fluxo-prop {
  border: 1px solid var(--linha); border-radius: 10px;
  padding: 12px 16px 14px; background: #fff; margin-top: 6px;
}
.cab-fluxo {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; margin-bottom: 8px;
}
.tab-fluxo { max-width: 640px; }
.tab-fluxo .cal-fx {
  font: 400 10.5px/1.3 'IBM Plex Mono', monospace; color: var(--cinza);
}
.linha-balao.fechado { display: none; }
.aviso-fluxo { font-size: 11px; color: #B03A2E; margin-left: 12px; }
.grade-resultado {
  display: grid; grid-template-columns: minmax(380px, 1.1fr) minmax(340px, 1fr);
  gap: 18px; align-items: start;
}
.tab-resultado td:first-child { color: var(--cinza-azul); font-size: 11.5px; }
.tab-resultado .linha-forte td {
  font-weight: 700; color: var(--roxo-escuro);
  border-top: 2px solid var(--roxo); background: #FBFAFC;
}
.tab-testes .res-teste {
  font: 700 10px/1 Archivo, sans-serif; letter-spacing: .05em;
  text-align: center; width: 86px;
}
.res-teste.passa { color: var(--verde); }
.res-teste.falha { color: #B03A2E; }
.veredito-prop {
  margin-top: 12px; padding: 13px 16px; border-radius: 9px;
  font: 700 13px/1.35 Archivo, sans-serif; letter-spacing: .02em;
  background: #F6F4F8; color: var(--cinza-azul);
  border-left: 4px solid var(--linha);
}
.veredito-prop.passa { background: #EAF4EF; color: var(--verde); border-left-color: var(--verde); }
.veredito-prop.falha { background: #FBEEEC; color: #B03A2E; border-left-color: #B03A2E; }
.veredito-prop.trava { background: #FBF3E2; color: #A8730A; border-left-color: #E0B75B; }
/* V164 — terceira cor do veredito (ATENÇÃO = alçada do comercial): os tons do 'trava' */
.veredito-prop.atencao { background: #FBF3E2; color: #A8730A; border-left-color: #E0B75B; }
.res-teste.trava { color: #A8730A; }
.contra-prop {
  margin-top: 12px; border: 1px dashed var(--linha); border-radius: 9px;
  padding: 10px 14px; background: #FBFAFC;
}
.selo-ver {
  font: 600 9.5px/1 Archivo, sans-serif; letter-spacing: .04em;
  padding: 3px 8px; border-radius: 12px; white-space: nowrap;
}
.selo-ver.passa { background: #EAF4EF; color: var(--verde); }
.selo-ver.falha { background: #FBEEEC; color: #B03A2E; }
.selo-ver.trava { background: #FBF3E2; color: #A8730A; }
.selo-ver.atencao { background: #FBF3E2; color: #A8730A; }            /* V164 */
/* V164 — justificativa para aprovar uma REPROVADA (só Administrador) */
.form-status .just-aprov { display: inline-flex; gap: 4px; margin-top: 4px; }
.form-status .just-aprov input { width: 200px; }
.form-status .just-aprov.fechado { display: none; }
.nota-status { font-size: 9.5px; color: #A8730A; margin-top: 2px; }
.assin-vencida { color: #B03A2E; text-decoration: line-through; }

/* ===== COMERCIAL · C1 Painel cockpit ===== */
.linha-relogios {
  display: grid; grid-template-columns: repeat(5, minmax(170px, 1fr));
  gap: 14px; align-items: stretch;
}
.relogio {
  border: 1px solid var(--linha); border-radius: 12px;
  padding: 12px 12px 10px; background: #fff; text-align: center;
  display: flex; flex-direction: column;
}
.relogio.destaque { border-top: 3px solid var(--roxo); }
.relogio .rot-rel {
  font: 600 10px/1.3 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .07em; color: var(--roxo); margin-bottom: 4px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.relogio .sub-rel {
  font-size: 10.5px; color: var(--cinza-azul); line-height: 1.45;
  margin-top: auto; padding-top: 6px; border-top: 1px dashed var(--linha);
  min-height: 34px;
}
.grade-metas {
  display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 14px;
}
.cartao-meta-camp {
  border: 1px solid var(--linha); border-top: 3px solid var(--roxo);
  border-radius: 10px; padding: 13px 16px 12px; background: #fff;
  transition: transform .15s ease, box-shadow .15s ease;
}
.cartao-meta-camp:hover {
  transform: translateY(-2px); box-shadow: 0 6px 16px rgba(42,18,64,.10);
}
.cartao-meta-camp .rot-coef { color: var(--roxo); }
.cartao-meta-camp p { font-size: 12.5px; color: var(--roxo-escuro);
  margin: 7px 0 0; line-height: 1.55; }
.cartao-meta-camp.bom { border-top-color: var(--verde); }
.cartao-meta-camp.bom .rot-coef { color: var(--verde); }
.cartao-meta-camp.ruim { border-top-color: #B03A2E; }
.cartao-meta-camp.ruim .rot-coef { color: #B03A2E; }
.cartao-meta-camp.velado-meta { opacity: .55; border-top-color: var(--linha); }
.cartao-meta-camp .mini-nota, .mini-nota {
  font-size: 10.5px; color: var(--cinza); margin-top: 5px;
}
.grade-painel-baixo {
  display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px;
  align-items: start;
}
.bloco-abertas {
  border: 1px solid var(--linha); border-radius: 10px;
  padding: 12px 16px 14px; background: #fff;
}

/* ===== COMERCIAL · C7 Corretores & Comissões ===== */
.grade-cadastro {
  display: grid; grid-template-columns: 1fr 1.2fr; gap: 16px;
  align-items: start;
}
.form-cad {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  border-top: 1px dashed var(--linha); padding-top: 10px;
}
.form-cad .ent { font-size: 12px; padding: 5px 8px; max-width: 170px; }
.bloco-lancar {
  border: 1px solid var(--linha); border-radius: 10px;
  padding: 14px 16px; background: #fff;
}
.opcoes-modo {
  display: flex; flex-wrap: wrap; gap: 14px; align-items: center;
  border-top: 1px dashed var(--linha); padding-top: 10px; margin-top: 4px;
  font-size: 12px; color: var(--cinza-azul);
}
.opcoes-modo label { display: flex; align-items: center; gap: 7px; }
.dobra-comissao {
  border: 1px solid var(--linha); border-radius: 9px;
  padding: 9px 14px; background: #fff; margin-bottom: 8px;
}
.dobra-comissao summary {
  cursor: pointer; font-size: 12.5px; color: var(--roxo-escuro);
  user-select: none;
}
.linha-paga td { color: var(--verde); background: #F4FAF7; }
.filtros-rk { display: flex; gap: 8px; margin-bottom: 12px; }
.chip-filtro {
  font: 600 10.5px/1 Archivo, sans-serif; letter-spacing: .05em;
  text-transform: uppercase; padding: 6px 14px; border-radius: 20px;
  border: 1px solid var(--linha); color: var(--cinza-azul);
  text-decoration: none;
}
.chip-filtro.vivo { background: var(--roxo); border-color: var(--roxo); color: #fff; }

/* ===== COMERCIAL · C6 Mercado ===== */
.corpo-emp { padding: 8px 2px 4px; }
.rot-fator {
  display: flex; align-items: center; gap: 6px;
  font: 600 9.5px/1.3 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .05em; color: var(--cinza-azul);
}
.sep-fator { width: 1px; height: 22px; background: var(--linha); }
.grade-entrada-mc {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 18px;
  margin-top: 10px;
}
.area-colar {
  width: 100%; font: 400 12px/1.5 'IBM Plex Mono', monospace;
  resize: vertical;
}

/* ===== COMERCIAL · C8 Relatório =====
   (varredura final) o C8 usa EXATAMENTE os componentes do T8 —
   .linha-presets/.preset-opc, .grade-secoes/.sec-opc e .bloco-nota —
   nenhuma redefinição aqui: seções iguais, componentes idênticos. */

/* ===== VARREDURA FINAL DO COMERCIAL ===== */
/* V29 — selo discreto de vigência (substitui os selos verdes chapados) */
.selo-vig {
  display: inline-flex; align-items: center; gap: 5px;
  font: 600 9px/1 Archivo, sans-serif; text-transform: uppercase;
  letter-spacing: .07em; color: var(--verde);
  border: 1px solid #BFE0CE; background: #fff;
  padding: 3px 8px; border-radius: 12px; vertical-align: 1px;
  white-space: nowrap;
}
.selo-vig::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--verde); flex: none;
}
/* V26 — relógios do cockpit com resposta ao passar o mouse */
.relogio { transition: transform .15s ease, box-shadow .15s ease,
  border-color .15s ease; }
.relogio:hover {
  transform: translateY(-2px); box-shadow: 0 6px 16px rgba(42,18,64,.13);
  border-color: #C9AEE4;
}
/* V6 — entrada com sufixo (%) alinhada à direita nas tabelas */
.ent-sufixo { display: inline-flex; align-items: center; gap: 5px;
  justify-content: flex-end; }
.ent-sufixo > span { color: var(--cinza); font-size: 11.5px; }
/* V14 — setas de ajuste fino dos critérios (C4) */
.ajuste-passo { display: inline-flex; flex-direction: column; gap: 2px;
  vertical-align: middle; margin-left: 7px; }
.ajuste-passo button {
  border: 1px solid var(--linha); background: #fff; color: var(--roxo);
  border-radius: 4px; font: 700 8px/1 sans-serif; padding: 1px 5px;
  cursor: pointer;
}
.ajuste-passo button:hover { background: var(--roxo); color: #fff;
  border-color: var(--roxo); }

/* ===== VARREDURA 2 (V37–V60) ===== */
/* V60 — relógios: ícone SVG legível, zona ativa acende no hover */
.relogio .rot-rel { display: flex; align-items: center; justify-content: center;
  gap: 6px; font-size: 11px; white-space: normal; }
.relogio .ic-rel { width: 18px; height: 18px; fill: none; stroke: currentColor;
  stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.relogio .zona { transition: opacity .2s ease, stroke-width .2s ease; }
.relogio:hover .zona { opacity: .35; }
.relogio:hover .zona.zona-ativa { opacity: 1; stroke-width: 17; }
/* V51g — o pulso do Simulador de VGV */
.ic-pulso { display: inline-flex; vertical-align: -2px; margin-right: 6px; color: var(--coral); }
.fog-menu.ic-pulso { margin-left: 6px; margin-right: 0; }
.svg-pulso .tr-pulso { stroke-dasharray: 60; stroke-dashoffset: 0; }
.svg-pulso.pulsando .tr-pulso { animation: pulso-corre 1.1s linear infinite; }
.svg-pulso.bateu { animation: pulso-bate .6s ease; }
@keyframes pulso-corre { from { stroke-dashoffset: 60; } to { stroke-dashoffset: -60; } }
@keyframes pulso-bate { 0% { transform: scale(1); } 40% { transform: scale(1.35); } 100% { transform: scale(1); } }
.botao #btn-mc, #btn-mc .svg-pulso { vertical-align: -3px; margin-right: 6px; color: #fff; }
/* V51 — simulador */
.quadrante-sim { border-top: 4px solid var(--coral); }
.grade-sim { display: block; }
.grade-sim > div:first-child { overflow-x: auto; }
.tab-sim { width: 100%; }
.col-sim { display: grid; grid-template-columns: 1fr 1fr;   /* V141: as duas alavancas lado a lado, largura toda */
  gap: 14px 18px; align-items: end; margin-top: 16px; border-top: 1px dashed var(--linha);
  padding-top: 12px; }
.col-sim .subtitulo-grade { grid-column: 1 / -1; margin: 0 !important; }
.col-sim .campo-rel { margin-bottom: 0; }
.col-sim .card-ind { margin-top: 0 !important; }
.tab-sim .ent { font-size: 11.5px; padding: 4px 6px; }
.tab-sim .passo-sim { border: 1px solid var(--linha); background: #fff; color: var(--roxo);
  border-radius: 4px; width: 20px; height: 22px; cursor: pointer; font-weight: 700; line-height: 1; }
.tab-sim .passo-sim:hover { background: var(--roxo); color: #fff; border-color: var(--roxo); }
.col-sim .campo-rel { margin-bottom: 10px; }
.efetivar-sim { margin-top: 16px; border-top: 1px dashed var(--linha); padding-top: 12px; }
.efetivar-sim .form-cad .ent { max-width: none; }
.mc-sim { margin-top: 16px; border: 1px solid var(--linha); border-left: 4px solid var(--roxo);
  border-radius: 8px; padding: 14px 16px; background: #FBFAFC; }
.linha-mc-par { display: flex; flex-wrap: wrap; gap: 16px; align-items: center;
  margin-top: 10px; border-top: 1px dashed var(--linha); padding-top: 10px; }
/* V37/V14 — atalhos da margem da campanha */
.atalhos-camp { display: inline-flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.atalhos-camp button { border: 1px solid var(--linha); background: #fff; color: var(--roxo);
  border-radius: 10px; font: 600 9.5px/1 'IBM Plex Mono', monospace; padding: 3px 7px; cursor: pointer; }
.atalhos-camp button:hover { background: var(--roxo); color: #fff; border-color: var(--roxo); }
.card-ind .ic-info { vertical-align: -3px; margin-left: 4px; }
.card-ind .painel-info { position: absolute; z-index: 5; left: 0; right: -60px; top: 100%;
  background: #fff; border: 1px solid var(--linha); border-top: 3px solid var(--roxo);
  border-radius: 8px; padding: 12px 14px; font-size: 11.5px; line-height: 1.5;
  box-shadow: 0 10px 30px rgba(42,18,64,.16); text-transform: none; letter-spacing: 0;
  color: var(--roxo-escuro); font-weight: 400; }
/* V41/V46 — leituras do analisador */
.tab-resultado .sub-td { display: block; font-size: 10px; color: var(--cinza); }
.tab-testes .sub-td { display: block; font-size: 9.5px; color: var(--cinza); text-transform: none; letter-spacing: 0; font-weight: 400; }
.tab-testes .th-sub { display: block; font-size: 9px; text-transform: none; letter-spacing: 0; opacity: .85; }
.tab-testes .linha-ref td { color: var(--cinza); font-size: 11px; background: #FBFAFC; }
.frase-equity { font-size: 11.5px; padding: 6px 10px !important; color: var(--roxo-escuro); }
.frase-equity.falta { background: #FBEEEC; color: #B03A2E; }
.frase-equity.sobra { background: #EAF4EF; color: var(--verde); }
.aviso-contrato { margin-top: 8px; padding: 8px 12px; border-radius: 8px; font-size: 11.5px;
  background: #FBF3E2; color: #A8730A; border-left: 4px solid #E0B75B; }
/* V47/V49 — contraproposta */
.linha-contra { display: flex; gap: 12px; align-items: center; justify-content: space-between;
  padding: 8px 0; border-top: 1px dashed var(--linha); }
.linha-contra .txt-contra { font-size: 12px; color: var(--roxo-escuro); line-height: 1.5; }
.linha-contra .acoes-contra { display: flex; flex-direction: column; gap: 6px; flex: none; }
.frame-contra { width: 100%; height: min(62vh, 620px); border: 1px solid var(--linha); border-radius: 6px; background: #fff; }
.acoes-modal { display: flex; gap: 10px; align-items: center; margin-top: 10px; flex-wrap: wrap; }
/* V50 — busca no cadastro */
.busca-cad { position: relative; display: flex; gap: 6px; align-items: center; }
.busca-cad input.ent { flex: 1; }
.busca-cad input.ok-cad { border-bottom-color: var(--verde); }
.btn-mais-cad { border: 1px solid var(--linha); background: #fff; color: var(--coral);
  border-radius: 6px; width: 28px; height: 28px; cursor: pointer; font-size: 16px; font-weight: 700; line-height: 1; flex: none; }
.btn-mais-cad:hover { background: var(--coral); color: #fff; border-color: var(--coral); }
.lista-cad { position: absolute; z-index: 6; top: 100%; left: 0; right: 34px; background: #fff;
  border: 1px solid var(--linha); border-radius: 0 0 8px 8px; box-shadow: 0 10px 30px rgba(42,18,64,.14);
  max-height: 220px; overflow-y: auto; }
.item-cad { padding: 7px 10px; font-size: 12px; cursor: pointer; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--roxo-escuro); border-bottom: 1px dashed var(--linha); }
.item-cad:hover { background: var(--fundo); }
.item-cad .num { color: var(--cinza); font-size: 10.5px; margin-left: 4px; }
.item-cad .sub { color: var(--cinza-azul); font-size: 10.5px; }
.item-cad.vazio { color: var(--cinza); cursor: default; font-style: italic; }
.ast { color: var(--coral); font-weight: 700; }
/* 📎 anexo confirmado (V54b) */
.rot-anexo { cursor: pointer; }
.clipe-anexo { font-size: 11.5px; color: var(--verde); margin-left: 6px; }
/* V54 — três opções da C6 */
.tres-opcoes { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 16px; margin-top: 14px; align-items: start; }
.opcao-mc { border: 1px solid var(--linha); border-radius: 10px; padding: 12px 14px; background: #fff; }
.opcao-mc.com-previa { border-color: var(--coral); }
.cab-opcao { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.cab-opcao .n-opcao { background: var(--roxo); color: #fff; font: 700 12px/1 Archivo, sans-serif;
  border-radius: 6px; padding: 6px 8px; flex: none; }
.cab-opcao b { display: block; font-size: 13px; color: var(--roxo-escuro); }
.cab-opcao span:not(.n-opcao) { font-size: 11px; color: var(--cinza); }
.grade-mc .ent { font-size: 12px; padding: 4px 6px; }
.grade-mc td { padding: 3px 4px; }
/* V55–V58 — C7 */
.ferr-cad { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; border-top: 1px dashed var(--linha); padding-top: 10px; }
.btn-xls svg { vertical-align: -3px; margin-right: 4px; }
.grade-formas { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: 12px; margin: 12px 18px; }
.card-forma { border: 1px solid var(--linha); border-top: 3px solid var(--roxo); border-radius: 10px; padding: 12px 14px; background: #fff; }
.cab-forma { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 12.5px; color: var(--roxo-escuro); }
.cab-forma .num { color: var(--cinza); font-size: 10.5px; }
.regra-forma { font-size: 11.5px; color: var(--cinza-azul); margin: 6px 0 8px; line-height: 1.5; }
.regra-forma .mini-nota { display: block; }
.cal-forma { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; font: 600 9.5px/1 'IBM Plex Mono', monospace; color: var(--roxo); margin-bottom: 6px; }
.cal-forma span { background: #F0E9F7; border-radius: 4px; padding: 4px 6px; }
.cal-forma i { display: inline-block; width: 14px; height: 0; border-top: 2px dashed #C9AEE4; }
.destaque-pct { font-size: 20px !important; font-weight: 700; color: var(--coral); border-bottom: 2px solid var(--coral) !important; }
.destaque-pct.pulsa { animation: pulso-bate .6s ease; }
.nota-especial { position: fixed; right: 26px; bottom: 26px; z-index: 40; max-width: 380px;
  background: #FBF3E2; border: 1px solid #E0B75B; border-left: 5px solid #A8730A; border-radius: 10px;
  padding: 14px 40px 14px 16px; font-size: 12.5px; color: #6B4E0A; box-shadow: 0 14px 40px rgba(42,18,64,.22); line-height: 1.5; }
.nota-especial.atencao { animation: pulso-bate .6s ease; }
.nota-especial .fechar-nota { position: absolute; top: 6px; right: 8px; border: none; background: transparent; font-size: 20px; color: #A8730A; cursor: pointer; }
.chip-det { display: inline-block; font: 500 10px/1 'IBM Plex Mono', monospace; background: #F0E9F7; color: var(--roxo);
  border-radius: 4px; padding: 3px 6px; margin: 2px 3px 2px 0; }
.chip-det.pago { background: #EAF4EF; color: var(--verde); }
.filtros-rk .chip-filtro { cursor: pointer; background: #fff; }
#form-forma .fm[hidden] { display: none !important; }
.so-corretor[hidden], .so-imob[hidden] { display: none !important; }
#bloco-pers.velado-perso, #bloco-perso-com.velado-perso { opacity: .38; pointer-events: none; user-select: none; filter: grayscale(.6); }
#bloco-pers, #bloco-perso-com { transition: opacity .15s ease; }
/* ⚙ configurações globais */
.config-wrap { max-width: 1180px; margin: 0 auto; padding: 26px 32px 60px; }

/* =====================================================================
   AJUSTES FINOS PÓS-VARREDURA 2 (V61–V67) — 03/09/2026
   ===================================================================== */
/* melhoria geral: botão de contorno ganha hover (antes não reagia) e transição */
.botao { transition: background .15s ease, color .15s ease, box-shadow .15s ease, transform .12s ease; }
.botao.contorno:hover { background: var(--roxo); color: var(--branco); box-shadow: inset 0 0 0 1.5px var(--roxo); }
.botao:active { transform: translateY(1px); }
.btn-excluir-rel.btn-reabrir { color: var(--roxo); display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.btn-excluir-rel.btn-reabrir:hover { background: var(--roxo); color: var(--branco); border-color: var(--roxo); }

/* V61 — C1 · 1.3 propostas em análise em toda a largura */
.cab-abertas { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.tab-abertas td, .tab-abertas th { white-space: nowrap; }
.tab-abertas td:nth-child(4), .tab-abertas td:nth-child(5) { white-space: normal; }

/* V62/V64 — C2 · 2.2 a alavanca num cartão só, campo amarelo (métrica) */
.cartao-meta-larga {
  display: grid; grid-template-columns: minmax(300px, 1fr) minmax(0, 1.7fr);
  gap: 0 34px; align-items: start; padding: 18px 22px 16px;
  border-top: 3px solid var(--roxo); transition: border-color .2s ease;
}
.cartao-meta-larga.alterada { border-top-color: #E0B75B; }
.meta-alvo { border-right: 1px dashed var(--linha); padding-right: 30px; align-self: stretch; }
.meta-alvo .rot { margin-bottom: 8px; }
.ent-alvo { align-items: baseline; }
.ent-alvo > span { font-size: 16px; color: var(--cinza-azul); }
input.ent.ent-meta {
  background: #FFFCF0; border-bottom: 2px solid #EBDFB4; font-size: 26px; font-weight: 600;
  padding: 4px 10px; max-width: 150px; color: var(--roxo-escuro); border-radius: 4px 4px 0 0;
}
input.ent.ent-meta:focus { background: #FFF8DC; border-bottom-color: var(--roxo); }
.estado-alvo { margin-top: 8px; font-size: 11.5px; min-height: 16px; }
.estado-alvo .gravada { color: var(--cinza-azul); }
.estado-alvo .pendente { color: #A8730A; }
.estado-alvo .fechado { display: none; }
.meta-alvo .nota-campo { margin-top: 8px; line-height: 1.45; }
.btn-salvar-alvo { margin-top: 12px; }
.meta-nivel .val { margin-top: 2px; }
.rodape-salvar { display: flex; align-items: center; gap: 14px; margin: 26px 0 8px; }

/* V63 — 2.3 e 2.5 em meia largura com o gráfico ao lado (padrão 4.3 da viabilidade) */
.grade-c2 { margin-top: 14px; margin-bottom: 4px; }
.grade-c2 .quadrante { display: flex; flex-direction: column; min-width: 0; }
.grade-c2 .quadrante .bloco-grafico { flex: 1; }
.tab-c2 { width: 100%; }
.tab-c2 .ent-sufixo { justify-content: flex-end; }
.svg-c2 { display: block; max-height: 300px; }
.modal-conteudo .svg-c2 { max-height: 72vh; }
.grade-dinheiro { margin-top: 12px; }
.grade-dinheiro .card-ind .val { font-size: 21px; }
.card-entrada { border-top-color: #E0B75B; }
.card-entrada .ent-sufixo { margin-top: 4px; }
.card-entrada input.ent.ent-meta { font-size: 21px; max-width: 120px; padding: 3px 8px; }
.grade-dinheiro .card-ind .nota label { color: var(--roxo); cursor: pointer; }

/* V65 — C3 · 3.6 e 3.7 na mesma largura */
.tab-larga-c3 { width: 100%; }

/* V66 — C4 · 4.2 identificação num cartão alinhado ao fluxo, asterisco inline */
.bloco-ident { margin-bottom: 12px; }
.grade-ident { max-width: none; gap: 16px 28px; margin-bottom: 8px; }
.grade-ident label > span:first-child { display: block; }
.grade-ident label > span:first-child .ast { margin-left: 1px; }
.grade-ident .busca-cad { margin-top: 0; }
.dobra-comprador { margin: 0 0 14px; }

/* V67 — o fluxo da proposta no padrão do 4.5 da viabilidade (contorno coral) */
.quadrante.fluxo-prop { border-radius: 0; margin-top: 0; padding: 12px 16px 14px; }
.cab-fluxo { margin-bottom: 10px; }
.cab-fluxo .subsecao .traco { background: var(--coral); }
.acoes-fluxo { display: flex; flex-direction: column; gap: 6px; flex: none; width: 300px; }
.acoes-fluxo .botao { width: 100%; text-align: center; }
.tab-fluxo { max-width: none; width: 100%; }
.tab-fluxo th:first-child, .tab-fluxo td:first-child { width: 22%; }
.tab-fluxo input.ent { width: 100%; max-width: 220px; }
.tab-fluxo input.in-qtd { max-width: 64px; }
.tab-fluxo input.in-mes[type=month] { max-width: 200px; min-width: 176px; font-size: 12.5px; padding-right: 4px; }
.tab-fluxo .cal-fx { width: 18%; }
.linha-chaves td { background: #FBFAFC; }
.rodape-fluxo { display: flex; align-items: center; gap: 12px; margin-top: 10px; }
.aviso-fluxo { margin-left: 0; }

/* 4.3 — dois painéis lado a lado, mesma altura visual */
.grade-resultado { grid-template-columns: minmax(380px, 1fr) minmax(380px, 1fr); }
.grade-resultado .quadrante { min-width: 0; }
.tab-resultado, .tab-testes { width: 100%; }
.linha-leitura.fechado { display: none; }
.tab-testes .res-teste { width: 78px; }
.tab-c2 td:first-child { white-space: nowrap; }
.tab-c2 .sub-td { display: block; font-size: 10px; color: var(--cinza); font-weight: 400; }
.tab-resultado td:first-child { width: 56%; }
.tab-testes td:first-child { width: 46%; }
.tab-testes td.num { white-space: nowrap; }
.tab-c2 th { white-space: normal; }
.tab-c2 td.num { padding-left: 6px; padding-right: 6px; }
.subsecao { scroll-margin-top: 64px; }

/* ===== AJUSTES FINOS 3 (V68–V84) — 03/09/2026 ===== */
/* V68 — 1.4 compacto: tabela e nota lado a lado, metade da altura */
.bloco-compacto { display: flex; align-items: center; gap: 26px; padding: 8px 16px 9px; }
.bloco-compacto .tab-ctr { width: auto; min-width: 440px; }
.bloco-compacto .mini-nota { margin: 0; max-width: 520px; }
/* V72 — tabela vendável necessária em destaque no 2.2 */
.meta-nivel .rot-vend { margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--linha); }
.meta-nivel .val-vend { font-size: 22px; color: var(--coral); }
/* V73 — leitura HOJE no 2.5 */
.hoje-c2 { margin-top: 12px; padding: 10px 12px 8px; border: 1px dashed #E0B75B; border-radius: 8px; background: #FFFCF0; }
.hoje-c2.fechado { display: none; }
.hoje-c2 .rot-coef { margin-bottom: 6px; }
.hoje-c2 .destaque-hoje { font-weight: 700; color: #A8730A; }
.hoje-c2 .nota-massa { text-transform: none; letter-spacing: 0; font-weight: 400; }
/* V75 — 3.5 personalização: três blocos na mesma linha-base */
.grade-perso { grid-template-columns: repeat(3, minmax(200px, 1fr)); align-items: start; }
.grade-perso .campo-rel > span:first-child { min-height: 14px; white-space: nowrap; }
.grade-perso .campo-rel > span:last-child { min-height: 32px; }
/* V76 — linha de totais com o visual do cabeçalho */
table.nau .tot-tabela th { background: var(--roxo); color: var(--branco); font-family: var(--mono); font-size: 11px;
  letter-spacing: 0; text-transform: none; padding: 6px 8px; white-space: nowrap; }
table.nau .tot-tabela th:nth-child(2) { font-family: var(--serif); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
table.nau .tot-tabela th.sub-th { text-align: left; padding-left: 14px; white-space: normal; }
.tot-tabela .sub-th span { font-size: 10px; opacity: .85; } .tot-tabela .sub-th b { color: #fff; opacity: 1; }
/* V78 — 4.2: mesma altura/linha-base para input, date e select */
.grade-ident input.ent, .grade-ident select.ent { height: 32px; box-sizing: border-box; }
.grade-ident .busca-cad input.ent { height: 32px; }
/* V83 — faixa congelada no simulador */
tr.faixa-travada td { background: #EEF0F7 !important; color: #4A4E69; }
tr.faixa-travada input.ent[readonly] { color: #4A4E69; border-bottom-style: dashed; background: transparent; }
.selo-vig.selo-trava { background: #E4E6F0; color: #4A4E69; }
.btn-trava-sim { color: var(--roxo); }
.btn-trava-sim.travada { color: #4A4E69; background: #E4E6F0; }
.btn-trava-sim:hover { background: var(--roxo); color: #fff; border-color: var(--roxo); }
/* V84 — histograma do simulador interativo (componente do T5) */
.g-hist-mc .b-hist { transition: opacity .12s ease; }
.g-hist-mc .b-hist.acesa { fill: var(--roxo) !important; opacity: 1 !important; }
tr.faixa-travada .sub-td { display: block; font-size: 9.5px; color: #6B6F8A; font-family: var(--sans); }
.painel-info { z-index: 55; }

/* ===== AJUSTES FINOS 4 (V89–V106) — 03/09/2026 ===== */
/* V94 — ações da forma de pagamento (editar + excluir) */
.acoes-forma { display: flex; gap: 6px; justify-content: flex-end; }
/* V92/V96/V97 — lançamentos: vencidas em vermelho, ações lado a lado */
.linha-vencida td { color: #B03A2E; background: #FDF3F2; }
.chip-det.vencido { background: #FBEEEC; color: #B03A2E; }
.acoes-lanc { display: flex; gap: 14px; align-items: center; margin: 6px 18px 12px; }
.btn-acao-lanc { width: auto; padding: 0 10px; display: inline-flex; align-items: center; gap: 5px; }
.btn-acao-lanc span { font-size: 10.5px; }
.lanc-quitada summary { color: var(--cinza-azul); }
#bloco-quitadas.fechado { display: none; }
.resumo-ajuste { border: 1px dashed var(--linha); border-radius: 8px; padding: 10px 14px; background: #FBFAFC;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 18px; }
.resumo-ajuste > div { display: flex; flex-direction: column; gap: 2px; font-size: 11px; color: var(--cinza-azul); }
.resumo-ajuste > div b { font-size: 14px; color: var(--roxo-escuro); }
.resumo-ajuste .avisos { grid-column: 1 / -1; font-size: 11.5px; color: #A8730A; line-height: 1.5; }
/* V98 — 7.4: interruptor e Excel com o mesmo comprimento, abaixo do título */
.acoes-74 { display: flex; flex-direction: column; gap: 8px; align-items: stretch; width: 300px; flex: none; margin-top: 22px; }
.acoes-74 .interruptor { width: 300px; }
.acoes-74 .botao.btn-xls { width: 100%; box-sizing: border-box; text-align: center; border-radius: 8px; padding: 9px 12px; }
.tab-fluxo-com { width: 100%; }
/* V99 — chip selecionado do ranking: roxo com texto branco */
.filtros-rk .chip-filtro.vivo { background: var(--roxo); color: #fff; border-color: var(--roxo); }
/* V95 — data certa velada até a forma certa */
#lab-data-certa.velado-perso { opacity: .45; }
/* V103 — 2.5: só a tabelinha "Hoje" */
.hoje-c2 .cal-c2 { color: var(--cinza); font-size: 10px; }
.hoje-c2 .tab-c2 td:first-child { white-space: nowrap; }
/* V105/V106 — INCC: quadros alinhados, série recolhível */
.grade-incc .quadrante { display: flex; flex-direction: column; }
.linha-incc { align-items: center; }
.area-colar-1 { height: 32px; min-height: 32px; resize: vertical; font-family: var(--mono); font-size: 12.5px; padding: 6px 8px; box-sizing: border-box; }
.linha-incc .botao.mini { height: 32px; box-sizing: border-box; }
/* V100 — quatro blocos na personalização (2 cores + 2 logos) */
.grade-perso-4 { grid-template-columns: repeat(4, minmax(180px, 1fr)); }
.hoje-c2 .tab-c2 td.num, .hoje-c2 .tab-c2 th { white-space: normal; }
.hoje-c2 .cal-c2 { display: block; }
.hoje-c2 .tab-c2 td { font-size: 12px; padding: 5px 6px; }
.tab-vendas td.celula-final { min-width: 96px; } .tab-vendas .in-final { min-width: 84px; }
table.nau.tab-vendas th, table.nau.tab-vendas td { padding-left: 7px; padding-right: 7px; }
.hoje-c2 .nw { white-space: nowrap; }
.tres-opcoes .cab-opcao { min-height: 50px; } /* V89 — os três botões da 6.3 na mesma linha */

/* ===== VIABILIDADE — rodada real (V107–V110) ===== */
.acoes-unid { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
.acoes-unid .sep-acoes { width: 1px; height: 22px; background: var(--linha); }
.opcao-velada { opacity: .45; }
.linha-publicar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 12px; }
.linha-publicar .rot-fator { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; }
/* ===== C5 SIMPLIFICADA (V85–V88, V117) ===== */
.card-obra { border-top-color: var(--coral); }
.card-obra.ok .val { color: var(--verde); } .card-obra.falta .val { color: #B03A2E; }
.card-ind .val-sub { font-size: 13px; font-weight: 600; color: var(--cinza-azul); }
.tab-obra { width: 100%; }
tr.linha-vendido td { background: #F4FAF7 !important; }
tr.linha-obra td { border-top: 2px solid var(--roxo); background: #FBFAFC !important; font-weight: 700; color: var(--roxo-escuro); }
.tab-obra .sub-td, .tab-sim .sub-td { display: block; font-size: 9.5px; color: var(--cinza); font-weight: 400; }
.linha-meta-sim { display: flex; gap: 18px; align-items: center; margin-top: 8px; font-size: 12px; color: var(--cinza-azul); flex-wrap: wrap; }
.linha-meta-sim #sim-meta-dif { font-weight: 700; }
/* V113/V114 — 2.3: reajuste ponderado × viabilidade; + faixa */
.ok-viab { color: var(--verde); }
#reaj-pond .sub-td { display: block; font-size: 9.5px; color: var(--cinza); font-weight: 400; }
.linha-soma-faixas td { border-top: 2px solid var(--roxo); }
/* ===== V119/V120 (04/09) ===== */
.nota-incc { font-size: 10.5px; color: var(--cinza); margin-top: 2px; }
.form-incc { display: inline; }
.sel-incc { font-size: 11px; padding: 3px 6px; max-width: 128px; border-radius: 4px; }
.sel-incc.com { color: var(--verde); border-color: var(--verde); }
.sel-incc.sem { color: var(--roxo); }
.sel-incc.ni { color: var(--cinza); }
.atalhos-camp button.vigor { border-color: var(--roxo); color: var(--roxo); font-weight: 700; }
/* V125 — textos da contraproposta */
.bloco-textos-contra { display: flex; align-items: center; gap: 12px; margin-top: 12px; padding-top: 10px; border-top: 1px dashed var(--linha); }
/* V158 — contraproposta manual: mesmo quadro .contra-prop da coluna dos testes, na coluna da leitura */
.contra-manual { margin-top: 10px; }
.contra-manual .txt-contra { font-family: 'IBM Plex Mono', monospace; font-size: 11.5px; }
.contra-manual .botao[disabled] { opacity: .45; cursor: not-allowed; }
#mc-nota.aviso-contra { color: #B03A2E; }
.linha-obs-tc { display: flex; align-items: center; gap: 6px; margin: 4px 0; }
.linha-obs-tc .ent { flex: 1; }

/* ===== V128 · LOGIN ===== */
.tela-login { display: flex; min-height: 100vh; background: var(--fundo); }
.login-painel {
  width: 480px; flex-shrink: 0; background: #fff; border-right: 1px solid var(--linha);
  padding: 56px 56px 32px; display: flex; flex-direction: column; box-sizing: border-box;
}
.login-marca { margin-bottom: 44px; }
.login-logo { width: 190px; display: block; }
.login-marca-sub { font: 500 10.5px/1.3 Archivo, var(--serif), sans-serif; text-transform: uppercase; letter-spacing: .18em; color: var(--roxo); margin-top: 6px; padding-left: 2px; }
.login-painel h1 + .login-form { margin-top: 26px; }
.login-painel h1 { font: 700 30px/1.1 Archivo, var(--serif), sans-serif; color: var(--roxo-escuro); margin: 0 0 8px; letter-spacing: -.01em; }
.login-sub { color: var(--cinza); font-size: 13px; margin: 0 0 30px; line-height: 1.5; }
.login-form { display: flex; flex-direction: column; gap: 18px; }
.login-campo { display: flex; flex-direction: column; gap: 5px; }
.login-campo > span { font: 600 10px/1.3 Archivo, var(--serif), sans-serif; text-transform: uppercase; letter-spacing: .08em; color: var(--cinza-azul); }
.login-campo .ent { width: 100%; font-size: 15px; padding: 9px 2px; border-bottom: 1.5px solid var(--linha); background: transparent; }
.login-campo .ent:focus { border-bottom-color: var(--roxo); }
.login-senha { position: relative; display: block; }
.login-senha .ent { padding-right: 34px; }
.ver-senha { position: absolute; right: 2px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: var(--cinza-azul); cursor: pointer; padding: 4px; display: inline-flex; }
.ver-senha.ativo, .ver-senha:hover { color: var(--roxo); }
.login-erro { background: #FDECEA; color: #B23A2E; border-left: 3px solid var(--coral); padding: 8px 12px; font-size: 12.5px; border-radius: 4px; }
.login-botao { margin-top: 6px; width: 100%; padding: 13px 16px; font-size: 13px; letter-spacing: .06em; background: var(--roxo); color: #fff; border: 0; border-radius: 6px; text-transform: uppercase; font-weight: 700; cursor: pointer; }
.login-botao:hover { background: var(--roxo-escuro); }
.login-voltar { font-size: 12px; color: var(--cinza); text-align: center; margin-top: 4px; }
.login-rodape { margin-top: auto; padding-top: 24px; font: 400 10px/1.4 'IBM Plex Mono', var(--mono), monospace; color: var(--cinza-azul); letter-spacing: .05em; text-transform: uppercase; }
.login-capa { flex: 1; position: relative; background-size: cover; background-position: center; min-height: 100vh; }
.login-marca-canto { position: absolute; right: 36px; bottom: 28px; width: 150px; opacity: .92; filter: drop-shadow(0 2px 8px rgba(0,0,0,.35)); }
@media (max-width: 900px) { .login-capa { display: none; } .login-painel { width: 100%; border-right: 0; } }

/* ===== V131 · menu do usuário ===== */
.menu-usuario { position: relative; display: flex; align-items: center; }
.usuario-topo { cursor: pointer; border: 0; gap: 2px; padding: 0 4px 0 0; width: auto; min-width: 30px; height: 30px; border-radius: 15px; }
.usuario-topo .chev-usuario { margin-left: 2px; opacity: .85; }
.painel-usuario { width: 260px; padding: 0; overflow: hidden; }
.cab-usuario { padding: 12px 15px; background: var(--fundo); border-bottom: 1px solid var(--linha); display: flex; flex-direction: column; gap: 2px; }
.cab-usuario b { font-family: var(--serif); font-size: 12.5px; color: var(--roxo-escuro); }
.cab-usuario span { font: 400 10.5px/1.3 'IBM Plex Mono', var(--mono), monospace; color: var(--cinza); }
.item-usuario { display: flex; justify-content: space-between; align-items: center; padding: 9px 15px; font-size: 12.5px; color: var(--texto); border-bottom: 1px solid var(--zebra); }
.item-usuario:hover { background: var(--fundo); text-decoration: none; }
.item-usuario.breve { color: var(--cinza-azul); cursor: default; }
.item-usuario.breve em { font-style: normal; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.item-usuario.sair { color: var(--coral); font-weight: 600; border-bottom: 0; }

/* ===== V132 · HUB ===== */
.hub { max-width: 1060px; margin: 0 auto; padding: 48px 24px 60px; }
.hub-msg { max-width: 720px; margin-bottom: 18px; }
.hub-cab h1 { font: 700 30px/1.15 Archivo, var(--serif), sans-serif; color: var(--roxo-escuro); margin: 4px 0 8px; }
.hub-cab .sub { color: var(--cinza); max-width: 620px; font-size: 13.5px; margin: 0 0 30px; }
.hub-cards { display: grid; grid-template-columns: repeat(2, minmax(300px, 1fr)); gap: 24px; }
.hub-card { position: relative; display: block; background: #fff; border: 1px solid var(--linha); border-radius: 12px; overflow: hidden; color: inherit; box-shadow: 0 6px 24px rgba(42,18,64,.06); transition: transform .12s ease, box-shadow .12s ease; }
.hub-card:hover { text-decoration: none; transform: translateY(-2px); box-shadow: 0 14px 34px rgba(42,18,64,.14); }
.hub-capa { height: 240px; background-size: cover; background-position: center; background-color: var(--roxo-escuro); }
.hub-capa.mosaico { display: grid; gap: 2px; background: var(--roxo-escuro); }
.hub-capa.mosaico span { display: block; background-size: cover; background-position: center; }
.hub-capa.mosaico.n0, .hub-capa.mosaico.n1 { grid-template-columns: 1fr; }
.hub-capa.mosaico.n2 { grid-template-columns: 1fr 1fr; }
.hub-capa.mosaico.n3 { grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; }
.hub-capa.mosaico.n3 span:first-child { grid-row: 1 / 3; }
.hub-capa.mosaico.n4 { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; }
.hub-txt { padding: 18px 22px 22px; border-top: 3px solid var(--roxo); }
.hub-card:nth-child(2) .hub-txt { border-top-color: var(--coral); }
.hub-rot { font: 600 10px/1.3 Archivo, var(--serif), sans-serif; text-transform: uppercase; letter-spacing: .1em; color: var(--roxo); }
.hub-tit { font: 700 20px/1.2 Archivo, var(--serif), sans-serif; color: var(--roxo-escuro); margin: 4px 0 6px; }
.hub-sub { color: var(--cinza); font-size: 12.5px; line-height: 1.5; }
.hub-seta { position: absolute; right: 22px; bottom: 22px; font-size: 20px; color: var(--roxo); }
@media (max-width: 760px) { .hub-cards { grid-template-columns: 1fr; } }

/* ===== V133 · ESTUDOS ===== */
.estudos { max-width: 1180px; margin: 0 auto; padding: 36px 24px 60px; }
.est-cab { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 20px; }
.est-cab h1 { font: 700 26px/1.15 Archivo, var(--serif), sans-serif; color: var(--roxo-escuro); margin: 4px 0 6px; }
.est-cab .sub { color: var(--cinza); max-width: 640px; font-size: 13px; margin: 0; }
.est-acoes-cab { display: flex; gap: 8px; flex-shrink: 0; }
.est-painel { margin-bottom: 18px; }
.est-filtros { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.est-filtros input[type=search] { min-width: 260px; }
.tab-estudos th a { color: inherit; }
.tab-estudos .th-ord.ativo a { color: var(--coral); }
.tab-estudos td { vertical-align: middle; }
.est-nome { font-weight: 600; color: var(--roxo-escuro); }
a.est-nome:hover { color: var(--roxo); }
tr.est-oculto td { color: var(--cinza-azul); }
tr.est-oculto .est-nome { color: var(--cinza-azul); font-weight: 500; }
tr.est-obra td { background: #F3FBF7; }
.est-acoes { white-space: nowrap; text-align: right; }
.est-acoes .btn-excluir-rel { margin-left: 4px; }
.btn-elevar { color: var(--verde) !important; }
.form-cli .mini-sel { max-width: 150px; font-size: 11.5px; padding: 3px 4px; }
.selo-sit { font: 600 10px/1.3 Archivo, var(--serif), sans-serif; text-transform: uppercase; letter-spacing: .06em; padding: 3px 8px; border-radius: 10px; background: var(--fundo); color: var(--cinza); }
.selo-sit.boa, .selo-sit.Boa { background: #E4F4EC; color: var(--verde); }
.selo-sit.minima, .selo-sit.Mínima, .selo-sit.aceitavel { background: #FBF3E2; color: #A8730A; }
.selo-sit.abaixo, .selo-sit.Abaixo, .selo-sit.ruim { background: #FDECEA; color: #B23A2E; }
.selo-cinza { font-size: 10.5px; color: var(--cinza-azul); text-transform: uppercase; letter-spacing: .06em; }
.selo-obra { font: 600 10.5px/1.3 Archivo, var(--serif), sans-serif; color: var(--verde); text-transform: uppercase; letter-spacing: .06em; }
.selo-erro { display: inline-block; margin-left: 6px; font-size: 9.5px; text-transform: uppercase; letter-spacing: .06em; background: #FDECEA; color: #B23A2E; padding: 1px 6px; border-radius: 8px; }

/* ===== V134 · elevar (menu de módulos do estudo) ===== */
.form-elevar { margin: 0; }
.modulo.elevar { width: 100%; background: none; border: 0; border-left: 3px solid transparent; color: #9FE0BE; cursor: pointer; text-align: left; font: inherit; font-family: var(--serif); font-weight: 600; font-size: 11.5px; letter-spacing: .03em; text-transform: uppercase; }
.modulo.elevar:hover { background: rgba(46,138,102,.18); border-left-color: var(--verde); }
.icone-mod.elevar { background: none; border: 0; color: #9FE0BE; cursor: pointer; }
.icone-mod.elevar:hover { background: rgba(46,138,102,.18); }
.est-filtros .ent { width: auto; flex: 0 1 auto; }
.est-filtros .sel { min-width: 180px; max-width: 240px; }

/* ===== V130 · administração ===== */
.abas-admin { display: flex; gap: 6px; flex-shrink: 0; }
.abas-admin .aba { padding: 8px 14px; border: 1px solid var(--linha); border-radius: 6px; background: #fff; color: var(--roxo); font: 600 11px/1.2 Archivo, var(--serif), sans-serif; text-transform: uppercase; letter-spacing: .06em; }
.abas-admin .aba.ativa { background: var(--roxo); color: #fff; border-color: var(--roxo); }
.abas-admin .aba:hover { text-decoration: none; }
.abas-admin .aba .num { opacity: .7; margin-left: 4px; }
.linha-edicao.fechado { display: none; }
.linha-edicao td { background: var(--fundo); }
.form-perm { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: flex-start; }
.perm-bloco { display: flex; flex-direction: column; gap: 6px; min-width: 200px; }
.perm-bloco .sec-opc { font-size: 12px; display: flex; gap: 6px; align-items: center; }
.perm-acoes { justify-content: flex-end; flex-direction: row; align-self: flex-end; gap: 8px; }
.lista-obras-perm { max-height: 160px; overflow: auto; border: 1px solid var(--linha); border-radius: 6px; padding: 6px 10px; background: #fff; display: flex; flex-direction: column; gap: 4px; min-width: 260px; }
.grade-2col { display: grid; grid-template-columns: 1.4fr 1fr; gap: 18px; }
.est-acoes .botao.mini { margin-left: 4px; }

/* ---- V141 · C5 simulador: meta / alavancas / efetivar distribuídos na largura ---- */
.linha-meta-sim { display: grid; grid-template-columns: auto auto 1fr; gap: 6px 22px; align-items: baseline; }
.linha-meta-sim .nota-massa { justify-self: start; max-width: 520px; }
.col-sim .campo-rel > span:first-child { min-height: 30px; display: flex; align-items: flex-end; flex-wrap: wrap; gap: 0 4px; }
.col-sim .ent-sufixo { gap: 8px; }
.col-sim .btn-alav { height: 30px; padding: 0 12px; white-space: nowrap; }
.linha-efetivar { display: grid; grid-template-columns: auto auto auto 1fr auto; gap: 8px 16px; align-items: center; }
.linha-efetivar .rot-coef { white-space: nowrap; font-size: 14px; color: var(--roxo-escuro); text-transform: none; letter-spacing: 0; }
.linha-efetivar .rot-fator { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; margin: 0; }
.linha-efetivar .ent { font-size: 12px; padding: 5px 8px; }
.linha-efetivar .nota-ef { width: 100%; min-width: 160px; }
.linha-efetivar .sel { min-width: 190px; }
.linha-efetivar #pct-efetivar { width: 72px; min-width: 72px; flex: none; }
.linha-efetivar .botao { white-space: nowrap; }
.linha-efetivar .expl-efetivar { grid-column: 1 / -1; margin: 0; }
@media (max-width: 1100px) {
  .linha-efetivar { grid-template-columns: 1fr 1fr; }
  .linha-efetivar .rot-coef { grid-column: 1 / -1; }
  .linha-meta-sim { grid-template-columns: auto auto; }
  .linha-meta-sim .nota-massa { grid-column: 1 / -1; justify-self: start; text-align: left; }
}

/* ---- V143/V147 · quadros da mesma linha alinhados pela base ---- */
.tres-opcoes, .grade-cadastro, .grade-incc, .quadro-espelho, .grade-resultado, .grade-painel-baixo { align-items: stretch; }
/* subgrid: a linha do cabeçalho é compartilhada pelos três quadros → o 1º elemento de cada corpo nasce na mesma altura */
.tres-opcoes { grid-template-rows: auto 1fr; }
.tres-opcoes .opcao-mc { display: grid; grid-row: span 2; grid-template-rows: subgrid; }
.tres-opcoes .cab-opcao { min-height: 0; margin-bottom: 10px; }
.tres-opcoes .corpo-opcao { min-width: 0; }
.grade-cadastro > .quadrante { display: flex; flex-direction: column; }

/* ---- V144/V146 · lápis de edição (cadastro 7.1, série do INCC) ---- */
.form-cad.editando { background: var(--fundo); border-radius: 8px; padding: 10px 12px; border-top: none; }
.btn-editar-cad { margin-right: 4px; }
.form-edit-incc { display: inline-flex; align-items: center; gap: 6px; }
.form-edit-incc .ent { font-size: 12px; padding: 3px 6px; }
.form-edit-incc .ok { color: var(--verde); font-weight: 700; }
.btn-editar-incc { margin-right: 4px; }
/* V142 · Monte Carlo em moeda de hoje */
.card-ind .nominal-mc { color: var(--roxo); margin-top: 3px; }
.aviso-ritmo p { margin: 2px 0 0; font-size: 12px; }

/* ---- V149 · clientes / incorporadoras ---- */
.chips-cliente { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 16px; }
.chips-cliente .chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 999px;
  border: 1px solid var(--linha); background: #fff; color: var(--roxo-escuro); font: 500 12px/1.2 'IBM Plex Sans', sans-serif;
  text-decoration: none; transition: border-color .15s, background .15s; }
.chips-cliente .chip .num { font-size: 11px; color: var(--cinza); }
.chips-cliente .chip:hover { border-color: var(--roxo); }
.chips-cliente .chip.ativo { background: var(--roxo); border-color: var(--roxo); color: #fff; }
.chips-cliente .chip.ativo .num { color: #E8DFF2; }
.chips-cliente .chip.alt { border-style: dashed; color: var(--roxo); }
.chips-cliente .chip.alt.ativo { border-style: solid; color: #fff; }
.chips-cliente .sep-chip { width: 1px; height: 20px; background: var(--linha); margin: 0 4px; }
.grupo-cliente { margin-bottom: 26px; }
.grupo-cliente-cab { display: flex; align-items: baseline; gap: 12px; margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--linha); }
.grupo-cliente-cab h2 { margin: 0; font: 700 16px/1.2 Archivo, sans-serif; color: var(--roxo-escuro); }
.grupo-cliente-cab h2 .num { font-size: 12px; color: var(--cinza); margin-left: 4px; }
.lista-clientes { display: flex; flex-direction: column; gap: 8px; }
.form-cliente-linha { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.form-cliente-linha .ent { font-size: 12px; padding: 5px 8px; }
.form-cliente-linha input[name=nome] { min-width: 180px; flex: 1 1 180px; }
.form-cliente-linha input[name=contato] { min-width: 140px; flex: 1 1 140px; }
.cor-cliente { display: inline-flex; align-items: center; gap: 6px; }
.cor-cliente input[type=color] { width: 30px; height: 28px; border: 1px solid var(--linha); border-radius: 6px; background: #fff; padding: 1px; cursor: pointer; }
.logo-cliente { display: inline-flex; align-items: center; gap: 8px; }
.logo-cliente img { height: 28px; max-width: 120px; padding: 3px 8px; border-radius: 4px; }

/* ---- V152 · Admin · Clientes: a lista ocupa a largura da tela e as colunas alinham por
        subgrid (V143/V147); o cadastro saiu da coluna da direita e virou botão + modal ---- */
.lista-clientes {
  display: grid;
  grid-template-columns: minmax(160px, 2fr) minmax(140px, 1.6fr) minmax(142px, auto)
                         minmax(308px, auto) minmax(136px, auto) auto;
  column-gap: 12px; row-gap: 0;
}
.cab-clientes, .lista-clientes .form-cliente-linha {
  grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: center;
}
.cab-clientes {
  font: 600 10px/1.2 var(--serif); letter-spacing: .08em; text-transform: uppercase;
  color: var(--cinza); padding-bottom: 6px; border-bottom: 1px solid var(--linha);
}
.lista-clientes .form-cliente-linha > .ent { width: 100%; min-width: 0; }
.lista-clientes .form-cliente-linha:last-child { border-bottom: none; padding-bottom: 2px; }
.cor-cliente .hex-cor-cli { width: 92px; }
/* vagas fixas da logo: img · remover · botão alinham entre as linhas */
.lista-clientes .logo-cliente { display: grid; grid-template-columns: 104px 74px auto; gap: 8px; align-items: center; }
.lista-clientes .logo-cliente img { max-width: 104px; }
.logo-vaga, .logo-rem { display: flex; align-items: center; min-width: 0; }
.logo-rem .sec-opc { font-size: 11px; display: flex; gap: 4px; align-items: center; }
.linha-visual-cli { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.nota-clientes { max-width: 820px; margin-top: 12px; }
.bloco-visual-cli { gap: 8px; }
@media (max-width: 1120px) {          /* abaixo disso a grade não cabe: volta à lista corrida */
  .lista-clientes { display: flex; flex-direction: column; gap: 8px; }
  .cab-clientes { display: none; }
  .lista-clientes .form-cliente-linha { display: flex; flex-wrap: wrap; gap: 8px; }
  .lista-clientes .logo-cliente { display: inline-flex; gap: 8px; }
}
/* V153 — ficha do cliente (CNPJ, e-mail, endereço): abre na linha inteira da grade, sob a linha do cliente */
.acoes-cli { display: inline-flex; gap: 6px; align-items: center; white-space: nowrap; }
.lista-clientes .ficha-cli { grid-column: 1 / -1; flex: 1 1 100%; }
.ficha-cli { display: grid; grid-template-columns: 200px minmax(220px, 1fr) minmax(220px, 2fr) minmax(140px, 1fr) minmax(160px, 1fr) 130px;
  gap: 8px 12px; padding: 8px 0 12px; }
.ficha-cli.fechado { display: none; }
.ficha-cli .campo-ficha { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ficha-cli .campo-ficha .ent { width: 100%; min-width: 0; font-size: 12px; padding: 5px 8px; }
.linha-endereco-cli { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 1120px) { .ficha-cli { grid-template-columns: repeat(2, minmax(160px, 1fr)); } }
.herda-cliente b { color: var(--roxo); }

/* ---- VS03 · Configurações globais: a linha de fora a fora FECHA cada item macro
        (antes ela aparecia só no item 1, logo abaixo do título, e era o topo dos
        cartões de indicador colados um no outro) ---- */
.fim-secao { border-bottom: 2px solid var(--roxo); margin-top: 24px; }
/* os quatro cartões do INCC voltam a se ler como cartões: a margem negativa de
   .card-ind (-10px de cada lado, do hover) comia o gap de 16 px e emendava os topos */
.config-wrap .grade-cards.cards-incc { gap: 44px; }

/* ---- VS04 · C4 4.4: proposta aprovada nasce travada e cinza; o cadeado destrava
        só nesta visita à tela (recarregou, trava de novo) ---- */
tr.prop-travada > td:not(:last-child) { opacity: .5; filter: grayscale(1); }
tr.prop-travada.destravada > td { opacity: 1; filter: none; }
tr.prop-travada .sel-status[disabled],
tr.prop-travada .form-excluir-prop button[disabled] { cursor: not-allowed; }
.btn-cadeado { color: var(--roxo); }
.btn-cadeado .ic-cad-aberto { display: none; }
tr.destravada .btn-cadeado { color: var(--coral); }
tr.destravada .btn-cadeado .ic-cad-fechado { display: none; }
tr.destravada .btn-cadeado .ic-cad-aberto { display: inline; }

/* ===== VENDAS (V166) — o portal do corretor: os mesmos componentes do Comercial,
        visual mais limpo (sem veredito, sem alçada, sem comissão) ===== */
.linha-relogios.tres { grid-template-columns: repeat(3, minmax(200px, 1fr)); }
.grade-contadores { margin-bottom: 6px; }
.grade-contadores .card-ind .val { font-size: 22px; }
.grade-contadores .card-ind .nota { min-height: 28px; }
/* contraproposta da incorporadora pendente: a linha inteira chama o corretor */
tr.prop-contra > td { background: #FDECEA; }
/* proposta que saiu de circulação pelo corretor (apagada, substituída por edição): fica, mas apagada */
tr.prop-fora > td { opacity: .55; filter: grayscale(1); }
tr.prop-travada.prop-contra > td:not(:last-child) { opacity: .85; filter: none; }
.btn-travavel[aria-disabled="true"] { opacity: .35; pointer-events: none; }
.botao.desligado { opacity: .45; pointer-events: none; }
.acoes-doc-novo { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 8px 0 0; }
.tab-minhas .botao.mini svg { vertical-align: -2px; margin-right: 3px; }
.tab-minhas .botao.mini + form { margin-left: 2px; }
.selo-sit.aceitavel { background: #FBF3E2; color: #A8730A; }
/* V3 — o deslizar de GERAR E ENVIAR ocupa a coluna dos testes da C4 */
.col-enviar { display: flex; flex-direction: column; justify-content: flex-start; gap: 14px; }
.col-enviar .interruptor { width: auto; }
.col-enviar .rotulo-sw { font-size: 12.5px; line-height: 1.35; }
.col-enviar .interruptor input:disabled + .trilho { opacity: .4; }
.col-enviar .resumo-envio { font-size: 12px; color: var(--cinza-azul); line-height: 1.5; }
.col-enviar .resumo-envio b { color: var(--roxo-escuro); }
.col-enviar .aviso-envio { font-size: 11.5px; color: #B03A2E; }
.tab-vendas-lista td.riscada, .tab-vendas-lista tr.vendida td { color: var(--cinza); text-decoration: line-through; }
.tab-vendas-lista tr.vendida td.num b { text-decoration: line-through; }
.tab-vendas-lista .selo-un { vertical-align: 1px; display: inline-block; text-decoration: none; }
.grade-calc { display: grid; grid-template-columns: minmax(320px, 1fr) minmax(380px, 1.3fr); gap: 16px; align-items: start; }
.grade-calc .quadrante { min-width: 0; }
.grade-calc .grade-venda { grid-template-columns: repeat(2, minmax(140px, 1fr)); max-width: none; }
.tab-calc td:first-child { color: var(--cinza-azul); font-size: 11.5px; }
.tab-calc .linha-forte td { font-weight: 700; color: var(--roxo-escuro); border-top: 1.5px solid var(--roxo); }
.seg-modo { display: inline-flex; border: 1px solid var(--linha); border-radius: 8px; overflow: hidden; }
.seg-modo button { border: 0; background: #fff; padding: 6px 12px; font: 600 10.5px/1.2 Archivo, sans-serif; text-transform: uppercase; letter-spacing: .06em; color: var(--cinza-azul); cursor: pointer; }
.seg-modo button.vigor { background: var(--roxo); color: #fff; }
.grade-rel-ven { display: grid; grid-template-columns: repeat(4, minmax(160px, 1fr)); gap: 16px; }
