.table-wrapper {
  background: var(--color-surface); border-radius: var(--radius-md);
  box-shadow: var(--shadow-sm); border: 1px solid var(--color-border);
  overflow-x: auto;
}
.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table thead { background: #f8fafc; border-bottom: 1px solid var(--color-border); }
.data-table th {
  padding: 10px 14px; text-align: left; font-weight: 600; font-size: 12px;
  text-transform: uppercase; letter-spacing: 0.5px; color: var(--color-text-muted);
  white-space: nowrap;
}
.data-table td { padding: 10px 14px; border-bottom: 1px solid var(--color-border); }
.data-table tbody tr { transition: background var(--transition); }
.data-table tbody tr:nth-child(even) { background: #f8fafc; }
.data-table tbody tr:hover { background: #eef2ff; }
.data-table tbody tr:last-child td { border-bottom: none; }
.data-table .col-fixed { width: 1%; white-space: nowrap; }

.data-table .row-necessidades {
  border-left: 3px solid #991b1b;
}
.data-table .row-necessidades td { background: rgba(153, 27, 27, 0.04); }
.data-table .row-necessidades:nth-child(even) td { background: rgba(153, 27, 27, 0.06); }

.cell-necessidades {
  color: #991b1b;
  font-weight: 600;
  font-size: 12px;
}

.cell-empty { color: var(--color-text-muted); font-style: italic; }

.empty-state {
  text-align: center; padding: 48px 20px; color: var(--color-text-muted);
  grid-column: 1 / -1;
}
.empty-state svg { width: 48px; height: 48px; margin: 0 auto 12px; opacity: 0.3; }
.empty-state p { font-size: 14px; }

@media (max-width: 1024px) {
  .table-wrapper { display: none; }
  .guest-cards { display: flex; flex-direction: column; gap: 12px; }
}
@media (min-width: 1025px) {
  .guest-cards { display: none; }
}
