@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}@keyframes skeleton{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes chartFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes labelsFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-in-out}.fade-in-delayed{animation:fadeIn .5s ease-in-out .5s both}.fade-in-up{animation:fadeInUp .4s ease-out}.fade-in-down{animation:fadeInDown .4s ease-out}.slide-in-left{animation:slideInLeft .3s ease-out}.slide-in-right{animation:slideInRight .3s ease-out}.scale-in{animation:scaleIn .2s ease-out}.pulse{animation:pulse 1s infinite}.bounce{animation:bounce 1s}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton 1.5s infinite}.spin{animation:spin 1s linear infinite}.chart-fade-in{animation:chartFadeIn .4s ease-out}.labels-fade-in{animation:labelsFadeIn .5s ease-out .5s both}.transition-opacity{transition:opacity .3s ease-in-out}.transition-transform{transition:transform .3s ease-in-out}.transition-all{transition:all .3s ease-in-out}.hover-lift:hover{transform:translateY(-2px);transition:transform .2s ease-out}.hover-scale:hover{transform:scale(1.02);transition:transform .2s ease-out}.hover-glow:hover{box-shadow:0 0 20px #3a5afe4d;transition:box-shadow .2s ease-out}:root{font-family:Roboto,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;font-family:inherit;overflow:hidden}#root{width:100%;min-height:100vh}.mychart{width:100%;height:100%}.mychart canvas{z-index:2;position:relative}.Headway{top:16px;right:4px;width:20px}*{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
