@layer components {
  .cx-table-wrap {
    width: 100%;
    overflow-x: auto;
    border: 1px solid var(--cx-border);
    border-radius: var(--cx-radius-lg);
    background: var(--cx-surface);
  }

  .cx-table th,
  .cx-table td {
    padding: .85rem 1rem;
    border-block-end: 1px solid var(--cx-border);
    text-align: start;
    white-space: nowrap;
  }

  .cx-table th { background: var(--cx-surface-strong); font-weight: 900; }
  .cx-table tr:last-child td { border-block-end: 0; }
}

@layer components {
  .cx-table { width:100%; border-collapse:collapse; }
  .cx-table-dense th, .cx-table-dense td { padding:.55rem .7rem; }
  .cx-table-caption { padding:.85rem 1rem; border-block-end:1px solid var(--cx-border); color:var(--cx-muted); font-weight:800; }
  .cx-table-key-value th:first-child, .cx-table-key-value td:first-child { color:var(--cx-muted); font-weight:900; }
  .cx-pagination { display:flex; align-items:center; justify-content:flex-end; gap:.75rem; flex-wrap:wrap; padding:1rem 0; }
  .cx-pagination-size { grid-template-columns:auto minmax(88px,120px); align-items:center; }
  .cx-pagination-size .cx-label { font-size:.8rem; color:var(--cx-muted); }
}

@layer components {
  .cx-table-wrap { overflow:auto; scrollbar-gutter:stable both-edges; }
  .cx-table thead th { position:sticky; top:0; z-index:1; box-shadow:0 1px 0 var(--cx-border); }
  .cx-table tbody tr { transition:background var(--cx-transition), color var(--cx-transition), box-shadow var(--cx-transition), transform var(--cx-transition); }
  .cx-table tbody tr:hover { background:var(--cx-row-hover-bg); box-shadow:inset 4px 0 0 var(--cx-row-hover-border); }
  .cx-table tbody tr:hover td { color:var(--cx-text); }
  .cx-table tbody tr:hover td strong, .cx-table tbody tr:hover .cx-number, .cx-table tbody tr:hover .cx-money { color:inherit; font-weight:950; }
  .cx-table tbody tr[aria-selected="true"], .cx-table tbody tr.is-selected { background:var(--cx-row-selected-bg); box-shadow:inset 5px 0 0 var(--cx-row-selected-border); }
  .cx-table tbody tr[data-clickable="true"], .cx-table tbody tr.cx-row-clickable { cursor:pointer; }
  .cx-table-actions { display:inline-flex; align-items:center; gap:.4rem; opacity:.78; transition:opacity var(--cx-transition), transform var(--cx-transition); }
  .cx-table tr:hover .cx-table-actions, .cx-table tr.is-selected .cx-table-actions, .cx-table tr[aria-selected="true"] .cx-table-actions { opacity:1; transform:translateY(-1px); }
  .cx-table .cx-num, .cx-table .cx-money, .cx-table .cx-number { font-variant-numeric:tabular-nums; font-weight:850; }
  .cx-table .cx-cell-muted { color:var(--cx-muted); }
  .cx-table [data-semantic="revenue"] { color:var(--cx-sem-revenue); }
  .cx-table [data-semantic="profit"] { color:var(--cx-sem-profit); }
  .cx-table [data-semantic="loss"], .cx-table [data-semantic="danger"] { color:var(--cx-sem-loss); }
  .cx-table [data-semantic="cost"] { color:var(--cx-sem-cost); }
  .cx-table [data-semantic="expense"] { color:var(--cx-sem-expense); }
  .cx-table [data-semantic="inventory"] { color:var(--cx-sem-inventory); }
  .cx-table [data-semantic="production"] { color:var(--cx-sem-production); }
  .cx-table [data-semantic="forecast"] { color:var(--cx-sem-forecast); }
  .cx-table [data-semantic="settlement"] { color:var(--cx-sem-settlement); }
  .cx-table [data-semantic="pending"] { color:var(--cx-sem-pending); }
  .cx-table tr[data-row-semantic="revenue"]:hover { background:var(--cx-sem-revenue-soft); box-shadow:inset 4px 0 0 var(--cx-sem-revenue); }
  .cx-table tr[data-row-semantic="profit"]:hover { background:var(--cx-sem-profit-soft); box-shadow:inset 4px 0 0 var(--cx-sem-profit); }
  .cx-table tr[data-row-semantic="loss"]:hover, .cx-table tr[data-row-semantic="danger"]:hover { background:var(--cx-sem-loss-soft); box-shadow:inset 4px 0 0 var(--cx-sem-loss); }
  .cx-table tr[data-row-semantic="cost"]:hover { background:var(--cx-sem-cost-soft); box-shadow:inset 4px 0 0 var(--cx-sem-cost); }
  .cx-table tr[data-row-semantic="expense"]:hover { background:var(--cx-sem-expense-soft); box-shadow:inset 4px 0 0 var(--cx-sem-expense); }
  .cx-table tr[data-row-semantic="inventory"]:hover { background:var(--cx-sem-inventory-soft); box-shadow:inset 4px 0 0 var(--cx-sem-inventory); }
  .cx-table tr[data-row-semantic="production"]:hover { background:var(--cx-sem-production-soft); box-shadow:inset 4px 0 0 var(--cx-sem-production); }
  .cx-table tr[data-row-semantic="forecast"]:hover { background:var(--cx-sem-forecast-soft); box-shadow:inset 4px 0 0 var(--cx-sem-forecast); }
  .cx-table tr[data-row-semantic="settlement"]:hover { background:var(--cx-sem-settlement-soft); box-shadow:inset 4px 0 0 var(--cx-sem-settlement); }
  .cx-table tr[data-row-semantic="pending"]:hover { background:var(--cx-sem-pending-soft); box-shadow:inset 4px 0 0 var(--cx-sem-pending); }
  .cx-table-empty, .cx-table-error, .cx-table-loading { padding:var(--cx-space-6); text-align:center; color:var(--cx-muted); font-weight:850; }
  .cx-pagination { border-block-start:1px solid var(--cx-border); padding:var(--cx-space-4); background:rgba(255,255,255,.65); }
  .cx-pagination-info { color:var(--cx-muted); font-weight:850; margin-inline-end:auto; }
  .cx-density-comfortable .cx-table th, .cx-density-comfortable .cx-table td { padding:1rem 1.1rem; }
  .cx-density-compact .cx-table th, .cx-density-compact .cx-table td { padding:.48rem .62rem; font-size:.88rem; }
  @media (max-width:720px) {
    .cx-table-wrap { border-radius:var(--cx-radius-md); }
    .cx-table th, .cx-table td { padding:.7rem .75rem; }
    .cx-pagination { justify-content:center; }
    .cx-pagination-info { width:100%; text-align:center; margin:0; }
  }
}
