/* ============================================================
   COMPONENTES DO SISTEMA (ponto unico) — regras que se repetiam
   identicas em varias telas e foram consolidadas aqui.
   Carregado por layout/header.php ANTES do CSS da tela, entao as
   variacoes que ficaram nas telas continuam ganhando.
   Gerado por ferramentas/consolidar_regras_css.php em 24/09/2026 01:59
   ============================================================ */

.expanded + .tree-line {
    display: block;
}

.btn-analise {
    background-color: rgb(var(--cor-primaria-rgb) / 0.10);
    color: var(--cor-primaria);
    border: 1px solid rgb(var(--cor-primaria-rgb) / 0.30);
}

.btn-analise:hover {
    background-color: var(--cor-primaria);
    color: rgb(var(--cor-sobre-primaria-rgb));
}

.tree-line {
    border-left: 2px solid var(--cor-borda);
    margin-left: 1.5rem;
    padding-left: 1rem;
    display: none;
}

.modal-bg {
    background-color: rgb(var(--cor-overlay-rgb) / 0.85);
    backdrop-filter: blur(4px);
}

body {
    padding: 0;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

/* ⚠️ 25/09/2026 — a consolidação de 24/09 trouxe para cá uma regra de "campo sem interação"
   que estava em telas de leitura e, como é GLOBAL, matava TODOS os campos do sistema:
   `pointer-events: none !important` + as cores do tema ESCURO cravadas.
   COMPROVADO no navegador (tema claro `safplan`): `document.elementFromPoint()` no centro do
   input devolvia o pai — o campo NÃO recebia o clique; e o `input` exibia
   bg `rgba(255,255,255,0.03)` / texto `#888` / borda `rgba(255,255,255,0.05)` (valores do escuro).
   Agora as cores vêm do TEMA e a trava de interação saiu. Tela que precisar de campo somente-leitura
   usa o atributo `disabled`/`readonly` (ou uma classe própria) — nunca uma regra global. */
input, select, textarea {
    background-color: var(--cor-campo-bg);
    color: var(--cor-txt-medio);
    border-color: var(--cor-campo-borda);
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--cor-borda);
    border-radius: 10px;
}

.z-modal-master {
    z-index: 1100 !important;
}

/* (19/10/2026) Padrão da Central de Clientes (grid.css: `.tbl thead th` / `.tbl tbody td`):
   padding 10–12px e texto à ESQUERDA. Antes era 4–6px centralizado, o que deixava toda grid
   do sistema "fora do padrão" — números à direita devem usar a classe `.num` na célula. */
th, td {
    border-bottom: 1px solid var(--cor-borda);
    padding: 10px 12px;
    text-align: left;
    vertical-align: middle;
}

th {
    background: var(--cor-superficie-2);
    color: var(--cor-txt-forte3);
    font-weight: 800;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: .05em;
    white-space: nowrap;
}

td.num { text-align: right; font-variant-numeric: tabular-nums; }

[x-cloak] {
    display: none !important;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--cor-primaria-escura);
}

* {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
}

/* `.select-db-custom` — seletor de banco do Acesso Restrito. Veio da consolidação com as cores do
   tema escuro cravadas e `!important` em tudo; agora usa os tokens (vale no claro e no escuro) e sem
   `!important`, para a tela que precisar de exceção poder sobrescrever. */
.select-db-custom {
    background: var(--cor-superficie);
    color: var(--cor-txt-forte);
    border: 1px solid var(--cor-borda);
}

/* ============================================================
   ÍCONES E BOTÕES DE ÍCONE (19/10/2026 — pedido do usuário)
   Problema relatado: ícones "pálidos e mortos", sem reação ao mouse
   (imprimir, gráfico, fechar formulário, editar nas ações do grid),
   e botão de ação com texto escuro sobre o azul.
   Regra: o ícone herda a cor do texto do botão e o botão reage ao mouse.
   ============================================================ */

/* Ícone nunca é "fantasma": herda a cor e o tamanho do contexto */
.material-icons,
.material-symbols-outlined,
.material-symbols-rounded,
.material-symbols-sharp {
    color: inherit;
    opacity: 1;
    line-height: 1;
    vertical-align: middle;
}

/* Botão que contém um ícone (nas telas: <button><span class="material-icons">print</span></button>)
   ⚠️ 23/10/2026 (T2): a especificidade aqui era (0,1,1) e VENCIA as classes de cor
   das telas — `bg-gold text-sobre` saía com `--cor-txt-forte3` (texto escuro sobre o
   azul no tema claro: 1,85:1). `:where()` zera a especificidade para a cor das
   utilidades (text-sobre, text-estado-*, ...) sempre vencer; sem cor declarada, o
   botão herda do contexto (que é o que se espera de um botão de ícone).  */
:where(button, a):where(:has(> .material-icons), :has(> .material-symbols-outlined)) {
    cursor: pointer;
    transition: color .15s ease, background-color .15s ease, border-color .15s ease, transform .15s ease;
}

:where(button, a):where(:has(> .material-icons), :has(> .material-symbols-outlined)):hover {
    color: var(--cor-primaria);
}

/* Quando o botão de ícone tem moldura própria, o hover ganha fundo suave */
button:has(> .material-icons)[class*="border"]:hover,
button:has(> .material-symbols-outlined)[class*="border"]:hover,
a:has(> .material-icons)[class*="border"]:hover,
a:has(> .material-symbols-outlined)[class*="border"]:hover {
    background-color: rgb(var(--cor-primaria-rgb) / 0.08);
    border-color: var(--cor-primaria);
}

/* Foco visível (teclado) nos mesmos botões */
button:has(> .material-icons):focus-visible,
button:has(> .material-symbols-outlined):focus-visible,
a:has(> .material-icons):focus-visible,
a:has(> .material-symbols-outlined):focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgb(var(--cor-primaria-rgb) / 0.18);
    border-radius: 8px;
}

/* Desabilitado continua legível (não "morto") */
button:disabled { opacity: .55; cursor: not-allowed; }



/* ============================================================
   COMPONENTES DO SISTEMA (ponto unico) — regras que se repetiam
   identicas em varias telas e foram consolidadas aqui.
   Carregado por layout/header.php ANTES do CSS da tela, entao as
   variacoes que ficaram nas telas continuam ganhando.
   Gerado por ferramentas/consolidar_regras_css.php em 20/10/2026 14:10
   ============================================================ */

.btn-analise {
    background-color: rgb(var(--cor-primaria-rgb) / 0.1);
    color: var(--cor-primaria);
    border: 1px solid rgb(var(--cor-primaria-rgb) / 0.3);
}

.btn-analise:hover {
    background-color: var(--cor-primaria);
    color: #000;
}

.tree-line {
    border-left: 2px solid rgb(var(--cor-borda-2-rgb));
    margin-left: 1.5rem;
    padding-left: 1rem;
    display: none;
}

.expanded + .tree-line {
    display: block;
}

::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: #333;
    border-radius: 10px;
}

::-webkit-scrollbar-thumb:hover {
    background: #cca300;
}

