*{margin:0;padding:0;box-sizing:border-box;font-family:Inter}.fade-in{animation:fade-in-anim 1s}.fade-in-inf{animation:fade-in-anim .75s alternate infinite}.fade-in-fast{animation:fade-in-anim .4s}@keyframes fade-in-anim{0%{scale:.9;opacity:0}50%{opacity:1;scale:1}to{opacity:1;scale:1}}@keyframes slide-in-anim{0%{transform:translate(10px);opacity:0}50%{transform:translate(0);opacity:1}to{transform:translate(0);opacity:1}}.button:active:not(:disabled){transform:scale(.95);filter:brightness(.8)!important;transition:all .1s!important}.button:hover:not(:disabled){cursor:pointer;filter:brightness(.8)!important;transition:all .2s}.button:not(:hover){cursor:pointer;filter:brightness(1);transition:all .1s}.alert{position:fixed;z-index:99999;bottom:20px;right:20px;padding:12px 20px;border-radius:8px;font-size:14px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:250px;box-shadow:0 4px 6px #0000001a;opacity:1;animation:fadeIn .3s ease-in,fadeOut .3s ease-out 4.7s forwards}.close-btn{background:transparent;border:none;color:#fff;font-size:16px;cursor:pointer}.alert-success{background-color:#28a745}.alert-error{background-color:#dc3545}.alert-info{background-color:#007bff}.rotate-infinite{animation:rotate-anim 1s linear forwards infinite;transition:all 1s}.edge-glow{position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:99;opacity:0;transition:opacity .5s ease-out}.edge-glow.active{opacity:1}.edge-glow.success{box-shadow:inset 0 0 50px 20px #00ff0080}.edge-glow.error{box-shadow:inset 0 0 50px 20px #ff000080}.edge-glow.info{box-shadow:inset 0 0 50px 20px #0064ff80}@keyframes drawWave{0%{stroke-dasharray:100;stroke-dashoffset:100}to{stroke-dasharray:0;stroke-dashoffset:0}}::-webkit-scrollbar{width:6px;background:transparent}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:10px;border:none}*{scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}@keyframes white-to-blue-wave{0%{background-color:#fff}to{background-color:#2c9cf8}}.gradient-text{background:linear-gradient(to left,#0f84e3,#fff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;display:inline-block}.custom path.link{stroke:#fff!important}.tree-text{fill:#fff;font-size:14px;text-shadow:0 0 15px rgb(0 126 252)}.node circle,.node rect{fill:#fff;stroke:#000}path.link{fill:none;stroke:#000}
