.csv-clean-file-picker { display: grid; gap: 10px; padding: 16px; border: 1px dashed #a9c3e9; border-radius: 12px; background: #f4f8ff; }
.csv-clean-file-picker input { padding: 8px 0; border: 0; background: transparent; }
.csv-clean-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.csv-clean-controls .field { min-width: 0; }
.csv-clean-options { display: flex; flex-wrap: wrap; gap: 8px 14px; margin-top: 14px; }
.csv-clean-option { display: inline-flex; align-items: center; gap: 7px; }
.csv-clean-option input { width: auto; }
.csv-clean-sources { margin: 18px 0 0; padding: 12px 16px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-muted); }
.csv-clean-sources h3 { margin: 0 0 4px; font-size: 1rem; }
.csv-clean-sources ul { margin: 0; padding-left: 1.2rem; }
.csv-clean-mapping { margin-top: 14px; color: var(--muted); font-size: .9rem; }
.csv-clean-mapping.is-error { color: #a42424; font-weight: 700; }
.csv-clean-preview, .csv-clean-result { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.csv-clean-preview[hidden], .csv-clean-result[hidden] { display: none; }
.csv-clean-preview-table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.csv-clean-preview-table { min-width: 640px; margin-top: 10px; font-size: .86rem; }
.csv-clean-preview-table th, .csv-clean-preview-table td { max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.csv-clean-result { padding: 18px; border: 1px solid #9bcdaa; border-radius: 12px; background: #f2fbf5; }
.csv-clean-result h3 { margin: 0 0 6px; }
.csv-clean-result .actions { margin-bottom: 0; }
.csv-clean-manifest { margin-top: 10px; font-size: .86rem; color: var(--muted); }
.csv-clean-help { margin: 5px 0 0; color: var(--muted); font-size: .86rem; }
@media (max-width: 760px) {
  .csv-clean-controls { grid-template-columns: 1fr; }
  .csv-clean-result .actions { align-items: stretch; }
}
