*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100vh;overflow:hidden;font-family:IBM Plex Sans Thai,Inter,system-ui,sans-serif}@keyframes dashContentIn{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}.dash-content-enter{animation:dashContentIn .22s cubic-bezier(.16,1,.3,1)}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawerOut{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes successPop{0%{transform:scale(.7);opacity:0}70%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pulse-ring{0%{transform:scale(1);opacity:.8}60%{transform:scale(1.6);opacity:0}to{transform:scale(1.6);opacity:0}}@keyframes barGrow{0%{width:0%}}@keyframes arcDraw{0%{stroke-dashoffset:440}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shakeX{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes modalIn{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}
