/* CSV 표 편집기 */
.cs-toolbar { display: flex; align-items: flex-end; gap: .5rem; flex-wrap: wrap; margin-bottom: var(--spacing-md, 1rem); }
.cs-delim { min-width: 10rem; margin: 0; }
.cs-spacer { flex: 1 1 auto; }
.cs-stat { font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); }
.cs-wrap { overflow: auto; max-height: 32rem; border: 1px solid var(--border-color, #e5e8ed); border-radius: var(--radius-sm, 6px); }
.cs-table { border-collapse: collapse; width: max-content; min-width: 100%; font-size: var(--text-sm, .875rem); }
.cs-table th, .cs-table td { border: 1px solid var(--border-subtle, #eef0f4); padding: 0; }
.cs-table thead th { position: sticky; top: 0; z-index: 2; background: var(--surface-2, #f1f3f7); }
.cs-corner, .cs-rowhead { position: sticky; left: 0; z-index: 1; background: var(--surface-2, #f1f3f7); min-width: 3rem; text-align: center; font-size: var(--text-ui-sm, .8125rem); color: var(--text-muted, #626977); font-weight: 500; }
.cs-corner { z-index: 3; }
.cs-rowhead { display: table-cell; white-space: nowrap; padding: 0 .25rem; }
.cs-head-wrap { display: flex; align-items: center; }
.ce-cell { border: 0; background: transparent; padding: .375rem .5rem; min-width: 7rem; width: 100%; font: inherit; }
.ce-cell:focus { outline: 2px solid var(--accent-primary, #3b6fe0); outline-offset: -2px; background: var(--bg-surface, #fff); }
.ce-head-input { font-weight: 700; }
.ce-del { border: 0; background: none; cursor: pointer; color: var(--text-muted, #626977); padding: 0 .25rem; font-size: 1rem; line-height: 1; }
.ce-del:hover { color: var(--accent-danger, #d64545); }
.cs-alert { margin-top: var(--spacing-md, 1rem); }
.cs-note { margin-top: var(--spacing-lg, 1.5rem); }
