:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#242424;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}a{color:#646cff;-webkit-text-decoration:inherit;text-decoration:inherit;font-weight:500}a:hover{color:#535bf2}body{min-width:320px;min-height:100vh;margin:0}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{cursor:pointer;background-color:#1a1a1a;border:1px solid #0000;border-radius:8px;padding:.6em 1.2em;font-family:inherit;font-size:1em;font-weight:500;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.app{flex-direction:column;max-width:1800px;min-height:100vh;margin:0 auto;padding:1rem 2rem;display:flex}.header{border-bottom:1px solid #333;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding:1rem 0;display:flex}.header-content h1{color:#fff;margin:0;font-size:1.75rem}.header-content .subtitle{color:#888;font-size:.875rem}.header .version{color:#666;background:#222;border-radius:4px;padding:.25rem .5rem;font-size:.75rem}.header-links{align-items:center;gap:1rem;display:flex}.header .github-link{color:#888;border:1px solid #444;border-radius:4px;padding:.25rem .75rem;font-size:.875rem;text-decoration:none;transition:all .2s}.header .github-link:hover{color:#fff;background:#333;border-color:#666}.header .export-button{color:#888;cursor:pointer;background:0 0;border:1px solid #444;border-radius:4px;padding:.25rem .75rem;font-family:inherit;font-size:.875rem;transition:all .2s}.header .export-button:hover:not(:disabled){color:#fff;background:#333;border-color:#666}.header .export-button:disabled{opacity:.4;cursor:not-allowed}.file-uploader{margin-bottom:2rem}.upload-zone{text-align:center;background:#1a1a1a;border:2px dashed #444;border-radius:12px;padding:2.5rem;transition:all .2s}.upload-zone.drag-over{background:#646cff1a;border-color:#646cff}.upload-zone.loading{border-style:solid;border-color:#333}.upload-icon{margin-bottom:1rem;font-size:3rem}.upload-primary{color:#ddd;margin:0 0 .5rem;font-size:1.125rem}.upload-secondary{color:#888;margin:0 0 1.5rem;font-size:.875rem}.upload-zone input[type=file]{display:none}.file-button{color:#fff;cursor:pointer;background:#646cff;border-radius:8px;padding:.75rem 2rem;font-weight:500;transition:background .2s;display:inline-block}.file-button:hover{background:#535bf2}.progress-container{padding:1rem 0}.progress-bar{background:#333;border-radius:4px;width:100%;max-width:400px;height:8px;margin:0 auto 1rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#646cff,#535bf2);border-radius:4px;height:100%;transition:width .2s}.progress-message{color:#888;margin:0;font-size:.875rem}.stats-bar{background:#64c8641a;border-radius:8px;justify-content:center;gap:2rem;margin-top:1rem;padding:1rem;display:flex}.stats-bar .stat{color:#64c864;font-size:.9rem}.stats-bar .stat strong{color:#8eff8e}.chart-tabs{background:#1a1a1a;border-radius:12px;gap:.5rem;margin-bottom:1.5rem;padding:.5rem;display:flex}.chart-tabs .tab{color:#888;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:1rem 1.5rem;font-size:1rem;transition:all .2s;display:flex}.chart-tabs .tab:hover:not(.disabled){color:#ddd;background:#252525}.chart-tabs .tab.active{color:#fff;background:#333}.chart-tabs .tab.disabled{opacity:.4;cursor:not-allowed}.chart-tabs .tab-icon{font-size:1.25rem}.chart-tabs .tab-count{background:#444;border-radius:10px;padding:.125rem .5rem;font-size:.75rem}.chart-tabs .tab.active .tab-count{background:#646cff}.charts-container{flex-direction:column;gap:1.5rem;display:flex}.chart-section{background:#1a1a1a;border-radius:12px;padding:1rem;overflow:hidden}.errors{background:#ff64641a;border:1px solid #ff64644d;border-radius:8px;margin-bottom:1rem;padding:1rem}.errors h3{color:#ff6464;margin:0 0 .5rem;font-size:.9rem}.errors ul{margin:0;padding-left:1.5rem}.errors li{color:#f99;font-size:.875rem}.error-boundary{color:#ddd;background:#ff64641a;border:1px solid #ff64644d;border-radius:8px;max-width:800px;margin:1.5rem auto;padding:1.25rem 1.5rem}.error-boundary h3{color:#ff6464;margin:0 0 .75rem;font-size:1rem}.error-boundary summary{cursor:pointer;color:#f99;font-size:.875rem}.error-boundary pre{color:#bbb;background:#1a1a1a;border-radius:6px;padding:.75rem;font-size:.8rem}.no-data{text-align:center;color:#666;padding:4rem 2rem}.chart-loading{text-align:center;background:#1a1a1a;border-radius:12px;margin-bottom:1.5rem;padding:2rem}.chart-loading .progress-bar{background:#333;border-radius:4px;width:100%;max-width:500px;height:8px;margin:0 auto 1rem;overflow:hidden}.chart-loading .progress-fill{background:linear-gradient(90deg,#646cff,#535bf2);border-radius:4px;height:100%;transition:width .15s}.chart-loading .progress-message{color:#888;margin:0;font-size:.875rem}.loading-screen{color:#888;justify-content:center;align-items:center;min-height:200px;display:flex}.js-plotly-plot .plotly .modebar{background:0 0!important}@media (width<=768px){.app{padding:.5rem}.header{text-align:center;flex-direction:column;gap:.5rem}.upload-zone{padding:1.5rem}.chart-tabs{flex-direction:column}.chart-tabs .tab{justify-content:flex-start}.stats-bar{flex-direction:column;gap:.5rem}}.modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;padding:1rem;animation:.15s ease-out modal-fade-in;display:flex;position:fixed;inset:0}.modal-dialog{background:#1a1a1a;border:1px solid #333;border-radius:12px;width:100%;max-width:420px;padding:1.5rem;animation:.15s ease-out modal-pop-in;box-shadow:0 10px 40px #00000080}.modal-title{color:#fff;margin-bottom:.75rem;font-size:1.1rem}.modal-message{color:#bbb;margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.modal-button{cursor:pointer;border-radius:6px;padding:.4rem 1rem;font-family:inherit;font-size:.875rem;transition:all .2s}.modal-button-secondary{color:#aaa;background:0 0;border:1px solid #444}.modal-button-secondary:hover{color:#fff;background:#333;border-color:#666}.modal-button-primary{color:#fff;background:#646cff;border:1px solid #646cff}.modal-button-primary:hover{background:#535bf2;border-color:#535bf2}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-pop-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
