body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}html{scroll-behavior:smooth}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(135deg,#5a67d8,#6b46c1)}.upload-container{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:calc(100vh - 80px);padding:2rem}.upload-content{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001a;margin:0 auto;max-width:800px;padding:2.5rem}.upload-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#2d3748;font-size:2.5rem;font-weight:700;margin-bottom:.5rem;text-align:center}.upload-subtitle{color:#718096;font-size:1.1rem;margin-bottom:1rem;text-align:center}.upload-instructions{background:#f0f4ff;border:1px solid #c3d9ff;border-radius:12px;margin-bottom:2rem;padding:1.5rem;text-align:center}.upload-instructions h3{color:#2d3748;font-size:1.1rem;margin-bottom:1rem}.upload-instructions p{color:#4a5568;margin-bottom:1rem}.required-columns{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin:1rem 0}.required-columns span{background:#667eea;border-radius:16px;color:#fff;font-size:.8rem;font-weight:500;padding:.25rem .75rem}.format-note{color:#667eea!important;font-size:.9rem!important;font-style:italic}.upload-dropzone{background:#f8fafc;border:3px dashed #cbd5e0;border-radius:12px;cursor:pointer;padding:3rem 2rem;text-align:center;transition:all .3s ease}.upload-dropzone.active,.upload-dropzone:hover{background:#f0f4ff;border-color:#667eea;transform:translateY(-2px)}.upload-icon{filter:grayscale(1);font-size:4rem;margin-bottom:1rem;transition:filter .3s ease}.upload-dropzone.active .upload-icon,.upload-dropzone:hover .upload-icon{filter:grayscale(0)}.upload-text{color:#4a5568;font-size:1.2rem;margin-bottom:.5rem}.upload-browse{color:#667eea;cursor:pointer;font-weight:600;text-decoration:underline}.upload-browse:hover{color:#5a67d8}.upload-formats{color:#a0aec0;font-size:.9rem}.upload-status{border-radius:8px;font-weight:500;margin:1.5rem 0;padding:1rem;text-align:center}.upload-status.success{background:#c6f6d5;border:1px solid #9ae6b4;color:#2f855a}.upload-status.error{background:#fed7d7;border:1px solid #fbb6ce;color:#c53030}.files-section{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:2rem;padding:1.5rem}.files-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.files-header h3{color:#2d3748;font-size:1.3rem;margin:0}.clear-btn{background:#e53e3e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.clear-btn:hover{background:#c53030;transform:translateY(-1px)}.files-list{display:flex;flex-direction:column;gap:.75rem}.file-item{align-items:center;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000000d;display:flex;justify-content:space-between;padding:1rem;transition:transform .2s ease}.file-item:hover{transform:translateX(4px)}.file-info{align-items:center;display:flex;gap:1rem}.file-icon{font-size:1.5rem}.file-details{display:flex;flex-direction:column}.file-name{color:#2d3748;font-weight:600;margin-bottom:.25rem}.file-size{color:#718096;font-size:.85rem}.remove-btn{background:#e2e8f0;border:none;border-radius:50%;color:#4a5568;cursor:pointer;font-size:1.2rem;font-weight:700;height:30px;transition:all .2s ease;width:30px}.remove-btn:hover{background:#e53e3e;color:#fff}.preview-section{background:#f0fff4;border:1px solid #e2e8f0;border-radius:12px;margin-top:2rem;padding:1.5rem}.preview-section h3{color:#2d3748;margin:0 0 1rem}.data-preview p{color:#38a169;font-weight:600;margin-bottom:1rem}.preview-table{background:#fff;border-radius:8px;margin-bottom:1rem;padding:1rem}.preview-row{grid-gap:1rem;border-bottom:1px solid #e2e8f0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:.75rem 0}.preview-row:last-child{border-bottom:none}.preview-cell{font-size:.9rem}.preview-cell strong{color:#2d3748}.preview-note{color:#718096;font-size:.9rem;font-style:italic}.upload-actions{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.dashboard-btn,.process-btn,.sample-btn{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 2rem;transition:all .3s ease}.process-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.process-btn:hover:not(:disabled){box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.dashboard-btn{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}.dashboard-btn:hover:not(:disabled){box-shadow:0 6px 20px #48bb7866;transform:translateY(-2px)}.sample-btn{background:linear-gradient(135deg,#ed8936,#dd6b20);color:#fff}.sample-btn:hover{box-shadow:0 6px 20px #ed893666;transform:translateY(-2px)}.dashboard-btn:disabled,.process-btn:disabled{background:#e2e8f0;color:#a0aec0;cursor:not-allowed;transform:none}@media (max-width:768px){.upload-container{padding:1rem}.upload-content{padding:1.5rem}.upload-title{font-size:2rem}.upload-dropzone{padding:2rem 1rem}.files-header{align-items:stretch;flex-direction:column;gap:1rem}.file-info{gap:.5rem}.upload-actions{flex-direction:column}.preview-row{gap:.5rem;grid-template-columns:1fr}}.dashboard-container{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:calc(100vh - 80px);padding:2rem}.dashboard-header{align-items:center;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:flex;justify-content:space-between;margin-bottom:2rem;padding:1.5rem}.header-content h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:700;margin:0}.data-source-info{color:#718096;font-size:1rem;font-weight:500;margin:.5rem 0 0}.export-buttons{display:flex;gap:1rem}.export-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}.export-btn.excel{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}.export-btn.pdf{background:linear-gradient(135deg,#ed64a6,#d53f8c);color:#fff}.export-btn:hover{box-shadow:0 6px 20px #0000004d;transform:translateY(-2px)}.filters-section{grid-gap:1rem;background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:2rem;padding:1.5rem}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{color:#2d3748;font-size:.9rem;font-weight:600}.filter-group select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;padding:.75rem;transition:all .3s ease}.filter-group select:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.metrics-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.metric-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem;text-align:center;transition:transform .3s ease}.metric-card:hover{transform:translateY(-4px)}.metric-card h3{color:#718096;font-size:1rem;font-weight:500;margin:0 0 1rem}.metric-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#2d3748;font-size:2rem;font-weight:700}.charts-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));margin-bottom:2rem}.chart-card{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem}.chart-card h3{color:#2d3748;font-size:1.3rem;font-weight:600;margin:0 0 1rem}.chart-container{height:300px;position:relative}.data-table-section{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem}.data-table-section h3{color:#2d3748;font-size:1.3rem;font-weight:600;margin:0 0 1.5rem}.table-container{overflow-x:auto}.data-table{border-collapse:collapse;font-size:.9rem;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e2e8f0;padding:1rem .75rem;text-align:left}.data-table th{color:#2d3748;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.data-table th,.data-table tr:hover{background:#f8fafc}.table-pagination{color:#718096;font-size:.9rem;padding:1rem 0;text-align:center}.loading{color:#667eea;font-size:1.2rem;font-weight:600;height:50vh}.empty-state,.loading{align-items:center;display:flex;justify-content:center}.empty-state{min-height:60vh;padding:2rem}.empty-state-content{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0000001a;max-width:500px;padding:3rem 2rem;text-align:center;width:100%}.empty-state-icon{font-size:4rem;margin-bottom:1rem;opacity:.6}.empty-state-content h2{color:#2d3748;font-size:2rem;font-weight:700;margin-bottom:1rem}.empty-state-content p{color:#718096;font-size:1.1rem;line-height:1.6;margin-bottom:2rem}.empty-state-actions{display:flex;gap:1rem;justify-content:center}.upload-redirect-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.875rem 2rem;transition:all .3s ease}.upload-redirect-btn:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}@media (max-width:1024px){.charts-grid{grid-template-columns:1fr}.chart-container{height:250px}}@media (max-width:768px){.dashboard-container{padding:1rem}.dashboard-header{flex-direction:column;gap:1rem;text-align:center}.dashboard-header h1{font-size:2rem}.export-buttons{justify-content:center}.filters-section{grid-template-columns:1fr}.metrics-grid{gap:1rem;grid-template-columns:repeat(2,1fr)}.charts-grid{gap:1.5rem;grid-template-columns:1fr}.chart-container{height:200px}.data-table{font-size:.8rem}.data-table td,.data-table th{padding:.5rem .25rem}}@media (max-width:480px){.metrics-grid{grid-template-columns:1fr}.export-buttons{flex-direction:column;width:100%}.export-btn{justify-content:center}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chart-card,.data-table-section,.filters-section,.metric-card{animation:fadeInUp .6s ease-out}.table-container::-webkit-scrollbar{height:8px}.table-container::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.table-container::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.table-container::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.navigation{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 20px #0000001a;position:-webkit-sticky;position:sticky;top:0;z-index:1000}.nav-container{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1200px;padding:1rem 2rem}.nav-logo h2{color:#fff;font-size:1.5rem;font-weight:600;margin:0}.nav-links{display:flex;gap:2rem}.nav-link{align-items:center;border-radius:8px;color:#fff;display:flex;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.nav-link:hover{background:#fff3;transform:translateY(-2px)}.nav-link.active{background:#ffffff40;box-shadow:0 4px 15px #0003}.icon-upload:before{content:"📁";margin-right:.25rem}.icon-chart:before{content:"📊";margin-right:.25rem}@media (max-width:768px){.nav-container{flex-direction:column;gap:1rem;padding:1rem}.nav-links{gap:1rem}.nav-link{font-size:.9rem;padding:.5rem 1rem}}.loading-spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;display:inline-block;height:40px;margin:0 auto;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background:#fed7d7;border:1px solid #fbb6ce;border-radius:8px;color:#c53030}.error-message,.success-message{margin:1rem 0;padding:1rem;text-align:center}.success-message{background:#c6f6d5;border:1px solid #9ae6b4;border-radius:8px;color:#2f855a}.info-message{background:#bee3f8;border:1px solid #90cdf4;border-radius:8px;color:#2b6cb0;margin:1rem 0;padding:1rem}.info-message,.text-center{text-align:center}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.p-1{padding:1rem}.p-2{padding:2rem}.hover-scale:hover{transform:scale(1.02);transition:transform .2s ease}.tooltip{display:inline-block;position:relative}.tooltip .tooltiptext{background-color:#555;border-radius:6px;bottom:125%;color:#fff;left:50%;margin-left:-60px;opacity:0;padding:5px 0;position:absolute;text-align:center;transition:opacity .3s;visibility:hidden;width:120px;z-index:1}.tooltip:hover .tooltiptext{opacity:1;visibility:visible}.card-hover{transition:all .3s ease}.card-hover:hover{box-shadow:0 15px 35px #00000026;transform:translateY(-5px)}@media (max-width:768px){.hide-mobile{display:none!important}}@media (min-width:769px){.hide-desktop{display:none!important}}.focus-visible:focus{outline:2px solid #667eea;outline-offset:2px}*{box-sizing:border-box;margin:0;padding:0}body{background:#f8fafc;color:#2d3748;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6}.App{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);min-height:100vh}.container{margin:0 auto;max-width:1200px;padding:0 2rem}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-success{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}.btn:hover{box-shadow:0 6px 20px #0000004d;transform:translateY(-2px)}input,select,textarea{font-family:inherit;font-size:1rem}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #667eea1a;outline:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-out}.slide-in-up{animation:slideInUp .6s ease-out}@media (max-width:768px){html{font-size:14px}}@media (max-width:480px){html{font-size:12px}}
/*# sourceMappingURL=main.71acb79a.css.map*/