/* =============================================================================
   VS Design System — Laudo (F5)
   Blocos de detalhe das verificações (Components/Pages/Resultados/*, cards de crédito
   em Shared/Consulta/Credito e OptionalFeatures). Substitui wwwroot/css/ConsultaReportV2.css
   e o ConsultaResultsRenderer.razor.css: mesmo vocabulário de classes (.vs2-*), só tokens.
   Carregado depois de components.css.
   ============================================================================= */

/* ---------- Lista de blocos ---------- */
.results-content { display: flex; flex-direction: column; gap: 16px; }
.result-item, .result-content { min-width: 0; }
.results-content:empty { display: none; }
/* Bases 2/3 de uma família (leilão, sinistro, roubo, recall) já aparecem na seção consolidada da
   base 1: o item delas fica vazio e não pode somar mais um "gap" na coluna. */
.result-item:not(:has(> .result-content > *)) { display: none; }

/* ---------- Seção (um card por verificação) ---------- */
.vs2-section {
    background: var(--vs-bg-surface);
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-card-radius);
    overflow: hidden;
    scroll-margin-top: calc(var(--vs-topbar-h) + 16px);
    margin: 0;
}
.vs2-section + .vs2-section { margin-top: 16px; }

.vs2-section-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    padding: 14px 20px;
    border-bottom: 1px solid var(--vs-border-subtle);
    background: var(--vs-bg-surface);
    color: var(--vs-text);
    font-size: var(--vs-text-base);
    font-weight: var(--vs-weight-semibold);
    letter-spacing: var(--vs-tracking-snug);
    text-transform: none;
    line-height: 1.3;
    margin: 0;
    border-radius: 0;
}
.vs2-section-header > span:first-of-type { min-width: 0; }
.vs2-section-header img.vs2-section-icon,
.vs2-section-header .section-icon {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    padding: 7px;
    border-radius: var(--vs-radius-md);
    background: var(--vs-bg-subtle);
    filter: none;
    box-sizing: border-box;
}
.vs2-section-header.danger { box-shadow: inset 3px 0 0 var(--vs-risk-dot); }
.vs2-section-header.danger img.vs2-section-icon,
.vs2-section-header.danger .section-icon { background: var(--vs-risk-bg); }
.vs2-section-header.warning { box-shadow: inset 3px 0 0 var(--vs-warn-dot); }
.vs2-section-header.warning img.vs2-section-icon,
.vs2-section-header.warning .section-icon { background: var(--vs-warn-bg); }
.vs2-section-header.secondary { color: var(--vs-text-2); }

.vs2-source-tag {
    padding: 2px 8px;
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-radius-full);
    background: var(--vs-bg-subtle);
    color: var(--vs-text-2);
    font-family: var(--vs-font-mono);
    font-size: var(--vs-text-xs);
    font-weight: var(--vs-weight-medium);
    letter-spacing: .02em;
    text-transform: none;
}
.vs2-section-date {
    margin-left: auto;
    color: var(--vs-text-2);
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-regular);
    font-variant-numeric: tabular-nums;
}

/* Botão "Reprocessar" no cabeçalho dos blocos consolidados */
.vs2-reprocessar {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: var(--vs-control-h-sm);
    padding: 0 10px;
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-control-radius);
    background: var(--vs-bg-surface);
    color: var(--vs-text);
    font: inherit;
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-medium);
    cursor: pointer;
    transition: background var(--vs-dur-fast) var(--vs-ease), border-color var(--vs-dur-fast) var(--vs-ease);
}
.vs2-reprocessar:hover:not(:disabled) { background: var(--vs-bg-hover); border-color: var(--vs-border-hover); }
.vs2-reprocessar:focus-visible { outline: none; box-shadow: var(--vs-focus-ring); }
.vs2-reprocessar:disabled { opacity: .6; cursor: progress; }
.vs2-reprocessar .vs-icon.is-girando { animation: vs-spin 900ms linear infinite; }
@keyframes vs-spin { to { transform: rotate(360deg); } }

/* ---------- Corpo ---------- */
.vs2-section-body { padding: 4px 20px 18px; background: transparent; }
.vs2-section-body.alert-body,
.vs2-section-body.warn-body { background: transparent; }
.vs2-section-body > :first-child:not(.vs2-data-grid) { margin-top: 14px; }

/* ---------- Grade rótulo/valor ---------- */
/* Como tabela (out/2026, pedido de linhas mais aparentes): linha entre os campos na cor da borda
   e linha vertical entre as colunas. A vertical é a borda esquerda de cada campo puxada 1px para
   fora; a da primeira coluna fica escondida pelo overflow — vale para 2, 3 ou 4 colunas e para
   campos de linha inteira, sem contar filhos. */
.vs2-data-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    overflow: hidden;
}
.vs2-data-grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.vs2-data-grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.vs2-data-grid + .vs2-data-grid { margin-top: 6px; padding-top: 6px; border-top: 1px dashed var(--vs-border); }
/* cols-2/cols-4 do arquivo antigo devolvem border-right em :nth-child(3n) com especificidade 0,4,0 */
.vs2-data-grid.vs2-data-grid .vs2-data-item:nth-child(n) { border-right: 0; }
.vs2-data-item,
.vs2-data-grid .vs2-data-item:nth-child(n) {
    padding: 12px 14px 10px;
    border: 0;
    border-bottom: 1px solid var(--vs-border);
    border-left: 1px solid var(--vs-border);
    margin-left: -1px;
    background: transparent;
    min-width: 0;
}
.vs2-data-item.full-width { grid-column: 1 / -1; }
.vs2-label,
.vs2-data-item .vs2-label {
    margin-bottom: 3px;
    color: var(--vs-text-2);
    font-size: var(--vs-text-md);
    font-weight: var(--vs-weight-regular);
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.3;
}
.vs2-value,
.vs2-data-item .vs2-value {
    color: var(--vs-text);
    font-size: var(--vs-text-lg);
    font-weight: var(--vs-weight-medium);
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.4;
    overflow-wrap: anywhere;
    word-break: normal;
}
.vs2-valor-numerico { font-family: var(--vs-font-mono); font-variant-numeric: tabular-nums; }
/* Campo sem dado: "NÃO INFORMADO" (VsValor) sempre visível, esmaecido para o olho achar primeiro o que
   a fonte trouxe. Até out/2026 o campo vazio sumia; o dono pediu para mostrar tudo. text-2 (não text-3)
   para passar no AA também sobre os fundos de tom (ocorrência, faixas). */
