/* CSV整形ボックス専用のスタイル（共通スタイル site.css の上に重ねる） */
.privacy-note { border: 2px solid var(--accent); background: var(--accent-soft); border-radius: var(--radius); padding: 10px 14px; margin: 12px 0; font-weight: 600; }

.dropzone { display: block; border: 2px dashed var(--border); border-radius: var(--radius); padding: 24px 16px; text-align: center; cursor: pointer; background: var(--bg); }
.dropzone:hover, .dropzone.dragover { border-color: var(--accent); background: var(--accent-soft); }
.dropzone input[type="file"] { display: block; margin: 8px auto 0; max-width: 100%; font: inherit; }
.dropzone .dz-title { font-weight: 600; }

.file-info { margin: 8px 0 0; font-size: 0.9rem; }
[hidden] { display: none !important; }

.steps { list-style: none; padding: 0; margin: 0; }
.steps > li { border-bottom: 1px solid var(--border); padding: 4px 0; }
.steps > li:last-child { border-bottom: none; }
.sub { margin: 4px 0 8px 28px; }

.col-list { list-style: none; padding: 0; margin: 8px 0; border: 1px solid var(--border); border-radius: 8px; max-height: 320px; overflow-y: auto; }
.col-list li { display: flex; align-items: center; gap: 8px; padding: 4px 8px; border-bottom: 1px solid var(--border); }
.col-list li:last-child { border-bottom: none; }
.col-list label { flex: 1; display: flex; align-items: center; gap: 8px; min-width: 0; }
.col-list label span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.col-list input[type="checkbox"] { width: 20px; height: 20px; margin: 0; flex: none; }
.col-list .mv { font: inherit; min-width: 40px; min-height: 36px; border: 1px solid var(--border); background: var(--surface); color: var(--text); border-radius: 6px; cursor: pointer; }
.col-list .mv:disabled { opacity: 0.35; cursor: not-allowed; }
.btn-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }

.summary table { width: auto; }
.summary ol { margin: 4px 0 0; padding-left: 1.5em; }

.preview-wrap { overflow: auto; max-height: 480px; border: 1px solid var(--border); border-radius: 8px; background: var(--surface); }
.preview { border-collapse: collapse; font-size: 0.85rem; white-space: pre; }
.preview th, .preview td { border: 1px solid var(--border); padding: 3px 6px; text-align: left; vertical-align: top; max-width: 24em; overflow: hidden; text-overflow: ellipsis; }
.preview thead th { position: sticky; top: 0; background: var(--accent-soft); }
.preview .rn { color: var(--muted); text-align: right; background: var(--bg); }
.preview tr.is-header td { font-weight: 700; background: var(--accent-soft); }
