/* =============================================================================
   Análise manual (Portal) · mesa de análise · pacote 10, redesenho 06/11/2026
   Carrega DEPOIS de cardexa.css e portal.css. Prefixo lx- ("lido × informado").
   Só tokens --cx-*: nenhum hex escrito à mão. Onde precisa de transparência, usa opacity
   num pseudo-elemento pintado com token, nunca rgba de cor nova.

   Peças:
   .lx-desk      mesa: pendências à esquerda, evidência à direita, decisão no pé (sticky)
   .lx-pend      uma pendência (regra que pediu análise), com o par lido × informado
   .lx-pair      as duas linhas do confronto, cada uma com a origem do dado
   .lx-align     nome parte a parte (lido em cima, informado embaixo)
   .lx-meter     régua 0–100 com o corte da regra
   .lx-ev        painel de evidência: a imagem (ou o PDF, ou o cadastro do bureau) de onde o valor veio
   .lx-decide    barra de decisão, presa ao pé da mesa enquanto a mesa está na tela
   .lx-snap      o que foi comparado, na confirmação e no histórico
   ========================================================================== */

/* -----------------------------------------------------------------------------
   Mesa
   -------------------------------------------------------------------------- */
.lx-desk {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(360px, 44%);
    gap: 20px;
    align-items: start;
}
.lx-desk--solo { grid-template-columns: minmax(0, 1fr); }
.lx-desk__head {
    grid-column: 1 / -1;
    display: flex; align-items: center; gap: var(--cx-s2); flex-wrap: wrap;
}
.lx-desk__title { font-size: 17px; font-weight: 600; letter-spacing: -0.01em; color: var(--cx-ink); }
.lx-desk__count {
    font-family: var(--cx-mono); font-size: 11px; font-weight: 600;
    background: var(--cx-warning-bg); color: var(--cx-warning-fg);
    border-radius: var(--cx-r-pill); padding: 2px 9px;
}
.lx-desk__fact { font-size: 12.5px; color: var(--cx-ink-3); }
.lx-desk__fact b { color: var(--cx-ink); font-variant-numeric: tabular-nums; }
.lx-desk__keys { margin-left: auto; font-size: 12px; color: var(--cx-ink-3); display: inline-flex; gap: 10px; flex-wrap: wrap; }
.lx-kbd {
    font-family: var(--cx-mono); font-size: 11px; color: var(--cx-ink-2);
    border: 1px solid var(--cx-border); border-bottom-width: 2px; background: var(--cx-card);
    border-radius: 5px; padding: 0 5px; line-height: 17px; display: inline-block;
}
.lx-pends { display: flex; flex-direction: column; gap: var(--cx-s2); min-width: 0; }

/* -----------------------------------------------------------------------------
   Pendência
   -------------------------------------------------------------------------- */
.lx-pend {
    background: var(--cx-card);
    border: 1px solid var(--cx-border);
    border-left: 4px solid var(--cx-warning);
    border-radius: 14px;
    box-shadow: var(--cx-shadow-card);
    min-width: 0;
    container-type: inline-size;
}
/* A pendência que está no painel de evidência. A ligação é estrutural (borda + barra + etiqueta),
   não só cor: quem olha a mesa sabe qual cartão a foto da direita está explicando. */
.lx-pend.is-current { border-color: var(--cx-primary); border-left-color: var(--cx-primary); box-shadow: 0 0 0 3px var(--cx-container); }
.lx-pend__head { display: flex; align-items: flex-start; gap: var(--cx-s2); padding: 14px 16px 10px; }
.lx-pend__icon {
    width: 32px; height: 32px; border-radius: 10px; flex: none;
    display: flex; align-items: center; justify-content: center;
    background: var(--cx-warning-bg); color: var(--cx-warning-fg);
}
.lx-pend__icon .cx-i { font-size: 18px; }
.lx-pend.is-current .lx-pend__icon { background: var(--cx-container); color: var(--cx-primary); }
.lx-pend__titles { flex: 1; min-width: 0; }
.lx-pend__title { font-size: 14px; font-weight: 600; color: var(--cx-ink); line-height: 1.35; }
.lx-pend__rule { font-size: 12px; color: var(--cx-ink-3); margin-top: 2px; overflow-wrap: anywhere; }
.lx-pend__tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; flex: none; }
.lx-pend__body { padding: 0 16px 14px; display: flex; flex-direction: column; gap: var(--cx-s2); }
.lx-pend__foot {
    display: flex; align-items: center; gap: var(--cx-s1); flex-wrap: wrap;
    padding: 10px 16px; border-top: 1px solid var(--cx-divider);
}
.lx-pend__foot .lx-pend__aside { margin-left: auto; font-size: 12px; color: var(--cx-ink-3); display: inline-flex; align-items: center; gap: 4px; }
.lx-pend__foot .lx-pend__aside .cx-i { font-size: 15px; }
/* Etiqueta "na evidência" do cartão atual. */
.lx-onpanel {
    display: inline-flex; align-items: center; gap: 4px;
    font-size: 11px; font-weight: 600; color: var(--cx-primary);
    background: var(--cx-container); border-radius: var(--cx-r-pill); padding: 3px 9px; white-space: nowrap;
}
.lx-onpanel .cx-i { font-size: 14px; }
/* Pendência de política (limite fora da faixa, consultas suspensas): sem par, sem imagem. */
.lx-pend--policy { border-left-color: var(--cx-info); }
.lx-pend--policy .lx-pend__icon { background: var(--cx-info-bg); color: var(--cx-info-fg); }
/* Pendência já decidida dentro da mesa (conflito facial respondido). */
.lx-pend.is-settled { border-left-color: var(--cx-success); }
.lx-pend.is-settled .lx-pend__icon { background: var(--cx-success-bg); color: var(--cx-success-fg); }

