*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;padding:0;overflow-x:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Display,sans-serif;background:#f8fafb}button:focus-visible,input:focus-visible{outline:3px solid #006747;outline-offset:2px;border-radius:8px}input[type=number]{-moz-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}button{transition:transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .2s ease,background .2s ease,opacity .2s ease,border-color .2s ease}button:active:not(:disabled){transform:scale(.96)!important}tr{transition:background .15s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-8px)}30%{transform:translate(8px)}45%{transform:translate(-6px)}60%{transform:translate(6px)}75%{transform:translate(-3px)}90%{transform:translate(3px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes bounceIn{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.08)}70%{transform:scale(.95)}to{transform:scale(1);opacity:1}}@keyframes popIn{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes floatUp{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-60px) scale(1.3);opacity:0}}@keyframes glowPulse{0%,to{box-shadow:0 0 #0067471a}50%{box-shadow:0 0 0 6px #00674714}}@keyframes progressFill{0%{width:0%}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@media(max-width:639px){table{font-size:13px}body{overflow-x:hidden}input[type=number]{min-height:44px;font-size:16px!important}}::selection{background:#00674726;color:inherit}@keyframes mascotBounceIn{0%{transform:scale(0) translateY(40px);opacity:0}60%{transform:scale(1.1) translateY(-4px);opacity:1}to{transform:scale(1) translateY(0);opacity:1}}@keyframes mascotBob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes mathSlideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes confettiBurst{0%{transform:scale(0);opacity:1}50%{transform:scale(1.2)}to{transform:scale(1);opacity:0}}