.vs2-value .vs-campo-vazio,
.vs-campo-vazio { color: var(--vs-text-2); font-weight: var(--vs-weight-regular); letter-spacing: .02em; }

.vs2-value.vs2-valor-alerta,
.vs2-data-item .vs2-value.vs2-valor-alerta { color: var(--vs-risk-fg); font-weight: var(--vs-weight-semibold); }
.vs2-value.vs2-valor-ok,
.vs2-data-item .vs2-value.vs2-valor-ok { color: var(--vs-ok-fg); }
.vs2-value.vs2-valor-positivo,
.vs2-data-item .vs2-value.vs2-valor-positivo { color: var(--vs-ok-fg); font-weight: var(--vs-weight-semibold); }

/* ---------- Subtítulo dentro do corpo ---------- */
.vs2-subsection-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 18px 0 2px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--vs-text);
    font-size: var(--vs-text-md);
    font-weight: var(--vs-weight-semibold);
    letter-spacing: 0;
    text-transform: none;
}
.vs2-subsection-header img { width: 16px; height: 16px; opacity: .8; filter: none; }

/* ---------- Selos ---------- */
.vs2-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 2px 9px 2px 8px;
    border: 1px solid var(--vs-neutral-border);
    border-radius: var(--vs-radius-full);
    background: var(--vs-neutral-bg);
    color: var(--vs-neutral-fg);
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-medium);
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.5;
    white-space: nowrap;
}
.vs2-badge img { display: none; }
.vs2-badge::before { content: ""; width: 6px; height: 6px; border-radius: var(--vs-radius-full); background: var(--vs-neutral-dot); flex: 0 0 auto; }
.vs2-badge.ok { border-color: var(--vs-ok-border); background: var(--vs-ok-bg); color: var(--vs-ok-fg); }
.vs2-badge.ok::before { background: var(--vs-ok-dot); }
.vs2-badge.alert { border-color: var(--vs-risk-border); background: var(--vs-risk-bg); color: var(--vs-risk-fg); }
.vs2-badge.alert::before { background: var(--vs-risk-dot); }
.vs2-badge.warn { border-color: var(--vs-warn-border); background: var(--vs-warn-bg); color: var(--vs-warn-fg); }
.vs2-badge.warn::before { background: var(--vs-warn-dot); }

/* Origem/aceitação (histórico de KM, validação de seguros) */
.vs2-badge-fonte {
    display: inline-block;
    padding: 1px 8px;
    border-radius: var(--vs-radius-full);
    background: var(--vs-neutral-bg);
    color: var(--vs-neutral-fg);
    font-size: var(--vs-text-xs);
    font-weight: var(--vs-weight-medium);
    white-space: nowrap;
}
.vs2-badge-fonte.fonte-seguro { background: var(--vs-info-bg); color: var(--vs-info-fg); }
.vs2-badge-fonte.fonte-detran { background: var(--vs-warn-bg); color: var(--vs-warn-fg); }
.vs2-badge-fonte.fonte-concessionaria { background: var(--vs-ink-soft); color: var(--vs-ink); }
.vs2-badge-fonte.fonte-leilao { background: var(--vs-risk-bg); color: var(--vs-risk-fg); }
.vs2-badge-fonte.aceitacao-sim { background: var(--vs-ok-bg); color: var(--vs-ok-fg); }
.vs2-badge-fonte.aceitacao-nao { background: var(--vs-risk-bg); color: var(--vs-risk-fg); }

/* ---------- Estado vazio ("nada consta") ---------- */
.vs2-empty-state { display: flex; justify-content: flex-start; padding: 16px 0 4px; }

/* ---------- Faixas de alerta dentro do bloco ---------- */
.vs2-section-alert-banner,
.vs2-section-warn-banner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 14px 0 4px;
    padding: 12px 14px;
    border: 1px solid var(--vs-risk-border);
    border-radius: var(--vs-radius-lg);
    background: var(--vs-risk-bg);
    color: var(--vs-risk-title);
    font-size: var(--vs-text-md);
    font-weight: var(--vs-weight-regular);
    letter-spacing: 0;
    text-transform: none;
    line-height: 1.45;
}
.vs2-section-warn-banner { border-color: var(--vs-warn-border); background: var(--vs-warn-bg); color: var(--vs-warn-title); }
.vs2-section-alert-banner.is-warning { border-color: var(--vs-warn-border); background: var(--vs-warn-bg); color: var(--vs-warn-title); }
.vs2-section-alert-banner > img,
.vs2-section-warn-banner > img { display: none; }
.vs2-section-alert-banner::before,
.vs2-section-warn-banner::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    margin-top: 6px;
    border-radius: var(--vs-radius-full);
    background: var(--vs-risk-dot);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--vs-risk-dot) 18%, transparent);
}
.vs2-section-warn-banner::before,
.vs2-section-alert-banner.is-warning::before { background: var(--vs-warn-dot); box-shadow: 0 0 0 4px color-mix(in srgb, var(--vs-warn-dot) 18%, transparent); }
.vs2-section-alert-banner > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.vs2-section-alert-banner strong,
.vs2-section-warn-banner strong { font-weight: var(--vs-weight-semibold); }
.vs2-section-alert-banner span,
.vs2-section-warn-banner span { color: inherit; opacity: .9; }

/* ---------- Débitos destacados (BIN nacional/estadual) ---------- */
.vs2-debito-highlight {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 2px;
    border-bottom: 1px solid var(--vs-border-subtle);
    background: transparent;
}
.vs2-d-label { color: var(--vs-text-2); font-size: var(--vs-text-md); }
.vs2-d-value { font-family: var(--vs-font-mono); font-size: var(--vs-text-md); font-weight: var(--vs-weight-semibold); font-variant-numeric: tabular-nums; color: var(--vs-text); }
.vs2-debito-highlight.has-debt .vs2-d-value { color: var(--vs-risk-fg); }

/* ---------- Ocorrência (Renajud) ---------- */
.vs2-restriction-item {
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-radius-lg);
    background: var(--vs-bg-surface);
}