/* -----------------------------------------------------------------------------
   Par lido × informado
   -------------------------------------------------------------------------- */
.lx-pair { border: 1px solid var(--cx-border); border-radius: var(--cx-r-btn); overflow: hidden; }
.lx-pair__row {
    display: grid; grid-template-columns: 148px minmax(0, 1fr); gap: var(--cx-s2);
    padding: 10px 14px; align-items: baseline;
}
.lx-pair__row + .lx-pair__row { border-top: 1px solid var(--cx-divider); }
.lx-pair__src { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.lx-pair__k { font-size: 11.5px; font-weight: 600; color: var(--cx-ink-2); }
.lx-pair__o { font-size: 11.5px; color: var(--cx-ink-3); display: inline-flex; align-items: center; gap: 4px; }
.lx-pair__o .cx-i { font-size: 14px; }
/* A origem "lido" é um botão: leva a imagem certa para o painel. */
a.lx-pair__o, button.lx-pair__o {
    font: inherit; font-size: 11.5px; background: none; border: 0; padding: 0; cursor: pointer;
    color: var(--cx-primary); text-decoration: none; text-align: left;
}
a.lx-pair__o:hover, button.lx-pair__o:hover { color: var(--cx-ink); }
.lx-pair__v {
    font-family: var(--cx-mono); font-size: 13.5px; font-weight: 500; color: var(--cx-ink);
    overflow-wrap: anywhere; line-height: 1.45;
}
.lx-pair__v mark { background: var(--cx-warning-bg); color: var(--cx-warning-fg); font-weight: 700; border-radius: 3px; padding: 0 1px; }
.lx-pair__sub { display: block; font-family: var(--cx-sans); font-size: 12px; font-weight: 500; color: var(--cx-ink-3); margin-top: 2px; }
.lx-pair__sub s { font-family: var(--cx-mono); }
/* Valor que o OCR não conseguiu ler. */
.lx-pair__v.is-missing {
    font-family: var(--cx-sans); font-size: 13px; font-weight: 500; color: var(--cx-ink-3);
    display: inline-flex; align-items: center; gap: 6px;
}
.lx-pair__v.is-missing .cx-i { font-size: 17px; color: var(--cx-ink-4); }
.lx-pair__row--missing {
    background: repeating-linear-gradient(135deg, var(--cx-subtle), var(--cx-subtle) 7px, var(--cx-card) 7px, var(--cx-card) 14px);
}
/* Dado corrigido antes: etiqueta e valor capturado. */
.lx-fixed {
    display: inline-flex; align-items: center; gap: 3px; margin-left: 6px; vertical-align: 1px;
    font-family: var(--cx-sans); font-size: 11px; font-weight: 600;
    background: var(--cx-info-bg); color: var(--cx-info-fg); border-radius: var(--cx-r-pill); padding: 1px 7px;
}
.lx-fixed .cx-i { font-size: 13px; }

/* Recorte da região lida (FASE 2: depende da posição do campo devolvida pelo OCR). */
.lx-crop {
    margin-top: 6px; display: block; border-radius: 6px; overflow: hidden;
    border: 1px solid var(--cx-border); background: var(--cx-subtle); position: relative;
    height: 40px; max-width: 360px;
}
.lx-crop img { position: absolute; left: 0; top: 0; max-width: none; }
.lx-crop__tag {
    display: block; margin-top: 3px; font-family: var(--cx-sans); font-size: 11px; font-weight: 600; color: var(--cx-info-fg);
}
.lx-crop + .lx-crop__tag { line-height: 1.3; }

/* -----------------------------------------------------------------------------
   Nome parte a parte: cada parte é uma coluna (lido em cima, informado embaixo).
   As colunas quebram linha, então nome comprido nunca estoura a largura.
   -------------------------------------------------------------------------- */
.lx-parts { display: flex; flex-wrap: wrap; gap: 6px; align-items: stretch; }
.lx-parts__legend {
    display: flex; flex-direction: column; justify-content: space-between; padding: 5px 4px 5px 0;
    font-size: 11px; font-weight: 600; color: var(--cx-ink-3); line-height: 18px;
}
.lx-part {
    display: flex; flex-direction: column; border-radius: 8px; overflow: hidden;
    border: 1px solid var(--cx-border); background: var(--cx-subtle); min-width: 0;
}
.lx-part > span {
    font-family: var(--cx-mono); font-size: 12px; font-weight: 500; color: var(--cx-ink-2);
    padding: 3px 9px; line-height: 18px; white-space: nowrap;
}
.lx-part > span + span { border-top: 1px solid var(--cx-divider); }
.lx-part > em {
    font-style: normal; font-family: var(--cx-sans); font-size: 10.5px; font-weight: 600;
    color: var(--cx-ink-3); padding: 2px 9px 3px; background: var(--cx-card); border-top: 1px solid var(--cx-divider);
}
.lx-part.is-diff { border-color: var(--cx-warning); background: var(--cx-warning-bg); }
.lx-part.is-diff > span { color: var(--cx-warning-fg); font-weight: 700; }
.lx-part.is-diff > span + span { border-top-color: var(--cx-warning); }
.lx-part.is-diff > em { color: var(--cx-warning-fg); }
.lx-part.is-abbr { border-color: var(--cx-info); background: var(--cx-info-bg); }
.lx-part.is-abbr > span { color: var(--cx-info-fg); }
.lx-part.is-abbr > em { color: var(--cx-info-fg); }
.lx-part.is-gap { border-style: dashed; border-color: var(--cx-border-2); background: var(--cx-card); }
.lx-part > span.is-empty { color: var(--cx-ink-4); }
.lx-parts__sum { font-size: 12px; color: var(--cx-ink-3); margin-top: 6px; }
.lx-parts__sum b { color: var(--cx-ink-2); font-weight: 600; }

/* -----------------------------------------------------------------------------
   Régua da regra: valor apurado e corte
   -------------------------------------------------------------------------- */
.lx-meter { display: flex; gap: 14px; align-items: center; }
.lx-meter > div:first-child { flex: 1 1 auto; min-width: 0; }
.lx-meter__track { position: relative; height: 8px; border-radius: var(--cx-r-pill); background: var(--cx-divider); }
.lx-meter__fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: var(--cx-r-pill); background: var(--cx-warning); }
.lx-meter.is-pass .lx-meter__fill { background: var(--cx-success); }
.lx-meter__cut { position: absolute; top: -4px; bottom: -4px; width: 2px; background: var(--cx-ink); border-radius: 1px; }
.lx-meter__cut::after {
    content: attr(data-cut); position: absolute; top: -17px; left: 50%; transform: translateX(-50%);
    font-family: var(--cx-mono); font-size: 10.5px; font-weight: 600; color: var(--cx-ink-2); white-space: nowrap;
}
.lx-meter__num { flex: none; font-family: var(--cx-mono); font-size: 12.5px; color: var(--cx-ink-3); white-space: nowrap; text-align: right; }
.lx-meter__num b { font-size: 16px; color: var(--cx-warning-fg); font-weight: 700; }
.lx-meter.is-pass .lx-meter__num b { color: var(--cx-success-fg); }
.lx-meter__ends { display: flex; justify-content: space-between; font-family: var(--cx-mono); font-size: 10.5px; color: var(--cx-ink-3); }
.lx-meter__top { margin-top: 16px; }
/* Comparação sim/não: sem régua, uma frase de fato. */
.lx-verdict { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--cx-ink-2); flex-wrap: wrap; }
.lx-verdict .cx-i { font-size: 17px; color: var(--cx-warning-fg); }
.lx-verdict b { font-weight: 600; color: var(--cx-ink); }
.lx-verdict code { font-family: var(--cx-mono); font-size: 12px; }

