apteva 0.4.16 → 0.4.18

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.
Files changed (62) hide show
  1. package/dist/ActivityPage.yv28a2vj.js +3 -0
  2. package/dist/ApiDocsPage.4ccwjjbk.js +4 -0
  3. package/dist/App.155wke5v.js +4 -0
  4. package/dist/App.2e19nvn4.js +13 -0
  5. package/dist/App.2ye1b5n0.js +4 -0
  6. package/dist/App.4da4ycbe.js +4 -0
  7. package/dist/App.b6wtzd1j.js +4 -0
  8. package/dist/App.fjrh28tf.js +4 -0
  9. package/dist/App.htc36cy8.js +4 -0
  10. package/dist/App.me6reaa6.js +4 -0
  11. package/dist/App.n5q6p960.js +4 -0
  12. package/dist/App.nft7h9jt.js +4 -0
  13. package/dist/App.np463xvy.js +4 -0
  14. package/dist/App.nps62kvt.js +4 -0
  15. package/dist/App.q8ws33cc.js +181 -0
  16. package/dist/App.tb0y0jmt.js +40 -0
  17. package/dist/ConnectionsPage.52evzrp7.js +3 -0
  18. package/dist/McpPage.bjqrp0n2.js +3 -0
  19. package/dist/SettingsPage.es76hnj2.js +3 -0
  20. package/dist/SkillsPage.06h8yf0h.js +3 -0
  21. package/dist/TasksPage.99df66mk.js +3 -0
  22. package/dist/TelemetryPage.bmdnxhq7.js +3 -0
  23. package/dist/TestsPage.denxrg8c.js +3 -0
  24. package/dist/index.html +1 -1
  25. package/dist/styles.css +1 -1
  26. package/package.json +1 -1
  27. package/src/auth/middleware.ts +2 -0
  28. package/src/db.ts +162 -11
  29. package/src/mcp-platform.ts +41 -1
  30. package/src/routes/api/agent-utils.ts +38 -2
  31. package/src/routes/api/agents.ts +65 -2
  32. package/src/routes/api/projects.ts +19 -2
  33. package/src/routes/api/system.ts +26 -12
  34. package/src/routes/api/triggers.ts +458 -0
  35. package/src/routes/api/webhooks.ts +171 -0
  36. package/src/routes/api.ts +4 -0
  37. package/src/routes/static.ts +12 -3
  38. package/src/server.ts +6 -4
  39. package/src/triggers/agentdojo.ts +248 -0
  40. package/src/triggers/composio.ts +264 -0
  41. package/src/triggers/index.ts +71 -0
  42. package/src/web/App.tsx +20 -12
  43. package/src/web/components/agents/AgentCard.tsx +14 -7
  44. package/src/web/components/agents/AgentPanel.tsx +105 -115
  45. package/src/web/components/common/Icons.tsx +8 -0
  46. package/src/web/components/common/index.ts +1 -0
  47. package/src/web/components/connections/ConnectionsPage.tsx +54 -0
  48. package/src/web/components/connections/IntegrationsTab.tsx +144 -0
  49. package/src/web/components/connections/OverviewTab.tsx +183 -0
  50. package/src/web/components/connections/TriggersTab.tsx +690 -0
  51. package/src/web/components/index.ts +1 -0
  52. package/src/web/components/layout/Sidebar.tsx +7 -1
  53. package/src/web/components/mcp/IntegrationsPanel.tsx +19 -3
  54. package/src/web/components/mcp/McpPage.tsx +9 -3
  55. package/src/web/components/settings/SettingsPage.tsx +96 -2
  56. package/src/web/components/tasks/TasksPage.tsx +2 -2
  57. package/src/web/components/tests/TestsPage.tsx +1 -2
  58. package/src/web/context/TelemetryContext.tsx +14 -1
  59. package/src/web/context/index.ts +1 -1
  60. package/src/web/hooks/useAgents.ts +15 -11
  61. package/src/web/types.ts +1 -1
  62. package/dist/App.2194efgj.js +0 -228
