*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}*{transition:background-color .3s ease,border-color .3s ease,color .3s ease,box-shadow .3s ease}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,Oxygen,Ubuntu,sans-serif;font-size:13px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{min-height:100vh;background:var(--bg);color:var(--text-primary)}#root{min-height:100vh}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-bg);color:var(--accent-text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit;cursor:pointer;border:none;background:none;font-size:inherit}button:active{transform:scale(.97)}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}img{max-width:100%;display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes checkPop{0%{transform:scale(1)}40%{transform:scale(1.3)}to{transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes confettiDrop{0%{transform:translateY(-10px) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}@keyframes toastEnter{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastExit{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes pageEnter{0%{opacity:0}to{opacity:1}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes progressFill{0%{width:0}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-backdrop-enter{animation:fadeIn .2s ease forwards}.modal-backdrop-exit{animation:fadeOut .2s ease forwards}.modal-content-enter{animation:scaleIn .25s ease forwards}.modal-content-exit{animation:fadeOut .15s ease forwards}.page-enter{animation:pageEnter .25s ease forwards}.toast-enter{animation:toastEnter .3s ease forwards}.toast-exit{animation:toastExit .3s ease forwards}.skeleton{background:linear-gradient(90deg,var(--border) 25%,var(--bg-secondary) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:6px}