/* ---------- Cards de ocorrência (leilão, sinistro, roubo, sócios…) ---------- */
.vs2-auction-base {
    margin-top: 14px;
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-radius-lg);
    background: var(--vs-bg-surface);
    overflow: hidden;
}
.vs2-auction-base.warn { border-color: var(--vs-warn-border); }
.vs2-auction-base.risk { border-color: var(--vs-risk-border); }
.vs2-auction-base-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    padding: 10px 14px;
    background: var(--vs-bg-subtle);
    border-bottom: 1px solid var(--vs-border-subtle);
    color: var(--vs-text);
    font-size: var(--vs-text-md);
    font-weight: var(--vs-weight-semibold);
    text-transform: none;
    letter-spacing: 0;
}
.vs2-auction-base.warn > .vs2-auction-base-header,
.vs2-auction-base-header.warn { background: var(--vs-warn-bg); color: var(--vs-warn-title); }
.vs2-auction-base.risk > .vs2-auction-base-header { background: var(--vs-risk-bg); color: var(--vs-risk-title); }
.vs2-auction-base-body { padding: 0 14px 10px; }
.vs2-auction-card { padding: 12px 14px; border-top: 1px solid var(--vs-border-subtle); }
.vs2-auction-card:first-child { border-top: 0; }

/* Resultado inconclusivo (nem todas as bases responderam) */
.vs2-inconclusivo {
    display: flex;
    gap: 12px;
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px dashed var(--vs-warn-border);
    border-radius: var(--vs-radius-lg);
    background: var(--vs-warn-bg);
    color: var(--vs-warn-title);
}
.vs2-inconclusivo__titulo { font-weight: var(--vs-weight-semibold); }
.vs2-inconclusivo__texto { font-size: var(--vs-text-md); opacity: .9; }

/* ---------- Tabelas (histórico de KM, proprietários, seguradoras, pagamentos) ---------- */
.vs2-km-table-wrapper { position: relative; margin-top: 12px; overflow-x: auto; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-lg); }
.vs2-km-table,
.vs2-table { width: 100%; border-collapse: collapse; font-size: var(--vs-text-md); background: var(--vs-bg-surface); }
.vs2-km-table th,
.vs2-table thead th {
    padding: 9px 12px;
    background: var(--vs-bg-subtle);
    border-bottom: 1px solid var(--vs-border);
    color: var(--vs-text-2);
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-medium);
    letter-spacing: 0;
    text-transform: none;
    text-align: left;
    white-space: nowrap;
}
.vs2-km-table td,
.vs2-table tbody td { padding: 10px 12px; border-bottom: 1px solid var(--vs-border-subtle); color: var(--vs-text); vertical-align: top; }
.vs2-km-table tr:last-child td,
.vs2-table tbody tr:last-child td { border-bottom: 0; }
.vs2-km-table tbody tr:hover,
.vs2-table tbody tr:hover { background: var(--vs-bg-row-hover); }
.vs2-table td.numeric, .vs2-km-valor { font-family: var(--vs-font-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
.vs2-table td.alert-value { color: var(--vs-risk-fg); font-weight: var(--vs-weight-semibold); }
.vs2-km-cards-mobile { display: none; }
.vs2-km-card-item { padding: 12px 14px; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-lg); margin-top: 8px; }
.vs2-km-card-principal { display: flex; justify-content: space-between; gap: 10px; font-weight: var(--vs-weight-semibold); }
.vs2-km-card-detalhes { margin-top: 4px; color: var(--vs-text-2); font-size: var(--vs-text-sm); display: flex; flex-wrap: wrap; gap: 4px 12px; }

/* ---------- Seções recolhíveis ---------- */
.vs2-collapsible { margin-top: 12px; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-lg); background: var(--vs-bg-surface); }
.vs2-collapsible > summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    cursor: pointer;
    list-style: none;
    font-size: var(--vs-text-md);
    font-weight: var(--vs-weight-medium);
    color: var(--vs-text);
}
.vs2-collapsible > summary::-webkit-details-marker { display: none; }
.vs2-collapsible > summary::before {
    content: "";
    width: 7px;
    height: 7px;
    border-right: 1.5px solid var(--vs-text-2);
    border-bottom: 1.5px solid var(--vs-text-2);
    transform: rotate(-45deg);
    transition: transform var(--vs-dur-fast) var(--vs-ease);
    flex: 0 0 auto;
}
.vs2-collapsible[open] > summary::before { transform: rotate(45deg); }
.vs2-collapsible > summary:hover { background: var(--vs-bg-hover); }
.vs2-collapsible > summary:focus-visible { outline: none; box-shadow: inset var(--vs-focus-ring); }
.vs2-collapsible > .vs2-collapsible-body { padding: 0 14px 12px; }

/* ---------- Parecer técnico (detalhe) ---------- */
.vs2-parecer-info { margin-top: 14px; color: var(--vs-text-2); font-size: var(--vs-text-md); line-height: 1.5; }

/* ---------- Celular ---------- */
@media (max-width: 767.98px) {
    .results-content { gap: 12px; }
    .vs2-section-header { padding: 12px 14px; }
    .vs2-section-date { margin-left: 0; width: 100%; }
    .vs2-section-body { padding: 2px 14px 14px; }
    .vs2-data-grid,
    .vs2-data-grid.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 0; }
    .vs2-data-grid.cols-2 { grid-template-columns: minmax(0, 1fr); }
    .vs2-data-item.full-width { grid-column: 1 / -1; }
    .vs2-km-table-wrapper:has(+ .vs2-km-cards-mobile) { display: none; }
    .vs2-km-cards-mobile { display: block; }
}
@media (max-width: 380px) {
    .vs2-data-grid,
    .vs2-data-grid.cols-4 { grid-template-columns: minmax(0, 1fr); }
}

@media print {
    .vs2-section { break-inside: avoid; border-color: var(--vs-gray-300); }
    .vs2-reprocessar { display: none; }
}
.vs2-table th.numeric { text-align: right; }
.vs2-table td.numeric { text-align: right; }
.vs2-documento { margin-top: 16px; padding-top: 4px; border-top: 1px solid var(--vs-border-subtle); }
.vs2-documento__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 10px 0 12px; }
.vs2-documento__head .vs2-subsection-header { margin: 0; }
.vs2-parecer-info { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }

/* ---------- Classes vindas dos estilos inline antigos (codemod F5) ---------- */
.vs2-nota {
    margin: 12px 0;
    padding: 10px 14px;
    border-left: 3px solid var(--vs-border-strong);
    border-radius: 0 var(--vs-radius-md) var(--vs-radius-md) 0;
    background: var(--vs-bg-subtle);
    color: var(--vs-text-2);
    font-size: var(--vs-text-md);
    line-height: 1.5;
}
.vs2-nota strong { color: var(--vs-text); font-weight: var(--vs-weight-semibold); }
/* Seção que a fonte devolveu sem nenhum campo: uma linha no lugar da grade de "Não informado". */
.vs2-nota-vazia { margin: 14px 0 0; color: var(--vs-text-2); font-size: var(--vs-text-md); }
/* Lista curta dentro de um campo (ex.: observações da CNH). */
.vs2-lista-itens { margin: 2px 0 0; padding-left: 18px; color: var(--vs-text); font-size: var(--vs-text-md); line-height: 1.5; }
.vs2-lista-itens li + li { margin-top: 2px; }
.vs2-ocorrencia {
    margin: 14px 0 0;
    padding: 14px 16px;
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-radius-lg);
    background: var(--vs-bg-surface);
}
.vs2-ocorrencia.is-warning { border-color: var(--vs-warn-border); box-shadow: inset 3px 0 0 var(--vs-warn-dot); }
.vs2-ocorrencia.is-risk { border-color: var(--vs-risk-border); box-shadow: inset 3px 0 0 var(--vs-risk-dot); }
.vs2-ocorrencia.is-info { border-color: var(--vs-info-border); background: var(--vs-info-bg); }
.vs2-ocorrencia .vs2-data-item:last-child { border-bottom: 0; }
.vs2-linha-selos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.vs2-mb { margin-bottom: 12px; }
.vs2-mt { margin-top: 14px; }
.vs2-value.vs2-valor-destaque, .vs2-valor-destaque { font-weight: var(--vs-weight-semibold); }
.vs2-value.vs2-valor-atencao,
.vs2-data-item .vs2-value.vs2-valor-atencao { color: var(--vs-warn-fg); font-weight: var(--vs-weight-semibold); }
.vs2-value.vs2-texto-longo,
.vs2-data-item .vs2-value.vs2-texto-longo {
    max-height: 220px;
    overflow-y: auto;
    padding: 10px 12px;
    border: 1px solid var(--vs-border-subtle);
    border-radius: var(--vs-radius-md);
    background: var(--vs-bg-subtle);
    font-size: var(--vs-text-md);
    font-weight: var(--vs-weight-regular);
    line-height: 1.55;
    white-space: pre-wrap;
}
.vs2-section-alert-banner.is-ok { border-color: var(--vs-ok-border); background: var(--vs-ok-bg); color: var(--vs-ok-title); }
.vs2-section-alert-banner.is-ok::before { background: var(--vs-ok-dot); box-shadow: 0 0 0 4px color-mix(in srgb, var(--vs-ok-dot) 18%, transparent); }

/* Indicadores numéricos dentro de um bloco (score, percentuais, contagens) */
.vs2-metricas { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; margin: 14px 0 4px; }
.vs2-metrica { padding: 12px 14px; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-lg); background: var(--vs-bg-surface); }
.vs2-metrica .vs2-label { margin-bottom: 4px; }
.vs2-metrica__valor { font-size: var(--vs-text-2xl); font-weight: var(--vs-weight-semibold); letter-spacing: var(--vs-tracking-tight); font-variant-numeric: tabular-nums; color: var(--vs-text); line-height: 1.15; }
.vs2-metrica__sub { margin-top: 4px; font-size: var(--vs-text-sm); color: var(--vs-text-2); }
.vs2-metrica.is-risk { border-color: var(--vs-risk-border); background: var(--vs-risk-bg); }
.vs2-metrica.is-risk .vs2-metrica__valor { color: var(--vs-risk-fg); }
.vs2-metrica.is-warning { border-color: var(--vs-warn-border); background: var(--vs-warn-bg); }
.vs2-metrica.is-warning .vs2-metrica__valor { color: var(--vs-warn-fg); }
.vs2-metrica.is-ok .vs2-metrica__valor { color: var(--vs-ok-fg); }
.vs2-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.vs2-chip { padding: 3px 10px; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-full); background: var(--vs-bg-subtle); font-family: var(--vs-font-mono); font-size: var(--vs-text-sm); color: var(--vs-text-2); }
.vs2-ocorrencia__head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; margin-bottom: 2px; font-size: var(--vs-text-base); }
.vs2-value.vs2-valor-fipe,
.vs2-data-item .vs2-value.vs2-valor-fipe { font-size: var(--vs-text-xl); font-weight: var(--vs-weight-semibold); font-variant-numeric: tabular-nums; letter-spacing: var(--vs-tracking-tight); }
.vs2-grafico { margin-top: 14px; }
.vs2-grafico__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.vs2-grafico__variacao { display: inline-flex; align-items: center; gap: 4px; color: var(--vs-text-2); font-size: var(--vs-text-sm); font-variant-numeric: tabular-nums; }
.vs2-grafico__area { position: relative; height: 220px; padding: 12px; border: 1px solid var(--vs-border-subtle); border-radius: var(--vs-radius-md); background: var(--vs-bg-surface); }
.vs2-grafico__erro { padding: 32px; text-align: center; color: var(--vs-text-2); font-size: var(--vs-text-md); }
.vs2-sep::before { content: "·"; margin: 0 8px; color: var(--vs-text-3); }
.vs2-bloco { margin-top: 16px; padding-top: 4px; border-top: 1px solid var(--vs-border-subtle); }
.vs2-nota.is-ok { border-left-color: var(--vs-ok-dot); background: var(--vs-ok-bg); color: var(--vs-ok-title); }
.vs2-nota.is-warning { border-left-color: var(--vs-warn-dot); background: var(--vs-warn-bg); color: var(--vs-warn-title); }
.vs2-nota__titulo { margin-bottom: 4px; color: var(--vs-text); font-weight: var(--vs-weight-semibold); }
.vs2-nota__lista { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 2px; }
.vs2-perfil { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 20px; margin-top: 14px; }
.vs2-perfil__foto { flex: 0 0 auto; }
.vs2-perfil__dados { flex: 1 1 320px; min-width: 0; }
.vs2-foto-3x4 { display: block; width: 120px; height: 160px; object-fit: cover; border-radius: var(--vs-radius-md); border: 1px solid var(--vs-border); background: var(--vs-bg-subtle); }
.vs2-anexo-imagem { margin-top: 14px; padding: 14px; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-lg); background: var(--vs-bg-subtle); text-align: center; }
.vs2-anexo-imagem img { max-width: 100%; height: auto; border-radius: var(--vs-radius-md); }
.vs2-anexo-imagem .vs-btn { margin-top: 10px; }
.vs2-galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; margin-top: 12px; }
.vs2-galeria img { display: block; width: 100%; height: auto; border-radius: var(--vs-radius-md); border: 1px solid var(--vs-border); }
.vs2-nota.is-risk { border-left-color: var(--vs-risk-dot); background: var(--vs-risk-bg); color: var(--vs-risk-title); }