/* Bloco de fatos curto dentro da pendência (datas, limite, faixa). */
.lx-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px 18px; }
.lx-facts .cx-fact__value { font-size: 14px; }
.lx-facts .cx-fact__value.is-warn { color: var(--cx-warning-fg); }

/* Linha "travada" (CPF não se corrige). */
.lx-locked { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--cx-ink-3); }
.lx-locked .cx-i { font-size: 15px; }

/* Fotos pequenas de rosto dentro da pendência facial. */
.lx-faces { display: grid; grid-template-columns: 84px auto 84px minmax(0, 1fr); gap: 12px; align-items: center; }
.lx-faces img { width: 84px; height: 112px; object-fit: cover; border-radius: 10px; border: 1px solid var(--cx-border); display: block; }
.lx-faces__sim { text-align: center; }
.lx-faces__pct { font-size: 22px; font-weight: 700; line-height: 1; font-variant-numeric: tabular-nums; }
.lx-faces__pct small { font-size: 13px; color: var(--cx-ink-3); font-weight: 600; }
.lx-faces__lab { font-size: 11px; color: var(--cx-ink-3); font-weight: 600; margin-top: 4px; }
.lx-faces__meta { font-size: 12.5px; color: var(--cx-ink-2); line-height: 1.5; min-width: 0; }
.lx-faces__meta code { font-family: var(--cx-mono); font-size: 12px; }
.lx-choices { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cx-s1); }

