agentmomo 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -0
- package/dist/assets/index-Cru_j148.js +5346 -0
- package/dist/assets/index-q7eACk3a.css +1 -0
- package/dist/claude-code-hook.cjs +223 -0
- package/dist/cli.js +42 -0
- package/dist/icons/abe.svg +28 -0
- package/dist/icons/andrew.svg +2 -0
- package/dist/icons/boss.svg +34 -0
- package/dist/icons/boy.svg +56 -0
- package/dist/icons/buildings/artdeco.png +0 -0
- package/dist/icons/buildings/brutalist.png +0 -0
- package/dist/icons/buildings/cyberpunk.png +0 -0
- package/dist/icons/buildings/eco.png +0 -0
- package/dist/icons/buildings/glass.png +0 -0
- package/dist/icons/buildings/industrial.png +0 -0
- package/dist/icons/default.svg +4 -0
- package/dist/icons/kaya.svg +2 -0
- package/dist/icons/lady.svg +50 -0
- package/dist/icons/zombie.svg +44 -0
- package/dist/index.html +20 -0
- package/dist/server.js +48659 -0
- package/dist/stdio-wrapper.js +3804 -0
- package/dist/vite.svg +4 -0
- package/package.json +76 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--background: 0 0% 100%;--foreground: 0 0% 3.9%;--card: 0 0% 100%;--card-foreground: 0 0% 3.9%;--popover: 0 0% 100%;--popover-foreground: 0 0% 3.9%;--primary: 0 0% 9%;--primary-foreground: 0 0% 98%;--secondary: 0 0% 96.1%;--secondary-foreground: 0 0% 9%;--muted: 0 0% 96.1%;--muted-foreground: 0 0% 45.1%;--accent: 0 0% 96.1%;--accent-foreground: 0 0% 9%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--border: 0 0% 89.8%;--input: 0 0% 89.8%;--ring: 0 0% 3.9%;--chart-1: 12 76% 61%;--chart-2: 173 58% 39%;--chart-3: 197 37% 24%;--chart-4: 43 74% 66%;--chart-5: 27 87% 67%;--radius: .5rem;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}.dark{--background: 0 0% 3.9%;--foreground: 0 0% 98%;--card: 0 0% 3.9%;--card-foreground: 0 0% 98%;--popover: 0 0% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 0 0% 9%;--secondary: 0 0% 14.9%;--secondary-foreground: 0 0% 98%;--muted: 0 0% 14.9%;--muted-foreground: 0 0% 63.9%;--accent: 0 0% 14.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--border: 0 0% 14.9%;--input: 0 0% 14.9%;--ring: 0 0% 83.1%;--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%;--sidebar-background: 240 5.9% 10%;--sidebar-foreground: 240 4.8% 95.9%;--sidebar-primary: 224.3 76.3% 48%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 240 3.7% 15.9%;--sidebar-accent-foreground: 240 4.8% 95.9%;--sidebar-border: 240 3.7% 15.9%;--sidebar-ring: 217.2 91.2% 59.8%}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-left-20{left:-5rem}.-right-24{right:-6rem}.-top-24{top:-6rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-5{bottom:1.25rem}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2\.5{right:.625rem}.right-3{right:.75rem}.right-4{right:1rem}.right-5{right:1.25rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-2\.5{top:.625rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-40{top:10rem}.top-\[50\%\]{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.z-\[1000\]{z-index:1000}.z-\[2\]{z-index:2}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-0{margin-left:0;margin-right:0}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-4{margin-top:1rem;margin-bottom:1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-\[2px\]{margin-left:2px}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0{margin-top:0}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.size-4{width:1rem;height:1rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-52{height:13rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-72{height:18rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-\[1px\]{height:1px}.h-\[220px\]{height:220px}.h-\[240px\]{height:240px}.h-\[42px\]{height:42px}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.h-svh{height:100svh}.max-h-80{max-height:20rem}.max-h-\[250px\]{max-height:250px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.min-h-0{min-height:0px}.min-h-\[34px\]{min-height:34px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[1px\]{width:1px}.w-\[420px\]{width:420px}.w-\[42px\]{width:42px}.w-\[min\(420px\,90vw\)\]{width:min(420px,90vw)}.w-\[min\(800px\,95vw\)\]{width:min(800px,95vw)}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.min-w-0{min-width:0px}.min-w-5{min-width:1.25rem}.min-w-\[8rem\]{min-width:8rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-7xl{max-width:80rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[140px\]{max-width:140px}.max-w-\[260px\]{max-width:260px}.max-w-\[295px\]{max-width:295px}.max-w-\[360px\]{max-width:360px}.max-w-\[70px\]{max-width:70px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\[--radix-dropdown-menu-content-transform-origin\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[--radix-tooltip-content-transform-origin\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[1\.02\]{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[2\.6\]{--tw-scale-x: 2.6;--tw-scale-y: 2.6;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}.animate-bounce{animation:bounce 1s infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(220px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-\[6px\]{gap:6px}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[3px\]{border-radius:3px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-\[3px\]{border-left-width:3px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-\[\#334155\]{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-\[\#3b82f6\]{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-\[\#475569\]{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-\[\#8b5cf6\]{--tw-border-opacity: 1;border-color:rgb(139 92 246 / var(--tw-border-opacity, 1))}.border-amber-200\/25{border-color:#fde68a40}.border-cyan-200\/20{border-color:#a5f3fc33}.border-cyan-200\/30{border-color:#a5f3fc4d}.border-cyan-300\/25{border-color:#67e8f940}.border-cyan-300\/30{border-color:#67e8f94d}.border-cyan-300\/35{border-color:#67e8f959}.border-cyan-300\/40{border-color:#67e8f966}.border-cyan-400\/50{border-color:#22d3ee80}.border-emerald-300\/25{border-color:#6ee7b740}.border-emerald-300\/30{border-color:#6ee7b74d}.border-emerald-500\/30{border-color:#10b9814d}.border-fuchsia-300\/20{border-color:#f0abfc33}.border-input{border-color:hsl(var(--input))}.border-pink-300\/30{border-color:#f9a8d44d}.border-primary{border-color:hsl(var(--primary))}.border-primary\/30{border-color:hsl(var(--primary) / .3)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-red-500\/20{border-color:#ef444433}.border-red-500\/25{border-color:#ef444440}.border-red-500\/30{border-color:#ef44444d}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-sky-500\/30{border-color:#0ea5e94d}.border-slate-500{--tw-border-opacity: 1;border-color:rgb(100 116 139 / var(--tw-border-opacity, 1))}.border-slate-600{--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-500\/20{border-color:#8b5cf633}.border-violet-500\/25{border-color:#8b5cf640}.border-violet-500\/30{border-color:#8b5cf64d}.border-violet-500\/35{border-color:#8b5cf659}.border-violet-500\/40{border-color:#8b5cf666}.border-white\/10{border-color:#ffffff1a}.border-white\/15{border-color:#ffffff26}.border-white\/20{border-color:#fff3}.border-white\/\[0\.05\]{border-color:#ffffff0d}.border-white\/\[0\.06\]{border-color:#ffffff0f}.border-white\/\[0\.07\]{border-color:#ffffff12}.border-white\/\[0\.08\]{border-color:#ffffff14}.border-white\/\[0\.12\]{border-color:#ffffff1f}.border-white\/\[0\.1\]{border-color:#ffffff1a}.border-l-transparent{border-left-color:transparent}.border-t-transparent{border-top-color:transparent}.bg-\[\#060d17\]{--tw-bg-opacity: 1;background-color:rgb(6 13 23 / var(--tw-bg-opacity, 1))}.bg-\[\#070b14\]{--tw-bg-opacity: 1;background-color:rgb(7 11 20 / var(--tw-bg-opacity, 1))}.bg-\[\#091322\]{--tw-bg-opacity: 1;background-color:rgb(9 19 34 / var(--tw-bg-opacity, 1))}.bg-\[\#0a1524\]\/70{background-color:#0a1524b3}.bg-\[\#0b1328\]{--tw-bg-opacity: 1;background-color:rgb(11 19 40 / var(--tw-bg-opacity, 1))}.bg-\[\#0b2a6f\]{--tw-bg-opacity: 1;background-color:rgb(11 42 111 / var(--tw-bg-opacity, 1))}.bg-\[\#0f0f1a\]{--tw-bg-opacity: 1;background-color:rgb(15 15 26 / var(--tw-bg-opacity, 1))}.bg-\[\#0f172a\]{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-\[\#172554\]{--tw-bg-opacity: 1;background-color:rgb(23 37 84 / var(--tw-bg-opacity, 1))}.bg-\[\#1e1b4b\]{--tw-bg-opacity: 1;background-color:rgb(30 27 75 / var(--tw-bg-opacity, 1))}.bg-\[\#1e293b\]{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-\[\#7c3aed\]{--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity, 1))}.bg-\[rgba\(15\,15\,26\,0\.65\)\]{background-color:#0f0f1aa6}.bg-\[rgba\(15\,15\,26\,0\.96\)\]{background-color:#0f0f1af5}.bg-\[rgba\(15\,15\,35\,0\.95\)\]{background-color:#0f0f23f2}.bg-\[rgba\(15\,15\,35\,0\.97\)\]{background-color:#0f0f23f7}.bg-\[rgba\(15\,23\,42\,0\.62\)\]{background-color:#0f172a9e}.bg-amber-300\/10{background-color:#fcd34d1a}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/40{background-color:#0006}.bg-black\/80{background-color:#000c}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-cyan-300{--tw-bg-opacity: 1;background-color:rgb(103 232 249 / var(--tw-bg-opacity, 1))}.bg-cyan-300\/10{background-color:#67e8f91a}.bg-cyan-400\/10{background-color:#22d3ee1a}.bg-cyan-400\/15{background-color:#22d3ee26}.bg-cyan-400\/20{background-color:#22d3ee33}.bg-cyan-400\/30{background-color:#22d3ee4d}.bg-destructive{background-color:hsl(var(--destructive))}.bg-emerald-300\/20{background-color:#6ee7b733}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-400\/10{background-color:#34d3991a}.bg-emerald-400\/15{background-color:#34d39926}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/20{background-color:#10b98133}.bg-fuchsia-300\/10{background-color:#f0abfc1a}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.bg-muted{background-color:hsl(var(--muted))}.bg-pink-400{--tw-bg-opacity: 1;background-color:rgb(244 114 182 / var(--tw-bg-opacity, 1))}.bg-pink-400\/15{background-color:#f472b626}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/10{background-color:#ef44441a}.bg-red-500\/20{background-color:#ef444433}.bg-red-600\/80{background-color:#dc2626cc}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-500\/10{background-color:#0ea5e91a}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/75{background-color:#0f172abf}.bg-slate-950\/50{background-color:#02061780}.bg-slate-950\/55{background-color:#0206178c}.bg-transparent{background-color:transparent}.bg-violet-500\/10{background-color:#8b5cf61a}.bg-violet-500\/15{background-color:#8b5cf626}.bg-violet-500\/20{background-color:#8b5cf633}.bg-violet-500\/\[0\.08\]{background-color:#8b5cf614}.bg-violet-600\/30{background-color:#7c3aed4d}.bg-white\/10{background-color:#ffffff1a}.bg-white\/5{background-color:#ffffff0d}.bg-white\/\[0\.02\]{background-color:#ffffff05}.bg-white\/\[0\.03\]{background-color:#ffffff08}.bg-white\/\[0\.04\]{background-color:#ffffff0a}.bg-white\/\[0\.05\]{background-color:#ffffff0d}.bg-white\/\[0\.06\]{background-color:#ffffff0f}.bg-white\/\[0\.08\]{background-color:#ffffff14}.bg-\[radial-gradient\(circle_at_10\%_10\%\,rgba\(34\,211\,238\,0\.12\)\,transparent_30\%\)\,radial-gradient\(circle_at_90\%_20\%\,rgba\(16\,185\,129\,0\.1\)\,transparent_28\%\)\]{background-image:radial-gradient(circle at 10% 10%,rgba(34,211,238,.12),transparent 30%),radial-gradient(circle at 90% 20%,rgba(16,185,129,.1),transparent 28%)}.bg-\[radial-gradient\(circle_at_12\%_18\%\,rgba\(56\,189\,248\,0\.16\)\,transparent_40\%\)\,radial-gradient\(circle_at_88\%_12\%\,rgba\(16\,185\,129\,0\.14\)\,transparent_36\%\)\,linear-gradient\(180deg\,rgba\(6\,8\,20\,0\.94\)\,rgba\(7\,11\,20\,0\.98\)\)\]{background-image:radial-gradient(circle at 12% 18%,rgba(56,189,248,.16),transparent 40%),radial-gradient(circle at 88% 12%,rgba(16,185,129,.14),transparent 36%),linear-gradient(180deg,#060814f0,#070b14fa)}.bg-\[radial-gradient\(ellipse_at_center\,transparent_28\%\,rgba\(8\,8\,20\,0\.72\)_100\%\)\]{background-image:radial-gradient(ellipse at center,transparent 28%,rgba(8,8,20,.72) 100%)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-\[\#070b14\]\/35{--tw-gradient-from: rgb(7 11 20 / .35) var(--tw-gradient-from-position);--tw-gradient-to: rgb(7 11 20 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-400{--tw-gradient-from: #34d399 var(--tw-gradient-from-position);--tw-gradient-to: rgb(52 211 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-600{--tw-gradient-from: #db2777 var(--tw-gradient-from-position);--tw-gradient-to: rgb(219 39 119 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400{--tw-gradient-from: #a78bfa var(--tw-gradient-from-position);--tw-gradient-to: rgb(167 139 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600{--tw-gradient-from: #7c3aed var(--tw-gradient-from-position);--tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600\/40{--tw-gradient-from: rgb(124 58 237 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-indigo-400{--tw-gradient-to: rgb(129 140 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #818cf8 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-transparent{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/\[0\.08\]{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .08) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-cyan-300{--tw-gradient-to: #67e8f9 var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-indigo-600\/30{--tw-gradient-to: rgb(79 70 229 / .3) var(--tw-gradient-to-position)}.to-rose-600{--tw-gradient-to: #e11d48 var(--tw-gradient-to-position)}.to-sky-400{--tw-gradient-to: #38bdf8 var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[5px\]{padding-left:5px;padding-right:5px}.py-0{padding-top:0;padding-bottom:0}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[1px\]{padding-top:1px;padding-bottom:1px}.py-\[30px\]{padding-top:30px;padding-bottom:30px}.py-\[3px\]{padding-top:3px;padding-bottom:3px}.py-\[5px\]{padding-top:5px;padding-bottom:5px}.py-\[7px\]{padding-top:7px;padding-bottom:7px}.pb-1{padding-bottom:.25rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-3{padding-bottom:.75rem}.pb-7{padding-bottom:1.75rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-12{padding-top:3rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-9{padding-top:2.25rem}.text-left{text-align:left}.text-center{text-align:center}.font-\[\'Inter\'\,system-ui\,sans-serif\]{font-family:Inter,system-ui,sans-serif}.font-\[\'Space_Grotesk\'\,system-ui\,sans-serif\]{font-family:Space Grotesk,system-ui,sans-serif}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[0\.58rem\]{font-size:.58rem}.text-\[0\.62rem\]{font-size:.62rem}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.66rem\]{font-size:.66rem}.text-\[0\.72rem\]{font-size:.72rem}.text-\[0\.73rem\]{font-size:.73rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.76rem\]{font-size:.76rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.82rem\]{font-size:.82rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.8rem\]{font-size:.8rem}.text-\[1\.15rem\]{font-size:1.15rem}.text-\[1\.3rem\]{font-size:1.3rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[2\.8rem\]{font-size:2.8rem}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-extralight{font-weight:200}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-\[1\.5\]{line-height:1.5}.leading-\[1\.6\]{line-height:1.6}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.05em\]{letter-spacing:.05em}.tracking-\[0\.08em\]{letter-spacing:.08em}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.13em\]{letter-spacing:.13em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-\[0\.16em\]{letter-spacing:.16em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.22em\]{letter-spacing:.22em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#22c55e\]{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-\[\#94a3b8\]{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-\[\#c4b5fd\]{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.text-\[\#cbd5e1\]{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-\[\#e2e8f0\]{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-\[\#f8fafc\]{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-amber-400\/50{color:#fbbf2480}.text-amber-50{--tw-text-opacity: 1;color:rgb(255 251 235 / var(--tw-text-opacity, 1))}.text-amber-50\/90{color:#fffbebe6}.text-card-foreground{color:hsl(var(--card-foreground))}.text-cyan-100{--tw-text-opacity: 1;color:rgb(207 250 254 / var(--tw-text-opacity, 1))}.text-cyan-100\/70{color:#cffafeb3}.text-cyan-100\/80{color:#cffafecc}.text-cyan-100\/85{color:#cffafed9}.text-cyan-100\/90{color:#cffafee6}.text-cyan-200{--tw-text-opacity: 1;color:rgb(165 243 252 / var(--tw-text-opacity, 1))}.text-cyan-300{--tw-text-opacity: 1;color:rgb(103 232 249 / var(--tw-text-opacity, 1))}.text-cyan-50{--tw-text-opacity: 1;color:rgb(236 254 255 / var(--tw-text-opacity, 1))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-100{--tw-text-opacity: 1;color:rgb(209 250 229 / var(--tw-text-opacity, 1))}.text-emerald-100\/80{color:#d1fae5cc}.text-emerald-200{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.text-emerald-200\/80{color:#a7f3d0cc}.text-emerald-300{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.text-emerald-300\/60{color:#6ee7b799}.text-emerald-300\/80{color:#6ee7b7cc}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-400\/60{color:#34d39999}.text-emerald-400\/80{color:#34d399cc}.text-emerald-50{--tw-text-opacity: 1;color:rgb(236 253 245 / var(--tw-text-opacity, 1))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-fuchsia-100\/80{color:#fae8ffcc}.text-indigo-300{--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.text-indigo-400\/70{color:#818cf8b3}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-orange-400{--tw-text-opacity: 1;color:rgb(251 146 60 / var(--tw-text-opacity, 1))}.text-pink-100{--tw-text-opacity: 1;color:rgb(252 231 243 / var(--tw-text-opacity, 1))}.text-pink-200{--tw-text-opacity: 1;color:rgb(251 207 232 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-400\/80{color:#f87171cc}.text-rose-300{--tw-text-opacity: 1;color:rgb(253 164 175 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-sky-300{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.text-sky-400{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.text-slate-100\/85{color:#f1f5f9d9}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-200\/80{color:#e2e8f0cc}.text-slate-200\/85{color:#e2e8f0d9}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-300\/70{color:#cbd5e1b3}.text-slate-300\/80{color:#cbd5e1cc}.text-slate-300\/85{color:#cbd5e1d9}.text-slate-300\/90{color:#cbd5e1e6}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-300{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.text-violet-300\/70{color:#c4b5fdb3}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-violet-400\/70{color:#a78bfab3}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/15{color:#ffffff26}.text-white\/20{color:#fff3}.text-white\/25{color:#ffffff40}.text-white\/30{color:#ffffff4d}.text-white\/35{color:#ffffff59}.text-white\/40{color:#fff6}.text-white\/45{color:#ffffff73}.text-white\/50{color:#ffffff80}.text-white\/55{color:#ffffff8c}.text-white\/60{color:#fff9}.text-white\/70{color:#ffffffb3}.text-white\/75{color:#ffffffbf}.text-white\/80{color:#fffc}.text-white\/85{color:#ffffffd9}.text-white\/90{color:#ffffffe6}.underline-offset-4{text-underline-offset:4px}.accent-violet-500{accent-color:#8b5cf6}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(124\,58\,237\,0\.15\)\]{--tw-shadow: 0 0 12px rgba(124,58,237,.15);--tw-shadow-colored: 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_12px_rgba\(124\,58\,237\,0\.2\)\]{--tw-shadow: 0 0 12px rgba(124,58,237,.2);--tw-shadow-colored: 0 0 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_15px_rgba\(244\,114\,182\,0\.8\)\]{--tw-shadow: 0 0 15px rgba(244,114,182,.8);--tw-shadow-colored: 0 0 15px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_20px_rgba\(124\,58\,237\,0\.15\)\]{--tw-shadow: 0 0 20px rgba(124,58,237,.15);--tw-shadow-colored: 0 0 20px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_6px_rgba\(34\,211\,238\,0\.4\)\]{--tw-shadow: 0 0 6px rgba(34,211,238,.4);--tw-shadow-colored: 0 0 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_6px_rgba\(52\,211\,153\,0\.5\)\]{--tw-shadow: 0 0 6px rgba(52,211,153,.5);--tw-shadow-colored: 0 0 6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_80px_rgba\(89\,39\,206\,0\.3\)\]{--tw-shadow: 0 0 80px rgba(89,39,206,.3);--tw-shadow-colored: 0 0 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(239\,68\,68\,0\.2\)\]{--tw-shadow: 0 0 8px rgba(239,68,68,.2);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_8px_rgba\(239\,68\,68\,0\.3\)\]{--tw-shadow: 0 0 8px rgba(239,68,68,.3);--tw-shadow-colored: 0 0 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_10px_22px_rgba\(2\,6\,23\,0\.35\)\]{--tw-shadow: 0 10px 22px rgba(2,6,23,.35);--tw-shadow-colored: 0 10px 22px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_12px_48px_rgba\(0\,0\,0\,0\.55\)\]{--tw-shadow: 0 12px 48px rgba(0,0,0,.55);--tw-shadow-colored: 0 12px 48px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_14px_30px_rgba\(59\,130\,246\,0\.28\)\]{--tw-shadow: 0 14px 30px rgba(59,130,246,.28);--tw-shadow-colored: 0 14px 30px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_20px_80px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow: 0 20px 80px rgba(0,0,0,.4);--tw-shadow-colored: 0 20px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_80px_rgba\(0\,0\,0\,0\.45\)\]{--tw-shadow: 0 24px 80px rgba(0,0,0,.45);--tw-shadow-colored: 0 24px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_28px_80px_rgba\(2\,6\,23\,0\.6\)\]{--tw-shadow: 0 28px 80px rgba(2,6,23,.6);--tw-shadow-colored: 0 28px 80px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_12px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow: 0 2px 12px rgba(0,0,0,.4);--tw-shadow-colored: 0 2px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_4px_24px_rgba\(0\,0\,0\,0\.35\)\]{--tw-shadow: 0 4px 24px rgba(0,0,0,.35);--tw-shadow-colored: 0 4px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_6px_12px_rgba\(2\,6\,23\,0\.35\)\]{--tw-shadow: 0 6px 12px rgba(2,6,23,.35);--tw-shadow-colored: 0 6px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_18px_rgba\(76\,29\,149\,0\.45\)\]{--tw-shadow: 0 8px 18px rgba(76,29,149,.45);--tw-shadow-colored: 0 8px 18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_32px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow: 0 8px 32px rgba(0,0,0,.5);--tw-shadow-colored: 0 8px 32px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_64px_rgba\(0\,0\,0\,0\.5\)\]{--tw-shadow: 0 8px 64px rgba(0,0,0,.5);--tw-shadow-colored: 0 8px 64px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_8px_64px_rgba\(239\,68\,68\,0\.15\)\]{--tw-shadow: 0 8px 64px rgba(239,68,68,.15);--tw-shadow-colored: 0 8px 64px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_1px_0_0_rgba\(255\,255\,255\,0\.06\)\,0_0_40px_rgba\(0\,0\,0\,0\.4\)\]{--tw-shadow: inset 1px 0 0 rgba(255,255,255,.06),0 0 40px rgba(0,0,0,.4);--tw-shadow-colored: inset 1px 0 0 var(--tw-shadow-color), 0 0 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[100px\]{--tw-blur: blur(100px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.blur-\[96px\]{--tw-blur: blur(96px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.brightness-0{--tw-brightness: brightness(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(0 0 0 / .06));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert: invert(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-\[10px\]{--tw-backdrop-blur: blur(10px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-\[2px\]{--tw-backdrop-blur: blur(2px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[right\]{transition-property:right;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-200{transition-delay:.2s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.will-change-transform{will-change:transform}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-150{animation-duration:.15s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.duration-500{animation-duration:.5s}.duration-700{animation-duration:.7s}.delay-200{animation-delay:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.running{animation-play-state:running}.paused{animation-play-state:paused}.bg-clip-text{-webkit-background-clip:text;background-clip:text}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:#f3f4f6;font-family:Inter,system-ui,-apple-system,sans-serif}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#0003}.loader{width:80px;height:50px;position:relative}.loader-text{position:absolute;top:0;padding:0;margin:0;color:#c8b6ff;animation:text_713 3.5s ease both infinite;font-size:.8rem;letter-spacing:1px}.load{background-color:#9a79ff;border-radius:50px;display:block;height:16px;width:16px;bottom:0;position:absolute;transform:translate(64px);animation:loading_713 3.5s ease both infinite}.load:before{position:absolute;content:"";width:100%;height:100%;background-color:#d1c2ff;border-radius:inherit;animation:loading2_713 3.5s ease both infinite}@keyframes text_713{0%{letter-spacing:1px;transform:translate(0)}40%{letter-spacing:2px;transform:translate(26px)}80%{letter-spacing:1px;transform:translate(32px)}90%{letter-spacing:2px;transform:translate(0)}to{letter-spacing:1px;transform:translate(0)}}@keyframes loading_713{0%{width:16px;transform:translate(0)}40%{width:100%;transform:translate(0)}80%{width:16px;transform:translate(64px)}90%{width:100%;transform:translate(0)}to{width:16px;transform:translate(0)}}@keyframes loading2_713{0%{transform:translate(0);width:16px}40%{transform:translate(0);width:80%}80%{width:100%;transform:translate(0)}90%{width:80%;transform:translate(15px)}to{transform:translate(0);width:16px}}div[style*="cursor: pointer"]:hover{filter:brightness(1.1)}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-slate-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-400::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.placeholder\:text-white\/20::-moz-placeholder{color:#fff3}.placeholder\:text-white\/20::placeholder{color:#fff3}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#6366f1\]:hover{--tw-border-opacity: 1;border-color:rgb(99 102 241 / var(--tw-border-opacity, 1))}.hover\:border-white\/20:hover{border-color:#fff3}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/40:hover{background-color:hsl(var(--accent) / .4)}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-cyan-200:hover{--tw-bg-opacity: 1;background-color:rgb(165 243 252 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-300:hover{--tw-bg-opacity: 1;background-color:rgb(110 231 183 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-400\/25:hover{background-color:#34d39940}.hover\:bg-pink-400\/25:hover{background-color:#f472b640}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-500:hover{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.hover\:bg-red-500\/15:hover{background-color:#ef444426}.hover\:bg-red-500\/20:hover{background-color:#ef444433}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-slate-700:hover{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-500\/15:hover{background-color:#8b5cf626}.hover\:bg-violet-500\/20:hover{background-color:#8b5cf633}.hover\:bg-violet-600\/50:hover{background-color:#7c3aed80}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/5:hover{background-color:#ffffff0d}.hover\:bg-white\/\[0\.04\]:hover{background-color:#ffffff0a}.hover\:bg-white\/\[0\.06\]:hover{background-color:#ffffff0f}.hover\:bg-white\/\[0\.08\]:hover{background-color:#ffffff14}.hover\:from-emerald-300:hover{--tw-gradient-from: #6ee7b7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(110 231 183 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-pink-500:hover{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-violet-500:hover{--tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-cyan-200:hover{--tw-gradient-to: #a5f3fc var(--tw-gradient-to-position)}.hover\:to-indigo-500:hover{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.hover\:to-rose-500:hover{--tw-gradient-to: #f43f5e var(--tw-gradient-to-position)}.hover\:text-\[\#38BDF8\]:hover{--tw-text-opacity: 1;color:rgb(56 189 248 / var(--tw-text-opacity, 1))}.hover\:text-\[\#a78bfa\]:hover{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-blue-300:hover{--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.hover\:text-cyan-100:hover{--tw-text-opacity: 1;color:rgb(207 250 254 / var(--tw-text-opacity, 1))}.hover\:text-emerald-200:hover{--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.hover\:text-emerald-300:hover{--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.hover\:text-red-300:hover{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.hover\:text-red-400:hover{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-sky-300:hover{--tw-text-opacity: 1;color:rgb(125 211 252 / var(--tw-text-opacity, 1))}.hover\:text-violet-300:hover{--tw-text-opacity: 1;color:rgb(196 181 253 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:text-white\/50:hover{color:#ffffff80}.hover\:text-white\/80:hover{color:#fffc}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[0_10px_18px_rgba\(139\,92\,246\,0\.28\)\]:hover{--tw-shadow: 0 10px 18px rgba(139,92,246,.28);--tw-shadow-colored: 0 10px 18px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-\[0_14px_24px_rgba\(99\,102\,241\,0\.2\)\]:hover{--tw-shadow: 0 14px 24px rgba(99,102,241,.2);--tw-shadow-colored: 0 14px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:border-cyan-300\/50:focus{border-color:#67e8f980}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-violet-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(139 92 246 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-65:disabled{opacity:.65}.disabled\:opacity-70:disabled{opacity:.7}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-white\/80{color:#fffc}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100{opacity:1}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-emerald-500[data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=unchecked\]\:bg-muted[data-state=unchecked]{background-color:hsl(var(--muted))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}@media(min-width:640px){.sm\:flex{display:flex}.sm\:h-\[300px\]{height:300px}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-7{padding:1.75rem}.sm\:p-8{padding:2rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:text-left{text-align:left}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}}@media(min-width:768px){.md\:sticky{position:sticky}.md\:top-4{top:1rem}.md\:block{display:block}.md\:flex{display:flex}.md\:h-fit{height:-moz-fit-content;height:fit-content}.md\:grid-cols-\[260px_minmax\(0\,1fr\)\]{grid-template-columns:260px minmax(0,1fr)}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-\[290px_minmax\(0\,1fr\)\]{grid-template-columns:290px minmax(0,1fr)}.lg\:gap-6{gap:1.5rem}.lg\:px-12{padding-left:3rem;padding-right:3rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}}@media(min-width:1280px){.xl\:block{display:block}}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:h-3>span{height:.75rem}.\[\&\>span\]\:w-3>span{width:.75rem}.\[\&\>span\]\:data-\[state\=checked\]\:translate-x-3[data-state=checked]>span{--tw-translate-x: .75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&_\[role\=slider\]\]\:h-3 [role=slider]{height:.75rem}.\[\&_\[role\=slider\]\]\:w-3 [role=slider]{width:.75rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
22
|
+
mod
|
|
23
|
+
));
|
|
24
|
+
|
|
25
|
+
// proxy/claude-code-hook.ts
|
|
26
|
+
var import_http = __toESM(require("http"), 1);
|
|
27
|
+
var import_fs = __toESM(require("fs"), 1);
|
|
28
|
+
var import_path = __toESM(require("path"), 1);
|
|
29
|
+
var AGENTMOMO_PORT = 9001;
|
|
30
|
+
var TIMEOUT_MS = 1500;
|
|
31
|
+
var LOG_FILE = import_path.default.join(
|
|
32
|
+
process.env.USERPROFILE ?? process.env.HOME ?? ".",
|
|
33
|
+
".agentmomo-hook.log"
|
|
34
|
+
);
|
|
35
|
+
function readArg(name) {
|
|
36
|
+
const idx = process.argv.indexOf(name);
|
|
37
|
+
if (idx !== -1 && process.argv[idx + 1]) {
|
|
38
|
+
return process.argv[idx + 1];
|
|
39
|
+
}
|
|
40
|
+
return void 0;
|
|
41
|
+
}
|
|
42
|
+
var AGENTMOMO_API_KEY = readArg("--api-key") ?? process.env.AGENTMOMO_API_KEY ?? "";
|
|
43
|
+
function log(msg) {
|
|
44
|
+
try {
|
|
45
|
+
import_fs.default.appendFileSync(LOG_FILE, `[${(/* @__PURE__ */ new Date()).toISOString()}] ${msg}
|
|
46
|
+
`);
|
|
47
|
+
} catch {
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
function postEvent(body) {
|
|
51
|
+
const headers = {
|
|
52
|
+
"Content-Type": "application/json",
|
|
53
|
+
"Content-Length": Buffer.byteLength(body)
|
|
54
|
+
};
|
|
55
|
+
if (AGENTMOMO_API_KEY) {
|
|
56
|
+
headers.Authorization = `Bearer ${AGENTMOMO_API_KEY}`;
|
|
57
|
+
}
|
|
58
|
+
const req = import_http.default.request(
|
|
59
|
+
{
|
|
60
|
+
hostname: "localhost",
|
|
61
|
+
port: AGENTMOMO_PORT,
|
|
62
|
+
path: "/api/event",
|
|
63
|
+
method: "POST",
|
|
64
|
+
headers,
|
|
65
|
+
timeout: TIMEOUT_MS
|
|
66
|
+
},
|
|
67
|
+
(res) => {
|
|
68
|
+
if (res.statusCode && (res.statusCode < 200 || res.statusCode >= 300)) {
|
|
69
|
+
let responseBody = "";
|
|
70
|
+
res.on("data", (chunk) => {
|
|
71
|
+
responseBody += chunk.toString();
|
|
72
|
+
});
|
|
73
|
+
res.on("end", () => {
|
|
74
|
+
log(`POST /api/event failed ${res.statusCode}: ${responseBody}`);
|
|
75
|
+
process.exit(0);
|
|
76
|
+
});
|
|
77
|
+
} else {
|
|
78
|
+
process.exit(0);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
);
|
|
82
|
+
req.on("error", (err) => {
|
|
83
|
+
log("POST error: " + err.message);
|
|
84
|
+
process.exit(0);
|
|
85
|
+
});
|
|
86
|
+
req.on("timeout", () => {
|
|
87
|
+
req.destroy();
|
|
88
|
+
process.exit(0);
|
|
89
|
+
});
|
|
90
|
+
req.write(body);
|
|
91
|
+
req.end();
|
|
92
|
+
}
|
|
93
|
+
var TOOL_ROLES = {
|
|
94
|
+
// Read / inspect
|
|
95
|
+
Read: "reader",
|
|
96
|
+
Glob: "reader",
|
|
97
|
+
ToolSearch: "reader",
|
|
98
|
+
TodoRead: "reader",
|
|
99
|
+
// Write / mutate
|
|
100
|
+
Write: "writer",
|
|
101
|
+
Edit: "writer",
|
|
102
|
+
MultiEdit: "writer",
|
|
103
|
+
TodoWrite: "writer",
|
|
104
|
+
// Execute / shell
|
|
105
|
+
Bash: "runner",
|
|
106
|
+
Agent: "runner",
|
|
107
|
+
// Claude Code sub-agent tool
|
|
108
|
+
Task: "runner",
|
|
109
|
+
// older alias kept for compatibility
|
|
110
|
+
// Search / navigate
|
|
111
|
+
Grep: "searcher",
|
|
112
|
+
WebFetch: "searcher",
|
|
113
|
+
WebSearch: "searcher"
|
|
114
|
+
};
|
|
115
|
+
var ROLE_LABELS = {
|
|
116
|
+
reader: "Reader",
|
|
117
|
+
writer: "Writer",
|
|
118
|
+
runner: "Runner",
|
|
119
|
+
searcher: "Searcher"
|
|
120
|
+
};
|
|
121
|
+
function getRole(toolName) {
|
|
122
|
+
return TOOL_ROLES[toolName] ?? "runner";
|
|
123
|
+
}
|
|
124
|
+
function extractSubAgentName(toolInput) {
|
|
125
|
+
const agent = toolInput["agent"];
|
|
126
|
+
if (typeof agent === "string" && agent.trim()) {
|
|
127
|
+
return agent.trim();
|
|
128
|
+
}
|
|
129
|
+
const desc = toolInput["description"];
|
|
130
|
+
if (typeof desc === "string" && desc.trim()) {
|
|
131
|
+
return desc.trim().toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "").slice(0, 24);
|
|
132
|
+
}
|
|
133
|
+
return "subagent";
|
|
134
|
+
}
|
|
135
|
+
process.stdin.setEncoding("utf-8");
|
|
136
|
+
var raw = "";
|
|
137
|
+
process.stdin.on("data", (chunk) => {
|
|
138
|
+
raw += chunk;
|
|
139
|
+
});
|
|
140
|
+
process.stdin.on("end", () => {
|
|
141
|
+
try {
|
|
142
|
+
const payload = JSON.parse(raw);
|
|
143
|
+
const {
|
|
144
|
+
session_id = "unknown",
|
|
145
|
+
hook_event_name = "PreToolUse",
|
|
146
|
+
tool_name = "unknown",
|
|
147
|
+
tool_input,
|
|
148
|
+
cwd,
|
|
149
|
+
// Agent team fields (TeammateIdle / TaskCompleted hooks)
|
|
150
|
+
team_name,
|
|
151
|
+
teammate_name,
|
|
152
|
+
teammate_agent_id,
|
|
153
|
+
task_id,
|
|
154
|
+
task_title,
|
|
155
|
+
task_status
|
|
156
|
+
} = payload;
|
|
157
|
+
if (hook_event_name === "TeammateIdle" || hook_event_name === "TaskCompleted") {
|
|
158
|
+
const isTaskCompleted = hook_event_name === "TaskCompleted";
|
|
159
|
+
const sessionShort2 = String(session_id).slice(0, 8);
|
|
160
|
+
const agentId2 = teammate_agent_id ?? `cc-${sessionShort2}-runner`;
|
|
161
|
+
const folderName2 = cwd ? import_path.default.basename(cwd) : "Claude Code";
|
|
162
|
+
const agentName2 = teammate_name ? `${folderName2} \xB7 ${teammate_name}` : `${folderName2} \xB7 Teammate`;
|
|
163
|
+
const event2 = {
|
|
164
|
+
agentId: agentId2,
|
|
165
|
+
agentName: agentName2,
|
|
166
|
+
source: "claude-code-teammate",
|
|
167
|
+
event: isTaskCompleted ? "task_update" : "agent_heartbeat",
|
|
168
|
+
toolName: "",
|
|
169
|
+
timestamp: Date.now(),
|
|
170
|
+
requestId: `${session_id}-${hook_event_name}-${Date.now()}`,
|
|
171
|
+
metadata: {
|
|
172
|
+
cwd: cwd ?? "unknown",
|
|
173
|
+
sessionId: session_id,
|
|
174
|
+
hookEvent: hook_event_name,
|
|
175
|
+
teamName: team_name,
|
|
176
|
+
...isTaskCompleted ? {
|
|
177
|
+
taskId: task_id,
|
|
178
|
+
taskTitle: task_title,
|
|
179
|
+
taskStatus: task_status
|
|
180
|
+
} : {}
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
const body2 = JSON.stringify(event2);
|
|
184
|
+
postEvent(body2);
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
const isPost = hook_event_name === "PostToolUse";
|
|
188
|
+
const role = getRole(tool_name);
|
|
189
|
+
const sessionShort = String(session_id).slice(0, 8);
|
|
190
|
+
const agentId = `cc-${sessionShort}-${role}`;
|
|
191
|
+
const folderName = cwd ? import_path.default.basename(cwd) : "Claude Code";
|
|
192
|
+
const agentName = `${folderName} \xB7 ${ROLE_LABELS[role]}`;
|
|
193
|
+
let subAgentMeta;
|
|
194
|
+
if ((tool_name === "Agent" || tool_name === "Task") && tool_input) {
|
|
195
|
+
const subAgentName = extractSubAgentName(tool_input);
|
|
196
|
+
const subAgentId = `cc-${sessionShort}-subagent-${subAgentName}`;
|
|
197
|
+
subAgentMeta = { subAgentId, subAgentName };
|
|
198
|
+
}
|
|
199
|
+
const event = {
|
|
200
|
+
agentId,
|
|
201
|
+
agentName,
|
|
202
|
+
source: "claude-code",
|
|
203
|
+
event: isPost ? "call_end" : "call_start",
|
|
204
|
+
toolName: tool_name,
|
|
205
|
+
arguments: tool_input ?? {},
|
|
206
|
+
timestamp: Date.now(),
|
|
207
|
+
// Include session_id + tool_use_id for correlation
|
|
208
|
+
requestId: `${session_id}-${tool_name}-${Date.now()}`,
|
|
209
|
+
// Pass cwd, role, sessionId, and optional sub-agent info
|
|
210
|
+
metadata: {
|
|
211
|
+
cwd: cwd ?? "unknown",
|
|
212
|
+
role,
|
|
213
|
+
sessionId: session_id,
|
|
214
|
+
...subAgentMeta ?? {}
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const body = JSON.stringify(event);
|
|
218
|
+
postEvent(body);
|
|
219
|
+
} catch (e) {
|
|
220
|
+
log("Error: " + (e?.message ?? e));
|
|
221
|
+
process.exit(0);
|
|
222
|
+
}
|
|
223
|
+
});
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
#!/usr/bin/env node
|
|
3
|
+
|
|
4
|
+
// bin/cli.ts
|
|
5
|
+
import { fileURLToPath } from "url";
|
|
6
|
+
import path from "path";
|
|
7
|
+
import { spawn, exec } from "child_process";
|
|
8
|
+
import os from "os";
|
|
9
|
+
var __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
10
|
+
console.log("");
|
|
11
|
+
console.log(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557");
|
|
12
|
+
console.log(" \u2551 AgentsMomo Proxy \u2551");
|
|
13
|
+
console.log(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D");
|
|
14
|
+
console.log("");
|
|
15
|
+
console.log(" Starting local proxy at http://localhost:9001 \u2026");
|
|
16
|
+
console.log("");
|
|
17
|
+
var serverPath = path.join(__dirname, "server.js");
|
|
18
|
+
var server = spawn(process.execPath, [serverPath], {
|
|
19
|
+
env: {
|
|
20
|
+
...process.env,
|
|
21
|
+
AGENTSMOMO_DIST_DIR: __dirname
|
|
22
|
+
},
|
|
23
|
+
stdio: "inherit"
|
|
24
|
+
});
|
|
25
|
+
server.on("exit", (code) => process.exit(code ?? 0));
|
|
26
|
+
process.on("SIGINT", () => {
|
|
27
|
+
server.kill("SIGINT");
|
|
28
|
+
});
|
|
29
|
+
process.on("SIGTERM", () => {
|
|
30
|
+
server.kill("SIGTERM");
|
|
31
|
+
});
|
|
32
|
+
setTimeout(() => {
|
|
33
|
+
const url = "http://localhost:9001";
|
|
34
|
+
const openCmd = os.platform() === "win32" ? `start "" "${url}"` : os.platform() === "darwin" ? `open "${url}"` : `xdg-open "${url}"`;
|
|
35
|
+
exec(openCmd, () => {
|
|
36
|
+
});
|
|
37
|
+
console.log(` \u2713 Dashboard: ${url}`);
|
|
38
|
+
console.log(` \u2713 Proxy API: ${url}/api`);
|
|
39
|
+
console.log("");
|
|
40
|
+
console.log(" Press Ctrl+C to stop.");
|
|
41
|
+
console.log("");
|
|
42
|
+
}, 1500);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg width="800px" height="800px" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--emojione-monotone" preserveAspectRatio="xMidYMid meet"><path d="M55.087 24.853c-.977-6.743-4.993-11.406-11.711-14.07c1.145-.605 1.885-.908 1.885-.908c-3.236-1.14-6.045-1.804-8.477-2.106c1.279-.963 2.133-1.329 2.133-1.329c-19.752-2.786-29.492 8.2-30.104 18.428C4.943 25.547 2 28.91 2 32.969c0 4.017 2.883 7.354 6.696 8.08C9.132 50.464 19.396 58 31.999 58c12.605 0 22.869-7.536 23.305-16.951c3.812-.727 6.696-4.065 6.696-8.08c0-4.092-2.995-7.478-6.913-8.116M8.901 38.137c-2.31-.6-4.023-2.675-4.023-5.168c0-2.416 1.613-4.438 3.816-5.106c.049 2.162.618 4.229 1.614 6.134a14.31 14.31 0 0 0-1.407 4.14m35.647 1.787c1.328 1.656 2.106 3.59 2.106 5.665c0 6.082-6.562 11.01-14.655 11.01s-14.654-4.928-14.654-11.01c0-2.075.777-4.009 2.107-5.665c-4.557-2.758-7.474-6.98-7.474-11.719c0-16.934 20.021-6.146 20.021-6.146s20.022-10.787 20.022 6.146c0 4.738-2.917 8.961-7.473 11.719m10.551-1.787a14.363 14.363 0 0 0-1.406-4.141c.996-1.905 1.564-3.972 1.613-6.134c2.203.669 3.815 2.69 3.815 5.106c0 2.494-1.712 4.569-4.022 5.169" fill="#000000"></path><path d="M34.145 40.803c.553 0 1-.919 1-2.057c0-1.133-.447-2.059-1-2.059c-.554 0-1 .926-1 2.059c0 1.138.446 2.057 1 2.057" fill="#000000"></path><path d="M29.853 40.803c.553 0 1-.919 1-2.057c0-1.133-.447-2.059-1-2.059c-.554 0-1 .926-1 2.059c0 1.138.446 2.057 1 2.057" fill="#000000"></path><ellipse cx="40.682" cy="31.746" rx="3.5" ry="4.5" fill="#000000"></ellipse><ellipse cx="23.318" cy="31.746" rx="3.5" ry="4.5" fill="#000000"></ellipse><path d="M31.998 45.439c-4.689 0-9.459-1.271-9.845-.942c-1.425 1.214 2.944 6.939 9.845 6.977c6.9-.035 11.272-5.762 9.844-6.977c-.386-.328-5.154.943-9.844.942" fill="#000000"></path></svg>
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
3
|
+
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
4
|
+
viewBox="0 0 470 470" xml:space="preserve">
|
|
5
|
+
<g>
|
|
6
|
+
<g>
|
|
7
|
+
<path d="M333.872,340.738c-8.725-4.607-29.358-16.299-38.872-24.881v-21.726c29.67-17.465,50.125-47.779,57.273-84.87
|
|
8
|
+
C371.42,205.401,385,186.82,385,170c0-15.582-11.484-26.442-30-29.266v-15.543c0.157-4.469,1.191-56.428-33.178-92.324
|
|
9
|
+
C300.94,11.058,271.729,0,235,0c-36.825,0-66.086,11.079-86.971,32.93c-34.276,35.861-33.195,87.695-33.029,92.263v15.542
|
|
10
|
+
C96.484,143.558,85,154.418,85,170c0,16.82,13.58,35.401,32.727,39.261c7.147,37.089,27.601,67.402,57.273,84.87v21.726
|
|
11
|
+
c-9.522,8.589-30.18,20.292-38.893,24.892c-98.96,32.188-101.064,91.568-101.106,94.086C35,434.89,35,434.945,35,435v25
|
|
12
|
+
c0,5.523,4.477,10,10,10h380c5.523,0,10-4.477,10-10v-25.055C434.986,432.41,433.521,372.639,333.872,340.738z M355,161.052
|
|
13
|
+
c5.103,1.191,10,3.7,10,8.948c0,5.897-4.216,12.849-10.174,16.809C354.929,184.501,355,161.052,355,161.052z M105,170
|
|
14
|
+
c0-5.248,4.897-7.757,10-8.948c0,0,0.071,23.45,0.174,25.757C109.216,182.849,105,175.897,105,170z M309.825,350.193
|
|
15
|
+
l-33.034,19.269l-5.592-25.162c5.782-3.479,10.575-7.267,14.146-10.467C292.614,339.644,301.957,345.555,309.825,350.193z
|
|
16
|
+
M255.281,330.182c-13.355,6.395-27.152,6.421-40.618-0.026c-9.306-4.386-16.28-10.658-19.664-14.068v-12.693
|
|
17
|
+
C207.538,307.775,220.932,310,235,310c14.067,0,27.461-2.225,40-6.607v12.692C271.603,319.507,264.62,325.779,255.281,330.182z
|
|
18
|
+
M162.59,46.641C179.55,28.963,203.912,20,235,20c31,0,55.316,8.946,72.272,26.591c21.114,21.97,26.208,52.573,27.402,68.098
|
|
19
|
+
c-56.33-3.32-98.459-32.543-98.893-32.849c-3.05-2.162-7.053-2.44-10.374-0.723C222.086,82.834,220,86.261,220,90
|
|
20
|
+
c0,1.838-2.789,5.316-10.648,9.069c-7.907,3.775-19.195,7.081-33.55,9.825c-15.196,2.904-30.562,4.522-40.459,5.355
|
|
21
|
+
C136.572,98.602,141.716,68.399,162.59,46.641z M135,134.353c10.185-0.807,27.179-2.505,44.371-5.78
|
|
22
|
+
c28.698-5.466,47.021-13.329,55.365-23.843c17.252,9.909,54.181,27.691,100.264,30.017V165h-5v-10c0-5.523-4.477-10-10-10h-70
|
|
23
|
+
c-5.523,0-10,4.477-10,10v10h-10v-10c0-5.523-4.477-10-10-10h-70c-5.523,0-10,4.477-10,10v10h-5V134.353z M310,165v20h-50v-20H310
|
|
24
|
+
z M210,165v20h-50v-20H210z M136.215,198.503c-0.58-4.652-0.946-9.169-1.11-13.503H140c0,11.028,8.972,20,20,20h50
|
|
25
|
+
c11.028,0,20-8.972,20-20h10c0,11.028,8.972,20,20,20h50c11.028,0,20-8.972,20-20h4.895c-0.165,4.333-0.531,8.851-1.11,13.503
|
|
26
|
+
c-5.052,36.73-24.736,66.317-54.006,81.178C266.271,286.528,251.205,290,235,290s-31.271-3.472-44.773-10.316
|
|
27
|
+
C160.951,264.82,141.267,235.233,136.215,198.503z M184.653,333.833c3.572,3.204,8.366,6.994,14.146,10.47l-5.591,25.158
|
|
28
|
+
l-33.033-19.269C168.042,345.555,177.384,339.644,184.653,333.833z M55,450v-14.791c0.066-1.023,1.041-12.561,11.364-26.981
|
|
29
|
+
c17.442-24.363,48.239-39.032,72.5-47.314l52.213,30.457L202.802,450H55z M246.802,450h-23.604l-12.978-64.891l7.241-32.586
|
|
30
|
+
C223.246,354.159,229.11,355,235,355c5.894,0,11.763-0.842,17.539-2.475l7.241,32.584L246.802,450z M415,450H267.198
|
|
31
|
+
l11.726-58.629l52.241-30.474c42.348,14.201,62.876,33.386,72.681,47.185c10.371,14.597,11.117,26.279,11.154,27.05V450z"/>
|
|
32
|
+
</g>
|
|
33
|
+
</g>
|
|
34
|
+
</svg>
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
|
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
5
|
+
<svg height="800px" width="800px" version="1.1" id="_x32_" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
6
|
+
viewBox="0 0 512 512" xml:space="preserve">
|
|
7
|
+
<style type="text/css">
|
|
8
|
+
.st0{fill:#000000;}
|
|
9
|
+
</style>
|
|
10
|
+
<g>
|
|
11
|
+
<path class="st0" d="M412.697,416.07c-4.614-8.023-10.607-14.401-17.095-19.393c-9.755-7.504-20.543-12.04-30.409-15.426
|
|
12
|
+
c-9.842-3.354-18.945-5.654-24.945-7.921c-2.417-0.89-5.496-2.646-8.527-4.969c-4.583-3.464-9.094-8.22-12.15-12.622
|
|
13
|
+
c-1.543-2.196-2.709-4.307-3.402-5.976c-0.709-1.654-0.866-2.858-0.843-2.961c0-6.512,0-14.622,0-25.094
|
|
14
|
+
c1.78-1.74,3.977-3.803,6.449-6.173c6-5.74,13.441-13.126,20.055-22.512c5.126-7.276,9.725-15.85,12.678-25.717
|
|
15
|
+
C461.705,182.732,401.587,0,256.005,0C110.413,0,50.304,182.732,157.501,267.307c4.22,14.103,11.834,25.496,19.48,34.441
|
|
16
|
+
c4.607,5.394,9.252,9.961,13.252,13.788c2.473,2.37,4.669,4.433,6.449,6.173c0,10.472,0,18.583,0,25.094l-0.047,0.339
|
|
17
|
+
c-0.126,0.914-1,3.291-2.645,5.945c-2.426,4.016-6.394,8.748-10.614,12.559c-4.165,3.834-8.772,6.74-11.418,7.614
|
|
18
|
+
c-5.456,1.937-13.322,3.936-21.929,6.692c-12.89,4.173-27.834,10.11-39.984,22.064c-6.054,5.953-11.292,13.448-14.874,22.535
|
|
19
|
+
c-3.607,9.086-5.583,19.701-5.583,31.937c0.008,3.378,0.158,6.89,0.457,10.536v-0.008c0.275,3.071,1.425,5.449,2.646,7.284
|
|
20
|
+
c2.346,3.417,5.118,5.598,8.37,7.818c5.7,3.764,13.196,7.229,22.7,10.638c28.394,10.118,74.764,19.212,132.244,19.244
|
|
21
|
+
c46.693-0.008,86.118-6.055,114.433-13.709c14.18-3.85,25.551-8.055,33.999-12.394c4.244-2.204,7.756-4.386,10.756-6.992
|
|
22
|
+
c1.496-1.323,2.89-2.764,4.127-4.606c1.212-1.834,2.37-4.212,2.645-7.284c0.291-3.63,0.448-7.126,0.448-10.496
|
|
23
|
+
C422.429,440.205,418.863,426.764,412.697,416.07z M187.493,280.819c-5.307-7.543-9.527-16.078-11.283-26.024l-1.071-6.063
|
|
24
|
+
l-5.804-2.079c-2.582-0.921-3.898-1.685-4.81-2.44c-0.701-0.575-1.3-1.221-2.095-2.457c-1.181-1.811-2.637-5.04-4.315-10.039
|
|
25
|
+
c-1.692-4.993-3.622-11.685-6.094-20.362c-0.157-0.552-0.268-1.031-0.394-1.551l-1.252-6.583c-0.102-1-0.165-1.93-0.165-2.724
|
|
26
|
+
c0.008-2.937,0.558-4.378,0.952-5.134l0.922-1.134c0.488-0.402,1.268-0.756,2.079-0.945c0.717-0.181,1.307-0.205,1.433-0.205
|
|
27
|
+
l23.016,21.906v-26.74c0-17.694,14.339-32.032,32.024-32.032h42.772h47.96c17.693,0,32.032,14.338,32.032,32.032v26.74
|
|
28
|
+
l23.016-21.906c0.11,0,0.559,0.015,1.165,0.149c1.095,0.221,2.126,0.702,2.662,1.292c0.291,0.315,0.59,0.693,0.914,1.552
|
|
29
|
+
c0.314,0.85,0.646,2.228,0.646,4.425c0,0.795-0.063,1.725-0.165,2.724l-1.252,6.583c-0.134,0.52-0.236,1-0.393,1.551
|
|
30
|
+
c-4.355,15.409-7.205,24.63-9.583,28.984c-1.189,2.197-2.008,3.111-2.921,3.874c-0.914,0.756-2.237,1.52-4.82,2.44l-5.803,2.079
|
|
31
|
+
l-1.062,6.063c-2.331,13.228-9.103,24.079-16.882,33.189c-3.882,4.543-7.969,8.598-11.779,12.244
|
|
32
|
+
c-3.827,3.661-7.316,6.827-10.276,10.103l-2.724,3.024v4.063c0,12.709,0,21.976,0,29.385c0.063,5.472,1.803,10.056,4.07,14.52
|
|
33
|
+
c0.702,1.33,1.504,2.646,2.323,3.952c-5.889,5.48-13.385,9.236-21.063,11.504c-9.134,2.716-18.228,3.425-23.598,3.417
|
|
34
|
+
c-5.363,0.008-14.457-0.701-23.591-3.417c-7.661-2.26-15.141-6.008-21.031-11.473c1.504-2.323,2.874-4.676,3.952-7.133
|
|
35
|
+
c1.496-3.481,2.63-7.103,2.662-11.371c0-7.409,0-16.676,0-29.385v-4.063l-2.716-3.024c-2.961-3.276-6.449-6.442-10.276-10.103
|
|
36
|
+
C199.154,294.764,192.799,288.362,187.493,280.819z M192.587,385.535c3.489-2.677,6.796-5.74,9.867-9.008
|
|
37
|
+
c7.819,6.946,17.078,11.205,25.81,13.796c10.906,3.22,21.095,3.992,27.607,4c6.512-0.008,16.716-0.78,27.614-4
|
|
38
|
+
c8.74-2.598,18.008-6.85,25.826-13.803c1.094,1.157,2.197,2.315,3.362,3.417c2.22,2.086,4.582,4,7.024,5.811
|
|
39
|
+
c-8.717,9.748-20.583,15.804-32.339,19.276c-12.275,3.646-24.236,4.575-31.488,4.567c-7.244,0.008-19.205-0.921-31.473-4.567
|
|
40
|
+
c-11.724-3.457-23.551-9.496-32.259-19.189C192.287,385.725,192.437,385.646,192.587,385.535z M400.933,463.212
|
|
41
|
+
c-2.094,1.803-7.78,5.024-15.85,8.118c-12.19,4.748-29.993,9.67-51.922,13.338c-21.945,3.686-48.063,6.142-77.157,6.142
|
|
42
|
+
c-44.835,0.007-82.638-5.858-108.898-12.976c-13.11-3.536-23.37-7.433-29.843-10.78c-2.984-1.528-5.11-2.945-6.188-3.858
|
|
43
|
+
c-0.158-2.3-0.299-4.599-0.292-6.709c0.016-13.346,2.788-22.78,6.882-29.976c3.095-5.409,7.032-9.654,11.646-13.26
|
|
44
|
+
c6.922-5.393,15.496-9.188,24.275-12.165c8.795-3,17.63-5.118,25.402-7.834c2.496-0.89,4.874-2.048,7.157-3.386
|
|
45
|
+
c9.976,11.496,23.434,18.134,36.244,21.937c13.15,3.89,25.661,4.843,33.481,4.851c7.827-0.008,20.338-0.96,33.488-4.851
|
|
46
|
+
c12.866-3.819,26.394-10.496,36.378-22.078c2.292,1.307,4.63,2.527,7.086,3.456c6.961,2.575,14.717,4.567,22.567,7.134
|
|
47
|
+
c11.795,3.803,23.434,8.827,31.67,16.953c4.142,4.086,7.567,8.913,10.079,15.181c2.496,6.276,4.086,14.079,4.086,24.07
|
|
48
|
+
C401.225,458.622,401.083,460.914,400.933,463.212z"/>
|
|
49
|
+
<path class="st0" d="M219.524,218.922c5.519,0,10.008-4.481,10.008-10.008c0-5.52-4.489-10-10.008-10
|
|
50
|
+
c-5.528,0-10.008,4.481-10.008,10C209.516,214.441,213.996,218.922,219.524,218.922z"/>
|
|
51
|
+
<path class="st0" d="M292.493,218.922c5.527,0,10.008-4.481,10.008-10.008c0-5.52-4.481-10-10.008-10
|
|
52
|
+
c-5.52,0-10.008,4.481-10.008,10C282.484,214.441,286.973,218.922,292.493,218.922z"/>
|
|
53
|
+
<path class="st0" d="M241.878,276.59h28.252c2.598,0,4.709-2.11,4.709-4.709c0-2.598-2.11-4.709-4.709-4.709h-28.252
|
|
54
|
+
c-2.598,0-4.709,2.111-4.709,4.709C237.169,274.48,239.28,276.59,241.878,276.59z"/>
|
|
55
|
+
</g>
|
|
56
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 256 256" id="Flat" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path d="M200,44H140V16a12,12,0,0,0-24,0V44H56A36.04061,36.04061,0,0,0,20,80V192a36.04061,36.04061,0,0,0,36,36H200a36.04061,36.04061,0,0,0,36-36V80A36.04061,36.04061,0,0,0,200,44Zm12,148a12.01343,12.01343,0,0,1-12,12H56a12.01343,12.01343,0,0,1-12-12V80A12.01343,12.01343,0,0,1,56,68H200a12.01343,12.01343,0,0,1,12,12Zm-40-60H84a28.03146,28.03146,0,0,0-28,28v4a28.03146,28.03146,0,0,0,28,28h88a28.03146,28.03146,0,0,0,28-28v-4A28.03146,28.03146,0,0,0,172,132Zm-36,24v12H120V156Zm-56,8v-4a4.00427,4.00427,0,0,1,4-4H96v12H84A4.00427,4.00427,0,0,1,80,164Zm96,0a4.00427,4.00427,0,0,1-4,4H160V156h12a4.00427,4.00427,0,0,1,4,4ZM68,104a16,16,0,1,1,16,16A16.00008,16.00008,0,0,1,68,104Zm88,0a16,16,0,1,1,16,16A16.00008,16.00008,0,0,1,156,104Z"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
2
|
+
<svg width="800px" height="800px" viewBox="0 0 64 64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--emojione-monotone" preserveAspectRatio="xMidYMid meet"><path d="M62 26.407a8.058 8.058 0 0 0-3.859-6.877a8.404 8.404 0 0 0 .496-2.822c0-4.593-3.689-8.319-8.266-8.39A7.77 7.77 0 0 0 43.5 4.176c-1.49 0-2.879.427-4.063 1.155C37.818 3.321 35.092 2 32 2s-5.816 1.321-7.438 3.333a7.724 7.724 0 0 0-4.063-1.155a7.766 7.766 0 0 0-6.87 4.142c-4.576.07-8.266 3.796-8.266 8.39c0 .991.181 1.939.496 2.822a8.056 8.056 0 0 0-1.962 12.069a6.847 6.847 0 0 0-.77 3.153a6.883 6.883 0 0 0 3.676 6.09c-.03.26-.05.525-.05.795a6.882 6.882 0 0 0 5.45 6.732c2.268 7.354 6.977 9.434 14.021 12.54l.375.165c1.819.804 4.166.924 5.402.924c1.237 0 3.583-.12 5.401-.923l.376-.166c7.042-3.105 11.751-5.186 14.019-12.539a6.883 6.883 0 0 0 5.449-6.732c0-.27-.02-.535-.049-.795a6.884 6.884 0 0 0 3.676-6.09a6.844 6.844 0 0 0-.77-3.153A8.038 8.038 0 0 0 62 26.407M50.871 43.113c-.279 2.071-.672 3.788-1.174 5.266l-.008.001c-2.09 6.14-6.199 7.884-13.117 10.937c-1.129.499-2.85.748-4.571.748c-1.721 0-3.442-.249-4.571-.748c-6.913-3.05-11.02-4.801-13.11-10.925h-.011c-.505-1.48-.898-3.202-1.178-5.278c-3.369-.231-4.368-2.393-4.368-5.028c0-4.232 1.961-4.555 3.48-4.17c.138.884.324 1.713.583 2.184c.464.842 1.41 1.32 1.41 1.32s-.255-.914-.162-3.316c1.353-19.236 3.695-10.614 17.928-10.614c14.234 0 16.578-8.623 17.926 10.636c.092 2.391-.164 3.295-.164 3.295s.947-.479 1.41-1.32c.258-.471.447-1.3.584-2.184c1.52-.385 3.48-.063 3.48 4.17c0 2.634-.998 4.795-4.367 5.026" fill="#000000"></path><path d="M42.165 44.56c-1.138 0-2.786.326-4.478.721a6.21 6.21 0 0 0 .93-3.262c0-3.537-2.963-6.404-6.617-6.404s-6.617 2.867-6.617 6.404a6.21 6.21 0 0 0 .93 3.262c-1.691-.395-3.34-.721-4.478-.721h-.001c-1.117 0-1.824.338-2.101 1.006c-.441 1.068.591 2.219 1.658 3.204c.938.867 1.603 2.175 2.307 3.559c1.44 2.836 3.234 6.365 8.302 6.365c5.066 0 6.859-3.528 8.301-6.364c.704-1.385 1.369-2.691 2.309-3.56c1.067-.985 2.099-2.136 1.656-3.203c-.276-.67-.983-1.007-2.101-1.007m-.245 3.509c-3.191 2.945-3.238 9.656-9.92 9.656s-6.729-6.711-9.918-9.656c-2.086-1.925-1.704-2.543-.248-2.543c1.296.001 3.439.49 5.452.984c1.2 1.18 2.868 1.912 4.714 1.912s3.514-.732 4.715-1.913c2.012-.494 4.155-.983 5.45-.983c1.456 0 1.839.62-.245 2.543" fill="#000000"></path><path d="M40.258 47.228c-1.396 0-5.807 1.697-8.258 1.697s-6.861-1.697-8.258-1.697c-.616 0-.646.332.34 1.284c3.291 3.186 2.836 7.103 7.918 7.133c5.084-.03 4.627-3.947 7.92-7.133c.984-.953.955-1.284.338-1.284m-8.265 7.449c-1.187-.007-1.977-.254-2.599-.685c.475-.398 1.295-.849 2.605-.849c1.309 0 2.129.449 2.605.848c-.624.432-1.417.679-2.611.686m5.475-4.975c-.88.749-4.042 1.146-5.468 1.146s-4.587-.397-5.468-1.146c-.278-.236-.378-.633-.411-.985l.432.115c1.834.497 3.913 1.062 5.447 1.062c1.533 0 3.613-.564 5.449-1.062c.145-.04.285-.076.43-.115c-.033.353-.133.749-.411.985" fill="#000000"></path><path d="M27.697 35.134c0-11.921-10-11.921-10 0c0 3.562 10 3.562 10 0m-8.345.051c0-9.537 8-9.537 8 0c0 2.849-8 2.849-8 0" fill="#000000"></path><ellipse cx="23.676" cy="33.449" rx="2.5" ry="3.386" fill="#000000"></ellipse><path d="M36.301 35.134c0 3.563 10 3.563 10 0c0-11.921-10-11.921-10 0m.347.051c0-9.537 8-9.537 8 0c0 2.849-8 2.849-8 0" fill="#000000"></path><path d="M40.291 30.063c-1.381 0-2.5 1.516-2.5 3.386c0 1.874 1.119 3.39 2.5 3.39s2.5-1.516 2.5-3.39c0-1.87-1.119-3.386-2.5-3.386" fill="#000000"></path></svg>
|