/* Componentes próprios do painel (o CSS da Filament só inclui as classes que ela usa). */
.vp-grid { display: grid; gap: 1.5rem; margin-bottom: 1.5rem; }
@media (min-width: 768px) { .vp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.vp-dl { display: grid; grid-template-columns: 1fr auto; row-gap: .5rem; column-gap: 1rem; font-size: .875rem; }
.vp-dl dd { text-align: right; font-variant-numeric: tabular-nums; }
.vp-forte { font-weight: 600; }
.vp-negativo { color: rgb(var(--danger-600)); }
.vp-positivo { color: rgb(var(--success-600)); }
.vp-aviso { margin-top: .75rem; font-size: .875rem; color: rgb(var(--danger-600)); }
.vp-vazio { font-size: .875rem; color: rgb(var(--gray-500)); }

.vp-contrato + .vp-contrato { margin-top: 2.5rem; }
.vp-contrato-titulo { font-size: 1.125rem; font-weight: 600; margin-bottom: 1rem; }
.vp-cards { display: grid; gap: 1rem; margin-bottom: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.vp-card { display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.25rem; border-radius: .75rem; background: #fff; box-shadow: 0 1px 2px rgb(0 0 0 / .05); border: 1px solid rgb(var(--gray-200)); border-top: 3px solid #ffddb2; }
.dark .vp-card { background: rgb(var(--gray-900)); border-color: rgb(var(--gray-800)); border-top-color: #ffddb2; }
.vp-card-rotulo { font-size: .8rem; color: rgb(var(--gray-500)); }
.vp-card-valor { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.vp-card-extra { font-size: .8rem; color: rgb(var(--gray-500)); }

.vp-rolagem { overflow-x: auto; }
.vp-tabela { width: 100%; font-size: .875rem; border-collapse: collapse; }
.vp-tabela th { text-align: left; font-weight: 600; padding: .5rem .5rem .5rem 0; border-bottom: 1px solid rgb(var(--gray-200)); }
.vp-tabela td { padding: .5rem .5rem .5rem 0; border-bottom: 1px solid rgb(var(--gray-100)); }
.vp-tabela tr:last-child td { border-bottom: 0; }
.vp-tabela .vp-num { text-align: right; font-variant-numeric: tabular-nums; }
.dark .vp-tabela th { border-color: rgb(var(--gray-700)); }
.dark .vp-tabela td { border-color: rgb(var(--gray-800)); }

.vp-historico { display: flex; flex-direction: column; gap: 1rem; }
.vp-historico-item { display: flex; flex-direction: column; gap: .5rem; padding: .875rem 1rem; border-radius: .5rem; border: 1px solid rgb(var(--gray-200)); }
.vp-historico-topo { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.vp-historico-meta { font-size: .8rem; color: rgb(var(--gray-500)); }
.vp-historico-texto { font-size: .875rem; white-space: pre-line; }