/* O ConsultaReportV2.css antigo pinta as variantes de cabeçalho com fundo sólido e texto branco
   (seletores com mais especificidade): neutraliza enquanto aquele arquivo ainda é carregado. */
.vs2-section .vs2-section-header,
.vs2-section .vs2-section-header.danger,
.vs2-section .vs2-section-header.warning,
.vs2-section .vs2-section-header.secondary { background: var(--vs-bg-surface); color: var(--vs-text); border-radius: 0; }
.vs2-section .vs2-section-header.secondary { color: var(--vs-text-2); }
.vs2-section .vs2-section-body.alert-body,
.vs2-section .vs2-section-body.warn-body { background: transparent; border: 0; }
.vs2-empty-state, .vs2-empty-state * { font-style: normal; }
.vs2-section .vs2-section-header .section-icon,
.vs2-section .vs2-section-header img { filter: none; }
.vs2-auction-base .vs2-auction-base-header.warn { background: var(--vs-warn-bg); color: var(--vs-warn-title); }

/* Fontes dentro de um bloco consolidado (Base 1, Fonte 2…): o conteúdo de cada fonte já vem em
   .vs2-section; aqui elas perdem a moldura para não virar card dentro de card dentro de card. */
.vs2-auction-base { border: 0; border-radius: 0; background: transparent; overflow: visible; margin-top: 18px; }
.vs2-auction-base > .vs2-auction-base-header,
.vs2-auction-base .vs2-auction-base-header.warn {
    padding: 0 0 8px;
    background: transparent;
    border-bottom: 1px solid var(--vs-border);
    color: var(--vs-text-2);
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-semibold);
}
.vs2-auction-base-body { padding: 0; }
.vs2-auction-base-body .vs2-section,
.vs2-auction-base-body .vs2-section + .vs2-section { border: 0; border-radius: 0; margin: 0; background: transparent; overflow: visible; }
.vs2-auction-base-body .vs2-section + .vs2-section { border-top: 1px dashed var(--vs-border); }
.vs2-auction-base-body .vs2-section .vs2-section-header,
.vs2-auction-base-body .vs2-section .vs2-section-header.danger,
.vs2-auction-base-body .vs2-section .vs2-section-header.warning { padding: 14px 0 6px; border-bottom: 0; box-shadow: none; background: transparent; font-size: var(--vs-text-md); }
.vs2-auction-base-body .vs2-section .vs2-section-header img.vs2-section-icon { width: 24px; height: 24px; padding: 5px; }
.vs2-auction-base-body .vs2-section-body { padding: 0 0 12px; }
.vs2-auction-base-body > :first-child > .vs2-section-alert-banner:first-child,
.vs2-auction-base-body > .vs2-section-alert-banner:first-child { margin-top: 12px; }

/* Tabelas: o arquivo antigo usa "thead th" (mais específico) com caixa alta e borda grossa */
.vs2-km-table thead th,
.vs2-km-table-wrapper .vs2-table thead th,
.vs2-table thead th {
    padding: 9px 12px;
    background: var(--vs-bg-subtle);
    border-bottom: 1px solid var(--vs-border);
    color: var(--vs-text-2);
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-medium);
    letter-spacing: 0;
    text-transform: none;
}
.vs2-km-table tbody td { padding: 10px 12px; font-size: var(--vs-text-md); }
.vs2-km-table .vs2-km-valor,
.vs2-km-valor { font-size: var(--vs-text-md); font-weight: var(--vs-weight-semibold); letter-spacing: 0; color: var(--vs-text); }
.vs2-km-table td strong { font-weight: var(--vs-weight-medium); }

/* Faixa de atenção com título + texto empilhados (blocos consolidados) */
.vs2-section-warn-banner > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }

/* Aviso legal ao fim do laudo */
.vs-legal {
    margin-top: 8px;
    padding: 16px 20px;
    border: 1px solid var(--vs-border-subtle);
    border-radius: var(--vs-card-radius);
    background: var(--vs-bg-surface);
    color: var(--vs-text-2);
    font-size: var(--vs-text-sm);
    line-height: 1.55;
}
.vs-legal p { margin: 0 0 8px; }
.vs-legal p:last-child { margin-bottom: 0; }
.vs-legal strong { color: var(--vs-text); font-weight: var(--vs-weight-semibold); }
.vs-legal__emissor { padding-bottom: 8px; border-bottom: 1px solid var(--vs-border-subtle); }
@media print { .vs-legal { border: 0; padding: 0; } }

.vs2-section .vs2-debito-highlight,
.vs2-section .vs2-debito-highlight.has-debt {
    margin: 0;
    padding: 10px 2px;
    border: 0;
    border-bottom: 1px solid var(--vs-border-subtle);
    border-radius: 0;
    background: transparent;
}
.vs2-section .vs2-debito-highlight .vs2-d-label { color: var(--vs-text-2); font-size: var(--vs-text-md); font-weight: var(--vs-weight-regular); text-transform: none; letter-spacing: 0; }
.vs2-section .vs2-debito-highlight .vs2-d-value { font-family: var(--vs-font-sans); font-size: var(--vs-text-base); font-weight: var(--vs-weight-semibold); font-variant-numeric: tabular-nums; color: var(--vs-text); }
.vs2-section .vs2-debito-highlight.has-debt .vs2-d-value { color: var(--vs-risk-fg); }

/* Selos dentro dos blocos: o arquivo antigo tem variações mais específicas (restrição com fundo
   sólido, padding maior) — aqui todo selo de laudo tem o mesmo tamanho e tom suave. */