/* Regras que divergiram mas só registram. */
.lx-minor { border: 1px dashed var(--cx-border-2); border-radius: var(--cx-r-btn); background: var(--cx-card); }
.lx-minor__head {
    display: flex; align-items: center; gap: 8px; padding: 10px 14px;
    font-size: 12.5px; font-weight: 600; color: var(--cx-ink-2);
}
.lx-minor__head .cx-i { font-size: 17px; color: var(--cx-ink-3); }
.lx-minor__head span:last-child { margin-left: auto; font-weight: 500; color: var(--cx-ink-3); }
.lx-minor__row {
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) minmax(0, 1fr) auto; gap: 10px;
    padding: 9px 14px; border-top: 1px solid var(--cx-divider); align-items: baseline; font-size: 12.5px;
}
.lx-minor__row > span:first-child { font-weight: 600; color: var(--cx-ink-2); }
.lx-minor__row code { font-family: var(--cx-mono); font-size: 12px; color: var(--cx-ink); overflow-wrap: anywhere; }
.lx-minor__row small { display: block; font-size: 11px; color: var(--cx-ink-3); }
.lx-minor__row .lx-minor__res { font-family: var(--cx-mono); font-size: 12px; color: var(--cx-ink-3); white-space: nowrap; }

/* -----------------------------------------------------------------------------
   Painel de evidência
   -------------------------------------------------------------------------- */
