:root{--text:#4b5563;--text-h:#111827;--bg:#f9fafb;--surface:#fff;--border:#e5e7eb;--accent:#2563eb;--accent-light:#dbeafe;--error:#dc2626;--error-light:#fee2e2;--success:#16a34a;--success-light:#dcfce7;--muted:#9ca3af;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, "Cascadia Code", "Fira Code", Consolas, monospace;font:14px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box;margin:0;padding:0}body{margin:0}#root{flex-direction:column;width:100%;height:100vh;display:flex;overflow:hidden}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--border);background:var(--surface);flex-shrink:0;align-items:baseline;gap:12px;padding:12px 20px;display:flex}.app-header h1{color:var(--text-h);letter-spacing:-.5px;font-size:20px;font-weight:700}.app-subtitle{color:var(--muted);font-size:13px}.app-main{flex:1;display:flex;overflow:hidden}.status-bar{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:16px;padding:6px 20px;font-size:12px;display:flex}.status-item{align-items:center;gap:4px;display:flex}.status-ok{color:var(--success)}.status-ok:before{content:"●";font-size:8px}.status-error{color:var(--error)}.status-error:before{content:"●";font-size:8px}.status-waiting{color:var(--muted)}.status-waiting:before{content:"●";font-size:8px}.csv-input{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:360px;min-width:280px;display:flex}.csv-input-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.csv-input-header h2{color:var(--text-h);font-size:13px;font-weight:600}.csv-input-actions{gap:6px;display:flex}.csv-textarea{resize:none;font-family:var(--mono);color:var(--text-h);background:var(--surface);border:none;outline:none;flex:1;padding:12px 16px;font-size:12px;line-height:1.6}.csv-textarea::placeholder{color:var(--muted)}.btn{cursor:pointer;border:none;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500;transition:background .15s}.btn-secondary{background:var(--accent-light);color:var(--accent)}.btn-secondary:hover{background:#bfdbfe}.btn-ghost{color:var(--muted);background:0 0}.btn-ghost:hover{background:var(--border);color:var(--text)}.csv-table-wrapper{background:var(--surface);flex:1;overflow:auto}.csv-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:13px}.csv-table thead{z-index:1;position:sticky;top:0}.csv-table thead tr{background:#f3f4f6}.csv-table th{text-align:left;color:var(--text-h);border-bottom:2px solid var(--border);white-space:nowrap;text-transform:none;padding:8px 16px;font-size:12px;font-weight:600}.draggable-header{cursor:grab;-webkit-user-select:none;user-select:none;transition:background .15s}.draggable-header:active{cursor:grabbing}.draggable-header.dragging{opacity:.4}.draggable-header.drag-over{background:var(--accent-light);box-shadow:inset 2px 0 0 var(--accent)}.csv-table td{border-bottom:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;max-width:400px;padding:6px 16px;overflow:hidden}.csv-table tbody tr:hover td{background:#f9fafb}.row-number-header,.row-number{color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;min-width:48px;padding-right:12px;font-size:11px}.row-number-header{background:#f3f4f6}.csv-table-empty{color:var(--muted);background:var(--surface);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.empty-icon{opacity:.4;font-size:48px}.csv-table-empty p{font-size:14px}