.vs2-section .vs2-badge,
.vs2-section .vs2-restriction-item .vs2-badge,
.vs2-section .vs2-restriction-item.has-alert .vs2-badge.alert {
    padding: 2px 9px 2px 8px;
    border-radius: var(--vs-radius-full);
    font-size: var(--vs-text-sm);
    font-weight: var(--vs-weight-medium);
    line-height: 1.5;
    text-transform: none;
    letter-spacing: 0;
}
.vs2-section .vs2-badge.alert,
.vs2-section .vs2-restriction-item.has-alert .vs2-badge.alert { border: 1px solid var(--vs-risk-border); background: var(--vs-risk-bg); color: var(--vs-risk-fg); }
.vs2-section .vs2-badge.ok { border: 1px solid var(--vs-ok-border); background: var(--vs-ok-bg); color: var(--vs-ok-fg); }
.vs2-section .vs2-badge.warn { border: 1px solid var(--vs-warn-border); background: var(--vs-warn-bg); color: var(--vs-warn-fg); }
.vs2-section .vs2-badge.pending { border: 1px solid var(--vs-neutral-border); background: var(--vs-neutral-bg); color: var(--vs-neutral-fg); }

/* Faixa de alerta posta direto na seção (fora do corpo): mesmo recuo do corpo */
.vs2-section > .vs2-section-alert-banner,
.vs2-section > .vs2-section-warn-banner { margin: 14px 20px 0; }
@media (max-width: 767.98px) { .vs2-section > .vs2-section-alert-banner, .vs2-section > .vs2-section-warn-banner { margin: 12px 14px 0; } }

/* ---------- Resumo com IA (ResumoIAModal) ---------- */
.vs-resumo-ia__carregando { display: flex; flex-direction: column; gap: 10px; }
.vs-resumo-ia__carregando p { margin: 0; }
.vs-resumo-ia__secao { padding: 14px 16px; border: 1px solid var(--vs-border-subtle); border-radius: var(--vs-radius-md); background: var(--vs-bg-surface); }
.vs-resumo-ia__secao.is-conclusao { border-color: var(--vs-border); background: var(--vs-accent-soft); }
.vs-resumo-ia__titulo { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: var(--vs-text-md); font-weight: var(--vs-weight-semibold); color: var(--vs-text); }
.vs-resumo-ia__titulo .vs-icon { color: var(--vs-text-3); }
.vs-resumo-ia__texto { margin: 0; white-space: pre-line; line-height: var(--vs-leading); color: var(--vs-text); }
.vs-resumo-ia__corrido p { margin: 0 0 10px; line-height: var(--vs-leading); }
.vs-resumo-ia__corrido p:last-child { margin-bottom: 0; }

/* ---------- Cartão de score das features opcionais do crédito (ScoreCardBase) ---------- */
.vs-score-card { display: flex; flex-direction: column; gap: 12px; }
.vs-score-card__valor { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; margin-top: 4px; }
.vs-score-card__numero { font-size: var(--vs-text-3xl); font-weight: var(--vs-weight-semibold); letter-spacing: var(--vs-tracking-tight); font-variant-numeric: tabular-nums; color: var(--vs-text); line-height: 1.1; }
.vs-score-card.is-ok .vs-score-card__numero { color: var(--vs-ok-fg); }
.vs-score-card.is-risk .vs-score-card__numero { color: var(--vs-risk-fg); }
.vs-score-card.is-warning .vs-score-card__numero { color: var(--vs-warn-fg); }
.vs-score-card__max { font-size: var(--vs-text-md); color: var(--vs-text-3); font-variant-numeric: tabular-nums; }
.vs-score-card__sub { font-size: var(--vs-text-sm); color: var(--vs-text-2); }

/* ---------- Parecer técnico (ResultadoParecerTecnico) ---------- */
.vs-parecer { display: flex; flex-direction: column; gap: 12px; }
.vs-parecer__topo { display: flex; align-items: center; gap: 16px; padding: 14px 16px; border: 1px solid var(--vs-border); border-radius: var(--vs-radius-md); background: var(--vs-bg-subtle); }
.vs-parecer.is-ok .vs-parecer__topo { border-color: var(--vs-ok-border); background: var(--vs-ok-bg); }
.vs-parecer.is-warning .vs-parecer__topo { border-color: var(--vs-warn-border); background: var(--vs-warn-bg); }
.vs-parecer.is-risk .vs-parecer__topo { border-color: var(--vs-risk-border); background: var(--vs-risk-bg); }
.vs-parecer__rating { margin: 0; font-size: var(--vs-text-xl); font-weight: var(--vs-weight-semibold); color: var(--vs-text); }
.vs-parecer__sub { margin: 2px 0 0; font-size: var(--vs-text-md); color: var(--vs-text-2); }
.vs-parecer__nota { margin: 4px 0 0; line-height: var(--vs-leading); }

/* ---------- Fonte indisponível (VsInsumoUnavailable) ---------- */
.vs-indisponivel { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; padding: 12px 14px; border: 1px solid var(--vs-warn-border); border-radius: var(--vs-radius-md); background: var(--vs-warn-bg); }
.vs2-section-body > .vs-indisponivel + .vs-indisponivel { margin-top: 10px; }
.vs-indisponivel__icone { display: inline-flex; color: var(--vs-warn-fg); }
.vs-indisponivel__corpo { flex: 1 1 220px; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.vs-indisponivel__titulo { font-size: var(--vs-text-base); font-weight: var(--vs-weight-semibold); color: var(--vs-text); }
.vs-indisponivel__texto { font-size: var(--vs-text-md); color: var(--vs-text-2); }
.vs-indisponivel__meta { font-size: var(--vs-text-sm); color: var(--vs-text-2); }

.vs-resumo-ia__progresso { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--vs-border-subtle); border-radius: var(--vs-radius-md); background: var(--vs-bg-subtle); }

/* ---------- Laudo no celular: seções recolhíveis ----------
   Com problema (cabeçalho danger/warning) a seção começa aberta; sem problema, fechada — o
   cabeçalho já diz o resultado e o laudo da consulta máxima deixa de ter 20 telas de rolagem.
   O shell.js marca o cabeçalho como botão (role, tabindex, aria-expanded); .is-alternada inverte
   o padrão da seção. Cabeçalho com botão próprio (Reprocessar) não é marcado: a seção fica aberta. */
