/* CSV・TSV・JSON 変換 */
.cv-block { margin-bottom: 14px; }
.cv-block-head, .cv-out-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.cv-head { display: block; font-weight: bold; margin: 0; }
.cv-file-btn { margin: 0; }
.cv-file-info { margin: 4px 0; padding: 6px 10px; background: #f5f5f5; border: 1px solid #ddd; border-radius: 3px; word-break: break-all; }
.cv-link { border: 0; background: none; padding: 0 0 0 8px; color: #31708f; text-decoration: underline; cursor: pointer; }
.cv-input, .cv-output { font-family: Consolas, Menlo, monospace; font-size: 13px; }
.cv-opts { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 8px; align-items: flex-end; }
.cv-opts > label { margin: 0; font-weight: normal; }
.cv-opts > label > select { display: block; width: auto; max-width: 100%; margin-top: 2px; }
.cv-check { font-weight: normal; }
.cv-check input { margin-right: 4px; }
.cv-run-row { margin-top: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cv-progress { color: #555; }
.cv-error { margin: 10px 0; padding: 8px 12px; border: 1px solid #e4b9b9; background: #fdf0f0; color: #a40000; border-radius: 3px; word-break: break-word; }
.cv-stats { margin: 4px 0 8px; color: #333; }
.cv-notes { margin: 0 0 10px; padding: 8px 12px 8px 28px; border: 1px solid #e6d9a8; background: #fdf9e8; color: #5c4b00; border-radius: 3px; }
.cv-formula { margin: 0 0 12px; padding: 8px 12px; border: 1px solid #e4b9b9; background: #fff6f6; border-radius: 3px; }
.cv-formula .cv-check { display: block; margin: 4px 0 0; }
.cv-preview-note { color: #666; font-size: 13px; margin: 2px 0 4px; }
.cv-preview-wrap { max-height: 360px; overflow: auto; margin-bottom: 14px; border: 1px solid #ddd; }
.cv-preview { margin: 0; font-size: 13px; border: 0; }
.cv-preview th, .cv-preview td { white-space: pre; max-width: 24em; overflow: hidden; text-overflow: ellipsis; vertical-align: top; }
.cv-preview th { background: #f5f5f5; position: sticky; top: 0; }
.cv-preview .cv-no { color: #888; text-align: right; background: #fafafa; }
.cv-save { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.cv-save label { margin: 0; font-weight: normal; }
.cv-filename { width: auto; flex: 1 1 200px; max-width: 360px; }