@@ -0,0 +1,40 @@
1
+ var cZ=Object.create;var{getPrototypeOf:sZ,defineProperty:qZ,getOwnPropertyNames:aZ}=Object;var oZ=Object.prototype.hasOwnProperty;var zJ=(W,E,I)=>{I=W!=null?cZ(sZ(W)):{};let v=E||!W||!W.__esModule?qZ(I,"default",{value:W,enumerable:!0}):I;for(let y of aZ(W))if(!oZ.call(v,y))qZ(v,y,{get:()=>W[y],enumerable:!0});return v};var VZ=(W,E)=>()=>(E||W((E={exports:{}}).exports,E),E.exports);var M0=((W)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(W,{get:(E,I)=>(typeof require<"u"?require:E)[I]}):W)(function(W){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+W+'" is not supported')});var rJ=VZ((nZ,$Q)=>{(function(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart==="function")__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var W="18.3.1",E=Symbol.for("react.element"),I=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),y=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),m=Symbol.for("react.provider"),C=Symbol.for("react.context"),d=Symbol.for("react.forward_ref"),e=Symbol.for("react.suspense"),QJ=Symbol.for("react.suspense_list"),c=Symbol.for("react.memo"),ZJ=Symbol.for("react.lazy"),p=Symbol.for("react.offscreen"),A=Symbol.iterator,n="@@iterator";function i(J){if(J===null||typeof J!=="object")return null;var Q=A&&J[A]||J[n];if(typeof Q==="function")return Q;return null}var _={current:null},b={transition:null},w={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},L={current:null},l={},O=null;function V(J){O=J}l.setExtraStackFrame=function(J){O=J},l.getCurrentStack=null,l.getStackAddendum=function(){var J="";if(O)J+=O;var Q=l.getCurrentStack;if(Q)J+=Q()||"";return J};var D=!1,S=!1,RJ=!1,FJ=!1,MJ=!1,HJ={ReactCurrentDispatcher:_,ReactCurrentBatchConfig:b,ReactCurrentOwner:L};HJ.ReactDebugCurrentFrame=l,HJ.ReactCurrentActQueue=w;function BJ(J){{for(var Q=arguments.length,H=Array(Q>1?Q-1:0),X=1;X<Q;X++)H[X-1]=arguments[X];hJ("warn",J,H)}}function P(J){{for(var Q=arguments.length,H=Array(Q>1?Q-1:0),X=1;X<Q;X++)H[X-1]=arguments[X];hJ("error",J,H)}}function hJ(J,Q,H){{var X=HJ.ReactDebugCurrentFrame,M=X.getStackAddendum();if(M!=="")Q+="%s",H=H.concat([M]);var U=H.map(function(Y){return String(Y)});U.unshift("Warning: "+Q),Function.prototype.apply.call(console[J],console,U)}}var fJ={};function bJ(J,Q){{var H=J.constructor,X=H&&(H.displayName||H.name)||"ReactClass",M=X+"."+Q;if(fJ[M])return;P("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",Q,X),fJ[M]=!0}}var dJ={isMounted:function(J){return!1},enqueueForceUpdate:function(J,Q,H){bJ(J,"forceUpdate")},enqueueReplaceState:function(J,Q,H,X){bJ(J,"replaceState")},enqueueSetState:function(J,Q,H,X){bJ(J,"setState")}},YJ=Object.assign,CJ={};Object.freeze(CJ);function WJ(J,Q,H){this.props=J,this.context=Q,this.refs=CJ,this.updater=H||dJ}WJ.prototype.isReactComponent={},WJ.prototype.setState=function(J,Q){if(typeof J!=="object"&&typeof J!=="function"&&J!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,J,Q,"setState")},WJ.prototype.forceUpdate=function(J){this.updater.enqueueForceUpdate(this,J,"forceUpdate")};{var uJ={isMounted:["isMounted","Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks."],replaceState:["replaceState","Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)."]},LQ=function(J,Q){Object.defineProperty(WJ.prototype,J,{get:function(){BJ("%s(...) is deprecated in plain JavaScript React classes. %s",Q[0],Q[1]);return}})};for(var PJ in uJ)if(uJ.hasOwnProperty(PJ))LQ(PJ,uJ[PJ])}function SJ(){}SJ.prototype=WJ.prototype;function qJ(J,Q,H){this.props=J,this.context=Q,this.refs=CJ,this.updater=H||dJ}var IJ=qJ.prototype=new SJ;IJ.constructor=qJ,YJ(IJ,WJ.prototype),IJ.isPureReactComponent=!0;function NJ(){var J={current:null};return Object.seal(J),J}var RQ=Array.isArray;function xJ(J){return RQ(J)}function PQ(J){{var Q=typeof Symbol==="function"&&Symbol.toStringTag,H=Q&&J[Symbol.toStringTag]||J.constructor.name||"Object";return H}}function IQ(J){try{return EJ(J),!1}catch(Q){return!0}}function EJ(J){return""+J}function UJ(J){if(IQ(J))return P("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",PQ(J)),EJ(J)}function eJ(J,Q,H){var X=J.displayName;if(X)return X;var M=Q.displayName||Q.name||"";return M!==""?H+"("+M+")":H}function mJ(J){return J.displayName||"Context"}function GJ(J){if(J==null)return null;if(typeof J.tag==="number")P("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.");if(typeof J==="function")return J.displayName||J.name||null;if(typeof J==="string")return J;switch(J){case v:return"Fragment";case I:return"Portal";case o:return"Profiler";case y:return"StrictMode";case e:return"Suspense";case QJ:return"SuspenseList"}if(typeof J==="object")switch(J.$$typeof){case C:var Q=J;return mJ(Q)+".Consumer";case m:var H=J;return mJ(H._context)+".Provider";case d:return eJ(J,J.render,"ForwardRef");case c:var X=J.displayName||null;if(X!==null)return X;return GJ(J.type)||"Memo";case ZJ:{var M=J,U=M._payload,Y=M._init;try{return GJ(Y(U))}catch(q){return null}}}return null}var _J=Object.prototype.hasOwnProperty,JQ={key:!0,ref:!0,__self:!0,__source:!0},vJ,QQ,iJ;iJ={};function lJ(J){if(_J.call(J,"ref")){var Q=Object.getOwnPropertyDescriptor(J,"ref").get;if(Q&&Q.isReactWarning)return!1}return J.ref!==void 0}function yJ(J){if(_J.call(J,"key")){var Q=Object.getOwnPropertyDescriptor(J,"key").get;if(Q&&Q.isReactWarning)return!1}return J.key!==void 0}function wJ(J,Q){var H=function(){if(!vJ)vJ=!0,P("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Q)};H.isReactWarning=!0,Object.defineProperty(J,"key",{get:H,configurable:!0})}function xQ(J,Q){var H=function(){if(!QQ)QQ=!0,P("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",Q)};H.isReactWarning=!0,Object.defineProperty(J,"ref",{get:H,configurable:!0})}function ZQ(J){if(typeof J.ref==="string"&&L.current&&J.__self&&L.current.stateNode!==J.__self){var Q=GJ(L.current.type);if(!iJ[Q])P('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',Q,J.ref),iJ[Q]=!0}}var TJ=function(J,Q,H,X,M,U,Y){var q={$$typeof:E,type:J,key:Q,ref:H,props:Y,_owner:U};if(q._store={},Object.defineProperty(q._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(q,"_self",{configurable:!1,enumerable:!1,writable:!1,value:X}),Object.defineProperty(q,"_source",{configurable:!1,enumerable:!1,writable:!1,value:M}),Object.freeze)Object.freeze(q.props),Object.freeze(q);return q};function cJ(J,Q,H){var X,M={},U=null,Y=null,q=null,x=null;if(Q!=null){if(lJ(Q))Y=Q.ref,ZQ(Q);if(yJ(Q))UJ(Q.key),U=""+Q.key;q=Q.__self===void 0?null:Q.__self,x=Q.__source===void 0?null:Q.__source;for(X in Q)if(_J.call(Q,X)&&!JQ.hasOwnProperty(X))M[X]=Q[X]}var F=arguments.length-2;if(F===1)M.children=H;else if(F>1){var T=Array(F);for(var k=0;k<F;k++)T[k]=arguments[k+2];if(Object.freeze)Object.freeze(T);M.children=T}if(J&&J.defaultProps){var h=J.defaultProps;for(X in h)if(M[X]===void 0)M[X]=h[X]}if(U||Y){var s=typeof J==="function"?J.displayName||J.name||"Unknown":J;if(U)wJ(M,s);if(Y)xQ(M,s)}return TJ(J,U,Y,q,x,L.current,M)}function EQ(J,Q){var H=TJ(J.type,Q,J.ref,J._self,J._source,J._owner,J.props);return H}function _Q(J,Q,H){if(J===null||J===void 0)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+J+".");var X,M=YJ({},J.props),U=J.key,Y=J.ref,q=J._self,x=J._source,F=J._owner;if(Q!=null){if(lJ(Q))Y=Q.ref,F=L.current;if(yJ(Q))UJ(Q.key),U=""+Q.key;var T;if(J.type&&J.type.defaultProps)T=J.type.defaultProps;for(X in Q)if(_J.call(Q,X)&&!JQ.hasOwnProperty(X))if(Q[X]===void 0&&T!==void 0)M[X]=T[X];else M[X]=Q[X]}var k=arguments.length-2;if(k===1)M.children=H;else if(k>1){var h=Array(k);for(var s=0;s<k;s++)h[s]=arguments[s+2];M.children=h}return TJ(J.type,U,Y,q,x,F,M)}function VJ(J){return typeof J==="object"&&J!==null&&J.$$typeof===E}var HQ=".",wQ=":";function AQ(J){var Q=/[=:]/g,H={"=":"=0",":":"=2"},X=J.replace(Q,function(M){return H[M]});return"$"+X}var XQ=!1,sJ=/\/+/g;function aJ(J){return J.replace(sJ,"$&/")}function KJ(J,Q){if(typeof J==="object"&&J!==null&&J.key!=null)return UJ(J.key),AQ(""+J.key);return Q.toString(36)}function AJ(J,Q,H,X,M){var U=typeof J;if(U==="undefined"||U==="boolean")J=null;var Y=!1;if(J===null)Y=!0;else switch(U){case"string":case"number":Y=!0;break;case"object":switch(J.$$typeof){case E:case I:Y=!0}}if(Y){var q=J,x=M(q),F=X===""?HQ+KJ(q,0):X;if(xJ(x)){var T="";if(F!=null)T=aJ(F)+"/";AJ(x,Q,T,"",function(yZ){return yZ})}else if(x!=null){if(VJ(x)){if(x.key&&(!q||q.key!==x.key))UJ(x.key);x=EQ(x,H+(x.key&&(!q||q.key!==x.key)?aJ(""+x.key)+"/":"")+F)}Q.push(x)}return 1}var k,h,s=0,t=X===""?HQ:X+wQ;if(xJ(J))for(var DQ=0;DQ<J.length;DQ++)k=J[DQ],h=t+KJ(k,DQ),s+=AJ(k,Q,H,h,M);else{var dQ=i(J);if(typeof dQ==="function"){var KZ=J;if(dQ===KZ.entries){if(!XQ)BJ("Using Maps as children is not supported. Use an array of keyed ReactElements instead.");XQ=!0}var iZ=dQ.call(KZ),zZ,lZ=0;while(!(zZ=iZ.next()).done)k=zZ.value,h=t+KJ(k,lZ++),s+=AJ(k,Q,H,h,M)}else if(U==="object"){var OZ=String(J);throw Error("Objects are not valid as a React child (found: "+(OZ==="[object Object]"?"object with keys {"+Object.keys(J).join(", ")+"}":OZ)+"). If you meant to render a collection of children, use an array instead.")}}return s}function DJ(J,Q,H){if(J==null)return J;var X=[],M=0;return AJ(J,X,"","",function(U){return Q.call(H,U,M++)}),X}function GQ(J){var Q=0;return DJ(J,function(){Q++}),Q}function jQ(J,Q,H){DJ(J,function(){Q.apply(this,arguments)},H)}function MQ(J){return DJ(J,function(Q){return Q})||[]}function FQ(J){if(!VJ(J))throw Error("React.Children.only expected to receive a single React element child.");return J}function BQ(J){var Q={$$typeof:C,_currentValue:J,_currentValue2:J,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};Q.Provider={$$typeof:m,_context:Q};var H=!1,X=!1,M=!1;{var U={$$typeof:C,_context:Q};Object.defineProperties(U,{Provider:{get:function(){if(!X)X=!0,P("Rendering <Context.Consumer.Provider> is not supported and will be removed in a future major release. Did you mean to render <Context.Provider> instead?");return Q.Provider},set:function(Y){Q.Provider=Y}},_currentValue:{get:function(){return Q._currentValue},set:function(Y){Q._currentValue=Y}},_currentValue2:{get:function(){return Q._currentValue2},set:function(Y){Q._currentValue2=Y}},_threadCount:{get:function(){return Q._threadCount},set:function(Y){Q._threadCount=Y}},Consumer:{get:function(){if(!H)H=!0,P("Rendering <Context.Consumer.Consumer> is not supported and will be removed in a future major release. Did you mean to render <Context.Consumer> instead?");return Q.Consumer}},displayName:{get:function(){return Q.displayName},set:function(Y){if(!M)BJ("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",Y),M=!0}}}),Q.Consumer=U}return Q._currentRenderer=null,Q._currentRenderer2=null,Q}var $J=-1,oJ=0,YQ=1,WQ=2;function bQ(J){if(J._status===$J){var Q=J._result,H=Q();if(H.then(function(U){if(J._status===oJ||J._status===$J){var Y=J;Y._status=YQ,Y._result=U}},function(U){if(J._status===oJ||J._status===$J){var Y=J;Y._status=WQ,Y._result=U}}),J._status===$J){var X=J;X._status=oJ,X._result=H}}if(J._status===YQ){var M=J._result;if(M===void 0)P(`lazy: Expected the result of a dynamic import() call. Instead received: %s
2
+
3
+ Your code should look like:
4
+ const MyComponent = lazy(() => import('./MyComponent'))
5
+
6
+ Did you accidentally put curly braces around the import?`,M);if(!("default"in M))P(`lazy: Expected the result of a dynamic import() call. Instead received: %s
7
+
8
+ Your code should look like:
9
+ const MyComponent = lazy(() => import('./MyComponent'))`,M);return M.default}else throw J._result}function CQ(J){var Q={_status:$J,_result:J},H={$$typeof:ZJ,_payload:Q,_init:bQ};{var X,M;Object.defineProperties(H,{defaultProps:{configurable:!0,get:function(){return X},set:function(U){P("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),X=U,Object.defineProperty(H,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return M},set:function(U){P("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),M=U,Object.defineProperty(H,"propTypes",{enumerable:!0})}}})}return H}function Z(J){{if(J!=null&&J.$$typeof===c)P("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).");else if(typeof J!=="function")P("forwardRef requires a render function but was given %s.",J===null?"null":typeof J);else if(J.length!==0&&J.length!==2)P("forwardRef render functions accept exactly two parameters: props and ref. %s",J.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined.");if(J!=null){if(J.defaultProps!=null||J.propTypes!=null)P("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?")}}var Q={$$typeof:d,render:J};{var H;Object.defineProperty(Q,"displayName",{enumerable:!1,configurable:!0,get:function(){return H},set:function(X){if(H=X,!J.name&&!J.displayName)J.displayName=X}})}return Q}var G=Symbol.for("react.module.reference");function B(J){if(typeof J==="string"||typeof J==="function")return!0;if(J===v||J===o||MJ||J===y||J===e||J===QJ||FJ||J===p||D||S||RJ)return!0;if(typeof J==="object"&&J!==null){if(J.$$typeof===ZJ||J.$$typeof===c||J.$$typeof===m||J.$$typeof===C||J.$$typeof===d||J.$$typeof===G||J.getModuleId!==void 0)return!0}return!1}function K(J,Q){if(!B(J))P("memo: The first argument must be a component. Instead received: %s",J===null?"null":typeof J);var H={$$typeof:c,type:J,compare:Q===void 0?null:Q};{var X;Object.defineProperty(H,"displayName",{enumerable:!1,configurable:!0,get:function(){return X},set:function(M){if(X=M,!J.name&&!J.displayName)J.displayName=M}})}return H}function z(){var J=_.current;if(J===null)P(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:
10
+ 1. You might have mismatching versions of React and the renderer (such as React DOM)
11
+ 2. You might be breaking the Rules of Hooks
12
+ 3. You might have more than one copy of React in the same app
13
+ See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`);return J}function j(J){var Q=z();if(J._context!==void 0){var H=J._context;if(H.Consumer===J)P("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?");else if(H.Provider===J)P("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return Q.useContext(J)}function R(J){var Q=z();return Q.useState(J)}function $(J,Q,H){var X=z();return X.useReducer(J,Q,H)}function r(J){var Q=z();return Q.useRef(J)}function g(J,Q){var H=z();return H.useEffect(J,Q)}function u(J,Q){var H=z();return H.useInsertionEffect(J,Q)}function XJ(J,Q){var H=z();return H.useLayoutEffect(J,Q)}function LJ(J,Q){var H=z();return H.useCallback(J,Q)}function OJ(J,Q){var H=z();return H.useMemo(J,Q)}function JJ(J,Q,H){var X=z();return X.useImperativeHandle(J,Q,H)}function nJ(J,Q){{var H=z();return H.useDebugValue(J,Q)}}function SQ(){var J=z();return J.useTransition()}function NQ(J){var Q=z();return Q.useDeferredValue(J)}function xZ(){var J=z();return J.useId()}function EZ(J,Q,H){var X=z();return X.useSyncExternalStore(J,Q,H)}var pJ=0,lQ,yQ,cQ,sQ,aQ,oQ,nQ;function pQ(){}pQ.__reactDisabledLog=!0;function _Z(){{if(pJ===0){lQ=console.log,yQ=console.info,cQ=console.warn,sQ=console.error,aQ=console.group,oQ=console.groupCollapsed,nQ=console.groupEnd;var J={configurable:!0,enumerable:!0,value:pQ,writable:!0};Object.defineProperties(console,{info:J,log:J,warn:J,error:J,group:J,groupCollapsed:J,groupEnd:J})}pJ++}}function wZ(){{if(pJ--,pJ===0){var J={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:YJ({},J,{value:lQ}),info:YJ({},J,{value:yQ}),warn:YJ({},J,{value:cQ}),error:YJ({},J,{value:sQ}),group:YJ({},J,{value:aQ}),groupCollapsed:YJ({},J,{value:oQ}),groupEnd:YJ({},J,{value:nQ})})}if(pJ<0)P("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var vQ=HJ.ReactCurrentDispatcher,TQ;function UQ(J,Q,H){{if(TQ===void 0)try{throw Error()}catch(M){var X=M.stack.trim().match(/\n( *(at )?)/);TQ=X&&X[1]||""}return`
14
+ `+TQ+J}}var kQ=!1,KQ;{var AZ=typeof WeakMap==="function"?WeakMap:Map;KQ=new AZ}function rQ(J,Q){if(!J||kQ)return"";{var H=KQ.get(J);if(H!==void 0)return H}var X;kQ=!0;var M=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var U;U=vQ.current,vQ.current=null,_Z();try{if(Q){var Y=function(){throw Error()};if(Object.defineProperty(Y.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==="object"&&Reflect.construct){try{Reflect.construct(Y,[])}catch(t){X=t}Reflect.construct(J,[],Y)}else{try{Y.call()}catch(t){X=t}J.call(Y.prototype)}}else{try{throw Error()}catch(t){X=t}J()}}catch(t){if(t&&X&&typeof t.stack==="string"){var q=t.stack.split(`
15
+ `),x=X.stack.split(`
16
+ `),F=q.length-1,T=x.length-1;while(F>=1&&T>=0&&q[F]!==x[T])T--;for(;F>=1&&T>=0;F--,T--)if(q[F]!==x[T]){if(F!==1||T!==1)do if(F--,T--,T<0||q[F]!==x[T]){var k=`
17
+ `+q[F].replace(" at new "," at ");if(J.displayName&&k.includes("<anonymous>"))k=k.replace("<anonymous>",J.displayName);if(typeof J==="function")KQ.set(J,k);return k}while(F>=1&&T>=0);break}}}finally{kQ=!1,vQ.current=U,wZ(),Error.prepareStackTrace=M}var h=J?J.displayName||J.name:"",s=h?UQ(h):"";if(typeof J==="function")KQ.set(J,s);return s}function jZ(J,Q,H){return rQ(J,!1)}function FZ(J){var Q=J.prototype;return!!(Q&&Q.isReactComponent)}function zQ(J,Q,H){if(J==null)return"";if(typeof J==="function")return rQ(J,FZ(J));if(typeof J==="string")return UQ(J);switch(J){case e:return UQ("Suspense");case QJ:return UQ("SuspenseList")}if(typeof J==="object")switch(J.$$typeof){case d:return jZ(J.render);case c:return zQ(J.type,Q,H);case ZJ:{var X=J,M=X._payload,U=X._init;try{return zQ(U(M),Q,H)}catch(Y){}}}return""}var tQ={},eQ=HJ.ReactDebugCurrentFrame;function OQ(J){if(J){var Q=J._owner,H=zQ(J.type,J._source,Q?Q.type:null);eQ.setExtraStackFrame(H)}else eQ.setExtraStackFrame(null)}function bZ(J,Q,H,X,M){{var U=Function.call.bind(_J);for(var Y in J)if(U(J,Y)){var q=void 0;try{if(typeof J[Y]!=="function"){var x=Error((X||"React class")+": "+H+" type `"+Y+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof J[Y]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw x.name="Invariant Violation",x}q=J[Y](Q,Y,X,H,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(F){q=F}if(q&&!(q instanceof Error))OQ(M),P("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",X||"React class",H,Y,typeof q),OQ(null);if(q instanceof Error&&!(q.message in tQ))tQ[q.message]=!0,OQ(M),P("Failed %s type: %s",H,q.message),OQ(null)}}}function kJ(J){if(J){var Q=J._owner,H=zQ(J.type,J._source,Q?Q.type:null);V(H)}else V(null)}var JZ=!1;function QZ(){if(L.current){var J=GJ(L.current.type);if(J)return`
18
+
19
+ Check the render method of \``+J+"`."}return""}function CZ(J){if(J!==void 0){var Q=J.fileName.replace(/^.*[\\\/]/,""),H=J.lineNumber;return`
20
+
21
+ Check your code at `+Q+":"+H+"."}return""}function SZ(J){if(J!==null&&J!==void 0)return CZ(J.__source);return""}var ZZ={};function NZ(J){var Q=QZ();if(!Q){var H=typeof J==="string"?J:J.displayName||J.name;if(H)Q=`
22
+
23
+ Check the top-level render call using <`+H+">."}return Q}function HZ(J,Q){if(!J._store||J._store.validated||J.key!=null)return;J._store.validated=!0;var H=NZ(Q);if(ZZ[H])return;ZZ[H]=!0;var X="";if(J&&J._owner&&J._owner!==L.current)X=" It was passed a child from "+GJ(J._owner.type)+".";kJ(J),P('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',H,X),kJ(null)}function XZ(J,Q){if(typeof J!=="object")return;if(xJ(J))for(var H=0;H<J.length;H++){var X=J[H];if(VJ(X))HZ(X,Q)}else if(VJ(J)){if(J._store)J._store.validated=!0}else if(J){var M=i(J);if(typeof M==="function"){if(M!==J.entries){var U=M.call(J),Y;while(!(Y=U.next()).done)if(VJ(Y.value))HZ(Y.value,Q)}}}}function GZ(J){{var Q=J.type;if(Q===null||Q===void 0||typeof Q==="string")return;var H;if(typeof Q==="function")H=Q.propTypes;else if(typeof Q==="object"&&(Q.$$typeof===d||Q.$$typeof===c))H=Q.propTypes;else return;if(H){var X=GJ(Q);bZ(H,J.props,"prop",X,J)}else if(Q.PropTypes!==void 0&&!JZ){JZ=!0;var M=GJ(Q);P("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",M||"Unknown")}if(typeof Q.getDefaultProps==="function"&&!Q.getDefaultProps.isReactClassApproved)P("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function vZ(J){{var Q=Object.keys(J.props);for(var H=0;H<Q.length;H++){var X=Q[H];if(X!=="children"&&X!=="key"){kJ(J),P("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",X),kJ(null);break}}if(J.ref!==null)kJ(J),P("Invalid attribute `ref` supplied to `React.Fragment`."),kJ(null)}}function MZ(J,Q,H){var X=B(J);if(!X){var M="";if(J===void 0||typeof J==="object"&&J!==null&&Object.keys(J).length===0)M+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";var U=SZ(Q);if(U)M+=U;else M+=QZ();var Y;if(J===null)Y="null";else if(xJ(J))Y="array";else if(J!==void 0&&J.$$typeof===E)Y="<"+(GJ(J.type)||"Unknown")+" />",M=" Did you accidentally export a JSX literal instead of a component?";else Y=typeof J;P("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",Y,M)}var q=cJ.apply(this,arguments);if(q==null)return q;if(X)for(var x=2;x<arguments.length;x++)XZ(arguments[x],J);if(J===v)vZ(q);else GZ(q);return q}var BZ=!1;function TZ(J){var Q=MZ.bind(null,J);Q.type=J;{if(!BZ)BZ=!0,BJ("React.createFactory() is deprecated and will be removed in a future major release. Consider using JSX or use React.createElement() directly instead.");Object.defineProperty(Q,"type",{enumerable:!1,get:function(){return BJ("Factory.type is deprecated. Access the class directly before passing it to createFactory."),Object.defineProperty(this,"type",{value:J}),J}})}return Q}function kZ(J,Q,H){var X=_Q.apply(this,arguments);for(var M=2;M<arguments.length;M++)XZ(arguments[M],X.type);return GZ(X),X}function gZ(J,Q){var H=b.transition;b.transition={};var X=b.transition;b.transition._updatedFibers=new Set;try{J()}finally{if(b.transition=H,H===null&&X._updatedFibers){var M=X._updatedFibers.size;if(M>10)BJ("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.");X._updatedFibers.clear()}}}var YZ=!1,qQ=null;function hZ(J){if(qQ===null)try{var Q=("require"+Math.random()).slice(0,7),H=$Q&&$Q[Q];qQ=H.call($Q,"timers").setImmediate}catch(X){qQ=function(M){if(YZ===!1){if(YZ=!0,typeof MessageChannel>"u")P("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.")}var U=new MessageChannel;U.port1.onmessage=M,U.port2.postMessage(void 0)}}return qQ(J)}var gJ=0,WZ=!1;function UZ(J){{var Q=gJ;if(gJ++,w.current===null)w.current=[];var H=w.isBatchingLegacy,X;try{if(w.isBatchingLegacy=!0,X=J(),!H&&w.didScheduleLegacyUpdate){var M=w.current;if(M!==null)w.didScheduleLegacyUpdate=!1,fQ(M)}}catch(h){throw VQ(Q),h}finally{w.isBatchingLegacy=H}if(X!==null&&typeof X==="object"&&typeof X.then==="function"){var U=X,Y=!1,q={then:function(h,s){Y=!0,U.then(function(t){if(VQ(Q),gJ===0)gQ(t,h,s);else h(t)},function(t){VQ(Q),s(t)})}};if(!WZ&&typeof Promise<"u")Promise.resolve().then(function(){}).then(function(){if(!Y)WZ=!0,P("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);")});return q}else{var x=X;if(VQ(Q),gJ===0){var F=w.current;if(F!==null)fQ(F),w.current=null;var T={then:function(h,s){if(w.current===null)w.current=[],gQ(x,h,s);else h(x)}};return T}else{var k={then:function(h,s){h(x)}};return k}}}}function VQ(J){{if(J!==gJ-1)P("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. ");gJ=J}}function gQ(J,Q,H){{var X=w.current;if(X!==null)try{fQ(X),hZ(function(){if(X.length===0)w.current=null,Q(J);else gQ(J,Q,H)})}catch(M){H(M)}else Q(J)}}var hQ=!1;function fQ(J){if(!hQ){hQ=!0;var Q=0;try{for(;Q<J.length;Q++){var H=J[Q];do H=H(!0);while(H!==null)}J.length=0}catch(X){throw J=J.slice(Q+1),X}finally{hQ=!1}}}var fZ=MZ,dZ=kZ,uZ=TZ,mZ={map:DJ,forEach:jQ,count:GQ,toArray:MQ,only:FQ};if(nZ.Children=mZ,nZ.Component=WJ,nZ.Fragment=v,nZ.Profiler=o,nZ.PureComponent=qJ,nZ.StrictMode=y,nZ.Suspense=e,nZ.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=HJ,nZ.act=UZ,nZ.cloneElement=dZ,nZ.createContext=BQ,nZ.createElement=fZ,nZ.createFactory=uZ,nZ.createRef=NJ,nZ.forwardRef=Z,nZ.isValidElement=VJ,nZ.lazy=CQ,nZ.memo=K,nZ.startTransition=gZ,nZ.unstable_act=UZ,nZ.useCallback=LJ,nZ.useContext=j,nZ.useDebugValue=nJ,nZ.useDeferredValue=NQ,nZ.useEffect=g,nZ.useId=xZ,nZ.useImperativeHandle=JJ,nZ.useInsertionEffect=u,nZ.useLayoutEffect=XJ,nZ.useMemo=OJ,nZ.useReducer=$,nZ.useRef=r,nZ.useState=R,nZ.useSyncExternalStore=EZ,nZ.useTransition=SQ,nZ.version=W,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==="function")__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()});var jJ=VZ((pZ)=>{var uQ=zJ(rJ());(function(){var W=Symbol.for("react.element"),E=Symbol.for("react.portal"),I=Symbol.for("react.fragment"),v=Symbol.for("react.strict_mode"),y=Symbol.for("react.profiler"),o=Symbol.for("react.provider"),m=Symbol.for("react.context"),C=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),e=Symbol.for("react.suspense_list"),QJ=Symbol.for("react.memo"),c=Symbol.for("react.lazy"),ZJ=Symbol.for("react.offscreen"),p=Symbol.iterator,A="@@iterator";function n(Z){if(Z===null||typeof Z!=="object")return null;var G=p&&Z[p]||Z[A];if(typeof G==="function")return G;return null}var i=uQ.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function _(Z){{for(var G=arguments.length,B=Array(G>1?G-1:0),K=1;K<G;K++)B[K-1]=arguments[K];b("error",Z,B)}}function b(Z,G,B){{var K=i.ReactDebugCurrentFrame,z=K.getStackAddendum();if(z!=="")G+="%s",B=B.concat([z]);var j=B.map(function(R){return String(R)});j.unshift("Warning: "+G),Function.prototype.apply.call(console[Z],console,j)}}var w=!1,L=!1,l=!1,O=!1,V=!1,D;D=Symbol.for("react.module.reference");function S(Z){if(typeof Z==="string"||typeof Z==="function")return!0;if(Z===I||Z===y||V||Z===v||Z===d||Z===e||O||Z===ZJ||w||L||l)return!0;if(typeof Z==="object"&&Z!==null){if(Z.$$typeof===c||Z.$$typeof===QJ||Z.$$typeof===o||Z.$$typeof===m||Z.$$typeof===C||Z.$$typeof===D||Z.getModuleId!==void 0)return!0}return!1}function RJ(Z,G,B){var K=Z.displayName;if(K)return K;var z=G.displayName||G.name||"";return z!==""?B+"("+z+")":B}function FJ(Z){return Z.displayName||"Context"}function MJ(Z){if(Z==null)return null;if(typeof Z.tag==="number")_("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.");if(typeof Z==="function")return Z.displayName||Z.name||null;if(typeof Z==="string")return Z;switch(Z){case I:return"Fragment";case E:return"Portal";case y:return"Profiler";case v:return"StrictMode";case d:return"Suspense";case e:return"SuspenseList"}if(typeof Z==="object")switch(Z.$$typeof){case m:var G=Z;return FJ(G)+".Consumer";case o:var B=Z;return FJ(B._context)+".Provider";case C:return RJ(Z,Z.render,"ForwardRef");case QJ:var K=Z.displayName||null;if(K!==null)return K;return MJ(Z.type)||"Memo";case c:{var z=Z,j=z._payload,R=z._init;try{return MJ(R(j))}catch($){return null}}}return null}var HJ=Object.assign,BJ=0,P,hJ,fJ,bJ,dJ,YJ,CJ;function WJ(){}WJ.__reactDisabledLog=!0;function uJ(){{if(BJ===0){P=console.log,hJ=console.info,fJ=console.warn,bJ=console.error,dJ=console.group,YJ=console.groupCollapsed,CJ=console.groupEnd;var Z={configurable:!0,enumerable:!0,value:WJ,writable:!0};Object.defineProperties(console,{info:Z,log:Z,warn:Z,error:Z,group:Z,groupCollapsed:Z,groupEnd:Z})}BJ++}}function LQ(){{if(BJ--,BJ===0){var Z={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:HJ({},Z,{value:P}),info:HJ({},Z,{value:hJ}),warn:HJ({},Z,{value:fJ}),error:HJ({},Z,{value:bJ}),group:HJ({},Z,{value:dJ}),groupCollapsed:HJ({},Z,{value:YJ}),groupEnd:HJ({},Z,{value:CJ})})}if(BJ<0)_("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var PJ=i.ReactCurrentDispatcher,SJ;function qJ(Z,G,B){{if(SJ===void 0)try{throw Error()}catch(z){var K=z.stack.trim().match(/\n( *(at )?)/);SJ=K&&K[1]||""}return`
24
+ `+SJ+Z}}var IJ=!1,NJ;{var RQ=typeof WeakMap==="function"?WeakMap:Map;NJ=new RQ}function xJ(Z,G){if(!Z||IJ)return"";{var B=NJ.get(Z);if(B!==void 0)return B}var K;IJ=!0;var z=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var j;j=PJ.current,PJ.current=null,uJ();try{if(G){var R=function(){throw Error()};if(Object.defineProperty(R.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==="object"&&Reflect.construct){try{Reflect.construct(R,[])}catch(JJ){K=JJ}Reflect.construct(Z,[],R)}else{try{R.call()}catch(JJ){K=JJ}Z.call(R.prototype)}}else{try{throw Error()}catch(JJ){K=JJ}Z()}}catch(JJ){if(JJ&&K&&typeof JJ.stack==="string"){var $=JJ.stack.split(`
25
+ `),r=K.stack.split(`
26
+ `),g=$.length-1,u=r.length-1;while(g>=1&&u>=0&&$[g]!==r[u])u--;for(;g>=1&&u>=0;g--,u--)if($[g]!==r[u]){if(g!==1||u!==1)do if(g--,u--,u<0||$[g]!==r[u]){var XJ=`
27
+ `+$[g].replace(" at new "," at ");if(Z.displayName&&XJ.includes("<anonymous>"))XJ=XJ.replace("<anonymous>",Z.displayName);if(typeof Z==="function")NJ.set(Z,XJ);return XJ}while(g>=1&&u>=0);break}}}finally{IJ=!1,PJ.current=j,LQ(),Error.prepareStackTrace=z}var LJ=Z?Z.displayName||Z.name:"",OJ=LJ?qJ(LJ):"";if(typeof Z==="function")NJ.set(Z,OJ);return OJ}function PQ(Z,G,B){return xJ(Z,!1)}function IQ(Z){var G=Z.prototype;return!!(G&&G.isReactComponent)}function EJ(Z,G,B){if(Z==null)return"";if(typeof Z==="function")return xJ(Z,IQ(Z));if(typeof Z==="string")return qJ(Z);switch(Z){case d:return qJ("Suspense");case e:return qJ("SuspenseList")}if(typeof Z==="object")switch(Z.$$typeof){case C:return PQ(Z.render);case QJ:return EJ(Z.type,G,B);case c:{var K=Z,z=K._payload,j=K._init;try{return EJ(j(z),G,B)}catch(R){}}}return""}var UJ=Object.prototype.hasOwnProperty,eJ={},mJ=i.ReactDebugCurrentFrame;function GJ(Z){if(Z){var G=Z._owner,B=EJ(Z.type,Z._source,G?G.type:null);mJ.setExtraStackFrame(B)}else mJ.setExtraStackFrame(null)}function _J(Z,G,B,K,z){{var j=Function.call.bind(UJ);for(var R in Z)if(j(Z,R)){var $=void 0;try{if(typeof Z[R]!=="function"){var r=Error((K||"React class")+": "+B+" type `"+R+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof Z[R]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw r.name="Invariant Violation",r}$=Z[R](G,R,K,B,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(g){$=g}if($&&!($ instanceof Error))GJ(z),_("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",K||"React class",B,R,typeof $),GJ(null);if($ instanceof Error&&!($.message in eJ))eJ[$.message]=!0,GJ(z),_("Failed %s type: %s",B,$.message),GJ(null)}}}var JQ=Array.isArray;function vJ(Z){return JQ(Z)}function QQ(Z){{var G=typeof Symbol==="function"&&Symbol.toStringTag,B=G&&Z[Symbol.toStringTag]||Z.constructor.name||"Object";return B}}function iJ(Z){try{return lJ(Z),!1}catch(G){return!0}}function lJ(Z){return""+Z}function yJ(Z){if(iJ(Z))return _("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",QQ(Z)),lJ(Z)}var wJ=i.ReactCurrentOwner,xQ={key:!0,ref:!0,__self:!0,__source:!0},ZQ,TJ,cJ;cJ={};function EQ(Z){if(UJ.call(Z,"ref")){var G=Object.getOwnPropertyDescriptor(Z,"ref").get;if(G&&G.isReactWarning)return!1}return Z.ref!==void 0}function _Q(Z){if(UJ.call(Z,"key")){var G=Object.getOwnPropertyDescriptor(Z,"key").get;if(G&&G.isReactWarning)return!1}return Z.key!==void 0}function VJ(Z,G){if(typeof Z.ref==="string"&&wJ.current&&G&&wJ.current.stateNode!==G){var B=MJ(wJ.current.type);if(!cJ[B])_('Component "%s" contains the string ref "%s". Support for string refs will be removed in a future major release. This case cannot be automatically converted to an arrow function. We ask you to manually fix this case by using useRef() or createRef() instead. Learn more about using refs safely here: https://reactjs.org/link/strict-mode-string-ref',MJ(wJ.current.type),Z.ref),cJ[B]=!0}}function HQ(Z,G){{var B=function(){if(!ZQ)ZQ=!0,_("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",G)};B.isReactWarning=!0,Object.defineProperty(Z,"key",{get:B,configurable:!0})}}function wQ(Z,G){{var B=function(){if(!TJ)TJ=!0,_("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",G)};B.isReactWarning=!0,Object.defineProperty(Z,"ref",{get:B,configurable:!0})}}var AQ=function(Z,G,B,K,z,j,R){var $={$$typeof:W,type:Z,key:G,ref:B,props:R,_owner:j};if($._store={},Object.defineProperty($._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty($,"_self",{configurable:!1,enumerable:!1,writable:!1,value:K}),Object.defineProperty($,"_source",{configurable:!1,enumerable:!1,writable:!1,value:z}),Object.freeze)Object.freeze($.props),Object.freeze($);return $};function XQ(Z,G,B,K,z){{var j,R={},$=null,r=null;if(B!==void 0)yJ(B),$=""+B;if(_Q(G))yJ(G.key),$=""+G.key;if(EQ(G))r=G.ref,VJ(G,z);for(j in G)if(UJ.call(G,j)&&!xQ.hasOwnProperty(j))R[j]=G[j];if(Z&&Z.defaultProps){var g=Z.defaultProps;for(j in g)if(R[j]===void 0)R[j]=g[j]}if($||r){var u=typeof Z==="function"?Z.displayName||Z.name||"Unknown":Z;if($)HQ(R,u);if(r)wQ(R,u)}return AQ(Z,$,r,z,K,wJ.current,R)}}var{ReactCurrentOwner:sJ,ReactDebugCurrentFrame:aJ}=i;function KJ(Z){if(Z){var G=Z._owner,B=EJ(Z.type,Z._source,G?G.type:null);aJ.setExtraStackFrame(B)}else aJ.setExtraStackFrame(null)}var AJ=!1;function DJ(Z){return typeof Z==="object"&&Z!==null&&Z.$$typeof===W}function GQ(){{if(sJ.current){var Z=MJ(sJ.current.type);if(Z)return`
28
+
29
+ Check the render method of \``+Z+"`."}return""}}function jQ(Z){{if(Z!==void 0){var G=Z.fileName.replace(/^.*[\\\/]/,""),B=Z.lineNumber;return`
30
+
31
+ Check your code at `+G+":"+B+"."}return""}}var MQ={};function FQ(Z){{var G=GQ();if(!G){var B=typeof Z==="string"?Z:Z.displayName||Z.name;if(B)G=`
32
+
33
+ Check the top-level render call using <`+B+">."}return G}}function BQ(Z,G){{if(!Z._store||Z._store.validated||Z.key!=null)return;Z._store.validated=!0;var B=FQ(G);if(MQ[B])return;MQ[B]=!0;var K="";if(Z&&Z._owner&&Z._owner!==sJ.current)K=" It was passed a child from "+MJ(Z._owner.type)+".";KJ(Z),_('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',B,K),KJ(null)}}function $J(Z,G){{if(typeof Z!=="object")return;if(vJ(Z))for(var B=0;B<Z.length;B++){var K=Z[B];if(DJ(K))BQ(K,G)}else if(DJ(Z)){if(Z._store)Z._store.validated=!0}else if(Z){var z=n(Z);if(typeof z==="function"){if(z!==Z.entries){var j=z.call(Z),R;while(!(R=j.next()).done)if(DJ(R.value))BQ(R.value,G)}}}}}function oJ(Z){{var G=Z.type;if(G===null||G===void 0||typeof G==="string")return;var B;if(typeof G==="function")B=G.propTypes;else if(typeof G==="object"&&(G.$$typeof===C||G.$$typeof===QJ))B=G.propTypes;else return;if(B){var K=MJ(G);_J(B,Z.props,"prop",K,Z)}else if(G.PropTypes!==void 0&&!AJ){AJ=!0;var z=MJ(G);_("Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?",z||"Unknown")}if(typeof G.getDefaultProps==="function"&&!G.getDefaultProps.isReactClassApproved)_("getDefaultProps is only used on classic React.createClass definitions. Use a static property named `defaultProps` instead.")}}function YQ(Z){{var G=Object.keys(Z.props);for(var B=0;B<G.length;B++){var K=G[B];if(K!=="children"&&K!=="key"){KJ(Z),_("Invalid prop `%s` supplied to `React.Fragment`. React.Fragment can only have `key` and `children` props.",K),KJ(null);break}}if(Z.ref!==null)KJ(Z),_("Invalid attribute `ref` supplied to `React.Fragment`."),KJ(null)}}var WQ={};function bQ(Z,G,B,K,z,j){{var R=S(Z);if(!R){var $="";if(Z===void 0||typeof Z==="object"&&Z!==null&&Object.keys(Z).length===0)$+=" You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.";var r=jQ(z);if(r)$+=r;else $+=GQ();var g;if(Z===null)g="null";else if(vJ(Z))g="array";else if(Z!==void 0&&Z.$$typeof===W)g="<"+(MJ(Z.type)||"Unknown")+" />",$=" Did you accidentally export a JSX literal instead of a component?";else g=typeof Z;_("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",g,$)}var u=XQ(Z,G,B,z,j);if(u==null)return u;if(R){var XJ=G.children;if(XJ!==void 0)if(K)if(vJ(XJ)){for(var LJ=0;LJ<XJ.length;LJ++)$J(XJ[LJ],Z);if(Object.freeze)Object.freeze(XJ)}else _("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else $J(XJ,Z)}if(UJ.call(G,"key")){var OJ=MJ(Z),JJ=Object.keys(G).filter(function(NQ){return NQ!=="key"}),nJ=JJ.length>0?"{key: someKey, "+JJ.join(": ..., ")+": ...}":"{key: someKey}";if(!WQ[OJ+nJ]){var SQ=JJ.length>0?"{"+JJ.join(": ..., ")+": ...}":"{}";_(`A props object containing a "key" prop is being spread into JSX:
34
+ let props = %s;
35
+ <%s {...props} />
36
+ React keys must be passed directly to JSX without using spread:
37
+ let props = %s;
38
+ <%s key={someKey} {...props} />`,nJ,OJ,SQ,OJ),WQ[OJ+nJ]=!0}}if(Z===I)YQ(u);else oJ(u);return u}}var CQ=bQ;pZ.Fragment=I,pZ.jsxDEV=CQ})()});var f=zJ(rJ(),1),$Z=zJ(jJ(),1),DZ=f.createContext(null),rZ=200;function tZ({children:W}){let[E,I]=f.useState(!1),[v,y]=f.useState([]),[o,m]=f.useState({}),[C,d]=f.useState({}),[e,QJ]=f.useState(0),[c,ZJ]=f.useState(0),p=f.useRef(null),A=f.useRef(null);f.useEffect(()=>{let _=setInterval(()=>{let b=Date.now();d((w)=>{let L={};for(let[l,O]of Object.entries(w))if(O.expiresAt>b)L[l]=O;return L})},500);return()=>clearInterval(_)},[]);let n=f.useCallback(()=>{if(p.current)p.current.close(),p.current=null;try{let _=new EventSource("/api/telemetry/stream");p.current=_,_.onopen=()=>{I(!0)},_.onmessage=(b)=>{if(!b.data||b.data.trim()==="")return;try{let w=JSON.parse(b.data);if(w.connected){I(!0);return}if(Array.isArray(w)){if(y((L)=>{return[...w,...L].slice(0,rZ)}),m((L)=>{let l={...L};for(let O of w){let V=l[O.agent_id];if(!V||new Date(O.timestamp)>new Date(V.timestamp))l[O.agent_id]={timestamp:O.timestamp,category:O.category,type:O.type}}return l}),d((L)=>{let l={...L},O=Date.now()+3000;for(let V of w)l[V.agent_id]={type:V.type,expiresAt:O};return l}),w.some((L)=>L.category==="system"&&(L.type==="agent_started"||L.type==="agent_stopped")))QJ((L)=>L+1);if(w.some((L)=>L.category==="TASK"&&(L.type==="task_created"||L.type==="task_updated"||L.type==="task_deleted")))ZJ((L)=>L+1)}}catch{}},_.onerror=()=>{if(I(!1),_.close(),p.current=null,A.current)clearTimeout(A.current);A.current=setTimeout(n,2000)}}catch{if(I(!1),A.current)clearTimeout(A.current);A.current=setTimeout(n,2000)}},[]);f.useEffect(()=>{return n(),()=>{if(p.current)p.current.close();if(A.current)clearTimeout(A.current)}},[n]);let i=f.useCallback(()=>{y([])},[]);return $Z.jsxDEV(DZ.Provider,{value:{connected:E,events:v,lastActivityByAgent:o,activeAgents:C,statusChangeCounter:e,taskChangeCounter:c,clearEvents:i},children:W},void 0,!1,void 0,this)}function tJ(){let W=f.useContext(DZ);if(!W)throw Error("useTelemetryContext must be used within TelemetryProvider");return W}function eZ(W){let{connected:E,events:I,lastActivityByAgent:v}=tJ(),y=f.default.useMemo(()=>{let C=I;if(W?.agent_id)C=C.filter((d)=>d.agent_id===W.agent_id);if(W?.category)C=C.filter((d)=>d.category===W.category);if(W?.limit)C=C.slice(0,W.limit);return C},[I,W?.agent_id,W?.category,W?.limit]),o=W?.agent_id?v[W.agent_id]:void 0,m=f.default.useMemo(()=>{if(!o)return!1;let C=new Date(o.timestamp).getTime();return Date.now()-C<1e4},[o]);return{connected:E,events:y,lastActivity:o,isActive:m}}function J0(W){let{activeAgents:E}=tJ(),I=E[W];return{isActive:!!I,type:I?.type}}function Q0(){let{statusChangeCounter:W}=tJ();return W}function Z0(){let{taskChangeCounter:W}=tJ();return W}var N=zJ(rJ(),1),RZ=zJ(jJ(),1),LZ=N.createContext(null);function mQ(){let W=N.useContext(LZ);if(!W)throw Error("useAuth must be used within an AuthProvider");return W}function H0({children:W}){let[E,I]=N.useState(null),[v,y]=N.useState(null),[o,m]=N.useState(!0),[C,d]=N.useState(null),[e,QJ]=N.useState(!1),c=N.useRef(null),ZJ=N.useRef(!1),p=N.useRef(!1),A=N.useCallback((O)=>{c.current=O,y(O)},[]),n=N.useCallback(async()=>{if(ZJ.current)return!1;ZJ.current=!0;try{let O=await fetch("/api/auth/refresh",{method:"POST",credentials:"include"});if(!O.ok)return!1;let V=await O.json();A(V.accessToken);let D=await fetch("/api/auth/me",{headers:{Authorization:`Bearer ${V.accessToken}`}});if(D.ok){let S=await D.json();return I(S.user),!0}return!1}catch(O){return console.error("Token refresh failed:",O),!1}finally{ZJ.current=!1}},[A]),i=N.useCallback(async()=>{try{let O=c.current,D=await(await fetch("/api/auth/check",{headers:O?{Authorization:`Bearer ${O}`}:{}})).json();if(d(D.hasUsers),QJ(D.isDev??!1),D.authenticated&&D.user)I(D.user);else if(I(null),D.hasUsers){if(!await n())A(null)}}catch(O){console.error("Auth check failed:",O),I(null),A(null)}finally{m(!1)}},[n,A]),_=N.useCallback(async(O,V)=>{try{let D=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({username:O,password:V})}),S=await D.json();if(!D.ok)return{success:!1,error:S.error||"Login failed"};return A(S.accessToken),I(S.user),d(!0),{success:!0}}catch(D){return console.error("Login failed:",D),{success:!1,error:"Login failed"}}},[A]),b=N.useCallback(async()=>{try{let O=c.current;await fetch("/api/auth/logout",{method:"POST",credentials:"include",headers:O?{Authorization:`Bearer ${O}`}:{}})}catch(O){console.error("Logout failed:",O)}finally{I(null),A(null)}},[A]),w=N.useCallback(async(O,V={})=>{let D=new Headers(V.headers),S=c.current;if(S)D.set("Authorization",`Bearer ${S}`);return fetch(O,{...V,headers:D})},[]),L=N.useCallback(async()=>{return n()},[n]);N.useEffect(()=>{if(p.current)return;p.current=!0,i()},[i]),N.useEffect(()=>{if(!v)return;let O=setInterval(()=>{n()},840000);return()=>clearInterval(O)},[v,n]);let l={user:E,isAuthenticated:!!E,isLoading:o,hasUsers:C,isDev:e,accessToken:v,login:_,logout:b,refreshToken:L,checkAuth:i,authFetch:w};return RZ.jsxDEV(LZ.Provider,{value:l,children:W},void 0,!1,void 0,this)}var a=zJ(rJ(),1);var IZ=zJ(jJ(),1),PZ=a.createContext(null);function X0(){let W=a.useContext(PZ);if(!W)throw Error("useProjects must be used within a ProjectProvider");return W}var iQ="apteva_current_project";function G0({children:W}){let{authFetch:E,isAuthenticated:I,isLoading:v}=mQ(),[y,o]=a.useState([]),[m,C]=a.useState(()=>{if(typeof window<"u")return localStorage.getItem(iQ);return null}),[d,e]=a.useState(!0),[QJ,c]=a.useState(null),[ZJ,p]=a.useState(0),[A,n]=a.useState(!1);a.useEffect(()=>{fetch("/api/features").then((V)=>V.json()).then((V)=>{n(V.projects===!0)}).catch(()=>{n(!1)})},[]);let i=a.useCallback((V)=>{if(C(V),typeof window<"u")if(V===null)localStorage.removeItem(iQ);else localStorage.setItem(iQ,V)},[]),_=y.find((V)=>V.id===m)||null,b=a.useCallback(async()=>{if(!A){o([]),e(!1);return}if(!I&&!v){o([]),e(!1);return}try{c(null);let V=await E("/api/projects");if(!V.ok)throw Error("Failed to fetch projects");let D=await V.json();if(o(D.projects||[]),p(D.unassignedCount||0),m&&m!=="unassigned"&&!D.projects.find((S)=>S.id===m))i(null)}catch(V){console.error("Failed to fetch projects:",V),c("Failed to load projects")}finally{e(!1)}},[E,I,v,m,i,A]),w=a.useCallback(async(V)=>{try{let D=await E("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(V)});if(!D.ok){let RJ=await D.json();throw Error(RJ.error||"Failed to create project")}let S=await D.json();return await b(),S.project}catch(D){return console.error("Failed to create project:",D),null}},[E,b]),L=a.useCallback(async(V,D)=>{try{let S=await E(`/api/projects/${V}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(D)});if(!S.ok){let FJ=await S.json();throw Error(FJ.error||"Failed to update project")}let RJ=await S.json();return await b(),RJ.project}catch(S){return console.error("Failed to update project:",S),null}},[E,b]),l=a.useCallback(async(V)=>{try{let D=await E(`/api/projects/${V}`,{method:"DELETE"});if(!D.ok){let S=await D.json();throw Error(S.error||"Failed to delete project")}if(m===V)i(null);return await b(),!0}catch(D){return console.error("Failed to delete project:",D),!1}},[E,m,i,b]);a.useEffect(()=>{if(!v&&A)b()},[v,A,b]);let O={projects:y,currentProjectId:m,currentProject:_,isLoading:d,error:QJ,unassignedCount:ZJ,projectsEnabled:A,setCurrentProjectId:i,createProject:w,updateProject:L,deleteProject:l,refreshProjects:b};return IZ.jsxDEV(PZ.Provider,{value:O,children:W},void 0,!1,void 0,this)}export{zJ as P,VZ as Q,M0 as R,rJ as S,jJ as T,tZ as U,tJ as V,eZ as W,J0 as X,Q0 as Y,Z0 as Z,mQ as _,H0 as $,X0 as aa,G0 as ba};
39
+
40
+ //# debugId=5D3112E68CE296B064756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{b as a}from"./App.4da4ycbe.js";import"./App.2ye1b5n0.js";import"./App.nft7h9jt.js";import"./App.np463xvy.js";import"./App.nps62kvt.js";import"./App.tb0y0jmt.js";export{a as ConnectionsPage};
2
+
3
+ //# debugId=CAD556CD8F752CA664756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{h as a}from"./App.155wke5v.js";import"./App.2ye1b5n0.js";import"./App.nft7h9jt.js";import"./App.np463xvy.js";import"./App.nps62kvt.js";import"./App.tb0y0jmt.js";export{a as McpPage};
2
+
3
+ //# debugId=CB9E6708C961556D64756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{c as a}from"./App.n5q6p960.js";import"./App.nft7h9jt.js";import"./App.np463xvy.js";import"./App.nps62kvt.js";import"./App.tb0y0jmt.js";export{a as SettingsPage};
2
+
3
+ //# debugId=96AC58639A6F59EB64756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{I as a}from"./App.2e19nvn4.js";import"./App.np463xvy.js";import"./App.nps62kvt.js";import"./App.tb0y0jmt.js";export{a as SkillsPage};
2
+
3
+ //# debugId=6F963E6D7B80F42D64756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{e as a,f as b,g as c}from"./App.htc36cy8.js";import"./App.nft7h9jt.js";import"./App.tb0y0jmt.js";export{c as formatRelativeTime,b as formatCron,a as TasksPage};
2
+
3
+ //# debugId=1477390B40B71BEA64756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{N as a}from"./App.me6reaa6.js";import"./App.nps62kvt.js";import"./App.tb0y0jmt.js";export{a as TelemetryPage};
2
+
3
+ //# debugId=B7A138F054315B9D64756E2164756E21
@@ -0,0 +1,3 @@
1
+ import{J as a}from"./App.b6wtzd1j.js";import"./App.np463xvy.js";import"./App.nps62kvt.js";import"./App.tb0y0jmt.js";export{a as TestsPage};
2
+
3
+ //# debugId=CC1E8A3C72927CDE64756E2164756E21
package/dist/index.html CHANGED
@@ -11,6 +11,6 @@
11
11
  </head>
12
12
  <body>
13
13
  <div id="root"></div>
14
- <script type="module" src="/App.2194efgj.js"></script>
14
+ <script type="module" src="/App.q8ws33cc.js"></script>
15
15
  </body>
16
16
  </html>
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- *,:after,:before{--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:rgba(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:rgba(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: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{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,pre,samp{font-family:JetBrains Mono,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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-0\.5{left:.125rem}.left-4{left:1rem}.left-5{left:1.25rem}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-10{top:2.5rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[9998\]{z-index:9998}.z-\[9999\]{z-index:9999}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{-webkit-line-clamp:3}.line-clamp-3,.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-4{-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-2\/3{height:66.666667%}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-3\/4{height:75%}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[500px\]{max-height:500px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(80vh-180px\)\]{max-height:calc(80vh - 180px)}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-36{width:9rem}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[480px\]{width:480px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[200px\]{min-width:200px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.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-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[150px\]{max-width:150px}.max-w-\[180px\]{max-width:180px}.max-w-\[80\%\]{max-width:80%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-\[3\]{flex:3}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-0\.5{--tw-translate-x:0.125rem}.translate-x-0\.5,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize{resize:both}.columns-1{-moz-columns:1;column-count:1}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.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-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(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*(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*(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*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-\[\#1a1a1a\]>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(26 26 26/var(--tw-divide-opacity,1))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#1a1a1a\]{--tw-border-opacity:1;border-color:rgb(26 26 26/var(--tw-border-opacity,1))}.border-\[\#222\]{--tw-border-opacity:1;border-color:rgb(34 34 34/var(--tw-border-opacity,1))}.border-\[\#333\]{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.border-\[\#f97316\]{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-\[\#f97316\]\/20{border-color:rgba(249,115,22,.2)}.border-\[\#f97316\]\/30{border-color:rgba(249,115,22,.3)}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-amber-500\/30{border-color:rgba(245,158,11,.3)}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-500\/30{border-color:rgba(59,130,246,.3)}.border-cyan-300{--tw-border-opacity:1;border-color:rgb(103 232 249/var(--tw-border-opacity,1))}.border-cyan-500\/30{border-color:rgba(6,182,212,.3)}.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}.border-emerald-400{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.border-gray-500\/30{border-color:hsla(220,9%,46%,.3)}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-green-500\/20{border-color:rgba(34,197,94,.2)}.border-green-500\/30{border-color:rgba(34,197,94,.3)}.border-indigo-300{--tw-border-opacity:1;border-color:rgb(165 180 252/var(--tw-border-opacity,1))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-neutral-300{--tw-border-opacity:1;border-color:rgb(212 212 212/var(--tw-border-opacity,1))}.border-neutral-700{--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.border-neutral-900{--tw-border-opacity:1;border-color:rgb(23 23 23/var(--tw-border-opacity,1))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity,1))}.border-orange-500\/20{border-color:rgba(249,115,22,.2)}.border-orange-500\/30{border-color:rgba(249,115,22,.3)}.border-pink-500\/30{border-color:rgba(236,72,153,.3)}.border-purple-300{--tw-border-opacity:1;border-color:rgb(216 180 254/var(--tw-border-opacity,1))}.border-purple-500\/30{border-color:rgba(168,85,247,.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-red-500\/20{border-color:rgba(239,68,68,.2)}.border-red-500\/30{border-color:rgba(239,68,68,.3)}.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}.border-teal-500\/20{border-color:rgba(20,184,166,.2)}.border-transparent{border-color:transparent}.border-yellow-300{--tw-border-opacity:1;border-color:rgb(253 224 71/var(--tw-border-opacity,1))}.border-yellow-500\/20{border-color:rgba(234,179,8,.2)}.border-yellow-500\/30{border-color:rgba(234,179,8,.3)}.border-t-blue-500{--tw-border-opacity:1;border-top-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#0a0a0a\]{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.bg-\[\#0d0d0d\]{--tw-bg-opacity:1;background-color:rgb(13 13 13/var(--tw-bg-opacity,1))}.bg-\[\#111\]{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.bg-\[\#151515\]{--tw-bg-opacity:1;background-color:rgb(21 21 21/var(--tw-bg-opacity,1))}.bg-\[\#1a1a1a\]{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.bg-\[\#1a2a1a\]{--tw-bg-opacity:1;background-color:rgb(26 42 26/var(--tw-bg-opacity,1))}.bg-\[\#222\]{--tw-bg-opacity:1;background-color:rgb(34 34 34/var(--tw-bg-opacity,1))}.bg-\[\#333\]{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.bg-\[\#3b82f6\]{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-\[\#3b82f6\]\/20{background-color:rgba(59,130,246,.2)}.bg-\[\#444\]{--tw-bg-opacity:1;background-color:rgb(68 68 68/var(--tw-bg-opacity,1))}.bg-\[\#666\]{--tw-bg-opacity:1;background-color:rgb(102 102 102/var(--tw-bg-opacity,1))}.bg-\[\#888\]{--tw-bg-opacity:1;background-color:rgb(136 136 136/var(--tw-bg-opacity,1))}.bg-\[\#f97316\]{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-\[\#f97316\]\/10{background-color:rgba(249,115,22,.1)}.bg-\[\#f97316\]\/20{background-color:rgba(249,115,22,.2)}.bg-\[\#f97316\]\/5{background-color:rgba(249,115,22,.05)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-900\/50{background-color:rgba(120,53,15,.5)}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-black\/70{background-color:rgba(0,0,0,.7)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/10{background-color:rgba(59,130,246,.1)}.bg-blue-500\/20{background-color:rgba(59,130,246,.2)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-900\/50{background-color:rgba(30,58,138,.5)}.bg-current{background-color:currentColor}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-cyan-500\/20{background-color:rgba(6,182,212,.2)}.bg-cyan-900\/50{background-color:rgba(22,78,99,.5)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-gray-500\/20{background-color:hsla(220,9%,46%,.2)}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-400\/20{background-color:rgba(74,222,128,.2)}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/10{background-color:rgba(34,197,94,.1)}.bg-green-500\/20{background-color:rgba(34,197,94,.2)}.bg-green-500\/5{background-color:rgba(34,197,94,.05)}.bg-green-900\/50{background-color:rgba(20,83,45,.5)}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.bg-neutral-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.bg-neutral-300{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-neutral-50\/50{background-color:hsla(0,0%,98%,.5)}.bg-neutral-500{--tw-bg-opacity:1;background-color:rgb(115 115 115/var(--tw-bg-opacity,1))}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-500\/10{background-color:rgba(249,115,22,.1)}.bg-orange-500\/20{background-color:rgba(249,115,22,.2)}.bg-pink-500\/20{background-color:rgba(236,72,153,.2)}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-500\/10{background-color:rgba(168,85,247,.1)}.bg-purple-500\/20{background-color:rgba(168,85,247,.2)}.bg-purple-900\/50{background-color:rgba(88,28,135,.5)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/10{background-color:rgba(239,68,68,.1)}.bg-red-500\/20{background-color:rgba(239,68,68,.2)}.bg-red-900\/50{background-color:rgba(127,29,29,.5)}.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.bg-teal-500\/10{background-color:rgba(20,184,166,.1)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500\/10{background-color:rgba(234,179,8,.1)}.bg-yellow-500\/20{background-color:rgba(234,179,8,.2)}.bg-yellow-900\/50{background-color:rgba(113,63,18,.5)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,monospace}.\!text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.\!text-sm{font-size:.875rem!important;line-height:1.25rem!important}.\!text-xs{font-size:.75rem!important;line-height:1rem!important}.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-\[10px\]{font-size:10px}.text-\[8px\]{font-size:8px}.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-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-wider{letter-spacing:.05em}.\!text-amber-700{--tw-text-opacity:1!important;color:rgb(180 83 9/var(--tw-text-opacity,1))!important}.\!text-blue-500{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.\!text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.\!text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.\!text-cyan-700{--tw-text-opacity:1!important;color:rgb(14 116 144/var(--tw-text-opacity,1))!important}.\!text-emerald-700{--tw-text-opacity:1!important;color:rgb(4 120 87/var(--tw-text-opacity,1))!important}.\!text-indigo-700{--tw-text-opacity:1!important;color:rgb(67 56 202/var(--tw-text-opacity,1))!important}.\!text-neutral-400{--tw-text-opacity:1!important;color:rgb(163 163 163/var(--tw-text-opacity,1))!important}.\!text-neutral-500{--tw-text-opacity:1!important;color:rgb(115 115 115/var(--tw-text-opacity,1))!important}.\!text-neutral-600{--tw-text-opacity:1!important;color:rgb(82 82 82/var(--tw-text-opacity,1))!important}.\!text-neutral-700{--tw-text-opacity:1!important;color:rgb(64 64 64/var(--tw-text-opacity,1))!important}.\!text-neutral-800{--tw-text-opacity:1!important;color:rgb(38 38 38/var(--tw-text-opacity,1))!important}.\!text-neutral-900{--tw-text-opacity:1!important;color:rgb(23 23 23/var(--tw-text-opacity,1))!important}.\!text-orange-700{--tw-text-opacity:1!important;color:rgb(194 65 12/var(--tw-text-opacity,1))!important}.\!text-purple-700{--tw-text-opacity:1!important;color:rgb(126 34 206/var(--tw-text-opacity,1))!important}.\!text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.\!text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.\!text-rose-700{--tw-text-opacity:1!important;color:rgb(190 18 60/var(--tw-text-opacity,1))!important}.\!text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.text-\[\#333\]{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-\[\#3b82f6\]{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-\[\#444\]{--tw-text-opacity:1;color:rgb(68 68 68/var(--tw-text-opacity,1))}.text-\[\#555\]{--tw-text-opacity:1;color:rgb(85 85 85/var(--tw-text-opacity,1))}.text-\[\#666\]{--tw-text-opacity:1;color:rgb(102 102 102/var(--tw-text-opacity,1))}.text-\[\#6a6\]{--tw-text-opacity:1;color:rgb(102 170 102/var(--tw-text-opacity,1))}.text-\[\#888\]{--tw-text-opacity:1;color:rgb(136 136 136/var(--tw-text-opacity,1))}.text-\[\#aaa\]{--tw-text-opacity:1;color:rgb(170 170 170/var(--tw-text-opacity,1))}.text-\[\#ccc\]{--tw-text-opacity:1;color:rgb(204 204 204/var(--tw-text-opacity,1))}.text-\[\#e0e0e0\]{--tw-text-opacity:1;color:rgb(224 224 224/var(--tw-text-opacity,1))}.text-\[\#f97316\]{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-\[\#f97316\]\/70{color:rgba(249,115,22,.7)}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-neutral-800{--tw-text-opacity:1;color:rgb(38 38 38/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.text-pink-400{--tw-text-opacity:1;color:rgb(244 114 182/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.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\/70{color:hsla(0,91%,71%,.7)}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-teal-400{--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-400\/80{color:rgba(250,204,21,.8)}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.line-through{text-decoration-line:line-through}.placeholder-\[\#444\]::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(68 68 68/var(--tw-placeholder-opacity,1))}.placeholder-\[\#444\]::placeholder{--tw-placeholder-opacity:1;color:rgb(68 68 68/var(--tw-placeholder-opacity,1))}.placeholder-neutral-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity,1))}.placeholder-neutral-400::placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_0_12px_rgba\(249\2c 115\2c 22\2c 0\.3\)\]{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\(249\2c 115\2c 22\2c 0\.3\)\]{--tw-shadow:0 0 12px rgba(249,115,22,.3);--tw-shadow-colored:0 0 12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{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 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -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)}.outline{outline-style:solid}.ring-1{--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)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--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)}.ring-\[\#333\]{--tw-ring-opacity:1;--tw-ring-color:rgb(51 51 51/var(--tw-ring-opacity,1))}.ring-\[\#3b82f6\]\/60{--tw-ring-color:rgba(59,130,246,.6)}.ring-\[\#f97316\]{--tw-ring-opacity:1;--tw-ring-color:rgb(249 115 22/var(--tw-ring-opacity,1))}.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.ring-green-400{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-\[\#111\]{--tw-ring-offset-color:#111}.blur{--tw-blur:blur(8px)}.blur,.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-\[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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;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}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}body,html{background-color:#0a0a0a;min-height:100%;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}::-moz-selection{background-color:#f97316;color:#0a0a0a}::selection{background-color:#f97316;color:#0a0a0a}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#333\]:hover{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.hover\:border-\[\#444\]:hover{--tw-border-opacity:1;border-color:rgb(68 68 68/var(--tw-border-opacity,1))}.hover\:border-\[\#666\]:hover{--tw-border-opacity:1;border-color:rgb(102 102 102/var(--tw-border-opacity,1))}.hover\:border-\[\#f97316\]:hover{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:border-green-500\/50:hover{border-color:rgba(34,197,94,.5)}.hover\:border-neutral-300:hover{--tw-border-opacity:1;border-color:rgb(212 212 212/var(--tw-border-opacity,1))}.hover\:border-red-500\/50:hover{border-color:rgba(239,68,68,.5)}.hover\:bg-\[\#0a0a0a\]:hover{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.hover\:bg-\[\#111\]:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.hover\:bg-\[\#1a1a1a\]:hover{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.hover\:bg-\[\#1a3a1a\]:hover{--tw-bg-opacity:1;background-color:rgb(26 58 26/var(--tw-bg-opacity,1))}.hover\:bg-\[\#222\]:hover{--tw-bg-opacity:1;background-color:rgb(34 34 34/var(--tw-bg-opacity,1))}.hover\:bg-\[\#333\]:hover{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.hover\:bg-\[\#3b82f6\]\/30:hover{background-color:rgba(59,130,246,.3)}.hover\:bg-\[\#ea580c\]:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-\[\#f97316\]\/30:hover{background-color:rgba(249,115,22,.3)}.hover\:bg-\[\#fb923c\]:hover{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-neutral-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.hover\:bg-neutral-200:hover{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.hover\:bg-neutral-300:hover{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1))}.hover\:bg-neutral-50:hover{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.hover\:bg-neutral-600:hover{--tw-bg-opacity:1;background-color:rgb(82 82 82/var(--tw-bg-opacity,1))}.hover\:bg-neutral-700:hover{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\:bg-red-500\/30:hover{background-color:rgba(239,68,68,.3)}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:\!text-neutral-600:hover{--tw-text-opacity:1!important;color:rgb(82 82 82/var(--tw-text-opacity,1))!important}.hover\:\!text-neutral-700:hover{--tw-text-opacity:1!important;color:rgb(64 64 64/var(--tw-text-opacity,1))!important}.hover\:text-\[\#60a5fa\]:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.hover\:text-\[\#888\]:hover{--tw-text-opacity:1;color:rgb(136 136 136/var(--tw-text-opacity,1))}.hover\:text-\[\#e0e0e0\]:hover{--tw-text-opacity:1;color:rgb(224 224 224/var(--tw-text-opacity,1))}.hover\:text-\[\#f97316\]:hover{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.hover\:text-\[\#fb923c\]:hover{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.hover\:text-green-300:hover{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.hover\:text-green-400:hover{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.hover\:text-neutral-600:hover{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.hover\:text-neutral-900:hover{--tw-text-opacity:1;color:rgb(23 23 23/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-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.hover\:shadow-md:hover,.hover\:shadow:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.focus\:border-\[\#f97316\]:focus{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:transparent}.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-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.group:hover .group-hover\:\!text-blue-500{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.group:hover .group-hover\:\!text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-amber-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.dark\:border-blue-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-blue-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-cyan-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity,1))}.dark\:border-emerald-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.dark\:border-emerald-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.dark\:border-green-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-indigo-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.dark\:border-neutral-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(82 82 82/var(--tw-border-opacity,1))}.dark\:border-neutral-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.dark\:border-neutral-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}.dark\:border-orange-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.dark\:border-purple-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.dark\:border-red-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.dark\:border-red-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-rose-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(244 63 94/var(--tw-border-opacity,1))}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:bg-amber-500\/20:is(.dark *){background-color:rgba(245,158,11,.2)}.dark\:bg-amber-900\/40:is(.dark *){background-color:rgba(120,53,15,.4)}.dark\:bg-blue-500\/20:is(.dark *){background-color:rgba(59,130,246,.2)}.dark\:bg-blue-900\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:bg-blue-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:bg-blue-900\/40:is(.dark *){background-color:rgba(30,58,138,.4)}.dark\:bg-cyan-500\/20:is(.dark *){background-color:rgba(6,182,212,.2)}.dark\:bg-cyan-900\/40:is(.dark *){background-color:rgba(22,78,99,.4)}.dark\:bg-emerald-500\/20:is(.dark *){background-color:rgba(16,185,129,.2)}.dark\:bg-emerald-900\/40:is(.dark *){background-color:rgba(6,78,59,.4)}.dark\:bg-green-900\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\:bg-indigo-500\/20:is(.dark *){background-color:rgba(99,102,241,.2)}.dark\:bg-indigo-900\/40:is(.dark *){background-color:rgba(49,46,129,.4)}.dark\:bg-neutral-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(82 82 82/var(--tw-bg-opacity,1))}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.dark\:bg-neutral-800\/50:is(.dark *){background-color:rgba(38,38,38,.5)}.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.dark\:bg-orange-900\/40:is(.dark *){background-color:rgba(124,45,18,.4)}.dark\:bg-purple-500\/20:is(.dark *){background-color:rgba(168,85,247,.2)}.dark\:bg-purple-900\/40:is(.dark *){background-color:rgba(88,28,135,.4)}.dark\:bg-red-900\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:bg-red-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-red-900\/40:is(.dark *){background-color:rgba(127,29,29,.4)}.dark\:bg-rose-900\/40:is(.dark *){background-color:rgba(136,19,55,.4)}.dark\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\:\!text-amber-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(252 211 77/var(--tw-text-opacity,1))!important}.dark\:\!text-blue-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(147 197 253/var(--tw-text-opacity,1))!important}.dark\:\!text-blue-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\:\!text-cyan-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(103 232 249/var(--tw-text-opacity,1))!important}.dark\:\!text-emerald-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(110 231 183/var(--tw-text-opacity,1))!important}.dark\:\!text-indigo-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(165 180 252/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-100:is(.dark *){--tw-text-opacity:1!important;color:rgb(245 245 245/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-200:is(.dark *){--tw-text-opacity:1!important;color:rgb(229 229 229/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(212 212 212/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(163 163 163/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-500:is(.dark *){--tw-text-opacity:1!important;color:rgb(115 115 115/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-600:is(.dark *){--tw-text-opacity:1!important;color:rgb(82 82 82/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-900:is(.dark *){--tw-text-opacity:1!important;color:rgb(23 23 23/var(--tw-text-opacity,1))!important}.dark\:\!text-orange-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(253 186 116/var(--tw-text-opacity,1))!important}.dark\:\!text-purple-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(216 180 254/var(--tw-text-opacity,1))!important}.dark\:\!text-red-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(252 165 165/var(--tw-text-opacity,1))!important}.dark\:\!text-red-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\:\!text-rose-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(253 164 175/var(--tw-text-opacity,1))!important}.dark\:\!text-white:is(.dark *){--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-neutral-100:is(.dark *){--tw-text-opacity:1;color:rgb(245 245 245/var(--tw-text-opacity,1))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.dark\:text-neutral-500:is(.dark *){--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:placeholder-neutral-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(115 115 115/var(--tw-placeholder-opacity,1))}.dark\:placeholder-neutral-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(115 115 115/var(--tw-placeholder-opacity,1))}.dark\:hover\:border-blue-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.dark\:hover\:border-neutral-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(82 82 82/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-blue-900\/40:hover:is(.dark *){background-color:rgba(30,58,138,.4)}.dark\:hover\:bg-neutral-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(82 82 82/var(--tw-bg-opacity,1))}.dark\:hover\:bg-neutral-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.dark\:hover\:bg-neutral-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.dark\:hover\:\!text-neutral-200:hover:is(.dark *){--tw-text-opacity:1!important;color:rgb(229 229 229/var(--tw-text-opacity,1))!important}.dark\:hover\:\!text-neutral-300:hover:is(.dark *){--tw-text-opacity:1!important;color:rgb(212 212 212/var(--tw-text-opacity,1))!important}.dark\:hover\:text-neutral-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .dark\:group-hover\:bg-blue-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.group:hover .dark\:group-hover\:\!text-blue-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}@media (min-width:640px){.sm\:mb-8{margin-bottom:2rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-16{height:4rem}.sm\:w-16{width:4rem}.sm\:w-\[500px\]{width:500px}.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\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:768px){.md\:relative{position:relative}.md\:z-auto{z-index:auto}.md\:ml-4{margin-left:1rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-56{width:14rem}.md\:max-w-\[180px\]{max-width:180px}.md\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:columns-2{-moz-columns:2;column-count:2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-4{gap:1rem}.md\:p-6{padding:1.5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}.lg\:w-\[540px\]{width:540px}.lg\:w-\[600px\]{width:600px}.lg\:max-w-2xl{max-width:42rem}.lg\:columns-3{-moz-columns:3;column-count:3}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width:1280px){.xl\:w-\[700px\]{width:700px}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
1
+ *,:after,:before{--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:rgba(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:rgba(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: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{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,pre,samp{font-family:JetBrains Mono,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,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{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}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-y-0{top:0;bottom:0}.-right-1{right:-.25rem}.-right-1\.5{right:-.375rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-1\.5{top:-.375rem}.-top-12{top:-3rem}.-top-2{top:-.5rem}.bottom-0{bottom:0}.bottom-full{bottom:100%}.left-0{left:0}.left-0\.5{left:.125rem}.left-4{left:1rem}.left-5{left:1.25rem}.right-0{right:0}.right-4{right:1rem}.top-0{top:0}.top-0\.5{top:.125rem}.top-10{top:2.5rem}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[9998\]{z-index:9998}.z-\[9999\]{z-index:9999}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.-ml-2{margin-left:-.5rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.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}.mt-auto{margin-top:auto}.line-clamp-1{-webkit-line-clamp:1}.line-clamp-1,.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-3{-webkit-line-clamp:3}.line-clamp-3,.line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-4{-webkit-line-clamp:4}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-1\/2{height:50%}.h-1\/3{height:33.333333%}.h-10{height:2.5rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-2\/3{height:66.666667%}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-3\/4{height:75%}.h-32{height:8rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.max-h-32{max-height:8rem}.max-h-60{max-height:15rem}.max-h-64{max-height:16rem}.max-h-96{max-height:24rem}.max-h-\[150px\]{max-height:150px}.max-h-\[200px\]{max-height:200px}.max-h-\[500px\]{max-height:500px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[calc\(80vh-180px\)\]{max-height:calc(80vh - 180px)}.min-h-0{min-height:0}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-1\/4{width:25%}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-36{width:9rem}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-5\/6{width:83.333333%}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[480px\]{width:480px}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[200px\]{min-width:200px}.min-w-max{min-width:-moz-max-content;min-width:max-content}.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-\[100px\]{max-width:100px}.max-w-\[120px\]{max-width:120px}.max-w-\[150px\]{max-width:150px}.max-w-\[180px\]{max-width:180px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-\[2\]{flex:2}.flex-\[3\]{flex:3}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-x-full{--tw-translate-x:-100%}.-translate-x-full,.translate-x-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x:0px}.translate-x-0\.5{--tw-translate-x:0.125rem}.translate-x-0\.5,.translate-x-5{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-5{--tw-translate-x:1.25rem}.rotate-180{--tw-rotate:180deg}.rotate-180,.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.cursor-wait{cursor:wait}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.resize-none{resize:none}.resize{resize:both}.columns-1{-moz-columns:1;column-count:1}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.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-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*(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*(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*(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*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-\[\#1a1a1a\]>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(26 26 26/var(--tw-divide-opacity,1))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#1a1a1a\]{--tw-border-opacity:1;border-color:rgb(26 26 26/var(--tw-border-opacity,1))}.border-\[\#222\]{--tw-border-opacity:1;border-color:rgb(34 34 34/var(--tw-border-opacity,1))}.border-\[\#333\]{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.border-\[\#f97316\]{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.border-\[\#f97316\]\/20{border-color:rgba(249,115,22,.2)}.border-\[\#f97316\]\/30{border-color:rgba(249,115,22,.3)}.border-amber-300{--tw-border-opacity:1;border-color:rgb(252 211 77/var(--tw-border-opacity,1))}.border-amber-400{--tw-border-opacity:1;border-color:rgb(251 191 36/var(--tw-border-opacity,1))}.border-amber-500\/30{border-color:rgba(245,158,11,.3)}.border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.border-blue-300{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.border-blue-400{--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-blue-500\/30{border-color:rgba(59,130,246,.3)}.border-cyan-300{--tw-border-opacity:1;border-color:rgb(103 232 249/var(--tw-border-opacity,1))}.border-cyan-500\/30{border-color:rgba(6,182,212,.3)}.border-emerald-300{--tw-border-opacity:1;border-color:rgb(110 231 183/var(--tw-border-opacity,1))}.border-emerald-400{--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.border-gray-500\/30{border-color:hsla(220,9%,46%,.3)}.border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-green-500{--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.border-green-500\/20{border-color:rgba(34,197,94,.2)}.border-green-500\/30{border-color:rgba(34,197,94,.3)}.border-indigo-300{--tw-border-opacity:1;border-color:rgb(165 180 252/var(--tw-border-opacity,1))}.border-neutral-200{--tw-border-opacity:1;border-color:rgb(229 229 229/var(--tw-border-opacity,1))}.border-neutral-300{--tw-border-opacity:1;border-color:rgb(212 212 212/var(--tw-border-opacity,1))}.border-neutral-700{--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.border-neutral-900{--tw-border-opacity:1;border-color:rgb(23 23 23/var(--tw-border-opacity,1))}.border-orange-300{--tw-border-opacity:1;border-color:rgb(253 186 116/var(--tw-border-opacity,1))}.border-orange-500\/20{border-color:rgba(249,115,22,.2)}.border-orange-500\/30{border-color:rgba(249,115,22,.3)}.border-pink-500\/30{border-color:rgba(236,72,153,.3)}.border-purple-300{--tw-border-opacity:1;border-color:rgb(216 180 254/var(--tw-border-opacity,1))}.border-purple-500\/30{border-color:rgba(168,85,247,.3)}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-red-500{--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.border-red-500\/20{border-color:rgba(239,68,68,.2)}.border-red-500\/30{border-color:rgba(239,68,68,.3)}.border-rose-300{--tw-border-opacity:1;border-color:rgb(253 164 175/var(--tw-border-opacity,1))}.border-teal-500\/20{border-color:rgba(20,184,166,.2)}.border-transparent{border-color:transparent}.border-yellow-300{--tw-border-opacity:1;border-color:rgb(253 224 71/var(--tw-border-opacity,1))}.border-yellow-500\/20{border-color:rgba(234,179,8,.2)}.border-yellow-500\/30{border-color:rgba(234,179,8,.3)}.border-t-blue-500{--tw-border-opacity:1;border-top-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-t-transparent{border-top-color:transparent}.bg-\[\#0a0a0a\]{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.bg-\[\#0d0d0d\]{--tw-bg-opacity:1;background-color:rgb(13 13 13/var(--tw-bg-opacity,1))}.bg-\[\#111\]{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.bg-\[\#151515\]{--tw-bg-opacity:1;background-color:rgb(21 21 21/var(--tw-bg-opacity,1))}.bg-\[\#1a1a1a\]{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.bg-\[\#1a1a2a\]{--tw-bg-opacity:1;background-color:rgb(26 26 42/var(--tw-bg-opacity,1))}.bg-\[\#1a2a1a\]{--tw-bg-opacity:1;background-color:rgb(26 42 26/var(--tw-bg-opacity,1))}.bg-\[\#222\]{--tw-bg-opacity:1;background-color:rgb(34 34 34/var(--tw-bg-opacity,1))}.bg-\[\#333\]{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.bg-\[\#3b82f6\]{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-\[\#3b82f6\]\/20{background-color:rgba(59,130,246,.2)}.bg-\[\#444\]{--tw-bg-opacity:1;background-color:rgb(68 68 68/var(--tw-bg-opacity,1))}.bg-\[\#666\]{--tw-bg-opacity:1;background-color:rgb(102 102 102/var(--tw-bg-opacity,1))}.bg-\[\#888\]{--tw-bg-opacity:1;background-color:rgb(136 136 136/var(--tw-bg-opacity,1))}.bg-\[\#f97316\]{--tw-bg-opacity:1;background-color:rgb(249 115 22/var(--tw-bg-opacity,1))}.bg-\[\#f97316\]\/10{background-color:rgba(249,115,22,.1)}.bg-\[\#f97316\]\/20{background-color:rgba(249,115,22,.2)}.bg-\[\#f97316\]\/5{background-color:rgba(249,115,22,.05)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-amber-900\/50{background-color:rgba(120,53,15,.5)}.bg-black\/20{background-color:rgba(0,0,0,.2)}.bg-black\/40{background-color:rgba(0,0,0,.4)}.bg-black\/50{background-color:rgba(0,0,0,.5)}.bg-black\/60{background-color:rgba(0,0,0,.6)}.bg-black\/70{background-color:rgba(0,0,0,.7)}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246/var(--tw-bg-opacity,1))}.bg-blue-500\/10{background-color:rgba(59,130,246,.1)}.bg-blue-500\/20{background-color:rgba(59,130,246,.2)}.bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-blue-900\/50{background-color:rgba(30,58,138,.5)}.bg-current{background-color:currentColor}.bg-cyan-100{--tw-bg-opacity:1;background-color:rgb(207 250 254/var(--tw-bg-opacity,1))}.bg-cyan-500\/20{background-color:rgba(6,182,212,.2)}.bg-cyan-900\/50{background-color:rgba(22,78,99,.5)}.bg-emerald-100{--tw-bg-opacity:1;background-color:rgb(209 250 229/var(--tw-bg-opacity,1))}.bg-gray-500\/20{background-color:hsla(220,9%,46%,.2)}.bg-green-400{--tw-bg-opacity:1;background-color:rgb(74 222 128/var(--tw-bg-opacity,1))}.bg-green-400\/20{background-color:rgba(74,222,128,.2)}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-green-500\/10{background-color:rgba(34,197,94,.1)}.bg-green-500\/20{background-color:rgba(34,197,94,.2)}.bg-green-500\/5{background-color:rgba(34,197,94,.05)}.bg-green-900\/50{background-color:rgba(20,83,45,.5)}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(224 231 255/var(--tw-bg-opacity,1))}.bg-neutral-100{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.bg-neutral-200{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.bg-neutral-300{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1))}.bg-neutral-50{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.bg-neutral-50\/50{background-color:hsla(0,0%,98%,.5)}.bg-neutral-500{--tw-bg-opacity:1;background-color:rgb(115 115 115/var(--tw-bg-opacity,1))}.bg-neutral-800{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.bg-neutral-900{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-orange-500\/10{background-color:rgba(249,115,22,.1)}.bg-orange-500\/20{background-color:rgba(249,115,22,.2)}.bg-pink-500\/20{background-color:rgba(236,72,153,.2)}.bg-purple-100{--tw-bg-opacity:1;background-color:rgb(243 232 255/var(--tw-bg-opacity,1))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(168 85 247/var(--tw-bg-opacity,1))}.bg-purple-500\/10{background-color:rgba(168,85,247,.1)}.bg-purple-500\/20{background-color:rgba(168,85,247,.2)}.bg-purple-900\/50{background-color:rgba(88,28,135,.5)}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-400{--tw-bg-opacity:1;background-color:rgb(248 113 113/var(--tw-bg-opacity,1))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-red-500\/10{background-color:rgba(239,68,68,.1)}.bg-red-500\/20{background-color:rgba(239,68,68,.2)}.bg-red-900\/50{background-color:rgba(127,29,29,.5)}.bg-rose-100{--tw-bg-opacity:1;background-color:rgb(255 228 230/var(--tw-bg-opacity,1))}.bg-teal-500\/10{background-color:rgba(20,184,166,.1)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-yellow-500\/10{background-color:rgba(234,179,8,.1)}.bg-yellow-500\/20{background-color:rgba(234,179,8,.2)}.bg-yellow-900\/50{background-color:rgba(113,63,18,.5)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.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-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-4{padding-bottom:1rem}.pr-2{padding-right:.5rem}.pt-3{padding-top:.75rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.font-mono{font-family:JetBrains Mono,monospace}.\!text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.\!text-sm{font-size:.875rem!important;line-height:1.25rem!important}.\!text-xs{font-size:.75rem!important;line-height:1rem!important}.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-\[10px\]{font-size:10px}.text-\[8px\]{font-size:8px}.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-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.tracking-wider{letter-spacing:.05em}.\!text-amber-700{--tw-text-opacity:1!important;color:rgb(180 83 9/var(--tw-text-opacity,1))!important}.\!text-blue-500{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.\!text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.\!text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.\!text-cyan-700{--tw-text-opacity:1!important;color:rgb(14 116 144/var(--tw-text-opacity,1))!important}.\!text-emerald-700{--tw-text-opacity:1!important;color:rgb(4 120 87/var(--tw-text-opacity,1))!important}.\!text-indigo-700{--tw-text-opacity:1!important;color:rgb(67 56 202/var(--tw-text-opacity,1))!important}.\!text-neutral-400{--tw-text-opacity:1!important;color:rgb(163 163 163/var(--tw-text-opacity,1))!important}.\!text-neutral-500{--tw-text-opacity:1!important;color:rgb(115 115 115/var(--tw-text-opacity,1))!important}.\!text-neutral-600{--tw-text-opacity:1!important;color:rgb(82 82 82/var(--tw-text-opacity,1))!important}.\!text-neutral-700{--tw-text-opacity:1!important;color:rgb(64 64 64/var(--tw-text-opacity,1))!important}.\!text-neutral-800{--tw-text-opacity:1!important;color:rgb(38 38 38/var(--tw-text-opacity,1))!important}.\!text-neutral-900{--tw-text-opacity:1!important;color:rgb(23 23 23/var(--tw-text-opacity,1))!important}.\!text-orange-700{--tw-text-opacity:1!important;color:rgb(194 65 12/var(--tw-text-opacity,1))!important}.\!text-purple-700{--tw-text-opacity:1!important;color:rgb(126 34 206/var(--tw-text-opacity,1))!important}.\!text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.\!text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.\!text-rose-700{--tw-text-opacity:1!important;color:rgb(190 18 60/var(--tw-text-opacity,1))!important}.\!text-white{--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.text-\[\#333\]{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity,1))}.text-\[\#3b82f6\]{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-\[\#444\]{--tw-text-opacity:1;color:rgb(68 68 68/var(--tw-text-opacity,1))}.text-\[\#555\]{--tw-text-opacity:1;color:rgb(85 85 85/var(--tw-text-opacity,1))}.text-\[\#666\]{--tw-text-opacity:1;color:rgb(102 102 102/var(--tw-text-opacity,1))}.text-\[\#6a6\]{--tw-text-opacity:1;color:rgb(102 170 102/var(--tw-text-opacity,1))}.text-\[\#888\]{--tw-text-opacity:1;color:rgb(136 136 136/var(--tw-text-opacity,1))}.text-\[\#aaa\]{--tw-text-opacity:1;color:rgb(170 170 170/var(--tw-text-opacity,1))}.text-\[\#ccc\]{--tw-text-opacity:1;color:rgb(204 204 204/var(--tw-text-opacity,1))}.text-\[\#e0e0e0\]{--tw-text-opacity:1;color:rgb(224 224 224/var(--tw-text-opacity,1))}.text-\[\#f97316\]{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.text-\[\#f97316\]\/70{color:rgba(249,115,22,.7)}.text-amber-400{--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-black{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity,1))}.text-blue-400{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.text-cyan-400{--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.text-cyan-600{--tw-text-opacity:1;color:rgb(8 145 178/var(--tw-text-opacity,1))}.text-emerald-600{--tw-text-opacity:1;color:rgb(5 150 105/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-indigo-600{--tw-text-opacity:1;color:rgb(79 70 229/var(--tw-text-opacity,1))}.text-neutral-400{--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.text-neutral-500{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.text-neutral-600{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.text-neutral-700{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity,1))}.text-neutral-800{--tw-text-opacity:1;color:rgb(38 38 38/var(--tw-text-opacity,1))}.text-neutral-900{--tw-text-opacity:1;color:rgb(23 23 23/var(--tw-text-opacity,1))}.text-orange-400{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.text-pink-400{--tw-text-opacity:1;color:rgb(244 114 182/var(--tw-text-opacity,1))}.text-purple-400{--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.text-purple-600{--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity,1))}.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\/70{color:hsla(0,91%,71%,.7)}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-teal-400{--tw-text-opacity:1;color:rgb(45 212 191/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-yellow-400{--tw-text-opacity:1;color:rgb(250 204 21/var(--tw-text-opacity,1))}.text-yellow-400\/80{color:rgba(250,204,21,.8)}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.line-through{text-decoration-line:line-through}.placeholder-\[\#444\]::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(68 68 68/var(--tw-placeholder-opacity,1))}.placeholder-\[\#444\]::placeholder{--tw-placeholder-opacity:1;color:rgb(68 68 68/var(--tw-placeholder-opacity,1))}.placeholder-neutral-400::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity,1))}.placeholder-neutral-400::placeholder{--tw-placeholder-opacity:1;color:rgb(163 163 163/var(--tw-placeholder-opacity,1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-25{opacity:.25}.opacity-30{opacity:.3}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_0_12px_rgba\(249\2c 115\2c 22\2c 0\.3\)\]{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\(249\2c 115\2c 22\2c 0\.3\)\]{--tw-shadow:0 0 12px rgba(249,115,22,.3);--tw-shadow-colored:0 0 12px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-sm{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 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -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)}.outline{outline-style:solid}.ring-1{--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)}.ring-1,.ring-2{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-2{--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)}.ring-\[\#333\]{--tw-ring-opacity:1;--tw-ring-color:rgb(51 51 51/var(--tw-ring-opacity,1))}.ring-\[\#3b82f6\]\/60{--tw-ring-color:rgba(59,130,246,.6)}.ring-\[\#f97316\]{--tw-ring-opacity:1;--tw-ring-color:rgb(249 115 22/var(--tw-ring-opacity,1))}.ring-blue-400{--tw-ring-opacity:1;--tw-ring-color:rgb(96 165 250/var(--tw-ring-opacity,1))}.ring-green-400{--tw-ring-opacity:1;--tw-ring-color:rgb(74 222 128/var(--tw-ring-opacity,1))}.ring-white{--tw-ring-opacity:1;--tw-ring-color:rgb(255 255 255/var(--tw-ring-opacity,1))}.ring-offset-2{--tw-ring-offset-width:2px}.ring-offset-\[\#111\]{--tw-ring-offset-color:#111}.blur{--tw-blur:blur(8px)}.blur,.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-\[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)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;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}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}body,html{background-color:#0a0a0a;min-height:100%;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{-ms-overflow-style:none;scrollbar-width:none}::-webkit-scrollbar{display:none}::-moz-selection{background-color:#f97316;color:#0a0a0a}::selection{background-color:#f97316;color:#0a0a0a}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}@keyframes slideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-width:0}.last\:border-b-0:last-child{border-bottom-width:0}.hover\:scale-110:hover{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-\[\#333\]:hover{--tw-border-opacity:1;border-color:rgb(51 51 51/var(--tw-border-opacity,1))}.hover\:border-\[\#444\]:hover{--tw-border-opacity:1;border-color:rgb(68 68 68/var(--tw-border-opacity,1))}.hover\:border-\[\#666\]:hover{--tw-border-opacity:1;border-color:rgb(102 102 102/var(--tw-border-opacity,1))}.hover\:border-\[\#f97316\]:hover{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.hover\:border-blue-300:hover{--tw-border-opacity:1;border-color:rgb(147 197 253/var(--tw-border-opacity,1))}.hover\:border-blue-500\/50:hover{border-color:rgba(59,130,246,.5)}.hover\:border-green-500\/50:hover{border-color:rgba(34,197,94,.5)}.hover\:border-neutral-300:hover{--tw-border-opacity:1;border-color:rgb(212 212 212/var(--tw-border-opacity,1))}.hover\:border-red-500\/50:hover{border-color:rgba(239,68,68,.5)}.hover\:bg-\[\#0a0a0a\]:hover{--tw-bg-opacity:1;background-color:rgb(10 10 10/var(--tw-bg-opacity,1))}.hover\:bg-\[\#111\]:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity,1))}.hover\:bg-\[\#1a1a1a\]:hover{--tw-bg-opacity:1;background-color:rgb(26 26 26/var(--tw-bg-opacity,1))}.hover\:bg-\[\#1a1a3a\]:hover{--tw-bg-opacity:1;background-color:rgb(26 26 58/var(--tw-bg-opacity,1))}.hover\:bg-\[\#1a3a1a\]:hover{--tw-bg-opacity:1;background-color:rgb(26 58 26/var(--tw-bg-opacity,1))}.hover\:bg-\[\#222\]:hover{--tw-bg-opacity:1;background-color:rgb(34 34 34/var(--tw-bg-opacity,1))}.hover\:bg-\[\#333\]:hover{--tw-bg-opacity:1;background-color:rgb(51 51 51/var(--tw-bg-opacity,1))}.hover\:bg-\[\#3b82f6\]\/30:hover{background-color:rgba(59,130,246,.3)}.hover\:bg-\[\#ea580c\]:hover{--tw-bg-opacity:1;background-color:rgb(234 88 12/var(--tw-bg-opacity,1))}.hover\:bg-\[\#f97316\]\/30:hover{background-color:rgba(249,115,22,.3)}.hover\:bg-\[\#fb923c\]:hover{--tw-bg-opacity:1;background-color:rgb(251 146 60/var(--tw-bg-opacity,1))}.hover\:bg-amber-600:hover{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity,1))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.hover\:bg-blue-50:hover{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.hover\:bg-blue-600:hover{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-green-500\/20:hover{background-color:rgba(34,197,94,.2)}.hover\:bg-neutral-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 245/var(--tw-bg-opacity,1))}.hover\:bg-neutral-200:hover{--tw-bg-opacity:1;background-color:rgb(229 229 229/var(--tw-bg-opacity,1))}.hover\:bg-neutral-300:hover{--tw-bg-opacity:1;background-color:rgb(212 212 212/var(--tw-bg-opacity,1))}.hover\:bg-neutral-50:hover{--tw-bg-opacity:1;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))}.hover\:bg-neutral-600:hover{--tw-bg-opacity:1;background-color:rgb(82 82 82/var(--tw-bg-opacity,1))}.hover\:bg-neutral-700:hover{--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.hover\:bg-red-50:hover{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.hover\:bg-red-500:hover{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.hover\:bg-red-500\/30:hover{background-color:rgba(239,68,68,.3)}.hover\:bg-red-600:hover{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))}.hover\:bg-yellow-500\/20:hover{background-color:rgba(234,179,8,.2)}.hover\:\!text-neutral-600:hover{--tw-text-opacity:1!important;color:rgb(82 82 82/var(--tw-text-opacity,1))!important}.hover\:\!text-neutral-700:hover{--tw-text-opacity:1!important;color:rgb(64 64 64/var(--tw-text-opacity,1))!important}.hover\:text-\[\#60a5fa\]:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.hover\:text-\[\#888\]:hover{--tw-text-opacity:1;color:rgb(136 136 136/var(--tw-text-opacity,1))}.hover\:text-\[\#e0e0e0\]:hover{--tw-text-opacity:1;color:rgb(224 224 224/var(--tw-text-opacity,1))}.hover\:text-\[\#f97316\]:hover{--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity,1))}.hover\:text-\[\#fb923c\]:hover{--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.hover\:text-green-300:hover{--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.hover\:text-green-400:hover{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.hover\:text-neutral-600:hover{--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity,1))}.hover\:text-neutral-900:hover{--tw-text-opacity:1;color:rgb(23 23 23/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-red-500:hover{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow:hover{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.hover\:shadow-md:hover,.hover\:shadow:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.focus\:border-\[\#f97316\]:focus{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.focus\:border-transparent:focus{border-color:transparent}.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-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}.active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:bg-blue-100{--tw-bg-opacity:1;background-color:rgb(219 234 254/var(--tw-bg-opacity,1))}.group:hover .group-hover\:\!text-blue-500{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.group:hover .group-hover\:\!text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.group:hover .group-hover\:opacity-100{opacity:1}.dark\:border-amber-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(245 158 11/var(--tw-border-opacity,1))}.dark\:border-blue-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(96 165 250/var(--tw-border-opacity,1))}.dark\:border-blue-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.dark\:border-blue-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(30 64 175/var(--tw-border-opacity,1))}.dark\:border-cyan-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(6 182 212/var(--tw-border-opacity,1))}.dark\:border-emerald-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(52 211 153/var(--tw-border-opacity,1))}.dark\:border-emerald-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity,1))}.dark\:border-green-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(34 197 94/var(--tw-border-opacity,1))}.dark\:border-green-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(22 101 52/var(--tw-border-opacity,1))}.dark\:border-indigo-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(99 102 241/var(--tw-border-opacity,1))}.dark\:border-neutral-600:is(.dark *){--tw-border-opacity:1;border-color:rgb(82 82 82/var(--tw-border-opacity,1))}.dark\:border-neutral-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity,1))}.dark\:border-neutral-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity,1))}.dark\:border-orange-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity,1))}.dark\:border-purple-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(168 85 247/var(--tw-border-opacity,1))}.dark\:border-red-400:is(.dark *){--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.dark\:border-red-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(239 68 68/var(--tw-border-opacity,1))}.dark\:border-red-800:is(.dark *){--tw-border-opacity:1;border-color:rgb(153 27 27/var(--tw-border-opacity,1))}.dark\:border-rose-500:is(.dark *){--tw-border-opacity:1;border-color:rgb(244 63 94/var(--tw-border-opacity,1))}.dark\:border-white:is(.dark *){--tw-border-opacity:1;border-color:rgb(255 255 255/var(--tw-border-opacity,1))}.dark\:bg-amber-500\/20:is(.dark *){background-color:rgba(245,158,11,.2)}.dark\:bg-amber-900\/40:is(.dark *){background-color:rgba(120,53,15,.4)}.dark\:bg-blue-500\/20:is(.dark *){background-color:rgba(59,130,246,.2)}.dark\:bg-blue-900\/20:is(.dark *){background-color:rgba(30,58,138,.2)}.dark\:bg-blue-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.dark\:bg-blue-900\/40:is(.dark *){background-color:rgba(30,58,138,.4)}.dark\:bg-cyan-500\/20:is(.dark *){background-color:rgba(6,182,212,.2)}.dark\:bg-cyan-900\/40:is(.dark *){background-color:rgba(22,78,99,.4)}.dark\:bg-emerald-500\/20:is(.dark *){background-color:rgba(16,185,129,.2)}.dark\:bg-emerald-900\/40:is(.dark *){background-color:rgba(6,78,59,.4)}.dark\:bg-green-900\/20:is(.dark *){background-color:rgba(20,83,45,.2)}.dark\:bg-indigo-500\/20:is(.dark *){background-color:rgba(99,102,241,.2)}.dark\:bg-indigo-900\/40:is(.dark *){background-color:rgba(49,46,129,.4)}.dark\:bg-neutral-600:is(.dark *){--tw-bg-opacity:1;background-color:rgb(82 82 82/var(--tw-bg-opacity,1))}.dark\:bg-neutral-700:is(.dark *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.dark\:bg-neutral-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.dark\:bg-neutral-800\/50:is(.dark *){background-color:rgba(38,38,38,.5)}.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity,1))}.dark\:bg-orange-900\/40:is(.dark *){background-color:rgba(124,45,18,.4)}.dark\:bg-purple-500\/20:is(.dark *){background-color:rgba(168,85,247,.2)}.dark\:bg-purple-900\/40:is(.dark *){background-color:rgba(88,28,135,.4)}.dark\:bg-red-900\/20:is(.dark *){background-color:rgba(127,29,29,.2)}.dark\:bg-red-900\/30:is(.dark *){background-color:rgba(127,29,29,.3)}.dark\:bg-red-900\/40:is(.dark *){background-color:rgba(127,29,29,.4)}.dark\:bg-rose-900\/40:is(.dark *){background-color:rgba(136,19,55,.4)}.dark\:bg-white:is(.dark *){--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.dark\:\!text-amber-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(252 211 77/var(--tw-text-opacity,1))!important}.dark\:\!text-blue-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(147 197 253/var(--tw-text-opacity,1))!important}.dark\:\!text-blue-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\:\!text-cyan-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(103 232 249/var(--tw-text-opacity,1))!important}.dark\:\!text-emerald-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(110 231 183/var(--tw-text-opacity,1))!important}.dark\:\!text-indigo-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(165 180 252/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-100:is(.dark *){--tw-text-opacity:1!important;color:rgb(245 245 245/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-200:is(.dark *){--tw-text-opacity:1!important;color:rgb(229 229 229/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(212 212 212/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(163 163 163/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-500:is(.dark *){--tw-text-opacity:1!important;color:rgb(115 115 115/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-600:is(.dark *){--tw-text-opacity:1!important;color:rgb(82 82 82/var(--tw-text-opacity,1))!important}.dark\:\!text-neutral-900:is(.dark *){--tw-text-opacity:1!important;color:rgb(23 23 23/var(--tw-text-opacity,1))!important}.dark\:\!text-orange-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(253 186 116/var(--tw-text-opacity,1))!important}.dark\:\!text-purple-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(216 180 254/var(--tw-text-opacity,1))!important}.dark\:\!text-red-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(252 165 165/var(--tw-text-opacity,1))!important}.dark\:\!text-red-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\:\!text-rose-300:is(.dark *){--tw-text-opacity:1!important;color:rgb(253 164 175/var(--tw-text-opacity,1))!important}.dark\:\!text-white:is(.dark *){--tw-text-opacity:1!important;color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.dark\:text-amber-400:is(.dark *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-blue-300:is(.dark *){--tw-text-opacity:1;color:rgb(147 197 253/var(--tw-text-opacity,1))}.dark\:text-blue-400:is(.dark *){--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity,1))}.dark\:text-cyan-400:is(.dark *){--tw-text-opacity:1;color:rgb(34 211 238/var(--tw-text-opacity,1))}.dark\:text-emerald-400:is(.dark *){--tw-text-opacity:1;color:rgb(52 211 153/var(--tw-text-opacity,1))}.dark\:text-green-300:is(.dark *){--tw-text-opacity:1;color:rgb(134 239 172/var(--tw-text-opacity,1))}.dark\:text-green-400:is(.dark *){--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity,1))}.dark\:text-indigo-400:is(.dark *){--tw-text-opacity:1;color:rgb(129 140 248/var(--tw-text-opacity,1))}.dark\:text-neutral-100:is(.dark *){--tw-text-opacity:1;color:rgb(245 245 245/var(--tw-text-opacity,1))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity,1))}.dark\:text-neutral-300:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.dark\:text-neutral-400:is(.dark *){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity,1))}.dark\:text-neutral-500:is(.dark *){--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity,1))}.dark\:text-purple-400:is(.dark *){--tw-text-opacity:1;color:rgb(192 132 252/var(--tw-text-opacity,1))}.dark\:text-red-300:is(.dark *){--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity,1))}.dark\:text-red-400:is(.dark *){--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity,1))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.dark\:placeholder-neutral-500:is(.dark *)::-moz-placeholder{--tw-placeholder-opacity:1;color:rgb(115 115 115/var(--tw-placeholder-opacity,1))}.dark\:placeholder-neutral-500:is(.dark *)::placeholder{--tw-placeholder-opacity:1;color:rgb(115 115 115/var(--tw-placeholder-opacity,1))}.dark\:hover\:border-blue-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity,1))}.dark\:hover\:border-neutral-600:hover:is(.dark *){--tw-border-opacity:1;border-color:rgb(82 82 82/var(--tw-border-opacity,1))}.dark\:hover\:bg-blue-900:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(30 58 138/var(--tw-bg-opacity,1))}.dark\:hover\:bg-blue-900\/40:hover:is(.dark *){background-color:rgba(30,58,138,.4)}.dark\:hover\:bg-neutral-600:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(82 82 82/var(--tw-bg-opacity,1))}.dark\:hover\:bg-neutral-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity,1))}.dark\:hover\:bg-neutral-800:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity,1))}.dark\:hover\:\!text-neutral-200:hover:is(.dark *){--tw-text-opacity:1!important;color:rgb(229 229 229/var(--tw-text-opacity,1))!important}.dark\:hover\:\!text-neutral-300:hover:is(.dark *){--tw-text-opacity:1!important;color:rgb(212 212 212/var(--tw-text-opacity,1))!important}.dark\:hover\:text-neutral-300:hover:is(.dark *){--tw-text-opacity:1;color:rgb(212 212 212/var(--tw-text-opacity,1))}.dark\:hover\:text-white:hover:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.group:hover .dark\:group-hover\:bg-blue-900\/30:is(.dark *){background-color:rgba(30,58,138,.3)}.group:hover .dark\:group-hover\:\!text-blue-400:is(.dark *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}@media (min-width:640px){.sm\:mb-8{margin-bottom:2rem}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:h-16{height:4rem}.sm\:w-16{width:4rem}.sm\:w-\[500px\]{width:500px}.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\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}}@media (min-width:768px){.md\:relative{position:relative}.md\:z-auto{z-index:auto}.md\:ml-4{margin-left:1rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-1\/2{width:50%}.md\:w-56{width:14rem}.md\:max-w-\[180px\]{max-width:180px}.md\:translate-x-0{--tw-translate-x:0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:columns-2{-moz-columns:2;column-count:2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-4{gap:1rem}.md\:p-6{padding:1.5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.lg\:w-1\/3{width:33.333333%}.lg\:w-2\/3{width:66.666667%}.lg\:w-\[540px\]{width:540px}.lg\:w-\[600px\]{width:600px}.lg\:max-w-2xl{max-width:42rem}.lg\:columns-3{-moz-columns:3;column-count:3}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (min-width:1280px){.xl\:w-\[700px\]{width:700px}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apteva",
3
- "version": "0.4.16",
3
+ "version": "0.4.18",
4
4
  "description": "Run AI agents locally. Multi-provider support for Claude, GPT, Gemini, Llama, and more.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -26,6 +26,8 @@ const PUBLIC_PATHS = [
26
26
  "/api/telemetry", // Agents POST telemetry here
27
27
  "/api/telemetry/stream", // SSE doesn't support auth headers
28
28
  "/api/mcp/platform", // Built-in MCP server for agent communication
29
+ "/api/webhooks/composio", // Composio trigger webhooks (HMAC-verified)
30
+ "/api/webhooks/agentdojo", // AgentDojo trigger webhooks (HMAC-verified)
29
31
  ];
30
32
 
31
33
  // Regex patterns for public paths (for dynamic segments)