.lx-ev {
    position: sticky; top: calc(64px + var(--cx-s3));
    background: var(--cx-card); border: 1px solid var(--cx-border); border-radius: var(--cx-r-card);
    box-shadow: var(--cx-shadow-card); overflow: hidden; min-width: 0;
    display: flex; flex-direction: column;
    /* 64 da barra do topo + 16 de respiro + ~124 da barra de decisão presa ao pé. */
    max-height: calc(100vh - 64px - var(--cx-s3) - 124px);
    min-height: 520px;
}
.lx-ev > * { flex: none; }
.lx-ev > .lx-ev__read { flex: 1 1 auto; min-height: 96px; overflow-y: auto; }
.lx-ev__head {
    display: flex; align-items: flex-start; gap: var(--cx-s2); padding: 12px 14px 10px;
    border-bottom: 1px solid var(--cx-divider);
}
.lx-ev__titles { flex: 1; min-width: 0; }
.lx-ev__kicker { font-size: 11.5px; font-weight: 600; color: var(--cx-primary); display: flex; align-items: center; gap: 5px; }
.lx-ev__kicker .cx-i { font-size: 15px; }
.lx-ev__name { font-size: 14px; font-weight: 600; color: var(--cx-ink); margin-top: 1px; }
.lx-ev__tools { display: flex; gap: 4px; flex: none; align-items: center; }
.lx-ev__zoom { font-family: var(--cx-mono); font-size: 11.5px; color: var(--cx-ink-3); min-width: 40px; text-align: center; }
/* Palco: a imagem inteira, contida. O zoom e o arrasto acontecem AQUI, sem cobrir a página. */
.lx-ev__stage {
    position: relative; background: var(--cx-hatch); padding: var(--cx-s2);
    display: flex; align-items: center; justify-content: center; min-height: 200px;
}
.lx-ev__frame { position: relative; display: block; line-height: 0; cursor: grab; }
.lx-ev__frame { width: auto; max-width: 100%; }
.lx-ev__frame img { width: auto; max-width: 100%; height: auto; max-height: clamp(200px, 34vh, 440px); border-radius: 8px; box-shadow: var(--cx-shadow-lift); display: block; }
.lx-ev__frame--portrait { max-width: 260px; }
.lx-ev__frame--zoom { overflow: hidden; border-radius: 8px; height: 300px; }
.lx-ev__frame--zoom img { width: 210%; max-width: none; position: absolute; border-radius: 0; box-shadow: none; }
/* Realce da região lida (FASE 2). Contorno em token; o preenchimento é o mesmo token com opacidade. */
.lx-ev__hl { position: absolute; border: 2px solid var(--cx-info); border-radius: 4px; }
.lx-ev__hl::before { content: ''; position: absolute; inset: 0; background: var(--cx-info); opacity: .12; }
.lx-ev__hl span {
    position: absolute; left: -2px; top: -21px; white-space: nowrap;
    font-family: var(--cx-sans); font-size: 10.5px; font-weight: 600; line-height: 1;
    background: var(--cx-info); color: var(--cx-card); border-radius: 4px 4px 4px 0; padding: 4px 6px;
}
.lx-ev__badge {
    position: absolute; left: 20px; bottom: 20px; font-size: 11px; font-weight: 600;
    background: var(--cx-card); color: var(--cx-ink-2); border-radius: 6px; padding: 3px 8px;
    box-shadow: var(--cx-shadow-lift); display: inline-flex; align-items: center; gap: 4px; line-height: 1.3;
}
.lx-ev__badge .cx-i { font-size: 14px; }
/* Miniaturas: todas as imagens da proposta, sem sair do painel. */
.lx-ev__thumbs { display: flex; gap: 6px; padding: 10px 14px; border-top: 1px solid var(--cx-divider); overflow-x: auto; scrollbar-width: thin; }
.lx-thumb {
    flex: none; width: 74px; display: flex; flex-direction: column; gap: 4px; align-items: stretch;
    background: none; border: 0; padding: 0; cursor: pointer; font: inherit; text-align: center;
}
.lx-thumb__img {
    height: 44px; border-radius: 7px; overflow: hidden; border: 2px solid var(--cx-border);
    background: var(--cx-subtle); display: flex; align-items: center; justify-content: center;
}
.lx-thumb__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.lx-thumb__img .cx-i { font-size: 20px; color: var(--cx-ink-3); }
.lx-thumb__cap { font-size: 10.5px; font-weight: 600; color: var(--cx-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; line-height: 1.25; }
.lx-thumb__sub { display: block; font-weight: 500; color: var(--cx-ink-3); }
.lx-thumb.is-active .lx-thumb__img { border-color: var(--cx-primary); }
.lx-thumb.is-active .lx-thumb__cap { color: var(--cx-primary); }
.lx-thumb.is-source .lx-thumb__img { box-shadow: 0 0 0 2px var(--cx-container); }
.lx-thumb.is-missing { cursor: default; }
.lx-thumb.is-missing .lx-thumb__img { border-style: dashed; border-color: var(--cx-border-2); background: var(--cx-card); }
.lx-thumb.is-missing .lx-thumb__img .cx-i { color: var(--cx-ink-4); }
.lx-thumb.is-missing .lx-thumb__cap { color: var(--cx-ink-4); }
/* O que foi lido desta imagem. Substitui o JSON bruto como primeira leitura. */
.lx-ev__read { border-top: 1px solid var(--cx-divider); }
.lx-ev__readhead {
    display: flex; align-items: center; justify-content: space-between; gap: 10px;
    padding: 10px 14px 6px; font-size: 11.5px; font-weight: 600; color: var(--cx-ink-3);
}
.lx-ev__readhead button { font: inherit; font-size: 11.5px; color: var(--cx-primary); background: none; border: 0; cursor: pointer; padding: 0; }
.lx-ev__rows { padding: 0 8px 8px; }
.lx-ev__row {
    display: grid; grid-template-columns: 108px minmax(0, 1fr) auto; gap: 10px; align-items: baseline;
    padding: 5px 6px; border-radius: 6px; font-size: 12.5px;
}
.lx-ev__row > span:first-child { color: var(--cx-ink-3); font-weight: 500; }
.lx-ev__row code { font-family: var(--cx-mono); font-size: 12px; color: var(--cx-ink); overflow-wrap: anywhere; }
.lx-ev__row .lx-ev__st { font-size: 11px; font-weight: 600; white-space: nowrap; display: inline-flex; align-items: center; gap: 3px; }
.lx-ev__row .lx-ev__st .cx-i { font-size: 14px; }
.lx-ev__st.is-ok { color: var(--cx-success-fg); }
.lx-ev__st.is-warn { color: var(--cx-warning-fg); }
.lx-ev__st.is-none { color: var(--cx-ink-3); font-weight: 500; }
.lx-ev__row.is-focus { background: var(--cx-warning-bg); }
.lx-ev__row.is-focus > span:first-child { color: var(--cx-warning-fg); font-weight: 600; }
.lx-ev__foot {
    display: flex; align-items: flex-start; gap: 6px; flex-wrap: nowrap; line-height: 1.4;
    padding: 8px 14px; border-top: 1px solid var(--cx-divider); font-size: 11.5px; color: var(--cx-ink-3);
}
.lx-ev__foot .cx-i { font-size: 14px; }
/* PDF: não vira imagem. Cartão com o botão de abrir em outra aba, e os valores lidos logo abaixo. */
.lx-ev__pdf {
    display: flex; flex-direction: column; align-items: center; gap: 10px; text-align: center;
    background: var(--cx-card); border: 1px dashed var(--cx-border-2); border-radius: var(--cx-r-btn);
    padding: 26px 22px; width: 100%; color: var(--cx-ink-2); font-size: 13px; line-height: 1.5;
}
.lx-ev__pdf > .cx-i { font-size: 40px; color: var(--cx-ink-3); }
.lx-ev__pdf b { color: var(--cx-ink); font-size: 14px; }
.lx-ev__pdf small { font-size: 12px; color: var(--cx-ink-3); }
/* Link expirado: a imagem não volta sem recarregar. */
.lx-ev__gone {
    display: flex; flex-direction: column; align-items: center; gap: 8px; text-align: center;
    background: var(--cx-card); border: 1px dashed var(--cx-border-2); border-radius: var(--cx-r-btn);
    padding: 34px 22px; width: 100%; font-size: 13px; color: var(--cx-ink-2); line-height: 1.5;
}
.lx-ev__gone > .cx-i { font-size: 34px; color: var(--cx-ink-4); }
.lx-ev__gone b { color: var(--cx-ink); }
/* Evidência que não é imagem: o cadastro devolvido pelo bureau. */
.lx-ev__record { width: 100%; background: var(--cx-card); border: 1px solid var(--cx-border); border-radius: var(--cx-r-btn); overflow: hidden; }
.lx-ev__recordhead {
    display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: var(--cx-subtle);
    border-bottom: 1px solid var(--cx-divider); font-size: 12.5px; font-weight: 600; color: var(--cx-ink-2);
}
.lx-ev__recordhead .cx-i { font-size: 17px; color: var(--cx-ink-3); }
.lx-ev__recordhead span:last-child { margin-left: auto; font-family: var(--cx-mono); font-size: 11px; font-weight: 500; color: var(--cx-ink-3); }
.lx-ev--record .lx-ev__stage { background: var(--cx-subtle); }
/* Rostos lado a lado no painel. */
.lx-ev__faces { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cx-s2); width: 100%; }
.lx-ev__faces figure { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.lx-ev__faces img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 10px; display: block; box-shadow: var(--cx-shadow-lift); }
.lx-ev__faces figcaption { font-size: 12px; font-weight: 600; color: var(--cx-ink-2); text-align: center; display: flex; align-items: center; justify-content: center; gap: 5px; line-height: 1.3; }
.lx-ev__faces figcaption .cx-i { font-size: 15px; color: var(--cx-ink-3); }

