/* CSV Viewer & Editor — toolbar row, editable grid, pager */
.csv-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; min-width: 0; }
.csv-bar .input-clean { flex: 1 1 220px; min-width: 0; }
.csv-wrap { max-height: 600px; }
.csv-table { border-collapse: separate; border-spacing: 0; font-size: 0.82rem; min-width: 100%; }
.csv-table th, .csv-table td { padding: 0.45rem 0.65rem; border-bottom: 1px solid var(--border); border-right: 1px solid var(--border-subtle); text-align: left; white-space: nowrap; max-width: 360px; overflow: hidden; text-overflow: ellipsis; }
.csv-table thead th { position: sticky; top: 0; z-index: 1; background: var(--surface-elevated); font-weight: 600; color: var(--text-secondary); padding: 0; }
.csv-sort { display: flex; align-items: center; gap: 0.35rem; width: 100%; padding: 0.5rem 0.65rem; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; text-align: left; }
.csv-sort:hover, th[aria-sort="ascending"] .csv-sort, th[aria-sort="descending"] .csv-sort { color: var(--brand); }
.csv-table td[data-col] { font-family: var(--font-mono); color: var(--text-primary); cursor: text; }
.csv-table td[data-col]:focus { outline: 2px solid var(--brand); outline-offset: -2px; white-space: pre-wrap; overflow: visible; text-overflow: clip; background: var(--surface-elevated); }
.csv-table .csv-num { position: sticky; left: 0; background: var(--surface-elevated); color: var(--text-muted); font-variant-numeric: tabular-nums; width: 1%; padding: 0.45rem 0.5rem; }
.csv-table thead .csv-num { z-index: 2; padding: 0.5rem; }
.csv-num { display: table-cell; }
.csv-del { margin-left: 0.35rem; width: 22px; height: 22px; border: 0; border-radius: var(--radius-xs); background: none; color: var(--text-muted); cursor: pointer; opacity: 0.35; font-size: 1rem; line-height: 1; }
tr:hover .csv-del, .csv-del:focus-visible { opacity: 1; }
.csv-del:hover { color: #dc2626; background: rgba(220, 38, 38, 0.1); }
.csv-pager { display: flex; align-items: center; justify-content: center; gap: 0.75rem; }
.csv-pager[hidden] { display: none; }
