.vz-layout {
  --vz-head-bg:     var(--c-surface-alt);
  --vz-head-bg-alt: var(--c-border);
}

/* ============================================================
   Layout principal
   ============================================================ */

.vz-layout {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-5);
  padding: var(--sp-5);
  overflow-x: auto;
  font-family: inherit;
  font-size: var(--fs-base);
  line-height: 1.4;
  color: var(--c-text);
  background: var(--c-surface);
}

.vz-block     { flex-shrink: 0; }
.vz-block-sub { flex-grow: 1; min-width: 520px; }

.vz-middle {
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
  flex-shrink: 0;
}

/* NOVO: coluna da direita (DADOS + ELEVATÓRIAS) */
.vz-right {
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
  flex-shrink: 0;
}

/* ============================================================
   Tabela base
   ============================================================ */

.vz-table {
  font-family: inherit;
  font-size: var(--fs-base);
  color: var(--c-text);
  background: var(--c-surface);
  border-collapse: collapse;
}

.vz-table th,
.vz-table td {
  padding: var(--sp-2) var(--sp-3);
  text-align: center;
  vertical-align: middle;
  color: var(--c-text);
  background: var(--c-surface);
  border: 1px solid var(--c-border-strong);
}

.vz-table th {
  font-weight: var(--fw-semibold);
  letter-spacing: .02em;
  background: var(--vz-head-bg);
}

.vz-table thead tr:first-child th {
  background: var(--vz-head-bg-alt);
}

.vz-table tbody tr:nth-child(even) td {
  background: var(--c-surface-alt);
}

.vz-table tbody tr:hover td {
  background: var(--c-accent-soft);
}

.vz-table-sub { width: 100%; }

/* ============================================================
   Células específicas
   ============================================================ */

.vz-c {
  text-align: center;
  white-space: nowrap;
}

.vz-empty {
  padding: var(--sp-4);
  font-style: italic;
  text-align: center;
  color: var(--c-text-muted);
}

.vz-dados-table { min-width: 420px; }

.vz-dados-table .vz-label {
  padding-left: var(--sp-3);
  font-weight: var(--fw-normal);
  text-align: left;
  white-space: nowrap;
  background: var(--c-surface);
}

.vz-dados-table .vz-value {
  padding-right: var(--sp-3);
  text-align: right;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  background: var(--c-surface);
}

/* NOVO: tabela de elevatórias — mesma largura mínima da tabela de DADOS */
.vz-elev-table { min-width: 420px; }

/* ============================================================
   Acessibilidade
   ============================================================ */

.vz-table :focus-visible,
.vz-table:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
  border-radius: 2px;
}

@media (forced-colors: active) {
  .vz-table th,
  .vz-table td {
    background: Canvas;
    color: CanvasText;
    border-color: CanvasText;
  }

  .vz-table th { font-weight: var(--fw-bold); }
}

/* ============================================================
   Responsivo
   ============================================================ */

@media (max-width: 1024px) {
  .vz-layout {
    --vz-pad-x: var(--sp-2);
    gap: var(--sp-4);
    padding: var(--sp-3);
  }

  .vz-middle { gap: var(--sp-4); }
  .vz-right  { gap: var(--sp-4); } /* NOVO */
}

@media (max-width: 768px) {
  .vz-layout {
    flex-direction: column;
    gap: var(--sp-4);
    overflow-x: visible;
  }

  .vz-block,
  .vz-block-sub,
  .vz-middle,
  .vz-right {                 /* NOVO */
    width: 100%;
    min-width: 0;
  }

  .vz-block,
  .vz-middle > *,
  .vz-right > * {             /* NOVO */
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .vz-table { min-width: 480px; }
}

/* ============================================================
   Scrollbar
   ============================================================ */

.vz-layout::-webkit-scrollbar,
.vz-block::-webkit-scrollbar,
.vz-middle > *::-webkit-scrollbar,
.vz-right > *::-webkit-scrollbar {   /* NOVO */
  width: 10px;
  height: 10px;
}

.vz-layout::-webkit-scrollbar-track,
.vz-block::-webkit-scrollbar-track,
.vz-middle > *::-webkit-scrollbar-track,
.vz-right > *::-webkit-scrollbar-track {   /* NOVO */
  background: transparent;
}

.vz-layout::-webkit-scrollbar-thumb,
.vz-block::-webkit-scrollbar-thumb,
.vz-middle > *::-webkit-scrollbar-thumb,
.vz-right > *::-webkit-scrollbar-thumb {   /* NOVO */
  background: var(--c-border-strong);
  border-radius: 999px;
}

.vz-layout::-webkit-scrollbar-thumb:hover,
.vz-block::-webkit-scrollbar-thumb:hover,
.vz-middle > *::-webkit-scrollbar-thumb:hover,
.vz-right > *::-webkit-scrollbar-thumb:hover {   /* NOVO */
  background: var(--c-text-subtle);
}