/* -----------------------------------------------------------------------------
   Barra de decisão. Age sobre a PENDÊNCIA ATUAL (a do painel de evidência) e as opções mudam
   conforme o tipo dela. «Reprovar a proposta» fica separado: é a única ação de alcance total.
   Presa ao pé da tela enquanto a mesa está visível (position: sticky, sem JS).
   -------------------------------------------------------------------------- */
.lx-decide {
    grid-column: 1 / -1;
    position: sticky; bottom: var(--cx-s2); z-index: 5;
    background: var(--cx-card); border: 2px solid var(--cx-deep); border-radius: var(--cx-r-card);
    box-shadow: var(--cx-shadow-modal);
    padding: 12px 16px 14px;
    display: flex; flex-direction: column; gap: 10px;
}
.lx-decide__top { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; }
.lx-decide__title { font-size: 13.5px; font-weight: 700; color: var(--cx-ink); display: inline-flex; align-items: center; gap: 6px; }
.lx-decide__title .cx-i { font-size: 18px; color: var(--cx-ink-3); }
.lx-decide__target { font-size: 13px; color: var(--cx-ink-2); flex: 1 1 0; min-width: 60px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lx-decide__target b { font-family: var(--cx-mono); font-size: 11.5px; color: var(--cx-ink-3); font-weight: 600; margin-right: 4px; }
.lx-decide__all { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; padding-left: 12px; border-left: 1px solid var(--cx-divider); }
.lx-decide__row { display: flex; gap: var(--cx-s2); align-items: stretch; }
.lx-decide__opts { display: flex; gap: var(--cx-s1); flex-wrap: wrap; flex: 1; min-width: 0; }
.lx-decide__opts .cx-radiocard { flex: 1 1 220px; padding: 9px 12px; min-width: 0; }
.lx-decide__opts .cx-radiocard__label { font-size: 13px; }
.lx-decide__opts .cx-radiocard--danger:has(input:checked),
.lx-decide__opts .cx-radiocard--danger.is-active { border-color: var(--cx-error); background: var(--cx-error-field); }
.lx-decide__opts .cx-radiocard--danger.is-active .cx-radiocard__dot { border-color: var(--cx-error); background: var(--cx-error); }
/* Uma opção só: sem rádio. O texto diz o que a aprovação faz e o botão é a própria ação. */
.lx-decide__single {
    flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px;
    border: 1px solid var(--cx-border); border-radius: var(--cx-r-btn); padding: 9px 12px; background: var(--cx-subtle);
}
.lx-decide__single b { font-size: 13px; color: var(--cx-ink); }
.lx-decide__single span { font-size: 11.5px; color: var(--cx-ink-3); }
.lx-decide__act { display: flex; flex-direction: column; justify-content: center; gap: 4px; flex: none; }
.lx-decide__act .cx-btn { justify-content: center; }
.lx-decide__hint { font-size: 11.5px; color: var(--cx-ink-3); text-align: center; white-space: nowrap; }
.lx-decide__extra { display: flex; gap: var(--cx-s2); flex-wrap: wrap; align-items: flex-end; }
.lx-decide__extra .cx-field { max-width: 220px; }
/* Progresso da mesa: uma bolinha por pendência, na ordem da política. */
.lx-prog { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--cx-ink-3); }
.lx-prog i { width: 9px; height: 9px; border-radius: var(--cx-r-pill); background: var(--cx-border-2); display: inline-block; }
.lx-prog i.is-done { background: var(--cx-success); }
.lx-prog i.is-now { background: var(--cx-primary); box-shadow: 0 0 0 2px var(--cx-container); }
.lx-prog b { color: var(--cx-ink-2); font-weight: 600; margin-left: 3px; }
/* Posição do cartão na ordem da política. */
.lx-pos { font-family: var(--cx-mono); font-size: 11px; font-weight: 600; color: var(--cx-ink-3); background: var(--cx-surface); border-radius: var(--cx-r-pill); padding: 3px 8px; white-space: nowrap; }
/* Pendência já decidida: recolhida, com quem decidiu. */
.lx-pend.is-done { border-left-color: var(--cx-success); box-shadow: none; background: var(--cx-subtle); }
.lx-pend.is-done .lx-pend__icon { background: var(--cx-success-bg); color: var(--cx-success-fg); }
.lx-pend__done { padding: 0 16px 12px 60px; font-size: 12.5px; color: var(--cx-ink-2); line-height: 1.5; }
.lx-pend__done code { font-family: var(--cx-mono); font-size: 12px; }