@media (max-width: 767.98px) {
    .vs-laudo .vs2-section > .vs2-section-header[data-vs-recolhe] { cursor: pointer; padding-right: 40px; position: relative; flex-wrap: nowrap; }
    .vs-laudo .vs2-section > .vs2-section-header[data-vs-recolhe] > span:first-of-type { flex: 1 1 auto; min-width: 0; }
    .vs-laudo .vs2-section > .vs2-section-header[data-vs-recolhe]::after {
        content: "";
        position: absolute;
        right: 16px;
        top: 50%;
        width: 8px;
        height: 8px;
        margin-top: -6px;
        border-right: 2px solid var(--vs-text-3);
        border-bottom: 2px solid var(--vs-text-3);
        transform: rotate(45deg);
        transition: transform var(--vs-dur-fast) var(--vs-ease);
    }
    .vs-laudo .vs2-section > .vs2-section-header[aria-expanded="true"]::after { transform: rotate(225deg); margin-top: -2px; }
    .vs-laudo .vs2-section > .vs2-section-header[aria-expanded="false"] { border-bottom: 0; }
    .vs-laudo .vs2-section:has(> .vs2-section-header[aria-expanded="false"]) > :not(.vs2-section-header) { display: none; }
}

/* =============================================================================
   Laudo veicular em formato de RELATÓRIO (.vs-laudo--relatorio, out/2026)
   Pedido do dono: o laudo do redesign parecia "app/painel". Volta a estrutura do relatório
   anterior (df4e1818) — uma folha com margens, seções com faixa azul-marinho cheia e título em
   caixa alta, rótulos em caixa alta e valores em negrito, resumo em caixa alta — mantendo a fonte
   Geist, os tokens/cores do DS, o cabeçalho novo da identificação, a faixa do parecer, as contagens
   e o histórico da placa. Só o laudo veicular usa (Nova consulta, laudo completo do Consumo e
   detalhe do Admin); documento, crédito e CRLV seguem no .vs-laudo comum.
   ============================================================================= */
.vs-laudo--relatorio {
    --vs-laudo-faixa-bg: var(--vs-ink);
    --vs-laudo-faixa-fg: #FFFFFF;
    --vs-laudo-faixa-apoio: rgb(255 255 255 / .74);
    --vs-laudo-faixa-risk: var(--vs-red-700);
    --vs-laudo-faixa-warn: var(--vs-amber-700);
    --vs-laudo-filete: var(--vs-ink);
    gap: 20px;
    padding: 32px 40px 36px;
    border: 1px solid var(--vs-border);
    border-radius: var(--vs-card-radius);
    background: var(--vs-bg-surface);
    box-shadow: var(--vs-shadow-sm);
}
/* Tema escuro: a tinta vira clara — a faixa usa o fundo de tinta escuro com o texto claro. */
:root[data-theme="dark"] .vs-laudo--relatorio {
    --vs-laudo-faixa-bg: var(--vs-ink-soft);
    --vs-laudo-faixa-fg: var(--vs-ink);
    --vs-laudo-faixa-apoio: var(--vs-text-2);
}
@media (prefers-color-scheme: dark) {
    :root[data-theme="auto"] .vs-laudo--relatorio {
        --vs-laudo-faixa-bg: var(--vs-ink-soft);
        --vs-laudo-faixa-fg: var(--vs-ink);
        --vs-laudo-faixa-apoio: var(--vs-text-2);
    }
}

/* Cabeçalho da folha: a identificação nova sem moldura própria, com o nome do documento em cima
   e uma régua em tinta separando do resto do relatório. */
.vs-laudo--relatorio > .vs-laudo-head {
    padding: 0 0 22px;
    border: 0;
    border-bottom: 2px solid var(--vs-laudo-filete);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}
.vs-laudo-head__documento {
    font-size: var(--vs-text-xs);
    font-weight: 700;
    letter-spacing: var(--vs-tracking-caps);
    text-transform: uppercase;
    color: var(--vs-text-3);
}
/* Cards de apoio dentro da folha (histórico da placa, "nenhuma fonte retornou") sem sombra. */
.vs-laudo--relatorio > .vs-card { box-shadow: none; }

/* Resumo das verificações em caixa alta, centralizado e 3 por linha, como no relatório anterior. */
.vs-laudo--relatorio .vs-check__label {
    font-size: var(--vs-text-sm);
    font-weight: 700;
    letter-spacing: var(--vs-tracking-caps);
    text-transform: uppercase;
}
.vs-laudo--relatorio .vs-check__detail {
    font-size: var(--vs-text-lg);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .01em;
}
.vs-laudo--relatorio .vs-check--sem-retorno .vs-check__detail { text-transform: none; letter-spacing: 0; font-weight: var(--vs-weight-regular); }
@media (min-width: 576px) {
    .vs-laudo--relatorio .vs-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .vs-laudo--relatorio .vs-check:not(.vs-check--sem-retorno) { align-items: center; gap: 6px; padding: 16px 14px 18px; text-align: center; }
    .vs-laudo--relatorio .vs-check:not(.vs-check--sem-retorno) .vs-check__head { flex-direction: column; gap: 8px; }
    .vs-laudo--relatorio .vs-check:not(.vs-check--sem-retorno) .vs-check__detail { padding-left: 0; }
}
@media (min-width: 1024px) {
    .vs-laudo--relatorio .vs-checks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Título "Detalhes por verificação": divisória do relatório em caixa alta. */
.vs-laudo--relatorio .vs-laudo-detalhes__head { margin-top: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--vs-border); }
.vs-laudo--relatorio .vs-laudo-detalhes__title {
    font-size: var(--vs-text-md);
    font-weight: 700;
    letter-spacing: var(--vs-tracking-caps);
    text-transform: uppercase;
    color: var(--vs-text);
}
.vs-laudo--relatorio .vs-laudo-detalhes__conteudo { gap: 20px; }

