.csv-tool{margin-bottom:2rem;}
.csv-card{background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0);border-radius:14px;box-shadow:0 4px 20px rgba(15,23,42,0.06);overflow:hidden;}
.csv-lang{display:flex;flex-wrap:wrap;gap:6px;padding:12px 14px;background:var(--surface-muted,#f8fafc);border-bottom:1px solid var(--border,#e2e8f0);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin;}
.csv-lang-btn{padding:8px 14px;border:none;border-radius:10px;font-size:0.8125rem;font-weight:600;cursor:pointer;background:var(--surface,#fff);color:var(--text-muted,#64748b);border:1px solid var(--border,#e2e8f0);white-space:nowrap;transition:color 0.2s,background 0.2s,border-color 0.2s;}
.csv-lang-btn:hover{color:var(--text-main,#0f172a);border-color:var(--primary,#0f766e);}
.csv-lang-btn.is-active{background:var(--primary,#0f766e);color:#fff;border-color:var(--primary,#0f766e);}
.csv-samples{display:flex;flex-wrap:wrap;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border,#e2e8f0);min-height:0;}
.csv-samples:empty{display:none;}
.csv-sample-btn{padding:6px 12px;border:1px solid var(--border,#e2e8f0);border-radius:8px;font-size:0.75rem;font-weight:500;cursor:pointer;background:var(--surface,#fff);color:var(--text-muted,#64748b);transition:color 0.2s,background 0.2s,border-color 0.2s;}
.csv-sample-btn:hover{background:var(--surface-muted,#f8fafc);border-color:var(--primary,#0f766e);color:var(--primary,#0f766e);}
.csv-editor-wrap{padding:14px;display:flex;flex-direction:column;gap:6px;}
.csv-label{font-size:0.75rem;font-weight:600;color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:0.05em;}
.csv-editor{width:100%;min-height:280px;padding:14px 16px;border:1px solid var(--border,#e2e8f0);border-radius:10px;font-size:0.875rem;line-height:1.55;font-family:ui-monospace,SF Mono,Consolas,monospace;color:#e2e8f0;background:#1e293b;resize:vertical;transition:border-color 0.2s,box-shadow 0.2s;}
.csv-editor:focus{outline:none;border-color:var(--primary,#0f766e);box-shadow:0 0 0 3px rgba(15,118,110,0.2);}
.csv-editor::placeholder{color:var(--text-muted,#64748b);opacity:0.6;}
.csv-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;background:var(--surface-muted,#f8fafc);border-top:1px solid var(--border,#e2e8f0);}
.csv-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;font-size:0.875rem;font-weight:600;cursor:pointer;transition:background 0.2s,color 0.2s,border-color 0.2s;}
.csv-btn-primary{background:var(--primary,#0f766e);color:#fff;border:none;}
.csv-btn-primary:hover{filter:brightness(1.1);}
.csv-btn-secondary{background:var(--surface,#fff);color:var(--text-main,#0f172a);border:1px solid var(--border,#e2e8f0);}
.csv-btn-secondary:hover{border-color:var(--primary,#0f766e);color:var(--primary,#0f766e);}
.csv-btn-ghost{background:transparent;color:var(--text-muted,#64748b);border:1px solid transparent;}
.csv-btn-ghost:hover{color:var(--text-main,#0f172a);background:rgba(0,0,0,0.04);}
.csv-results{padding:14px;border-top:1px solid var(--border,#e2e8f0);}
.csv-status{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;font-size:0.9375rem;font-weight:500;}
.csv-status-icon{width:20px;height:20px;flex-shrink:0;}
.csv-status.is-ready{background:var(--surface-muted,#f8fafc);color:var(--text-muted,#64748b);}
.csv-status.is-valid{background:#d1fae5;color:#065f46;}
.csv-status.is-invalid{background:#fee2e2;color:#991b1b;}
.csv-status.is-checking{background:#fef3c7;color:#92400e;}
.csv-stats{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:12px;padding:10px 0;font-size:0.8125rem;}
.csv-stats[aria-hidden="true"]{display:none;}
.csv-stat{display:inline-flex;align-items:baseline;gap:6px;}
.csv-stat-lbl{color:var(--text-muted,#64748b);text-transform:uppercase;letter-spacing:0.04em;}
.csv-stat-val{color:var(--text-main,#0f172a);font-variant-numeric:tabular-nums;}
.csv-list-wrap{margin-top:12px;}
.csv-list-empty{text-align:center;padding:24px 16px;color:var(--text-muted,#64748b);font-size:0.875rem;}
.csv-list-empty i{display:block;font-size:1.75rem;margin-bottom:8px;opacity:0.7;}
.csv-list-empty[hidden]{display:none;}
.csv-list{list-style:none;margin:0;padding:0;}
.csv-list li{padding:12px 14px;margin-bottom:8px;border-radius:8px;font-size:0.8125rem;font-family:ui-monospace,monospace;line-height:1.4;border-left:4px solid;}
.csv-list li.error{border-left-color:#dc2626;background:#fef2f2;}
.csv-list li.warning{border-left-color:#d97706;background:#fffbeb;}
.csv-list li .csv-msg-line{font-weight:700;margin-bottom:4px;}
.csv-list li.error .csv-msg-line{color:#991b1b;}
.csv-list li.warning .csv-msg-line{color:#92400e;}
.csv-list li .csv-msg-text{color:var(--text-muted,#64748b);}
@media (min-width:640px){.csv-lang{padding:14px 18px;}.csv-samples{padding:12px 18px;}.csv-editor-wrap{padding:18px;}.csv-editor{min-height:320px;font-size:0.9375rem;}.csv-actions{padding:14px 18px;}.csv-results{padding:18px;}}
@media (min-width:768px){.csv-card{border-radius:16px;}.csv-editor{min-height:360px;}}
