:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.App{min-height:100vh;display:flex;flex-direction:column}.App-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:3rem 2rem;text-align:center}.App-header h1{margin:0;font-size:2.5rem;font-weight:700}.subtitle{margin:.5rem 0 0;font-size:1.1rem;opacity:.95}.container{flex:1;max-width:1200px;margin:0 auto;padding:3rem 2rem;width:100%}.instructions{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a}.instructions h2{margin:0 0 1.5rem;color:#2d3748;text-align:center}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.step{display:flex;gap:1rem;align-items:flex-start}.step-number{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.step h3{margin:0 0 .25rem;color:#2d3748;font-size:1.1rem}.step p{margin:0;color:#718096;font-size:.9rem}.info-box{background:linear-gradient(135deg,#667eea15,#764ba215);border-left:4px solid #667eea;border-radius:8px;padding:1.5rem;margin-top:2rem;display:flex;gap:1rem;align-items:flex-start}.info-icon{width:32px;height:32px;color:#667eea;flex-shrink:0}.info-box strong{color:#2d3748;display:block;margin-bottom:.5rem;font-size:1.05rem}.info-box p{margin:0;color:#4a5568;line-height:1.6}.upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-bottom:2rem}.upload-zone{border:3px dashed #cbd5e0;border-radius:12px;padding:3rem 2rem;text-align:center;transition:all .3s ease;background:#f7fafc;min-height:320px;display:flex;align-items:center;justify-content:center}.upload-zone.dragging{border-color:#667eea;background:#edf2f7;transform:scale(1.02)}.upload-zone.uploaded{border-color:#48bb78;background:#f0fff4}.upload-content{display:flex;flex-direction:column;align-items:center;gap:1rem}.upload-icon{width:64px;height:64px;color:#667eea;margin-bottom:1rem}.upload-icon.success{color:#48bb78}.upload-icon.optional{color:#a0aec0}.upload-zone h3{margin:0;color:#2d3748;font-size:1.4rem}.upload-zone h2{margin:0;color:#2d3748;font-size:1.8rem}.upload-zone p{color:#718096;margin:.5rem 0 1.5rem}.file-input{display:none}.upload-button{background:#667eea;color:#fff;padding:.875rem 2rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;display:inline-block;margin-top:.5rem}.upload-button:hover{background:#5568d3;transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.file-name-small{color:#4a5568;margin:.5rem 0 .25rem;font-weight:500;font-size:.95rem}.file-stats{color:#718096;margin:0;font-size:.9rem}.file-list{width:100%;max-width:400px;margin:1rem 0;display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}.file-item{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem .75rem;background:#fff;border:1px solid #e2e8f0;border-radius:6px;font-size:.85rem}.file-count{color:#718096;font-size:.8rem;flex-shrink:0}.remove-file-btn{background:#feb2b2;color:#c53030;border:none;width:24px;height:24px;border-radius:50%;font-size:1.2rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0;line-height:1}.remove-file-btn:hover{background:#fc8181;transform:scale(1.1)}.upload-button.secondary{background:#edf2f7;color:#4a5568;font-size:.9rem;padding:.625rem 1.5rem}.upload-button.secondary:hover{background:#e2e8f0;box-shadow:0 2px 8px #0000001a}.file-badge{margin-left:1rem;background:#edf2f7;color:#4a5568;padding:.375rem .875rem;border-radius:16px;font-size:.8rem;font-weight:500}.preview-section{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000001a;margin-bottom:2rem}.preview-section:last-child{margin-bottom:0}.results{animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.results-header{background:#fff;border-radius:12px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 8px #0000001a;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}.results-header h2{margin:0 0 .5rem;color:#2d3748;font-size:1.8rem}.file-name{color:#4a5568;margin:.25rem 0;font-weight:500}.record-count{color:#718096;margin:.25rem 0 1rem}.stats-badges{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.badge{background:#edf2f7;color:#4a5568;padding:.5rem 1rem;border-radius:20px;font-size:.85rem;font-weight:500;display:inline-block}.button-group{display:flex;gap:1rem;flex-wrap:wrap}.download-button,.reset-button{padding:.875rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.download-button{background:#48bb78;color:#fff}.download-button:hover{background:#38a169;transform:translateY(-2px);box-shadow:0 4px 12px #48bb7866}.reset-button{background:#edf2f7;color:#4a5568}.reset-button:hover{background:#e2e8f0}.preview-section h3{margin:0 0 1.5rem;color:#2d3748;font-size:1.4rem;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.table-container{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.5rem 0}.rows-per-page{display:flex;align-items:center;gap:.5rem}.rows-per-page label{color:#4a5568;font-size:.9rem}.rows-per-page select{padding:.5rem;border:1px solid #cbd5e0;border-radius:6px;background:#fff;color:#2d3748;cursor:pointer;font-size:.9rem}.page-info{color:#718096;font-size:.9rem}.pagination{display:flex;justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.pagination-button{padding:.5rem 1rem;border:1px solid #cbd5e0;border-radius:6px;background:#fff;color:#4a5568;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.pagination-button:hover:not(:disabled){background:#667eea;color:#fff;border-color:#667eea}.pagination-button:disabled{opacity:.4;cursor:not-allowed}.page-indicator{padding:.5rem 1rem;color:#2d3748;font-weight:500;font-size:.9rem}.preview-table{width:100%;border-collapse:collapse;font-size:.95rem}.preview-table th{background:#f7fafc;padding:1rem;text-align:left;font-weight:600;color:#4a5568;border-bottom:2px solid #e2e8f0;position:sticky;top:0;z-index:10}.preview-table td{padding:1rem;border-bottom:1px solid #e2e8f0;color:#2d3748}.preview-table tr:hover{background:#f7fafc}.negative{color:#e53e3e;font-weight:600}.positive{color:#38a169;font-weight:600}.footer{background:#2d3748;color:#cbd5e0;text-align:center;padding:1.5rem;margin-top:auto}.footer p{margin:0;font-size:.9rem}@media(max-width:768px){.App-header h1{font-size:1.8rem}.subtitle{font-size:1rem}.upload-grid,.steps{grid-template-columns:1fr}.results-header{flex-direction:column;align-items:flex-start}.button-group{width:100%}.download-button,.reset-button{flex:1}.stats-badges{flex-direction:column}.badge{width:100%;text-align:center}}