/* ---------- Seções: faixa azul-marinho cheia com título em caixa alta ---------- */
.vs-laudo--relatorio .vs2-section { border-radius: var(--vs-radius-lg); }
.vs-laudo--relatorio .vs2-section > .vs2-section-header,
.vs-laudo--relatorio .vs2-section > .vs2-section-header.secondary {
    gap: 6px 12px;
    padding: 11px 20px;
    border-bottom: 0;
    background: var(--vs-laudo-faixa-bg);
    box-shadow: none;
    color: var(--vs-laudo-faixa-fg);
    font-size: var(--vs-text-md);
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.vs-laudo--relatorio .vs2-section > .vs2-section-header.danger { background: var(--vs-laudo-faixa-risk); color: #FFFFFF; box-shadow: none; }
.vs-laudo--relatorio .vs2-section > .vs2-section-header.warning { background: var(--vs-laudo-faixa-warn); color: #FFFFFF; box-shadow: none; }
.vs-laudo--relatorio .vs2-section > .vs2-section-header img.vs2-section-icon,
.vs-laudo--relatorio .vs2-section > .vs2-section-header .section-icon {
    width: 18px;
    height: 18px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    filter: brightness(0) invert(1);
}
:root[data-theme="dark"] .vs-laudo--relatorio .vs2-section > .vs2-section-header:not(.danger):not(.warning) img.vs2-section-icon { filter: brightness(0) invert(.9); }
.vs-laudo--relatorio .vs2-section > .vs2-section-header .vs2-section-date { color: var(--vs-laudo-faixa-apoio); font-size: var(--vs-text-sm); letter-spacing: 0; text-transform: none; font-weight: var(--vs-weight-regular); }
.vs-laudo--relatorio .vs2-section > .vs2-section-header.danger .vs2-section-date,
.vs-laudo--relatorio .vs2-section > .vs2-section-header.warning .vs2-section-date { color: rgb(255 255 255 / .8); }
.vs-laudo--relatorio .vs2-section > .vs2-section-header .vs2-source-tag { border-color: transparent; background: rgb(255 255 255 / .16); color: inherit; }
.vs-laudo--relatorio .vs2-section > .vs2-section-header .vs2-reprocessar { border-color: rgb(255 255 255 / .45); background: transparent; color: inherit; }
.vs-laudo--relatorio .vs2-section > .vs2-section-header .vs2-reprocessar:hover:not(:disabled) { background: rgb(255 255 255 / .12); border-color: rgb(255 255 255 / .7); }
.vs-laudo--relatorio .vs2-section-body { padding: 6px 24px 20px; }

/* Subtítulos (dentro da seção e das fontes de um bloco consolidado): caixa alta com filete à
   esquerda sobre fundo suave, como no relatório anterior. */
.vs-laudo--relatorio .vs2-subsection-header,
.vs-laudo--relatorio .vs2-auction-base > .vs2-auction-base-header,
.vs-laudo--relatorio .vs2-auction-base .vs2-auction-base-header.warn,
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header,
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header.danger,
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header.warning {
    margin: 18px 0 4px;
    padding: 8px 14px;
    border: 0;
    border-left: 3px solid var(--vs-laudo-filete);
    border-radius: 0;
    background: var(--vs-bg-subtle);
    box-shadow: none;
    color: var(--vs-ink);
    font-size: var(--vs-text-sm);
    font-weight: 700;
    letter-spacing: var(--vs-tracking-caps);
    text-transform: uppercase;
}
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header.danger { border-left-color: var(--vs-risk-dot); color: var(--vs-risk-title); }
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header.warning { border-left-color: var(--vs-warn-dot); color: var(--vs-warn-title); }
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header img.vs2-section-icon { width: 16px; height: 16px; padding: 0; background: transparent; filter: none; opacity: .8; }
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section-body { padding: 0 0 12px; }
.vs-laudo--relatorio .vs2-auction-base-body .vs2-section > .vs2-section-header .vs2-section-date { color: var(--vs-text-3); text-transform: none; letter-spacing: 0; font-weight: var(--vs-weight-regular); }

/* ---------- Grade de campos: rótulo em caixa alta pequena, valor em negrito ---------- */
.vs-laudo--relatorio .vs2-data-item .vs2-label,
.vs-laudo--relatorio .vs2-metrica .vs2-label {
    font-size: var(--vs-text-xs);
    font-weight: var(--vs-weight-semibold);
    letter-spacing: var(--vs-tracking-caps);
    text-transform: uppercase;
    color: var(--vs-text-2); /* text-3 não passa no AA sobre fundos de tom (ocorrência informativa) */
}
.vs-laudo--relatorio .vs2-data-item .vs2-value { font-weight: var(--vs-weight-semibold); }
.vs-laudo--relatorio .vs2-km-table thead th,
.vs-laudo--relatorio .vs2-km-table-wrapper .vs2-table thead th,
.vs-laudo--relatorio .vs2-table thead th {
    font-size: var(--vs-text-xs);
    font-weight: var(--vs-weight-semibold);
    letter-spacing: var(--vs-tracking-caps);
    text-transform: uppercase;
    color: var(--vs-text-3);
}

/* Aviso legal: rodapé do documento, separado por uma linha. */
.vs-laudo--relatorio .vs-legal { margin-top: 4px; padding: 18px 0 0; border: 0; border-top: 1px solid var(--vs-border); border-radius: 0; background: transparent; }

/* Celular: a folha encosta nas margens da página e as seções recolhíveis mostram a seta na faixa. */
@media (max-width: 767.98px) {
    .vs-laudo--relatorio { gap: 16px; padding: 18px 14px 22px; }
    .vs-laudo--relatorio > .vs-laudo-head { padding-bottom: 16px; }
    .vs-laudo--relatorio .vs2-section > .vs2-section-header { padding: 11px 14px; }
    .vs-laudo--relatorio .vs2-section-body { padding: 2px 14px 14px; }
    .vs-laudo.vs-laudo--relatorio .vs2-section > .vs2-section-header[data-vs-recolhe]::after { border-color: var(--vs-laudo-faixa-apoio); }
    .vs-laudo--relatorio .vs2-section > .vs2-section-header.danger[data-vs-recolhe]::after,
    .vs-laudo--relatorio .vs2-section > .vs2-section-header.warning[data-vs-recolhe]::after { border-color: rgb(255 255 255 / .8); }
}
@media (max-width: 575.98px) {
    .vs-laudo--relatorio.vs-laudo--acoes-fixas { padding-bottom: 92px; }
}
@media print {
    .vs-laudo--relatorio { padding: 0; border: 0; box-shadow: none; }
    .vs-laudo--relatorio .vs2-section > .vs2-section-header { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