/* -----------------------------------------------------------------------------
   O que foi comparado (confirmação e histórico)
   -------------------------------------------------------------------------- */
.lx-snap { border: 1px solid var(--cx-border); border-radius: var(--cx-r-btn); overflow: hidden; margin: 0 0 18px; }
.lx-snap__head { padding: 8px 12px; background: var(--cx-subtle); font-size: 11.5px; font-weight: 600; color: var(--cx-ink-3); border-bottom: 1px solid var(--cx-divider); }
.lx-snap__row { padding: 9px 12px; display: flex; flex-direction: column; gap: 3px; }
.lx-snap__row + .lx-snap__row { border-top: 1px solid var(--cx-divider); }
.lx-snap__t { font-size: 12.5px; font-weight: 600; color: var(--cx-ink); display: flex; justify-content: space-between; gap: 10px; }
.lx-snap__t span:last-child { font-family: var(--cx-mono); font-size: 11.5px; color: var(--cx-warning-fg); white-space: nowrap; }
.lx-snap__v { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 2px 8px; font-size: 12px; color: var(--cx-ink-3); }
.lx-snap__v code { font-family: var(--cx-mono); font-size: 11.5px; color: var(--cx-ink); overflow-wrap: anywhere; }

/* Histórico da análise (correções e decisões). */
.lx-hist { display: flex; flex-direction: column; }
.lx-hist__item { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 10px; padding: 10px 0; }
.lx-hist__item + .lx-hist__item { border-top: 1px solid var(--cx-divider); }
.lx-hist__item > .cx-i { font-size: 18px; color: var(--cx-ink-3); margin-top: 1px; }
.lx-hist__t { font-size: 13px; font-weight: 600; color: var(--cx-ink); }
.lx-hist__m { font-size: 12px; color: var(--cx-ink-3); margin-top: 1px; }
.lx-hist__d { font-size: 12.5px; color: var(--cx-ink-2); margin-top: 4px; line-height: 1.5; }
.lx-hist__d code { font-family: var(--cx-mono); font-size: 12px; }
.lx-hist__d s { color: var(--cx-ink-3); }

