/* "Conciliação de Fornecedores" (Utilitários) — .conc-* — só usado em conciliacao-fornecedores.html. Carrega perfis-acesso.css também, pra reaproveitar .pa-table/.pa-table-wrap/.pa-search/.status-pill (mesmo padrão de nao-conformidades.css/dashboard-contabil.css). */ .conc-header { display: flex; justify-content: space-between; align-items: flex-start; gap: var(--space-4); margin-bottom: var(--space-5); } .conc-header h2 { margin: 0 0 var(--space-1); } .conc-subtitle { color: var(--text-secondary); font-size: 0.9rem; margin: 0; max-width: 760px; } .conc-empty { color: var(--text-muted); font-style: italic; padding: var(--space-4); text-align: center; } .conc-num { text-align: right !important; white-space: nowrap; } /* .pa-table td:last-child (perfis-acesso.css) alinha a última coluna à direita; na tabela de fornecedores ela é a Situação, e numa célula de aviso com colspan ela é a única. */ .conc-table td:last-child, .pa-table td.conc-empty { text-align: left; } .pa-table td.conc-empty { text-align: center; } .conc-toolbar { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); flex-wrap: wrap; margin-bottom: var(--space-3); } .conc-toolbar .pa-search { margin-left: auto; } /* ---------------- Formulário de nova conciliação ---------------- */ .conc-form { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: var(--space-5); margin-bottom: var(--space-5); animation: pidFadeSlideUp 160ms ease-out; } .conc-form__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--space-3) var(--space-4); } .conc-form__empresa { margin: var(--space-1) 0 0; font-size: 0.82rem; font-weight: 600; color: var(--accent); min-height: 1.2em; } .conc-form__empresa.is-erro { color: var(--danger); } .conc-form__empresa.is-carregando { color: var(--text-muted); font-weight: 400; } .conc-form__hint { margin: var(--space-1) 0 0; font-size: 0.75rem; color: var(--text-muted); } .conc-file-field { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; } .conc-file-field__btn { display: inline-flex; align-items: center; gap: var(--space-2); cursor: pointer; } .conc-file-field__input { display: none; } .conc-file-field__name { font-size: 0.85rem; color: var(--text-secondary); } /* ---------------- Cabeçalho da empresa ---------------- */ .conc-voltar-btn { display: inline-flex; align-items: center; gap: var(--space-1); margin-bottom: var(--space-3); } .conc-empresa { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin-bottom: var(--space-4); } .conc-empresa .btn-outline { display: inline-flex; align-items: center; gap: var(--space-2); white-space: nowrap; } .conc-empresa__codigo { margin-right: var(--space-2); font-size: 0.75rem; font-weight: 700; color: var(--accent); letter-spacing: 0.04em; } .conc-empresa__nome { display: inline; margin: 0; font-size: 1.05rem; } .conc-empresa__meta { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-5); margin-top: 4px; font-size: 0.78rem; color: var(--text-secondary); } .conc-empresa__meta strong { color: var(--text-primary); font-weight: 600; } .conc-alertas-gerais { margin-bottom: var(--space-4); } .conc-filtro-alerta { font-size: 0.82rem; color: var(--text-secondary); margin: 0 0 var(--space-3); } .conc-filtro-alerta button { color: var(--accent); font-weight: 600; margin-left: var(--space-2); } /* ---------------- Faixa de indicadores ---------------- */ .conc-cards { margin-bottom: var(--space-3); } .conc-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.4fr); background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-md); overflow: hidden; } .conc-kpi, .conc-progresso { padding: var(--space-3) var(--space-4); display: flex; flex-direction: column; gap: 2px; text-align: left; font: inherit; color: inherit; background: none; border: 0; border-right: 1px solid var(--border-subtle); } .conc-progresso { border-right: 0; justify-content: center; gap: 6px; } button.conc-kpi { cursor: pointer; transition: background var(--transition-fast); } button.conc-kpi:hover { background: var(--card-bg-hover); } button.conc-kpi.is-active { box-shadow: inset 0 -2px 0 var(--accent); } .conc-kpi__rotulo { font-size: 0.72rem; color: var(--text-secondary); } .conc-kpi__valor { font-size: 1.35rem; font-weight: 700; line-height: 1.2; color: var(--text-primary); } .conc-kpi__detalhe { font-size: 0.72rem; color: var(--text-muted); } .conc-kpi--warning .conc-kpi__valor { color: var(--gold); } .conc-kpi--danger .conc-kpi__valor { color: var(--danger); } .conc-progresso__topo { display: flex; justify-content: space-between; font-size: 0.82rem; color: var(--text-secondary); } .conc-progresso__topo strong { color: var(--text-primary); } .conc-progresso__barra { height: 8px; border-radius: var(--radius-pill); background: var(--bg-surface-raised); overflow: hidden; } .conc-progresso__barra span { display: block; height: 100%; background: #2f9e6e; border-radius: var(--radius-pill); transition: width 0.3s ease; } /* Apontamentos menores em etiquetas clicáveis (filtram a tabela). */ .conc-tags { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin-top: var(--space-3); } .conc-tags__rotulo { font-size: 0.75rem; color: var(--text-muted); } .conc-tag { font-size: 0.75rem; padding: 3px 10px; border-radius: var(--radius-pill); border: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--text-secondary); transition: border-color var(--transition-fast), background var(--transition-fast); } .conc-tag strong { color: var(--text-primary); } .conc-tag--warning strong { color: var(--gold); } .conc-tag--danger strong { color: var(--danger); } .conc-tag--info strong { color: var(--accent); } .conc-tag:hover, .conc-tag.is-active { border-color: var(--accent); } .conc-tag.is-active { background: rgba(var(--accent-rgb), 0.12); } /* ---------------- Chips de filtro ---------------- */ .conc-chip-row { display: flex; flex-wrap: wrap; gap: var(--space-2); } .conc-chip { padding: 4px 12px; border-radius: var(--radius-pill); border: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--text-secondary); font-size: 0.8rem; font-weight: 600; transition: border-color var(--transition-fast), color var(--transition-fast), background var(--transition-fast); } .conc-chip:hover { color: var(--text-primary); } .conc-chip.is-active { border-color: var(--accent); color: var(--accent); background: rgba(var(--accent-rgb), 0.12); } .conc-chip__count { margin-left: 4px; font-weight: 700; opacity: 0.8; } /* ---------------- Tabela de fornecedores ---------------- */ .conc-table th[data-sort] { cursor: pointer; user-select: none; white-space: nowrap; } .conc-sort-icon { color: var(--text-muted); font-size: 0.75rem; } .conc-table th.is-sort-asc .conc-sort-icon, .conc-table th.is-sort-desc .conc-sort-icon { color: var(--accent); } .conc-expand-col { width: 32px; } .conc-row { cursor: pointer; } .conc-row.is-aberta td { background: var(--bg-surface-raised); } .conc-expand-btn { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: var(--radius-sm); color: var(--text-secondary); } .conc-expand-chevron { transition: transform var(--transition-fast); } .conc-row.is-aberta .conc-expand-chevron { transform: rotate(90deg); } .conc-conta-numero { font-variant-numeric: tabular-nums; color: var(--text-secondary); white-space: nowrap; } .conc-fornecedor__nome { font-weight: 600; } .conc-fornecedor__alerta { display: block; font-size: 0.75rem; color: var(--text-muted); margin-top: 2px; } .conc-valor { font-variant-numeric: tabular-nums; white-space: nowrap; } .conc-valor--devedor { color: var(--danger); } .conc-valor--zero { color: var(--text-muted); } .conc-valor--vencido { color: var(--gold); font-weight: 600; } .conc-status { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; } .conc-status svg { flex-shrink: 0; } .status-pill--ok { color: #2f9e6e; background: rgba(47, 158, 110, 0.14); } .status-pill--danger { color: var(--danger); background: rgba(var(--danger-rgb), 0.14); } .status-pill--warning { color: var(--gold); background: rgba(var(--gold-rgb), 0.18); } .status-pill--neutral { color: var(--text-secondary); background: var(--bg-surface-raised); } .status-pill--validada { color: var(--accent); background: rgba(var(--accent-rgb), 0.14); } /* ---------------- Detalhe expandido ---------------- */ .pa-table td.conc-detail-cell { background: var(--bg-surface-raised); padding: var(--space-4) var(--space-5); text-align: left; cursor: default; } /* Só a célula externa da linha de detalhe (`>`): sem isso a regra pegava também todas as células das sub-tabelas de lançamentos. */ .conc-detail-row:hover > td { background: var(--bg-surface-raised); } .conc-detail { display: flex; flex-direction: column; gap: var(--space-4); animation: pidFadeIn 140ms ease-out; } .conc-alertas { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; } .conc-alerta { display: flex; align-items: flex-start; gap: var(--space-2); font-size: 0.85rem; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: var(--bg-surface); border-left: 3px solid var(--border-subtle); color: var(--text-primary); } .conc-alerta--alta { border-left-color: var(--danger); } .conc-alerta--media { border-left-color: var(--gold); } .conc-alerta--baixa { border-left-color: var(--accent); } .conc-alerta__severidade { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding-top: 2px; min-width: 44px; } .conc-alerta--alta .conc-alerta__severidade { color: var(--danger); } .conc-alerta--media .conc-alerta__severidade { color: var(--gold); } .conc-alerta--baixa .conc-alerta__severidade { color: var(--accent); } .conc-detail__secao-titulo { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); flex-wrap: wrap; margin: 0 0 var(--space-2); } .conc-detail__secao-titulo h4 { margin: 0; font-size: 0.9rem; } .conc-detail__titulo-grupo { display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; } .conc-detail__acoes { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; } .conc-selecao-resumo { font-size: 0.8rem; color: var(--text-secondary); } .conc-selecao-resumo strong { color: var(--text-primary); } .conc-subtabela { width: 100%; border-collapse: collapse; background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); overflow: hidden; } .conc-subtabela th { text-align: left; font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-muted); padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border-subtle); } .conc-subtabela td { padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border-subtle); font-size: 0.82rem; color: var(--text-primary); vertical-align: top; } .conc-subtabela tr:last-child td { border-bottom: none; } /* As sub-tabelas ficam dentro da .pa-table de fornecedores, então `.pa-table tr:hover td` (perfis-acesso.css) casava com toda célula delas sempre que o mouse estava em qualquer ponto da linha de detalhe, clareando todos os lançamentos de uma vez. Estas três regras têm especificidade maior que aquela: fundo neutro por padrão, destaque só na linha sob o mouse, e seleção por último para vencer o hover. */ .pa-table .conc-subtabela tr td { background: transparent; } .pa-table .conc-subtabela tbody tr:hover td { background: var(--card-bg-hover); } .pa-table .conc-subtabela tr.is-selecionado td { background: rgba(var(--accent-rgb), 0.12); } .conc-subtabela__check { width: 28px; } /* Histórico e sugestão em uma linha só, cortados com reticências (texto completo no `title`), para a altura da linha não variar com a largura da tela (pedido do usuário). `max-width: 0` + largura em % faz a célula ceder espaço em vez de alargar a tabela, igual à coluna de fornecedor. */ .conc-subtabela td.conc-historico { max-width: 0; width: 30%; } .conc-historico__texto, .conc-historico__contrapartida { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .conc-historico__contrapartida { font-size: 0.72rem; color: var(--text-muted); } .conc-subtabela td.conc-situacao { max-width: 0; width: 34%; } .conc-subtabela td.conc-situacao .conc-sugestao { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* Conta saindo da lista por não caber mais no filtro (ex.: acabou de ser validada). `removerConta()` tira a linha ao fim da animação. */ .conc-table tbody tr.is-saindo { animation: pidConcSaida 160ms ease-in forwards; pointer-events: none; } @keyframes pidConcSaida { to { opacity: 0; } } /* Botão "i" no canto da barra do razão: abre o histórico de vinculações. */ .conc-info-btn { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; padding: 0; border: 1px solid var(--border-subtle); border-radius: 50%; background: transparent; color: var(--text-secondary); cursor: pointer; transition: color var(--transition-fast), border-color var(--transition-fast); } .conc-info-btn:hover, .conc-info-btn:focus-visible { color: var(--accent); border-color: rgba(var(--accent-rgb), 0.55); } .conc-info-btn:active { transform: scale(0.94); } /* Versão menor, na linha vinculada do razão, ao lado do "Desfazer". */ .conc-info-btn--linha { width: 20px; height: 20px; margin-left: 2px; vertical-align: middle; } .conc-info-btn--linha svg { width: 13px; height: 13px; } /* Modal do detalhe de um vínculo. */ .conc-vinculo-detalhe__criterio { margin: 0 0 var(--space-2); font-size: 0.78rem; color: var(--text-secondary); } .conc-vinculo-detalhe__totais { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--border-subtle); font-size: 0.8rem; color: var(--text-secondary); } .conc-vinculo-detalhe__totais strong { color: var(--text-primary); } /* Modal "Histórico de vinculações". */ .conc-historico-vinc { max-height: 60vh; overflow-y: auto; } .conc-historico-vinc__lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-3); } .conc-historico-vinc__item { border: 1px solid var(--border-subtle); border-left: 3px solid #2f9e6e; border-radius: var(--radius-sm); padding: var(--space-2) var(--space-3); } .conc-historico-vinc__item--acrescentou { border-left-color: var(--accent); } .conc-historico-vinc__item--desfez { border-left-color: var(--danger); } .conc-historico-vinc__cabecalho { display: flex; align-items: baseline; flex-wrap: wrap; gap: var(--space-2); font-size: 0.85rem; margin-bottom: var(--space-1); } .conc-historico-vinc__tipo { font-size: 0.78rem; color: var(--text-secondary); } .conc-historico-vinc__quem { margin-left: auto; font-size: 0.75rem; color: var(--text-muted); } .conc-historico-vinc__lancs { list-style: none; margin: 0; padding: 0; } /* seq. | data | natureza | histórico (+ contrapartida) | valor | "acrescentado" */ .conc-historico-vinc__lanc { display: grid; grid-template-columns: 90px 80px 64px minmax(0, 1fr) 100px auto; align-items: center; gap: var(--space-2); padding: 3px 0; font-size: 0.8rem; color: var(--text-secondary); } .conc-historico-vinc__lanc + .conc-historico-vinc__lanc { border-top: 1px solid var(--border-subtle); } /* `min-width: 0` para as reticências de histórico/contrapartida valerem dentro da coluna flexível do grid. */ .conc-historico-vinc__texto { min-width: 0; } .conc-historico-vinc__texto .conc-historico__texto { color: var(--text-primary); } .conc-historico-vinc__lanc.is-acrescentado { color: var(--text-primary); } .conc-historico-vinc__seq { font-weight: 600; color: var(--text-primary); } .conc-historico-vinc__novo { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; color: var(--accent); } .conc-historico-vinc__vazio { margin: var(--space-3) 0; font-size: 0.85rem; color: var(--text-muted); } /* Texto completo do que foi cortado acima, no visual do Portal (mesmo de `.dc-hover-tooltip__texto`). Criado por `pidConcMostraTooltip()`. */ .conc-tooltip { position: fixed; /* acima de `.modal-overlay` (100) e do modal de confirmação (150): também é usado no modal "Histórico de vinculações" */ z-index: 200; width: max-content; max-width: 420px; padding: var(--space-2) var(--space-3); background: var(--bg-surface-raised); color: var(--text-primary); /* Borda na cor do tema + sombra média: com a borda neutra e a sombra leve de `.dc-hover-tooltip__texto`, o balão se confundia com o fundo escuro da tabela (pedido do usuário). */ border: 1px solid rgba(var(--accent-rgb), 0.55); border-radius: var(--radius-sm); box-shadow: var(--shadow-md); font-size: 0.75rem; font-style: normal; line-height: 1.4; white-space: normal; pointer-events: none; animation: pidFadeIn 120ms ease-out; } .conc-natureza { font-size: 0.7rem; font-weight: 700; padding: 1px 6px; border-radius: var(--radius-pill); } .conc-natureza--C { color: var(--accent); background: rgba(var(--accent-rgb), 0.12); } .conc-natureza--D { color: var(--coral); background: rgba(var(--coral-rgb), 0.14); } .conc-situacao { font-size: 0.78rem; color: var(--text-secondary); } .conc-situacao--vencido, .conc-situacao--nao_vinculado { color: var(--gold); } .conc-situacao--excedente { color: var(--danger); font-weight: 600; } .conc-vinculo { border: 1px solid var(--border-subtle); border-radius: var(--radius-sm); background: var(--bg-surface); margin-bottom: var(--space-2); } .conc-vinculo__header { display: flex; justify-content: space-between; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--border-subtle); font-size: 0.8rem; color: var(--text-secondary); } .conc-vinculo__header strong { color: var(--text-primary); } .conc-vinculo .conc-subtabela { border: none; border-radius: 0; } .conc-vinculos-lista { max-height: 420px; overflow-y: auto; } .conc-validacao { display: flex; flex-direction: column; gap: var(--space-2); border-top: 1px solid var(--border-subtle); padding-top: var(--space-4); } .conc-validacao textarea { width: 100%; min-height: 64px; resize: vertical; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); border: 1px solid var(--border-subtle); background: var(--bg-surface); color: var(--text-primary); font: inherit; font-size: 0.85rem; } .conc-validacao textarea:focus { outline: none; border-color: var(--accent); } .conc-validacao__info { font-size: 0.78rem; color: var(--text-muted); } .conc-btn-sm { padding: 4px 12px; font-size: 0.8rem; } .conc-sem-pendencias { font-size: 0.85rem; color: var(--text-muted); font-style: italic; margin: 0; } .conc-detail button:disabled { opacity: 0.45; cursor: not-allowed; } /* Checkbox de "validado" no fim de cada linha de fornecedor (atalho do botão "Marcar como validada" do detalhe, mesmo endpoint). */ .conc-table th.conc-validado-col, .conc-table td.conc-validado-col { width: 90px; text-align: center !important; } .conc-validado-check { width: 18px; height: 18px; cursor: pointer; accent-color: var(--accent); } /* ---------------- Toggle de validadas ---------------- */ .conc-toggle { display: inline-flex; align-items: center; gap: 6px; font-size: 0.8rem; color: var(--text-secondary); white-space: nowrap; flex-shrink: 0; margin-left: auto; cursor: pointer; } .conc-toggle input { accent-color: var(--accent); } .conc-toggle .conc-chip__count { margin-left: 0; } /* ---------------- Filtros e cabeçalho fixos ao rolar ---------------- */ /* Sempre com `>`: as sub-tabelas de lançamentos ficam dentro desta tabela, e um seletor descendente fixava o thead delas no meio da lista. */ /* A página rola pela janela e a .topbar (layout.css) já é sticky com --topbar-height; os filtros ficam logo abaixo dela e o cabeçalho da tabela logo abaixo dos filtros (altura fixa de --conc-toolbar-altura para o cálculo bater). .pa-table-wrap tem overflow:hidden, que anularia o sticky do thead: esta tabela abre mão dele. */ .conc-detail-view, #conc-detail-view { --conc-toolbar-altura: 52px; --conc-thead-altura: 41px; --conc-selecao-altura: 44px; } .conc-toolbar--fixa { position: sticky; top: var(--topbar-height); z-index: 15; flex-wrap: nowrap; height: var(--conc-toolbar-altura); margin-bottom: 0; background: var(--bg-canvas); } .conc-toolbar--fixa .pa-search { margin-left: 0; width: 210px; flex-shrink: 0; } .conc-table-wrap { overflow: visible; } .conc-table > thead > tr > th { position: sticky; top: calc(var(--topbar-height) + var(--conc-toolbar-altura)); z-index: 10; } .conc-table > thead > tr > th:first-child { border-top-left-radius: var(--radius-md); } .conc-table > thead > tr > th:last-child { border-top-right-radius: var(--radius-md); } /* ---------------- Linhas compactas ---------------- */ .conc-table tbody tr.conc-row > td { padding-top: 7px; padding-bottom: 7px; } .conc-fornecedor__nome { font-size: 0.86rem; } .conc-fornecedor__alerta { font-size: 0.72rem; } /* Coluna do fornecedor flexível e cortada com reticências (max-width:0 + largura em % faz a célula ceder espaço em vez de alargar a tabela). */ .conc-table tbody tr.conc-row > td:nth-child(3) { max-width: 0; width: 40%; } .conc-table tbody tr.conc-row > td:nth-child(3) span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* "Recolher" no fim da área expandida, à direita das ações da observação. */ .conc-recolher-btn { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; } /* ---------------- Sugestões (dedução da ferramenta, não fato) ---------------- */ .conc-sugestao-tag { display: inline-block; margin-right: 6px; padding: 0 6px; border-radius: var(--radius-pill); border: 1px dashed var(--text-muted); font-size: 0.64rem; font-weight: 700; font-style: normal; letter-spacing: 0.03em; text-transform: uppercase; color: var(--text-secondary); vertical-align: 1px; } /* Sugestão numa linha própria, abaixo do fato, em tom neutro: não herda a cor de alerta da situação (dourado/vermelho), que é do fato. */ .conc-sugestao { display: block; margin-top: 3px; font-style: italic; font-weight: 400; color: var(--text-muted); } .conc-vinculo--parcial { border-left: 3px solid var(--gold); } /* ---------------- Barra de seleção fixa na conta expandida ---------------- */ /* Com muitos lançamentos, a soma da seleção e o "Vincular selecionados" ficam fixos logo abaixo do thead da tabela de fornecedores (pedido do usuário), e o thead da lista de pendentes logo abaixo da barra. O sticky vale dentro da célula de detalhe: some quando a conta sai da tela. */ .conc-selecao-barra { position: sticky; top: calc(var(--topbar-height) + var(--conc-toolbar-altura) + var(--conc-thead-altura)); z-index: 9; min-height: var(--conc-selecao-altura); margin: 0 calc(-1 * var(--space-5)) 0; padding: var(--space-2) var(--space-5); background: var(--bg-surface-raised); border-bottom: 1px solid var(--border-subtle); } /* overflow:hidden (do raio da borda) faria a tabela virar o contêiner de rolagem do próprio thead e anularia o sticky */ .conc-subtabela--pendentes { overflow: visible; } .conc-subtabela--pendentes > thead > tr > th { position: sticky; top: calc(var(--topbar-height) + var(--conc-toolbar-altura) + var(--conc-thead-altura) + var(--conc-selecao-altura)); z-index: 8; background: var(--bg-surface); } /* Linha do lançamento pendente é clicável (marca/desmarca a seleção). */ .conc-subtabela--pendentes tbody tr { cursor: pointer; user-select: none; } .conc-subtabela--pendentes tbody tr .conc-historico { user-select: text; } .conc-subtabela__check input { cursor: pointer; accent-color: var(--accent); } .conc-vinculo__acoes { display: inline-flex; gap: var(--space-2); flex-shrink: 0; } .conc-vinculo__acoes button:disabled { opacity: 0.45; cursor: not-allowed; } /* ---------------- Razão desde a primeira pendência ---------------- */ /* Linhas já vinculadas aparecem apagadas, sem seleção; passando o mouse, o vínculo inteiro (as outras linhas dele) acende. */ .pa-table .conc-subtabela--pendentes tbody tr.conc-linha--vinculada { cursor: default; } /* Toggle "Ocultar conciliados" ao lado do título do razão. */ .pa-table .conc-subtabela--pendentes.is-ocultando-conciliados tbody tr.conc-linha--vinculada { display: none; } .pa-table .conc-subtabela--pendentes tbody tr.conc-linha--vinculada td { color: var(--text-muted); } .pa-table .conc-subtabela--pendentes tbody tr.conc-linha--vinculada.is-grupo td { background: rgba(47, 158, 110, 0.1); color: var(--text-primary); } /* Hover na sugestão: a linha e as do outro lado da sugestão. Dourado (a cor das situações "em aberto há mais de 3 meses"/"pagamento não vinculado"): não o verde de `.is-grupo`, porque a sugestão ainda não é vínculo, nem o roxo, que já é o de linha selecionada (`.is-selecionado`). */ .pa-table .conc-subtabela--pendentes tbody tr.is-sugestao-grupo td { background: rgba(var(--gold-rgb), 0.1); color: var(--text-primary); } .conc-valor--saldo { color: var(--text-secondary); } .conc-vinculado { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px; } .conc-vinculado-tag { font-size: 0.68rem; font-weight: 700; padding: 1px 7px; border-radius: var(--radius-pill); color: #2f9e6e; background: rgba(47, 158, 110, 0.14); } .conc-vinculado__tipo { font-size: 0.76rem; } .conc-link-btn { font-size: 0.76rem; font-weight: 600; color: var(--accent); background: none; border: 0; padding: 0; cursor: pointer; } .conc-link-btn:hover { text-decoration: underline; }