.csv-heading{display:flex;gap:18px;align-items:center;margin:28px 0}.csv-heading img{width:64px;height:64px}.csv-heading h1{font-size:40px;margin:0 0 8px}.csv-heading p{margin:0;font-size:15px}.csv-label{color:#6d28d9;font-size:12px;font-weight:700;letter-spacing:.06em}.csv-shell{border:1px solid #ded7eb;border-radius:20px;background:#fff;margin-bottom:32px;overflow:hidden;box-shadow:0 10px 35px #33275a08}.csv-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:20px 24px;border-bottom:1px solid #e8e3f0}.csv-bar h2{font-size:20px;margin:0}.csv-buttons{display:flex;gap:8px;flex-wrap:wrap}.csv-shell button,.csv-shell input[type=number],.csv-shell input[type=text],.csv-shell select{font:inherit;font-size:13px;border:1px solid #dcd5e8;border-radius:8px;background:#fff;color:#263247;padding:8px 12px}.csv-shell button{cursor:pointer;font-weight:600}.csv-shell button.primary{background:#6d28d9;border-color:#6d28d9;color:#fff}.csv-shell button:hover:not(:disabled){border-color:#7c3aed;background:#faf7ff}.csv-shell button.primary:hover:not(:disabled){background:#5b21b6;color:#fff}.csv-shell button:disabled{opacity:.45;cursor:not-allowed}.csv-shell :is(button,input,select,textarea):focus-visible{outline:3px solid #a78bfa;outline-offset:2px}.csv-import{padding:24px}.csv-drop{border:2px dashed #d8cdea;border-radius:14px;background:#fcfaff;padding:24px;text-align:center;margin-bottom:18px}.csv-drop.dragging{background:#eee7fd;border-color:#7c3aed}.csv-drop p{margin:0 0 12px;font-size:14px}.csv-drop input{max-width:100%;font-size:13px}.csv-options{display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin:18px 0}.csv-options label{font-size:12px;display:flex;gap:6px;flex-direction:column;color:#48566c;font-weight:600}.csv-options label.check{flex-direction:row;align-items:center;font-weight:400;max-width:420px}.csv-options select{max-width:220px}.csv-paste{display:block;width:100%;resize:vertical;min-height:120px;max-height:400px;padding:14px;border:1px solid #dcd5e8;border-radius:8px;font:13px/1.6 ui-monospace,Consolas,monospace;margin:12px 0}.csv-small{font-size:12px;margin:8px 0;color:#59677b}.csv-status{padding:12px 16px;border-radius:10px;background:#f5f1fc;color:#48336a;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0}.csv-status.error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.csv-preview{padding:18px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px}.csv-preview h3{font-size:18px;margin:0 0 10px}.csv-preview-scroll{overflow:auto;max-height:220px;margin:12px 0}.csv-preview table{border-collapse:collapse;font-size:12px;background:#fff;min-width:100%}.csv-preview td{border:1px solid #dce3ed;padding:8px;max-width:240px;white-space:pre-wrap;overflow-wrap:anywhere}.csv-summary{font-size:13px;color:#59677b;overflow-wrap:anywhere}.csv-toolbar{background:#faf8fe;display:flex;gap:12px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid #e5deef;align-items:center;justify-content:space-between}.csv-toolbar label{font-size:13px}.csv-grid-scroll{max-height:560px;overflow:auto;overscroll-behavior:contain}.csv-grid{border-collapse:separate;border-spacing:0;font-size:13px;table-layout:fixed;min-width:100%}.csv-grid td,.csv-grid th{border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;vertical-align:top;padding:0;width:170px;min-width:170px;background:#fff}.csv-grid thead th{background:#f3effa;position:sticky;top:0;z-index:2;color:#5b427f}.csv-grid .csv-record{position:sticky;left:0;z-index:1;width:60px;min-width:60px;text-align:center;padding:12px 6px;background:#f8f6fc;color:#64748b;font-size:12px;font-weight:600}.csv-grid thead .csv-record{z-index:3;background:#eee8f8}.csv-col-code{display:block;padding:8px 12px;font-size:11px;text-align:left}.csv-cell{display:block;width:100%;height:58px;min-height:58px;resize:vertical;max-height:240px;border:0;border-radius:0;background:0 0;padding:10px 12px;color:#202934;font:13px/1.5 ui-monospace,Consolas,monospace;white-space:pre;tab-size:4}.csv-cell:focus{outline:2px solid #7c3aed!important;outline-offset:-2px!important;background:#fbf8ff}.csv-grid thead .csv-cell{font-weight:650}.csv-paging{display:flex;gap:14px;justify-content:space-between;flex-wrap:wrap;padding:16px 20px;border-top:1px solid #e5deef;font-size:12px;align-items:center}.csv-paging-group{display:flex;align-items:center;gap:8px}.csv-export{padding:20px 24px;border-top:1px solid #e5deef}.csv-export h3{font-size:18px}.csv-export input[type=text]{width:190px}.csv-help{margin:42px 0}.csv-help h2{font-size:26px}.csv-help li{color:#59677b;margin:10px 0}.csv-roadmap{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.csv-roadmap article{padding:24px;border:1px solid #e5deef;border-radius:16px;background:#fff}.csv-roadmap h3{font-size:18px;margin:12px 0}.csv-roadmap p{font-size:13px;margin:0}[hidden]{display:none!important}@media(max-width:600px){.csv-heading{align-items:flex-start}.csv-heading img{width:48px;height:48px}.csv-heading h1{font-size:32px}.csv-bar,.csv-export,.csv-import{padding:18px}.csv-roadmap{grid-template-columns:1fr}.csv-options{align-items:stretch;gap:12px}.csv-options label{flex:1 1 140px}.csv-options label.check{flex-basis:100%}.csv-paging{align-items:flex-start}.csv-paging-group{flex-wrap:wrap}}.csv-tools{padding:18px 24px;border-bottom:1px solid #e5deef;background:#fdfbff}.csv-tools summary{cursor:pointer;font-weight:650;color:#4c1d95}.csv-tools h3{font-size:17px;margin:24px 0 10px}.csv-tools input[type=text]{max-width:230px}.csv-match{background:#fff8cc}.csv-tools .csv-options{align-items:end}@media(max-width:600px){.csv-tools{padding:16px}.csv-tools input[type=text]{max-width:100%;width:100%}}.csv-keyboard-help{font-size:12px;color:#59677b;margin:0;padding:14px 20px;background:#f8f6fc;border-bottom:1px solid #e5deef}.csv-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.csv-recovery .csv-bar h2{margin-bottom:8px}.csv-recovery .csv-bar p{max-width:850px}.csv-preview th{padding:8px;border:1px solid #dce3ed;text-align:left}