/* -----------------------------------------------------------------------------
   Diálogo «Corrigir dados» aberto a partir da pendência
   -------------------------------------------------------------------------- */
.lx-fix { border: 1.5px solid var(--cx-warning); border-radius: var(--cx-r-btn); padding: 12px 14px; background: var(--cx-card); display: flex; flex-direction: column; gap: 10px; }
.lx-fix__read { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12.5px; color: var(--cx-ink-3); }
.lx-fix__read code { font-family: var(--cx-mono); font-size: 12.5px; color: var(--cx-ink); background: var(--cx-subtle); border: 1px solid var(--cx-border); border-radius: 6px; padding: 2px 7px; }
.lx-fix__was { font-size: 12px; color: var(--cx-ink-3); }
.lx-fix__was code { font-family: var(--cx-mono); }
.dc-field.is-locked .cx-input { background: var(--cx-surface); color: var(--cx-ink-3); }

/* Aba Pessoa e documentos: o lido embaixo do informado, no próprio campo. */
.lx-factread { display: block; margin-top: 3px; font-size: 12px; color: var(--cx-ink-3); line-height: 1.45; }
.lx-factread code { font-family: var(--cx-mono); font-size: 11.5px; color: var(--cx-ink-2); }
.lx-factread .is-warn { color: var(--cx-warning-fg); font-weight: 600; }
.lx-factread .is-ok { color: var(--cx-success-fg); font-weight: 600; }

/* Cartão estreito (coluna da mesa em 1024): as etiquetas descem para baixo do título em vez de espremê-lo. */
@container (max-width: 540px) {
    .lx-pend__head { flex-wrap: wrap; row-gap: 8px; }
    .lx-pend__titles { flex-basis: calc(100% - 44px); }
    .lx-pend__tags { justify-content: flex-start; padding-left: 44px; }
    .lx-pair__row { grid-template-columns: 112px minmax(0, 1fr); }
}

/* -----------------------------------------------------------------------------
   Larguras
   -------------------------------------------------------------------------- */
@media (max-width: 1280px) {
    .lx-pair__row { grid-template-columns: 128px minmax(0, 1fr); }
    .lx-minor__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
    .lx-minor__row > span:first-child { grid-column: 1 / -1; }
}
@media (max-width: 1100px) {
    .lx-desk { grid-template-columns: minmax(0, 1fr) minmax(340px, 45%); }
    .lx-ev__row { grid-template-columns: 92px minmax(0, 1fr) auto; }
    .lx-faces { grid-template-columns: 72px auto 72px; }
    .lx-faces img { width: 72px; height: 96px; }
    .lx-faces__meta { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
    .lx-desk { grid-template-columns: minmax(0, 1fr); }
    .lx-ev { position: static; max-height: none; }
    .lx-desk__keys { display: none; }
    .lx-decide { position: static; }
    .lx-decide__row { flex-direction: column; }
    .lx-decide__all { margin-left: 0; padding-left: 0; border-left: 0; flex-wrap: wrap; }
    .lx-pair__row { grid-template-columns: minmax(0, 1fr); gap: 2px; }
    .lx-choices { grid-template-columns: 1fr; }
}

/* Alcance "a proposta inteira" na confirmação de reprovar: vermelho, não âmbar. */
.cxp-confirm__v--scope.lx-scope--all { background: var(--cx-error-bg); color: var(--cx-error-fg); }

/* Comentário: escrito na confirmação, logo abaixo da comparação a que ele se refere. */
.lx-confirm-note { margin: 0 0 18px; }
.lx-confirm-note .cx-textarea { min-height: 60px; }
.lx-snap__v mark, .lx-hist__d mark { background: var(--cx-warning-bg); color: var(--cx-warning-fg); font-weight: 700; border-radius: 3px; padding: 0 1px; }
/* Regra que vem depois da que parou a política: ainda não avaliada. */
.lx-ev__st.is-wait { color: var(--cx-ink-3); font-weight: 500; font-style: italic; }
