@chenpu17/cc-gw 0.3.11 → 0.3.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -1
- package/package.json +1 -1
- package/src/cli/dist/index.js +1 -0
- package/src/server/dist/index.js +2451 -208
- package/src/web/dist/assets/{About-DmfYXdTi.js → About-AtNnIQdC.js} +2 -2
- package/src/web/dist/assets/{ApiKeys-Bq84uD5O.js → ApiKeys-C0HThTh3.js} +1 -1
- package/src/web/dist/assets/{Button-B4UYWk6z.js → Button-BILWXCdK.js} +1 -1
- package/src/web/dist/assets/{Dashboard-CJmps0fW.js → Dashboard-MoDWKsK7.js} +1 -1
- package/src/web/dist/assets/{FormField-DKIC96zy.js → FormField-CQdheUGn.js} +1 -1
- package/src/web/dist/assets/{Help-C7fFCpNH.js → Help-_WE0-0d_.js} +1 -1
- package/src/web/dist/assets/{Input-Cr1GbVY7.js → Input-BNPjbXjl.js} +1 -1
- package/src/web/dist/assets/{Login-f_-O93Uo.js → Login-fnBtj3Wf.js} +1 -1
- package/src/web/dist/assets/{Logs-CyN3g8z0.js → Logs-u8JddAMA.js} +1 -1
- package/src/web/dist/assets/ModelManagement-B5GXkgZG.js +1 -0
- package/src/web/dist/assets/{PageSection-eOpSKdGw.js → PageSection-BSlxJLSp.js} +1 -1
- package/src/web/dist/assets/Settings-B7l_r0Os.js +1 -0
- package/src/web/dist/assets/{StatusBadge-CFXAJ2QF.js → StatusBadge-C2HAoly7.js} +1 -1
- package/src/web/dist/assets/{copy-Br9n1n5X.js → copy-29mhVWV7.js} +1 -1
- package/src/web/dist/assets/index-BfK_4zVV.css +1 -0
- package/src/web/dist/assets/{index-DtOsr5xX.js → index-C9B4ue7v.js} +1 -1
- package/src/web/dist/assets/{index-ChT0XT-w.js → index-jumaCK3B.js} +4 -4
- package/src/web/dist/assets/{info-Cnwm2-vh.js → info-m01xBxq8.js} +1 -1
- package/src/web/dist/assets/{useApiQuery-mBT5M_Q6.js → useApiQuery-Ckrkcu4L.js} +1 -1
- package/src/web/dist/index.html +2 -2
- package/src/web/dist/assets/ModelManagement-B11a4hW3.js +0 -1
- package/src/web/dist/assets/Settings-BUNwIquC.js +0 -1
- package/src/web/dist/assets/index-BOv43c_r.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
var ft=e=>{throw TypeError(e)};var Z=(e,t,s)=>t.has(e)||ft("Cannot "+s);var i=(e,t,s)=>(Z(e,t,"read from private field"),s?s.call(e):t.get(e)),b=(e,t,s)=>t.has(e)?ft("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),u=(e,t,s,r)=>(Z(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s),d=(e,t,s)=>(Z(e,t,"access private method"),s);import{I as It,J as pt,M as S,N as $,O as H,P as G,Q as tt,T as bt,U as Ot,V as q,W as Tt,X as Qt,Y as yt,Z as St,r as I,_ as wt,$ as Mt,a0 as _t,b as xt,t as Ut}from"./index-ChT0XT-w.js";var g,a,j,y,w,U,E,O,V,F,P,M,_,T,D,n,B,et,st,it,rt,at,nt,ht,Ct,vt,Ft=(vt=class extends It{constructor(t,s){super();b(this,n);b(this,g);b(this,a);b(this,j);b(this,y);b(this,w);b(this,U);b(this,E);b(this,O);b(this,V);b(this,F);b(this,P);b(this,M);b(this,_);b(this,T);b(this,D,new Set);this.options=s,u(this,g,t),u(this,O,null),u(this,E,pt()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(i(this,a).addObserver(this),gt(i(this,a),this.options)?d(this,n,B).call(this):this.updateResult(),d(this,n,rt).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ot(i(this,a),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ot(i(this,a),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,d(this,n,at).call(this),d(this,n,nt).call(this),i(this,a).removeObserver(this)}setOptions(t){const s=this.options,r=i(this,a);if(this.options=i(this,g).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof S(this.options.enabled,i(this,a))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");d(this,n,ht).call(this),i(this,a).setOptions(this.options),s._defaulted&&!$(this.options,s)&&i(this,g).getQueryCache().notify({type:"observerOptionsUpdated",query:i(this,a),observer:this});const h=this.hasListeners();h&&mt(i(this,a),r,this.options,s)&&d(this,n,B).call(this),this.updateResult(),h&&(i(this,a)!==r||S(this.options.enabled,i(this,a))!==S(s.enabled,i(this,a))||H(this.options.staleTime,i(this,a))!==H(s.staleTime,i(this,a)))&&d(this,n,et).call(this);const o=d(this,n,st).call(this);h&&(i(this,a)!==r||S(this.options.enabled,i(this,a))!==S(s.enabled,i(this,a))||o!==i(this,T))&&d(this,n,it).call(this,o)}getOptimisticResult(t){const s=i(this,g).getQueryCache().build(i(this,g),t),r=this.createResult(s,t);return Dt(this,r)&&(u(this,y,r),u(this,U,this.options),u(this,w,i(this,a).state)),r}getCurrentResult(){return i(this,y)}trackResult(t,s){return new Proxy(t,{get:(r,h)=>(this.trackProp(h),s==null||s(h),h==="promise"&&!this.options.experimental_prefetchInRender&&i(this,E).status==="pending"&&i(this,E).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(r,h))})}trackProp(t){i(this,D).add(t)}getCurrentQuery(){return i(this,a)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const s=i(this,g).defaultQueryOptions(t),r=i(this,g).getQueryCache().build(i(this,g),s);return r.fetch().then(()=>this.createResult(r,s))}fetch(t){return d(this,n,B).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),i(this,y)))}createResult(t,s){var dt;const r=i(this,a),h=this.options,o=i(this,y),c=i(this,w),Q=i(this,U),v=t!==r?t.state:i(this,j),{state:L}=t;let l={...L},N=!1,f;if(s._optimisticResults){const R=this.hasListeners(),z=!R&>(t,s),x=R&&mt(t,r,s,h);(z||x)&&(l={...l,...Qt(L.data,t.options)}),s._optimisticResults==="isRestoring"&&(l.fetchStatus="idle")}let{error:A,errorUpdatedAt:k,status:m}=l;f=l.data;let W=!1;if(s.placeholderData!==void 0&&f===void 0&&m==="pending"){let R;o!=null&&o.isPlaceholderData&&s.placeholderData===(Q==null?void 0:Q.placeholderData)?(R=o.data,W=!0):R=typeof s.placeholderData=="function"?s.placeholderData((dt=i(this,P))==null?void 0:dt.state.data,i(this,P)):s.placeholderData,R!==void 0&&(m="success",f=yt(o==null?void 0:o.data,R,s),N=!0)}if(s.select&&f!==void 0&&!W)if(o&&f===(c==null?void 0:c.data)&&s.select===i(this,V))f=i(this,F);else try{u(this,V,s.select),f=s.select(f),f=yt(o==null?void 0:o.data,f,s),u(this,F,f),u(this,O,null)}catch(R){u(this,O,R)}i(this,O)&&(A=i(this,O),f=i(this,F),k=Date.now(),m="error");const J=l.fetchStatus==="fetching",X=m==="pending",Y=m==="error",ut=X&&J,lt=f!==void 0,C={status:m,fetchStatus:l.fetchStatus,isPending:X,isSuccess:m==="success",isError:Y,isInitialLoading:ut,isLoading:ut,data:f,dataUpdatedAt:l.dataUpdatedAt,error:A,errorUpdatedAt:k,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>v.dataUpdateCount||l.errorUpdateCount>v.errorUpdateCount,isFetching:J,isRefetching:J&&!X,isLoadingError:Y&&!lt,isPaused:l.fetchStatus==="paused",isPlaceholderData:N,isRefetchError:Y&<,isStale:ct(t,s),refetch:this.refetch,promise:i(this,E),isEnabled:S(s.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const R=K=>{C.status==="error"?K.reject(C.error):C.data!==void 0&&K.resolve(C.data)},z=()=>{const K=u(this,E,C.promise=pt());R(K)},x=i(this,E);switch(x.status){case"pending":t.queryHash===r.queryHash&&R(x);break;case"fulfilled":(C.status==="error"||C.data!==x.value)&&z();break;case"rejected":(C.status!=="error"||C.error!==x.reason)&&z();break}}return C}updateResult(){const t=i(this,y),s=this.createResult(i(this,a),this.options);if(u(this,w,i(this,a).state),u(this,U,this.options),i(this,w).data!==void 0&&u(this,P,i(this,a)),$(s,t))return;u(this,y,s);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:h}=this.options,o=typeof h=="function"?h():h;if(o==="all"||!o&&!i(this,D).size)return!0;const c=new Set(o??i(this,D));return this.options.throwOnError&&c.add("error"),Object.keys(i(this,y)).some(Q=>{const p=Q;return i(this,y)[p]!==t[p]&&c.has(p)})};d(this,n,Ct).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&d(this,n,rt).call(this)}},g=new WeakMap,a=new WeakMap,j=new WeakMap,y=new WeakMap,w=new WeakMap,U=new WeakMap,E=new WeakMap,O=new WeakMap,V=new WeakMap,F=new WeakMap,P=new WeakMap,M=new WeakMap,_=new WeakMap,T=new WeakMap,D=new WeakMap,n=new WeakSet,B=function(t){d(this,n,ht).call(this);let s=i(this,a).fetch(this.options,t);return t!=null&&t.throwOnError||(s=s.catch(G)),s},et=function(){d(this,n,at).call(this);const t=H(this.options.staleTime,i(this,a));if(tt||i(this,y).isStale||!bt(t))return;const r=Ot(i(this,y).dataUpdatedAt,t)+1;u(this,M,q.setTimeout(()=>{i(this,y).isStale||this.updateResult()},r))},st=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(i(this,a)):this.options.refetchInterval)??!1},it=function(t){d(this,n,nt).call(this),u(this,T,t),!(tt||S(this.options.enabled,i(this,a))===!1||!bt(i(this,T))||i(this,T)===0)&&u(this,_,q.setInterval(()=>{(this.options.refetchIntervalInBackground||Tt.isFocused())&&d(this,n,B).call(this)},i(this,T)))},rt=function(){d(this,n,et).call(this),d(this,n,it).call(this,d(this,n,st).call(this))},at=function(){i(this,M)&&(q.clearTimeout(i(this,M)),u(this,M,void 0))},nt=function(){i(this,_)&&(q.clearInterval(i(this,_)),u(this,_,void 0))},ht=function(){const t=i(this,g).getQueryCache().build(i(this,g),this.options);if(t===i(this,a))return;const s=i(this,a);u(this,a,t),u(this,j,t.state),this.hasListeners()&&(s==null||s.removeObserver(this),t.addObserver(this))},Ct=function(t){St.batch(()=>{t.listeners&&this.listeners.forEach(s=>{s(i(this,y))}),i(this,g).getQueryCache().notify({query:i(this,a),type:"observerResultsUpdated"})})},vt);function Pt(e,t){return S(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function gt(e,t){return Pt(e,t)||e.state.data!==void 0&&ot(e,t,t.refetchOnMount)}function ot(e,t,s){if(S(t.enabled,e)!==!1&&H(t.staleTime,e)!=="static"){const r=typeof s=="function"?s(e):s;return r==="always"||r!==!1&&ct(e,t)}return!1}function mt(e,t,s,r){return(e!==t||S(r.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&ct(e,s)}function ct(e,t){return S(t.enabled,e)!==!1&&e.isStaleByTime(H(t.staleTime,e))}function Dt(e,t){return!$(e.getCurrentResult(),t)}var Et=I.createContext(!1),Lt=()=>I.useContext(Et);Et.Provider;function Nt(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var At=I.createContext(Nt()),kt=()=>I.useContext(At),Bt=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},Ht=e=>{I.useEffect(()=>{e.clearReset()},[e])},jt=({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:h})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(h&&e.data===void 0||wt(s,[e.error,r])),Vt=e=>{if(e.suspense){const s=h=>h==="static"?h:Math.max(h??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...h)=>s(r(...h)):s(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},Wt=(e,t)=>e.isLoading&&e.isFetching&&!t,zt=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,Rt=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function Kt(e,t,s){var l,N,f,A,k;const r=Lt(),h=kt(),o=Mt(),c=o.defaultQueryOptions(e);(N=(l=o.getDefaultOptions().queries)==null?void 0:l._experimental_beforeQuery)==null||N.call(l,c),c._optimisticResults=r?"isRestoring":"optimistic",Vt(c),Bt(c,h),Ht(h);const Q=!o.getQueryCache().get(c.queryHash),[p]=I.useState(()=>new t(o,c)),v=p.getOptimisticResult(c),L=!r&&e.subscribed!==!1;if(I.useSyncExternalStore(I.useCallback(m=>{const W=L?p.subscribe(St.batchCalls(m)):G;return p.updateResult(),W},[p,L]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),I.useEffect(()=>{p.setOptions(c)},[c,p]),zt(c,v))throw Rt(c,p,h);if(jt({result:v,errorResetBoundary:h,throwOnError:c.throwOnError,query:o.getQueryCache().get(c.queryHash),suspense:c.suspense}))throw v.error;if((A=(f=o.getDefaultOptions().queries)==null?void 0:f._experimental_afterQuery)==null||A.call(f,c,v),c.experimental_prefetchInRender&&!tt&&Wt(v,r)){const m=Q?Rt(c,p,h):(k=o.getQueryCache().get(c.queryHash))==null?void 0:k.promise;m==null||m.catch(G).finally(()=>{p.updateResult()})}return c.notifyOnChangeProps?v:p.trackResult(v)}function qt(e,t){return Kt(e,Ft)}function Zt(e,t,s){return qt({queryKey:e,placeholderData:_t,...s,queryFn:async()=>{try{return(await xt.request(t)).data}catch(r){throw Ut(r)}}})}export{Zt as u};
|
|
1
|
+
var ft=e=>{throw TypeError(e)};var Z=(e,t,s)=>t.has(e)||ft("Cannot "+s);var i=(e,t,s)=>(Z(e,t,"read from private field"),s?s.call(e):t.get(e)),b=(e,t,s)=>t.has(e)?ft("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),u=(e,t,s,r)=>(Z(e,t,"write to private field"),r?r.call(e,s):t.set(e,s),s),d=(e,t,s)=>(Z(e,t,"access private method"),s);import{I as It,J as pt,M as S,N as $,O as H,P as G,Q as tt,T as bt,U as Ot,V as q,W as Tt,X as Qt,Y as yt,Z as St,r as I,_ as wt,$ as Mt,a0 as _t,b as xt,t as Ut}from"./index-jumaCK3B.js";var g,a,j,y,w,U,E,O,V,F,P,M,_,T,D,n,B,et,st,it,rt,at,nt,ht,Ct,vt,Ft=(vt=class extends It{constructor(t,s){super();b(this,n);b(this,g);b(this,a);b(this,j);b(this,y);b(this,w);b(this,U);b(this,E);b(this,O);b(this,V);b(this,F);b(this,P);b(this,M);b(this,_);b(this,T);b(this,D,new Set);this.options=s,u(this,g,t),u(this,O,null),u(this,E,pt()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(i(this,a).addObserver(this),gt(i(this,a),this.options)?d(this,n,B).call(this):this.updateResult(),d(this,n,rt).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ot(i(this,a),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ot(i(this,a),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,d(this,n,at).call(this),d(this,n,nt).call(this),i(this,a).removeObserver(this)}setOptions(t){const s=this.options,r=i(this,a);if(this.options=i(this,g).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof S(this.options.enabled,i(this,a))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");d(this,n,ht).call(this),i(this,a).setOptions(this.options),s._defaulted&&!$(this.options,s)&&i(this,g).getQueryCache().notify({type:"observerOptionsUpdated",query:i(this,a),observer:this});const h=this.hasListeners();h&&mt(i(this,a),r,this.options,s)&&d(this,n,B).call(this),this.updateResult(),h&&(i(this,a)!==r||S(this.options.enabled,i(this,a))!==S(s.enabled,i(this,a))||H(this.options.staleTime,i(this,a))!==H(s.staleTime,i(this,a)))&&d(this,n,et).call(this);const o=d(this,n,st).call(this);h&&(i(this,a)!==r||S(this.options.enabled,i(this,a))!==S(s.enabled,i(this,a))||o!==i(this,T))&&d(this,n,it).call(this,o)}getOptimisticResult(t){const s=i(this,g).getQueryCache().build(i(this,g),t),r=this.createResult(s,t);return Dt(this,r)&&(u(this,y,r),u(this,U,this.options),u(this,w,i(this,a).state)),r}getCurrentResult(){return i(this,y)}trackResult(t,s){return new Proxy(t,{get:(r,h)=>(this.trackProp(h),s==null||s(h),h==="promise"&&!this.options.experimental_prefetchInRender&&i(this,E).status==="pending"&&i(this,E).reject(new Error("experimental_prefetchInRender feature flag is not enabled")),Reflect.get(r,h))})}trackProp(t){i(this,D).add(t)}getCurrentQuery(){return i(this,a)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const s=i(this,g).defaultQueryOptions(t),r=i(this,g).getQueryCache().build(i(this,g),s);return r.fetch().then(()=>this.createResult(r,s))}fetch(t){return d(this,n,B).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),i(this,y)))}createResult(t,s){var dt;const r=i(this,a),h=this.options,o=i(this,y),c=i(this,w),Q=i(this,U),v=t!==r?t.state:i(this,j),{state:L}=t;let l={...L},N=!1,f;if(s._optimisticResults){const R=this.hasListeners(),z=!R&>(t,s),x=R&&mt(t,r,s,h);(z||x)&&(l={...l,...Qt(L.data,t.options)}),s._optimisticResults==="isRestoring"&&(l.fetchStatus="idle")}let{error:A,errorUpdatedAt:k,status:m}=l;f=l.data;let W=!1;if(s.placeholderData!==void 0&&f===void 0&&m==="pending"){let R;o!=null&&o.isPlaceholderData&&s.placeholderData===(Q==null?void 0:Q.placeholderData)?(R=o.data,W=!0):R=typeof s.placeholderData=="function"?s.placeholderData((dt=i(this,P))==null?void 0:dt.state.data,i(this,P)):s.placeholderData,R!==void 0&&(m="success",f=yt(o==null?void 0:o.data,R,s),N=!0)}if(s.select&&f!==void 0&&!W)if(o&&f===(c==null?void 0:c.data)&&s.select===i(this,V))f=i(this,F);else try{u(this,V,s.select),f=s.select(f),f=yt(o==null?void 0:o.data,f,s),u(this,F,f),u(this,O,null)}catch(R){u(this,O,R)}i(this,O)&&(A=i(this,O),f=i(this,F),k=Date.now(),m="error");const J=l.fetchStatus==="fetching",X=m==="pending",Y=m==="error",ut=X&&J,lt=f!==void 0,C={status:m,fetchStatus:l.fetchStatus,isPending:X,isSuccess:m==="success",isError:Y,isInitialLoading:ut,isLoading:ut,data:f,dataUpdatedAt:l.dataUpdatedAt,error:A,errorUpdatedAt:k,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:l.dataUpdateCount>0||l.errorUpdateCount>0,isFetchedAfterMount:l.dataUpdateCount>v.dataUpdateCount||l.errorUpdateCount>v.errorUpdateCount,isFetching:J,isRefetching:J&&!X,isLoadingError:Y&&!lt,isPaused:l.fetchStatus==="paused",isPlaceholderData:N,isRefetchError:Y&<,isStale:ct(t,s),refetch:this.refetch,promise:i(this,E),isEnabled:S(s.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const R=K=>{C.status==="error"?K.reject(C.error):C.data!==void 0&&K.resolve(C.data)},z=()=>{const K=u(this,E,C.promise=pt());R(K)},x=i(this,E);switch(x.status){case"pending":t.queryHash===r.queryHash&&R(x);break;case"fulfilled":(C.status==="error"||C.data!==x.value)&&z();break;case"rejected":(C.status!=="error"||C.error!==x.reason)&&z();break}}return C}updateResult(){const t=i(this,y),s=this.createResult(i(this,a),this.options);if(u(this,w,i(this,a).state),u(this,U,this.options),i(this,w).data!==void 0&&u(this,P,i(this,a)),$(s,t))return;u(this,y,s);const r=()=>{if(!t)return!0;const{notifyOnChangeProps:h}=this.options,o=typeof h=="function"?h():h;if(o==="all"||!o&&!i(this,D).size)return!0;const c=new Set(o??i(this,D));return this.options.throwOnError&&c.add("error"),Object.keys(i(this,y)).some(Q=>{const p=Q;return i(this,y)[p]!==t[p]&&c.has(p)})};d(this,n,Ct).call(this,{listeners:r()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&d(this,n,rt).call(this)}},g=new WeakMap,a=new WeakMap,j=new WeakMap,y=new WeakMap,w=new WeakMap,U=new WeakMap,E=new WeakMap,O=new WeakMap,V=new WeakMap,F=new WeakMap,P=new WeakMap,M=new WeakMap,_=new WeakMap,T=new WeakMap,D=new WeakMap,n=new WeakSet,B=function(t){d(this,n,ht).call(this);let s=i(this,a).fetch(this.options,t);return t!=null&&t.throwOnError||(s=s.catch(G)),s},et=function(){d(this,n,at).call(this);const t=H(this.options.staleTime,i(this,a));if(tt||i(this,y).isStale||!bt(t))return;const r=Ot(i(this,y).dataUpdatedAt,t)+1;u(this,M,q.setTimeout(()=>{i(this,y).isStale||this.updateResult()},r))},st=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(i(this,a)):this.options.refetchInterval)??!1},it=function(t){d(this,n,nt).call(this),u(this,T,t),!(tt||S(this.options.enabled,i(this,a))===!1||!bt(i(this,T))||i(this,T)===0)&&u(this,_,q.setInterval(()=>{(this.options.refetchIntervalInBackground||Tt.isFocused())&&d(this,n,B).call(this)},i(this,T)))},rt=function(){d(this,n,et).call(this),d(this,n,it).call(this,d(this,n,st).call(this))},at=function(){i(this,M)&&(q.clearTimeout(i(this,M)),u(this,M,void 0))},nt=function(){i(this,_)&&(q.clearInterval(i(this,_)),u(this,_,void 0))},ht=function(){const t=i(this,g).getQueryCache().build(i(this,g),this.options);if(t===i(this,a))return;const s=i(this,a);u(this,a,t),u(this,j,t.state),this.hasListeners()&&(s==null||s.removeObserver(this),t.addObserver(this))},Ct=function(t){St.batch(()=>{t.listeners&&this.listeners.forEach(s=>{s(i(this,y))}),i(this,g).getQueryCache().notify({query:i(this,a),type:"observerResultsUpdated"})})},vt);function Pt(e,t){return S(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&t.retryOnMount===!1)}function gt(e,t){return Pt(e,t)||e.state.data!==void 0&&ot(e,t,t.refetchOnMount)}function ot(e,t,s){if(S(t.enabled,e)!==!1&&H(t.staleTime,e)!=="static"){const r=typeof s=="function"?s(e):s;return r==="always"||r!==!1&&ct(e,t)}return!1}function mt(e,t,s,r){return(e!==t||S(r.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&ct(e,s)}function ct(e,t){return S(t.enabled,e)!==!1&&e.isStaleByTime(H(t.staleTime,e))}function Dt(e,t){return!$(e.getCurrentResult(),t)}var Et=I.createContext(!1),Lt=()=>I.useContext(Et);Et.Provider;function Nt(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var At=I.createContext(Nt()),kt=()=>I.useContext(At),Bt=(e,t)=>{(e.suspense||e.throwOnError||e.experimental_prefetchInRender)&&(t.isReset()||(e.retryOnMount=!1))},Ht=e=>{I.useEffect(()=>{e.clearReset()},[e])},jt=({result:e,errorResetBoundary:t,throwOnError:s,query:r,suspense:h})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(h&&e.data===void 0||wt(s,[e.error,r])),Vt=e=>{if(e.suspense){const s=h=>h==="static"?h:Math.max(h??1e3,1e3),r=e.staleTime;e.staleTime=typeof r=="function"?(...h)=>s(r(...h)):s(r),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},Wt=(e,t)=>e.isLoading&&e.isFetching&&!t,zt=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,Rt=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function Kt(e,t,s){var l,N,f,A,k;const r=Lt(),h=kt(),o=Mt(),c=o.defaultQueryOptions(e);(N=(l=o.getDefaultOptions().queries)==null?void 0:l._experimental_beforeQuery)==null||N.call(l,c),c._optimisticResults=r?"isRestoring":"optimistic",Vt(c),Bt(c,h),Ht(h);const Q=!o.getQueryCache().get(c.queryHash),[p]=I.useState(()=>new t(o,c)),v=p.getOptimisticResult(c),L=!r&&e.subscribed!==!1;if(I.useSyncExternalStore(I.useCallback(m=>{const W=L?p.subscribe(St.batchCalls(m)):G;return p.updateResult(),W},[p,L]),()=>p.getCurrentResult(),()=>p.getCurrentResult()),I.useEffect(()=>{p.setOptions(c)},[c,p]),zt(c,v))throw Rt(c,p,h);if(jt({result:v,errorResetBoundary:h,throwOnError:c.throwOnError,query:o.getQueryCache().get(c.queryHash),suspense:c.suspense}))throw v.error;if((A=(f=o.getDefaultOptions().queries)==null?void 0:f._experimental_afterQuery)==null||A.call(f,c,v),c.experimental_prefetchInRender&&!tt&&Wt(v,r)){const m=Q?Rt(c,p,h):(k=o.getQueryCache().get(c.queryHash))==null?void 0:k.promise;m==null||m.catch(G).finally(()=>{p.updateResult()})}return c.notifyOnChangeProps?v:p.trackResult(v)}function qt(e,t){return Kt(e,Ft)}function Zt(e,t,s){return qt({queryKey:e,placeholderData:_t,...s,queryFn:async()=>{try{return(await xt.request(t)).data}catch(r){throw Ut(r)}}})}export{Zt as u};
|
package/src/web/dist/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no" />
|
|
6
6
|
<meta name="format-detection" content="telephone=no" />
|
|
7
7
|
<title>cc-gw 控制台</title>
|
|
8
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/assets/index-jumaCK3B.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/assets/index-BfK_4zVV.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body class="bg-slate-50 text-slate-900 dark:bg-slate-900 dark:text-slate-50">
|
|
12
12
|
<div id="root"></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as ve,r as p,j as e,a as Je,v as Xe,b as V,w as Ce,i as Ze,k as O,x as te,y as De,z as pe,A as be,C as et}from"./index-ChT0XT-w.js";import{u as tt}from"./useApiQuery-mBT5M_Q6.js";function ke(){return typeof globalThis.crypto<"u"&&typeof globalThis.crypto.randomUUID=="function"?globalThis.crypto.randomUUID():Math.random().toString(36).slice(2,10)}function Pe(){return{_key:ke(),id:"",label:""}}const he={openai:{baseUrl:"https://api.openai.com/v1"},deepseek:{baseUrl:"https://api.deepseek.com/v1"},huawei:{baseUrl:"https://api.modelarts-maas.com/v1"},kimi:{baseUrl:"https://api.moonshot.cn/v1"},anthropic:{baseUrl:"https://api.anthropic.com/v1",defaultModel:"claude-sonnet-4-5-20250929",models:[{id:"claude-sonnet-4-5-20250929",label:"Claude Sonnet 4.5 (2025-09-29)"},{id:"claude-sonnet-4-20250514",label:"Claude Sonnet 4 (2025-05-14)"},{id:"claude-opus-4-1-20250805",label:"Claude Opus 4.1 (2025-08-05)"},{id:"claude-3-5-haiku-20241022",label:"Claude 3.5 Haiku (2024-10-22)"}]},custom:{}};function Se(s){return s?{id:s.id,label:s.label??s.id,baseUrl:s.baseUrl,apiKey:s.apiKey??"",type:s.type??"custom",defaultModel:s.defaultModel??"",models:(s.models??[]).map(n=>({...n,_key:ke()})),authMode:s.authMode==="authToken"?"authToken":"apiKey"}:{id:"",label:"",baseUrl:"",apiKey:"",type:"custom",defaultModel:"",models:[Pe()],authMode:"apiKey"}}function st(s){return{_key:ke(),id:s.id,label:s.label}}function at({open:s,mode:n,provider:m,existingProviderIds:L,onClose:D,onSubmit:Y}){const{t:r}=ve(),[u,f]=p.useState(()=>Se(m)),[v,A]=p.useState({}),[_,U]=p.useState(!1),[q,B]=p.useState(null),se=p.useRef(null),I=p.useRef(null),w=p.useRef(null),[F,E]=p.useState(n==="edit");p.useEffect(()=>{s&&(f(Se(m)),A({}),B(null),U(!1),E(n==="edit"))},[s,m,n]),p.useEffect(()=>{if(!s)return;const l=c=>{c.key==="Escape"&&D()};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[s,D]),p.useEffect(()=>{if(s){if(n==="create"&&w.current){w.current.focus();return}I.current&&I.current.focus()}},[s,n]);const me=p.useMemo(()=>u.models.filter(l=>l.id.trim().length>0),[u.models]),G=l=>c=>{f(h=>({...h,[l]:c}))},J=l=>{f(c=>{const b=!F||c.label.trim().length===0||c.label===c.id?l:c.label;return{...c,id:l,label:b}})},X=l=>{f(c=>{var Z;const b=he[l??"custom"]??he.custom,k=Object.values(he).map(N=>N.baseUrl).filter(N=>!!N),M=!c.baseUrl||k.includes(c.baseUrl),S=n==="create"&&(c.models.length===0||c.models.every(N=>N.id.trim().length===0)),$={...c,type:l,authMode:l==="anthropic"?c.authMode??"apiKey":"apiKey"};return b!=null&&b.baseUrl&&M&&($.baseUrl=b.baseUrl),b!=null&&b.models&&S&&($.models=b.models.map(st),$.defaultModel=b.defaultModel??((Z=b.models[0])==null?void 0:Z.id)??""),$})},ae=(l,c)=>{f(h=>{const b=[...h.models];return b[l]={...b[l],...c},{...h,models:b}})},re=(l,c)=>{f(h=>{const b=[...h.models],k=b[l];if(!k)return h;const M=!F||!k.label||k.label===k.id,S={...k,id:c,label:M?c:k.label};b[l]=S;const $=h.defaultModel===k.id?c:h.defaultModel;return{...h,models:b,defaultModel:$}})},le=l=>{f(c=>{var k;if(c.models.length<=1)return c;const h=c.models.filter((M,S)=>S!==l);let b=c.defaultModel;return h.some(M=>M.id===b)||(b=((k=h[0])==null?void 0:k.id)??""),{...c,models:h,defaultModel:b}})},W=()=>{f(l=>({...l,models:[...l.models,Pe()]}))},Q=l=>{f(c=>({...c,authMode:l}))},oe=()=>{const l={},c=u.id.trim(),h=u.baseUrl.trim();if(n==="create"&&(c.length===0?l.id=r("providers.drawer.errors.idRequired"):L.includes(c)&&(l.id=r("providers.drawer.errors.idDuplicate"))),n==="edit"&&c.length===0&&(l.id=r("providers.drawer.errors.idRequired")),h.length===0)l.baseUrl=r("providers.drawer.errors.baseUrlInvalid");else try{new URL(h)}catch{l.baseUrl=r("providers.drawer.errors.baseUrlInvalid")}const b=new Set;return u.models.some(M=>{const S=M.id.trim();return S.length===0||b.has(S)?!0:(b.add(S),!1)})&&(l.models=r("providers.drawer.errors.modelInvalid")),u.models.length===0&&(l.models=r("providers.drawer.errors.modelsRequired")),u.defaultModel&&!u.models.some(M=>M.id===u.defaultModel)&&(l.models=r("providers.drawer.errors.defaultInvalid")),A(l),Object.keys(l).length===0},xe=()=>{const l=u.models.map(b=>{var k;return{id:b.id.trim(),label:(k=b.label)!=null&&k.trim()?b.label.trim():void 0}}),c=m!=null&&m.extraHeaders&&Object.keys(m.extraHeaders).length>0?m.extraHeaders:void 0,h=u.type==="anthropic"?u.authMode:void 0;return{id:u.id.trim(),label:u.label.trim()||u.id.trim(),baseUrl:u.baseUrl.trim(),apiKey:u.apiKey.trim()||void 0,type:u.type??"custom",defaultModel:u.defaultModel||void 0,models:l,extraHeaders:c,authMode:h}},de=async()=>{if(B(null),!!oe()){U(!0);try{const l=xe();await Y(l)}catch(l){B(r("providers.drawer.toast.saveFailure",{message:l instanceof Error?l.message:"unknown"})),U(!1);return}U(!1),D()}},ie=n==="create";return s?e.jsxs("div",{className:"fixed inset-0 z-50 flex",children:[e.jsx("div",{className:"flex-1 bg-slate-900/60",onClick:D,"aria-hidden":"true"}),e.jsxs("aside",{ref:se,role:"dialog","aria-modal":"true","aria-labelledby":"provider-drawer-title","aria-describedby":"provider-drawer-desc",className:"flex h-full w-full max-w-3xl flex-col border-l border-slate-200 bg-white shadow-xl dark:border-slate-800 dark:bg-slate-900",children:[e.jsxs("header",{className:"flex items-center justify-between border-b border-slate-200 px-6 py-4 dark:border-slate-800",children:[e.jsxs("div",{children:[e.jsx("h2",{id:"provider-drawer-title",className:"text-lg font-semibold",children:r(ie?"providers.drawer.createTitle":"providers.drawer.editTitle")}),e.jsx("p",{id:"provider-drawer-desc",className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.description")})]}),e.jsx("button",{type:"button",ref:I,onClick:D,className:"rounded-md border border-slate-200 px-3 py-1 text-sm transition hover:bg-slate-100 dark:border-slate-700 dark:hover:bg-slate-800",children:r("common.actions.close")})]}),e.jsxs("div",{className:"flex-1 overflow-y-auto px-6 py-5",children:[e.jsxs("section",{className:"space-y-4","aria-labelledby":"provider-basic-fields",children:[e.jsx("div",{id:"provider-basic-fields",className:"sr-only",children:r("providers.drawer.description")}),e.jsx("div",{className:"flex items-center justify-end",children:e.jsx("button",{type:"button",onClick:()=>E(l=>!l),className:"rounded-md border border-slate-200 px-3 py-1 text-xs transition hover:bg-slate-100 dark:border-slate-700 dark:hover:bg-slate-800",children:r(F?"providers.drawer.fields.hideAdvanced":"providers.drawer.fields.showAdvanced")})}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.id")}),e.jsx("input",{value:u.id,ref:w,onChange:l=>J(l.target.value),disabled:!ie,placeholder:r("providers.drawer.fields.idPlaceholder"),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60","aria-invalid":!!v.id}),v.id?e.jsx("span",{className:"text-xs text-red-500",children:v.id}):null]}),F?e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.label")}),e.jsx("input",{value:u.label,onChange:l=>G("label")(l.target.value),placeholder:r("providers.drawer.fields.labelPlaceholder"),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60"})]}):null]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.baseUrl")}),e.jsx("input",{value:u.baseUrl,onChange:l=>G("baseUrl")(l.target.value),placeholder:r("providers.drawer.fields.baseUrlPlaceholder"),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60","aria-invalid":!!v.baseUrl}),v.baseUrl?e.jsx("span",{className:"text-xs text-red-500",children:v.baseUrl}):null]}),e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.type")}),e.jsxs("select",{value:u.type??"custom",onChange:l=>X(l.target.value),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60",children:[e.jsx("option",{value:"openai",children:"OpenAI"}),e.jsx("option",{value:"deepseek",children:"DeepSeek"}),e.jsx("option",{value:"huawei",children:"华为云"}),e.jsx("option",{value:"kimi",children:"Kimi"}),e.jsx("option",{value:"anthropic",children:"Anthropic (Claude)"}),e.jsx("option",{value:"custom",children:"Custom"})]})]})]}),e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.apiKey")}),e.jsx("input",{value:u.apiKey,onChange:l=>G("apiKey")(l.target.value),placeholder:r("providers.drawer.fields.apiKeyPlaceholder"),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60"})]}),u.type==="anthropic"?e.jsxs("fieldset",{className:"grid gap-2 rounded-lg border border-slate-200 p-3 text-xs dark:border-slate-700",children:[e.jsx("legend",{className:"px-1 text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.authMode")}),e.jsx("p",{className:"text-[11px] text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.authModeHint")}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 transition hover:bg-slate-100 dark:hover:bg-slate-800",children:[e.jsx("input",{type:"radio",name:"anthropic-auth-mode",value:"apiKey",checked:u.authMode==="apiKey",onChange:()=>Q("apiKey")}),e.jsx("span",{children:r("providers.drawer.fields.authModeApiKey")})]}),e.jsxs("label",{className:"flex cursor-pointer items-center gap-2 rounded-md px-2 py-1 transition hover:bg-slate-100 dark:hover:bg-slate-800",children:[e.jsx("input",{type:"radio",name:"anthropic-auth-mode",value:"authToken",checked:u.authMode==="authToken",onChange:()=>Q("authToken")}),e.jsx("span",{children:r("providers.drawer.fields.authModeAuthToken")})]})]}):null]}),e.jsxs("section",{className:"mt-6 space-y-3","aria-labelledby":"provider-model-fields",children:[e.jsxs("header",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h3",{id:"provider-model-fields",className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.models")}),e.jsx("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.modelsDescription")})]}),e.jsx("button",{type:"button",onClick:W,className:"rounded-md border border-slate-200 px-3 py-1 text-xs transition hover:bg-slate-100 dark:border-slate-700 dark:hover:bg-slate-800",children:r("providers.drawer.fields.addModel")})]}),v.models?e.jsx("p",{className:"text-xs text-red-500",children:v.models}):null,e.jsx("div",{className:"space-y-4",children:u.models.map((l,c)=>e.jsxs("div",{className:"rounded-lg border border-slate-200 bg-slate-50 p-4 dark:border-slate-700 dark:bg-slate-800/40",children:[e.jsxs("div",{className:"grid gap-4 md:grid-cols-2",children:[e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.modelId")}),e.jsx("input",{value:l.id,onChange:h=>re(c,h.target.value),placeholder:r("providers.drawer.fields.modelIdPlaceholder"),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60"})]}),F?e.jsxs("label",{className:"flex flex-col gap-2 text-sm",children:[e.jsx("span",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.fields.modelLabel")}),e.jsx("input",{value:l.label??"",onChange:h=>ae(c,{label:h.target.value}),placeholder:r("providers.drawer.fields.modelLabelPlaceholder"),className:"rounded-md border border-slate-200 bg-white px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200 disabled:bg-slate-100 disabled:text-slate-400 dark:border-slate-700 dark:bg-slate-800 dark:focus:border-blue-400 dark:focus:ring-blue-400/40 dark:disabled:bg-slate-800/60"})]}):null]}),e.jsxs("div",{className:"mt-3 flex flex-wrap items-center justify-between gap-3 text-xs",children:[e.jsxs("label",{className:"flex items-center gap-2 text-slate-600 dark:text-slate-300",children:[e.jsx("input",{type:"radio",name:"defaultModel",value:l.id,checked:u.defaultModel===l.id,onChange:()=>f(h=>({...h,defaultModel:l.id})),disabled:l.id.trim().length===0}),r("providers.drawer.fields.setDefault")]}),e.jsx("button",{type:"button",className:"text-red-500 transition hover:text-red-600 disabled:cursor-not-allowed disabled:opacity-40",onClick:()=>le(c),disabled:u.models.length<=1,children:r("providers.drawer.fields.removeModel")})]})]},l._key))}),me.length>1?e.jsx("div",{className:"text-xs text-slate-500 dark:text-slate-400",children:r("providers.drawer.defaultHint",{model:u.defaultModel||r("providers.card.noDefault")})}):null]})]}),e.jsxs("footer",{className:"flex items-center justify-between gap-3 border-t border-slate-200 px-6 py-4 text-sm dark:border-slate-800",children:[e.jsx("div",{className:"flex flex-col text-xs text-red-500","aria-live":"polite",children:q?e.jsx("span",{children:q}):null}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx("button",{type:"button",onClick:D,className:"rounded-md border border-slate-200 px-4 py-2 transition hover:bg-slate-100 dark:border-slate-700 dark:hover:bg-slate-800",disabled:_,children:r("common.actions.cancel")}),e.jsx("button",{type:"button",onClick:de,className:"rounded-md bg-blue-600 px-4 py-2 text-white transition hover:bg-blue-700 disabled:opacity-60",disabled:_,children:r(_?"common.actions.saving":"common.actions.save")})]})]})]})]}):null}const rt=["claude-sonnet-4-5-20250929","claude-sonnet-4-20250514","claude-opus-4-1-20250805","claude-3-5-haiku-20241022"],lt=["gpt-4o-mini","gpt-4o","o4-mini","o4-large","gpt-5-codex"];function fe(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Math.random().toString(36).slice(2,10)}function z(s){return s?Object.entries(s).map(([n,m])=>({id:fe(),source:n,target:m})):[]}function ge(s){var m,L;if(!s)return{anthropic:[],openai:[]};const n=s.endpointRouting??{};return{anthropic:z(((m=n.anthropic)==null?void 0:m.modelRoutes)??s.modelRoutes??{}),openai:z(((L=n.openai)==null?void 0:L.modelRoutes)??{})}}function ct(){const{t:s}=ve(),{pushToast:n}=Je(),m=tt(["config","full"],{url:"/api/config",method:"GET"}),L=[{key:"providers",label:s("modelManagement.tabs.providers"),description:s("modelManagement.tabs.providersDesc")},{key:"anthropic",label:s("modelManagement.tabs.anthropic"),description:s("modelManagement.tabs.anthropicDesc")},{key:"openai",label:s("modelManagement.tabs.openai"),description:s("modelManagement.tabs.openaiDesc")}],[D,Y]=p.useState("providers"),[r,u]=p.useState(null),[f,v]=p.useState(!1),[A,_]=p.useState("create"),[U,q]=p.useState(void 0),[B,se]=p.useState(null),[I,w]=p.useState({anthropic:[],openai:[]}),[F,E]=p.useState({anthropic:null,openai:null}),[me,G]=p.useState(null),[J,X]=p.useState([]),[ae,re]=p.useState(""),[le,W]=p.useState(null),[Q,oe]=p.useState(!1),[xe,de]=p.useState(null),[ie,l]=p.useState(null),[c,h]=p.useState(!1),[b,k]=p.useState(null),[M,S]=p.useState(!0),[$,Z]=p.useState({}),N=(r==null?void 0:r.providers)??[],Ee=N.length,ee=p.useMemo(()=>[{key:"anthropic-beta",value:"claude-code-20250219,interleaved-thinking-2025-05-14,fine-grained-tool-streaming-2025-05-14",label:s("providers.testDialog.options.beta.label"),description:s("providers.testDialog.options.beta.description")},{key:"anthropic-dangerous-direct-browser-access",value:"true",label:s("providers.testDialog.options.browser.label"),description:s("providers.testDialog.options.browser.description")},{key:"x-app",value:"cli",label:s("providers.testDialog.options.xApp.label"),description:s("providers.testDialog.options.xApp.description")},{key:"user-agent",value:"claude-cli/2.0.14 (external, cli)",label:s("providers.testDialog.options.userAgent.label"),description:s("providers.testDialog.options.userAgent.description")},{key:"accept",value:"application/json",label:s("providers.testDialog.options.accept.label"),description:s("providers.testDialog.options.accept.description")},{key:"accept-language",value:"*",label:s("providers.testDialog.options.acceptLanguage.label"),description:s("providers.testDialog.options.acceptLanguage.description")},{key:"sec-fetch-mode",value:"cors",label:s("providers.testDialog.options.secFetchMode.label"),description:s("providers.testDialog.options.secFetchMode.description")},{key:"accept-encoding",value:"gzip, deflate",label:s("providers.testDialog.options.acceptEncoding.label"),description:s("providers.testDialog.options.acceptEncoding.description")},{key:"x-stainless-helper-method",value:"stream",label:s("providers.testDialog.options.stainlessHelper.label"),description:s("providers.testDialog.options.stainlessHelper.description")},{key:"x-stainless-retry-count",value:"0",label:s("providers.testDialog.options.stainlessRetry.label"),description:s("providers.testDialog.options.stainlessRetry.description")},{key:"x-stainless-timeout",value:"600",label:s("providers.testDialog.options.stainlessTimeout.label"),description:s("providers.testDialog.options.stainlessTimeout.description")},{key:"x-stainless-lang",value:"js",label:s("providers.testDialog.options.stainlessLang.label"),description:s("providers.testDialog.options.stainlessLang.description")},{key:"x-stainless-package-version",value:"0.60.0",label:s("providers.testDialog.options.stainlessPackage.label"),description:s("providers.testDialog.options.stainlessPackage.description")},{key:"x-stainless-os",value:"MacOS",label:s("providers.testDialog.options.stainlessOs.label"),description:s("providers.testDialog.options.stainlessOs.description")},{key:"x-stainless-arch",value:"arm64",label:s("providers.testDialog.options.stainlessArch.label"),description:s("providers.testDialog.options.stainlessArch.description")},{key:"x-stainless-runtime",value:"node",label:s("providers.testDialog.options.stainlessRuntime.label"),description:s("providers.testDialog.options.stainlessRuntime.description")},{key:"x-stainless-runtime-version",value:"v22.14.0",label:s("providers.testDialog.options.stainlessRuntimeVersion.label"),description:s("providers.testDialog.options.stainlessRuntimeVersion.description")}],[s]);p.useEffect(()=>{var t;if(m.data){const a=m.data;u(a),w(ge(a)),E({anthropic:null,openai:null}),X(((t=a.routingPresets)==null?void 0:t.anthropic)??[])}},[m.data]),p.useEffect(()=>{m.isError&&m.error&&n({title:s("providers.toast.loadFailure",{message:m.error.message}),variant:"error"})},[m.isError,m.error,n,s]);const Ue=p.useMemo(()=>{const t=new Map;for(const a of N){if(!a.defaultModel||!a.models)continue;const o=a.models.find(d=>d.id===a.defaultModel);o&&t.set(a.id,Re(o))}return t},[N]),je=p.useMemo(()=>{const t=[],a=new Set;for(const d of N){const i=d.label||d.id,g=d.models??[];if(g.length>0)for(const y of g){const x=`${d.id}:${y.id}`;a.has(x)||(a.add(x),t.push({value:x,label:`${i} · ${y.label??y.id}`}))}else if(d.defaultModel){const y=`${d.id}:${d.defaultModel}`;a.has(y)||(a.add(y),t.push({value:y,label:`${i} · ${d.defaultModel}`}))}const j=`${d.id}:*`;a.has(j)||(a.add(j),t.push({value:j,label:s("settings.routing.providerPassthroughOption",{provider:i})}))}const o=[...I.anthropic,...I.openai];for(const d of o){const i=d.target.trim();i&&!a.has(i)&&(a.add(i),t.push({value:i,label:i}))}return t},[N,I,s]),ye=t=>{X(t),u(a=>a&&{...a,routingPresets:{...a.routingPresets,anthropic:t}})},H=()=>r?!0:(n({title:s("settings.toast.missingConfig"),variant:"error"}),m.refetch(),!1),Le=t=>{re(t),t.trim()&&W(null)},Ae=async()=>{if(!H())return;const t=ae.trim();if(!t){W(s("modelManagement.validation.presetName"));return}if(J.some(a=>a.name.toLowerCase()===t.toLowerCase())){W(s("modelManagement.validation.presetDuplicate",{name:t}));return}oe(!0);try{const o=(await V.post("/api/routing-presets/anthropic",{name:t})).data.presets??[];ye(o),re(""),W(null),n({title:s("modelManagement.toast.presetSaved",{name:t}),variant:"success"})}catch(a){n({title:s("modelManagement.toast.presetSaveFailure",{message:a instanceof Error?a.message:"unknown"}),variant:"error"})}finally{oe(!1),m.refetch()}},Te=async t=>{var a;if(H()){de(t.name);try{const d=(await V.post("/api/routing-presets/anthropic/apply",{name:t.name})).data.config;d?(u(d),w(ge(d)),X(((a=d.routingPresets)==null?void 0:a.anthropic)??[])):w(i=>({...i,anthropic:z(t.modelRoutes)})),n({title:s("modelManagement.toast.presetApplySuccess",{name:t.name}),variant:"success"})}catch(o){n({title:s("modelManagement.toast.presetApplyFailure",{message:o instanceof Error?o.message:"unknown"}),variant:"error"})}finally{de(null),m.refetch()}}},Oe=async t=>{if(!(!H()||!window.confirm(s("modelManagement.confirm.deletePreset",{name:t.name})))){l(t.name);try{const d=(await V.delete(`/api/routing-presets/anthropic/${encodeURIComponent(t.name)}`)).data.presets??[];ye(d),n({title:s("modelManagement.toast.presetDeleteSuccess",{name:t.name}),variant:"success"})}catch(o){n({title:s("modelManagement.toast.presetDeleteFailure",{message:o instanceof Error?o.message:"unknown"}),variant:"error"})}finally{l(null),m.refetch()}}},Ie=()=>{H()&&(_("create"),q(void 0),v(!0))},$e=t=>{H()&&(_("edit"),q(t),v(!0))},Ke=async t=>{if(!r)throw new Error(s("settings.toast.missingConfig"));const a=A==="create"?[...N,t]:N.map(i=>U&&i.id===U.id?{...t,id:U.id}:i),o={...r,providers:a};await V.put("/api/config",o),u(o),w(ge(o)),m.refetch();const d=A==="create"?s("providers.toast.createSuccess",{name:t.label||t.id}):s("providers.toast.updateSuccess",{name:t.label||t.id});n({title:d,variant:"success"})},Ne=async(t,a)=>{se(t.id);try{const o=a&&(a.headers||a.query)?{headers:a.headers&&Object.keys(a.headers).length>0?a.headers:void 0,query:a.query&&a.query.trim().length>0?a.query.trim():void 0}:void 0,d=await V.post(`/api/providers/${t.id}/test`,o);d.data.ok?n({title:s("providers.toast.testSuccess"),description:s("providers.toast.testSuccessDesc",{status:d.data.status,duration:d.data.durationMs?`${d.data.durationMs} ms`:"—"}),variant:"success"}):n({title:s("providers.toast.testFailure",{message:`${d.data.status} ${d.data.statusText}`}),variant:"error"})}catch(o){n({title:s("providers.toast.testFailure",{message:o instanceof Error?o.message:"unknown"}),variant:"error"})}finally{se(null)}},_e=t=>{if(t.type==="anthropic"){const a=t.extraHeaders??{},o=new Map(ee.map(g=>[g.key.toLowerCase(),g])),d={};let i=!0;for(const g of ee){const j=Object.entries(a).find(([y])=>y.toLowerCase()===g.key.toLowerCase());if(j){const[y,x]=j;String(x??"")===g.value||(i=!1,d[y]=String(x??""))}}for(const[g,j]of Object.entries(a))o.has(g.toLowerCase())||(d[g]=String(j??""));Z(d),S(i),k(t),h(!0);return}Ne(t)},we=()=>{h(!1),k(null),S(!0),Z({})},Be=async()=>{if(!b)return;const t={};if(M)for(const d of ee)t[d.key]=d.value;const a=new Map(ee.map(d=>[d.key.toLowerCase(),d]));for(const[d,i]of Object.entries($)){const g=d.toLowerCase();a.get(g)&&M||(t[d]=i)}const o=b;we(),await Ne(o,{headers:Object.keys(t).length>0?t:void 0,query:M?"beta=true":void 0})},Fe=async t=>{var x,R,C,K;if(!H()||!window.confirm(s("providers.confirm.delete",{name:t.label||t.id})))return;const o=N.filter(T=>T.id!==t.id),d=T=>{const P={};if(!T)return P;for(const[ce,ue]of Object.entries(T)){if(!ue)continue;const[Me]=ue.split(":");Me&&Me===t.id||ue===t.id||(P[ce]=ue)}return P},i=(r==null?void 0:r.endpointRouting)??{},g=d(((x=i.anthropic)==null?void 0:x.modelRoutes)??(r==null?void 0:r.modelRoutes)??{}),j=d(((R=i.openai)==null?void 0:R.modelRoutes)??{}),y={...r,providers:o,modelRoutes:g,endpointRouting:{anthropic:{defaults:((C=i.anthropic)==null?void 0:C.defaults)??r.defaults,modelRoutes:g},openai:{defaults:((K=i.openai)==null?void 0:K.defaults)??r.defaults,modelRoutes:j}}};try{await V.put("/api/config",y),u(y),w({anthropic:z(g),openai:z(j)}),n({title:s("providers.toast.deleteSuccess",{name:t.label||t.id}),variant:"success"}),m.refetch()}catch(T){n({title:s("providers.toast.deleteFailure",{message:T instanceof Error?T.message:"unknown"}),variant:"error"})}},He=t=>{w(a=>({...a,[t]:[...a[t],{id:fe(),source:"",target:""}]})),E(a=>({...a,[t]:null}))},Ve=(t,a)=>{w(o=>o[t].some(d=>d.source.trim()===a.trim())?o:{...o,[t]:[...o[t],{id:fe(),source:a,target:""}]}),E(o=>({...o,[t]:null}))},ne=(t,a,o,d)=>{w(i=>({...i,[t]:i[t].map(g=>g.id===a?{...g,[o]:d}:g)})),E(i=>({...i,[t]:null}))},ze=(t,a)=>{w(o=>({...o,[t]:o[t].filter(d=>d.id!==a)})),E(o=>({...o,[t]:null}))},qe=t=>{var i;if(!r)return;const a=r.endpointRouting??{},o=t==="anthropic"?r.modelRoutes??{}:{},d=((i=a[t])==null?void 0:i.modelRoutes)??o;w(g=>({...g,[t]:z(d)})),E(g=>({...g,[t]:null}))},Ge=async t=>{var d,i,g,j,y;if(!H())return;const a=I[t],o={};for(const x of a){const R=x.source.trim(),C=x.target.trim();if(!(!R&&!C)){if(!R||!C){E(K=>({...K,[t]:s("settings.validation.routePair")}));return}if(o[R]){E(K=>({...K,[t]:s("settings.validation.routeDuplicate",{model:R})}));return}o[R]=C}}E(x=>({...x,[t]:null})),G(t);try{const x=r.endpointRouting??{anthropic:{defaults:r.defaults,modelRoutes:r.modelRoutes??{}},openai:{defaults:((i=(d=r.endpointRouting)==null?void 0:d.openai)==null?void 0:i.defaults)??r.defaults,modelRoutes:((j=(g=r.endpointRouting)==null?void 0:g.openai)==null?void 0:j.modelRoutes)??{}}},R={...x,[t]:{defaults:((y=x[t])==null?void 0:y.defaults)??r.defaults,modelRoutes:o}},C={...r,endpointRouting:R,modelRoutes:t==="anthropic"?o:r.modelRoutes??{}};await V.put("/api/config",C),u(C),w(K=>({...K,[t]:z(o)})),n({title:s("modelManagement.toast.routesSaved"),variant:"success"}),m.refetch()}catch(x){n({title:s("modelManagement.toast.routesSaveFailure",{message:x instanceof Error?x.message:"unknown"}),variant:"error"})}finally{G(null)}},We=()=>e.jsxs("section",{className:Ce,children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h2",{className:"text-xl font-bold text-slate-800 dark:text-slate-100",children:s("providers.title")}),e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400",children:s("providers.description")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("div",{className:Ze.default,children:s("providers.count",{count:Ee})}),e.jsx("button",{type:"button",className:O,onClick:()=>m.refetch(),disabled:m.isFetching,children:m.isFetching?s("common.actions.refreshing"):s("providers.actions.refresh")}),e.jsx("button",{type:"button",className:te,onClick:Ie,children:s("providers.actions.add")})]})]}),m.isPending||!r&&m.isFetching?e.jsx("section",{className:"flex min-h-[200px] items-center justify-center rounded-3xl border border-slate-200/50 bg-gradient-to-br from-white/80 to-white/70 text-sm text-slate-600 dark:border-slate-700/50 dark:from-slate-900/80 dark:to-slate-900/70 dark:text-slate-400 backdrop-blur-lg",children:s("common.loading")}):N.length===0?e.jsx("section",{className:"rounded-3xl border border-dashed border-slate-300/60 bg-gradient-to-br from-slate-50/80 to-white/70 p-12 text-center text-sm text-slate-600 dark:border-slate-600/60 dark:from-slate-900/80 dark:to-slate-800/70 dark:text-slate-400 backdrop-blur-lg",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx("div",{className:"rounded-2xl bg-slate-200/50 p-4 dark:bg-slate-700/50",children:e.jsx("svg",{className:"h-8 w-8 text-slate-400 dark:text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"})})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-slate-700 dark:text-slate-300",children:s("providers.emptyState")}),e.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-slate-400",children:s("providers.emptyStateSub",{default:"点击上方按钮添加您的第一个提供商"})})]})]})}):e.jsx("div",{className:"grid gap-6 md:grid-cols-2 xl:grid-cols-3",children:N.map(t=>e.jsxs("article",{className:"group flex h-full flex-col gap-5 rounded-3xl border border-slate-200/50 bg-gradient-to-br from-white/85 via-white/80 to-white/75 p-6 shadow-lg shadow-slate-200/30 backdrop-blur-md transition-all duration-300 hover:border-slate-200/70 hover:shadow-xl hover:shadow-slate-200/50 hover:-translate-y-1 dark:border-slate-700/50 dark:from-slate-900/85 dark:via-slate-900/80 dark:to-slate-900/75 dark:shadow-2xl dark:shadow-slate-900/40 dark:hover:border-slate-600/70 dark:hover:bg-slate-900/90",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex h-12 w-12 items-center justify-center rounded-2xl bg-gradient-to-br from-blue-500 via-blue-600 to-indigo-600 text-white shadow-lg shadow-blue-500/30",children:e.jsx("span",{className:"text-lg font-bold",children:(t.label||t.id).charAt(0).toUpperCase()})}),e.jsxs("div",{className:"flex flex-col gap-1",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"text-lg font-bold text-slate-800 dark:text-slate-100",children:t.label||t.id}),t.type?e.jsx(dt,{type:t.type}):null]}),e.jsxs("p",{className:"text-xs text-slate-500 dark:text-slate-400",children:["ID: ",t.id]})]})]}),e.jsxs("div",{className:"mt-3 space-y-1",children:[e.jsx("p",{className:"text-xs text-slate-600 dark:text-slate-400 font-medium",children:"Base URL:"}),e.jsx("p",{className:"text-xs font-mono text-slate-700 dark:text-slate-300 bg-slate-100/50 dark:bg-slate-800/50 rounded-lg px-2 py-1 break-all",children:t.baseUrl})]})]}),e.jsx("div",{className:"flex flex-col gap-2",children:t.defaultModel?e.jsx("div",{className:De.success,children:s("providers.card.defaultModel",{model:Ue.get(t.id)??t.defaultModel})}):e.jsx("div",{className:De.info,children:s("providers.card.noDefault")})})]}),e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("h4",{className:"text-xs font-bold uppercase tracking-[0.15em] text-slate-600 dark:text-slate-300",children:s("providers.card.modelsTitle")}),t.models&&t.models.length>0?e.jsx("div",{className:"flex flex-wrap gap-2",children:t.models.map(a=>e.jsxs("div",{className:"flex items-center gap-2 rounded-xl border border-slate-200/60 bg-gradient-to-r from-slate-50/80 to-slate-100/70 px-3 py-1.5 text-xs dark:border-slate-700/60 dark:from-slate-800/60 dark:to-slate-700/50 backdrop-blur-sm transition-all duration-200 hover:border-slate-300/70 hover:bg-slate-100/80 dark:hover:border-slate-600/70 dark:hover:bg-slate-700/60",children:[e.jsx("div",{className:"h-1.5 w-1.5 rounded-full bg-blue-500"}),e.jsx("span",{className:"font-medium text-slate-700 dark:text-slate-200",children:Re(a)})]},a.id))}):e.jsx("div",{className:"rounded-xl border border-dashed border-slate-300/50 bg-slate-50/50 px-4 py-3 text-xs text-slate-500 dark:border-slate-600/50 dark:bg-slate-800/30 dark:text-slate-400",children:s("providers.card.noModels")})]}),e.jsxs("footer",{className:"mt-auto flex flex-wrap gap-3 pt-2 border-t border-slate-200/30 dark:border-slate-700/30",children:[e.jsx("button",{type:"button",className:O,onClick:()=>$e(t),children:s("providers.actions.edit")}),e.jsx("button",{type:"button",onClick:()=>_e(t),disabled:B===t.id,className:B===t.id?`${O} opacity-60 cursor-not-allowed`:O,children:B===t.id?s("common.actions.testingConnection"):s("providers.actions.test")}),e.jsx("button",{type:"button",className:pe,onClick:()=>Fe(t),children:s("providers.actions.delete")})]})]},t.id))})]}),Qe=()=>e.jsxs("div",{className:"rounded-2xl border border-dashed border-slate-300/60 bg-gradient-to-br from-slate-50/80 to-white/70 p-6 dark:border-slate-600/60 dark:from-slate-800/60 dark:to-slate-900/70 backdrop-blur-sm",children:[e.jsxs("div",{className:"flex flex-col gap-4 md:flex-row md:items-center md:justify-between",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h3",{className:"text-base font-bold text-slate-800 dark:text-slate-100",children:s("modelManagement.presets.title")}),e.jsx("p",{className:"text-sm text-slate-600 dark:text-slate-400",children:s("modelManagement.presets.description")})]}),e.jsxs("div",{className:"flex flex-col gap-3 md:flex-row md:items-center",children:[e.jsx("input",{type:"text",value:ae,onChange:t=>Le(t.target.value),placeholder:s("modelManagement.presets.namePlaceholder"),className:be,disabled:Q}),e.jsx("button",{type:"button",onClick:Ae,className:te,disabled:Q,children:s(Q?"modelManagement.presets.saving":"modelManagement.presets.save")})]})]}),le?e.jsx("div",{className:"rounded-xl bg-red-50/80 border border-red-200/50 p-3 text-xs text-red-700 dark:bg-red-900/40 dark:border-red-800/50 dark:text-red-300 backdrop-blur-sm",children:le}):null,J.length===0?e.jsx("div",{className:"rounded-xl border border-slate-200/40 bg-slate-50/60 p-6 text-center text-sm text-slate-600 dark:border-slate-700/40 dark:bg-slate-800/40 dark:text-slate-400 backdrop-blur-sm",children:e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsx("div",{className:"rounded-xl bg-slate-200/50 p-3 dark:bg-slate-700/50",children:e.jsx("svg",{className:"h-6 w-6 text-slate-400 dark:text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"})})}),e.jsx("p",{className:"font-medium text-slate-700 dark:text-slate-300",children:s("modelManagement.presets.empty")})]})}):e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:J.map(t=>{const a=xe===t.name,o=ie===t.name;return e.jsxs("div",{className:"flex items-center justify-between gap-3 rounded-xl border border-slate-200/50 bg-gradient-to-r from-white/90 to-white/80 px-4 py-3 text-sm shadow-sm backdrop-blur-sm transition-all duration-200 hover:border-slate-300/70 hover:bg-white/95 hover:shadow-md dark:border-slate-700/50 dark:from-slate-900/90 dark:to-slate-900/80 dark:hover:border-slate-600/70 dark:hover:bg-slate-900/95",children:[e.jsx("span",{className:"truncate font-medium text-slate-700 dark:text-slate-200",children:t.name}),e.jsxs("div",{className:"flex items-center gap-2 flex-shrink-0",children:[e.jsx("button",{type:"button",onClick:()=>Te(t),className:a||o?`${O} opacity-60 cursor-not-allowed text-xs px-2 py-1`:`${te} text-xs px-2 py-1`,disabled:a||o,children:s(a?"modelManagement.presets.applying":"modelManagement.presets.apply")}),e.jsx("button",{type:"button",onClick:()=>Oe(t),className:o||a?`${O} opacity-60 cursor-not-allowed text-xs px-2 py-1`:`${pe} text-xs px-2 py-1`,disabled:o||a,children:s(o?"modelManagement.presets.deleting":"modelManagement.presets.delete")})]})]},t.name)})})]}),Ye=t=>{const a=I[t],o=F[t],d=t==="anthropic"?rt:lt,i=me===t,g=s(`modelManagement.tabs.${t}`),j=`route-source-${t}`,y=`route-target-${t}`;return e.jsxs("section",{className:Ce,children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("h2",{className:"text-xl font-bold text-slate-800 dark:text-slate-100",children:s("settings.routing.titleByEndpoint",{endpoint:g})}),e.jsx("p",{className:"max-w-3xl text-sm text-slate-600 dark:text-slate-400",children:s(`settings.routing.descriptionByEndpoint.${t}`)}),e.jsx("p",{className:"max-w-3xl text-xs text-slate-500 dark:text-slate-400",children:s("settings.routing.wildcardHint")})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[e.jsx("button",{type:"button",onClick:()=>He(t),className:O,disabled:i,children:s("settings.routing.add")}),e.jsx("button",{type:"button",onClick:()=>qe(t),className:O,disabled:i,children:s("common.actions.reset")}),e.jsx("button",{type:"button",onClick:()=>Ge(t),className:te,disabled:i,children:s(i?"common.actions.saving":"modelManagement.actions.saveRoutes")})]})]}),t==="anthropic"?Qe():null,o?e.jsx("div",{className:"rounded-xl bg-red-50/80 border border-red-200/50 p-4 text-sm text-red-700 dark:bg-red-900/40 dark:border-red-800/50 dark:text-red-300 backdrop-blur-sm",children:o}):null,a.length===0?e.jsx("div",{className:"rounded-xl border border-dashed border-slate-300/60 bg-gradient-to-br from-slate-50/80 to-white/70 p-12 text-center text-sm text-slate-600 dark:border-slate-600/60 dark:from-slate-800/60 dark:to-slate-900/70 dark:text-slate-400 backdrop-blur-sm",children:e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsx("div",{className:"rounded-2xl bg-slate-200/50 p-4 dark:bg-slate-700/50",children:e.jsx("svg",{className:"h-8 w-8 text-slate-400 dark:text-slate-500",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M9 20l-5.447-2.724A1 1 0 013 16.382V5.618a1 1 0 011.447-.894L9 7m0 13l6-3m-6 3V7m6 10l4.553 2.276A1 1 0 0021 18.382V7.618a1 1 0 00-.553-.894L15 4m0 13V4m0 0L9 7"})})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-medium text-slate-700 dark:text-slate-300",children:s("settings.routing.empty")}),e.jsx("p",{className:"mt-2 text-xs text-slate-500 dark:text-slate-400",children:s("settings.routing.emptySub",{default:"点击上方按钮添加路由规则"})})]})]})}):e.jsx("div",{className:"space-y-4",children:a.map((x,R)=>e.jsxs("div",{className:"rounded-xl border border-slate-200/50 bg-gradient-to-r from-white/90 to-white/85 p-4 shadow-sm backdrop-blur-sm transition-all duration-200 hover:border-slate-300/70 hover:bg-white/95 hover:shadow-md dark:border-slate-700/50 dark:from-slate-900/90 dark:to-slate-900/85 dark:hover:border-slate-600/70 dark:hover:bg-slate-900/95",children:[e.jsxs("div",{className:"flex items-center gap-3 mb-3",children:[e.jsx("div",{className:"flex h-8 w-8 items-center justify-center rounded-lg bg-blue-100 text-blue-600 dark:bg-blue-900/40 dark:text-blue-300",children:e.jsx("span",{className:"text-sm font-bold",children:R+1})}),e.jsx("span",{className:"text-sm font-medium text-slate-700 dark:text-slate-300",children:"路由规则"})]}),e.jsxs("div",{className:"grid gap-4 md:grid-cols-[minmax(0,1fr)_minmax(0,1fr)_auto]",children:[e.jsx("div",{className:"space-y-2",children:e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-[0.15em] text-slate-600 dark:text-slate-300",children:s("settings.routing.source")}),e.jsx("input",{type:"text",value:x.source,onChange:C=>ne(t,x.id,"source",C.target.value),className:be,placeholder:"claude-3.5-sonnet",list:j,disabled:i})]})}),e.jsx("div",{className:"space-y-2",children:e.jsxs("label",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-[0.15em] text-slate-600 dark:text-slate-300",children:s("settings.routing.target")}),(()=>{const C=x.target.trim(),T=je.some(P=>P.value===C)?C:"__custom";return e.jsxs(e.Fragment,{children:[e.jsxs("select",{value:T,onChange:P=>{const ce=P.target.value;ce==="__custom"?ne(t,x.id,"target",C):ne(t,x.id,"target",ce)},className:et,disabled:i,children:[e.jsx("option",{value:"__custom",children:s("settings.routing.customTargetOption")}),je.map(P=>e.jsx("option",{value:P.value,children:P.label},`${y}-${P.value}`))]}),T==="__custom"&&e.jsx("input",{type:"text",value:x.target,onChange:P=>ne(t,x.id,"target",P.target.value),className:be,placeholder:"providerId:modelId",disabled:i})]})})()]})}),e.jsx("div",{className:"flex items-end",children:e.jsx("button",{type:"button",className:pe,onClick:()=>ze(t,x.id),disabled:i,children:s("settings.routing.remove")})})]})]},x.id))}),e.jsx("div",{className:"rounded-xl border border-slate-200/40 bg-gradient-to-r from-slate-50/80 to-white/70 p-4 dark:border-slate-700/40 dark:from-slate-800/60 dark:to-slate-900/70 backdrop-blur-sm",children:e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("span",{className:"text-xs font-bold uppercase tracking-[0.15em] text-slate-600 dark:text-slate-300",children:s("settings.routing.suggested")}),e.jsx("div",{className:"flex flex-wrap gap-2",children:d.map(x=>e.jsx("button",{type:"button",onClick:()=>Ve(t,x),className:O,disabled:i,children:x},`${t}-${x}`))})]})}),e.jsx("datalist",{id:j,children:d.map(x=>e.jsx("option",{value:x},`${j}-${x}`))})]})};return e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsx("div",{className:Xe,children:e.jsxs("div",{className:"flex flex-col gap-3",children:[e.jsx("h1",{className:"text-3xl font-bold bg-gradient-to-r from-slate-900 to-slate-700 bg-clip-text text-transparent dark:from-slate-100 dark:to-slate-300",children:s("modelManagement.title")}),e.jsx("p",{className:"text-base text-slate-600 dark:text-slate-400",children:s("modelManagement.description")})]})}),e.jsx("div",{className:"flex flex-wrap gap-4",children:L.map(t=>{const a=D===t.key;return e.jsxs("button",{type:"button",onClick:()=>Y(t.key),className:`flex min-w-[240px] flex-col gap-2 rounded-2xl border px-6 py-4 text-left transition-all duration-300 hover-lift ${a?"border-blue-500/30 bg-gradient-to-r from-blue-50 to-indigo-50 text-blue-700 shadow-lg shadow-blue-200/40 ring-1 ring-blue-500/20 dark:border-blue-400/30 dark:from-blue-900/40 dark:to-indigo-900/30 dark:text-blue-100 dark:shadow-xl dark:shadow-blue-500/20 dark:ring-blue-400/20":"border-slate-200/50 bg-white/80 hover:bg-white/90 hover:shadow-md hover:shadow-slate-200/30 dark:border-slate-700/50 dark:bg-slate-900/80 dark:hover:bg-slate-900/90 dark:hover:shadow-lg dark:hover:shadow-slate-900/30"}`,children:[e.jsx("span",{className:"text-base font-bold",children:t.label}),e.jsx("span",{className:"text-sm text-slate-600 dark:text-slate-400",children:t.description})]},t.key)})}),D==="providers"?We():Ye(D),e.jsx(at,{open:f,mode:A,provider:A==="edit"?U:void 0,existingProviderIds:N.map(t=>t.id).filter(t=>A==="edit"&&U?t!==U.id:!0),onClose:()=>{v(!1),q(void 0),_("create")},onSubmit:Ke}),e.jsx(ot,{open:c,provider:b,options:ee,preservedExtras:$,usePreset:M,onPresetChange:S,onConfirm:Be,onClose:we})]})}function ot({open:s,provider:n,options:m,usePreset:L,preservedExtras:D,onPresetChange:Y,onConfirm:r,onClose:u}){const{t:f}=ve();return!s||!n?null:e.jsxs("div",{className:"fixed inset-0 z-50 flex items-center justify-center",children:[e.jsx("div",{className:"absolute inset-0 bg-slate-900/60 backdrop-blur-sm",onClick:u,"aria-hidden":"true"}),e.jsxs("div",{role:"dialog","aria-modal":"true","aria-labelledby":"connection-test-dialog-title",className:"relative z-10 w-full max-w-lg rounded-2xl border border-slate-200/70 bg-white/95 p-6 shadow-2xl backdrop-blur-xl animate-fade-in dark:border-slate-800/60 dark:bg-slate-900/95",children:[e.jsxs("header",{className:"mb-4 space-y-1",children:[e.jsx("h2",{id:"connection-test-dialog-title",className:"text-lg font-semibold text-slate-900 dark:text-slate-100",children:f("providers.testDialog.title")}),e.jsx("p",{className:"text-sm text-slate-500 dark:text-slate-400",children:f("providers.testDialog.subtitle",{name:n.label||n.id})})]}),e.jsx("p",{className:"mb-5 text-sm leading-relaxed text-slate-600 dark:text-slate-300",children:f("providers.testDialog.description")}),e.jsx("div",{className:"space-y-3",children:e.jsxs("label",{className:"flex items-start gap-3 rounded-xl border border-slate-200 bg-white/90 p-4 shadow-sm transition hover:border-blue-200 hover:bg-blue-50/70 dark:border-slate-700 dark:bg-slate-800/70 dark:hover:border-blue-500/60 dark:hover:bg-slate-800",children:[e.jsx("input",{type:"checkbox",className:"mt-1 h-4 w-4 rounded border-slate-300 text-blue-600 focus:ring-blue-500",checked:L,onChange:v=>Y(v.target.checked)}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-800 dark:text-slate-100",children:f("providers.testDialog.presetLabel")}),e.jsx("p",{className:"text-xs leading-relaxed text-slate-500 dark:text-slate-400",children:f("providers.testDialog.presetDescription")}),e.jsxs("details",{className:"rounded-lg bg-slate-50/60 px-3 py-2 text-xs text-slate-600 transition dark:bg-slate-800/50 dark:text-slate-300",children:[e.jsx("summary",{className:"cursor-pointer text-blue-600 hover:underline dark:text-blue-300",children:f("providers.testDialog.presetPreviewSummary")}),e.jsx("div",{className:"mt-2 grid gap-1",children:m.map(v=>e.jsxs("code",{className:"rounded bg-white/80 px-2 py-1 text-[11px] text-slate-700 shadow-sm dark:bg-slate-900/60 dark:text-slate-200",children:[v.key,": ",v.value]},v.key))})]})]})]})}),Object.keys(D).length>0?e.jsxs("div",{className:"mt-6 rounded-xl border border-slate-200 bg-slate-50/80 p-4 text-xs text-slate-600 dark:border-slate-700 dark:bg-slate-800/60 dark:text-slate-300",children:[e.jsx("p",{className:"mb-2 font-semibold text-slate-700 dark:text-slate-200",children:f("providers.testDialog.preservedInfo")}),e.jsx("div",{className:"grid gap-2",children:Object.entries(D).map(([v,A])=>e.jsxs("code",{className:"rounded bg-white/70 px-2 py-1 text-[11px] text-slate-700 shadow-sm dark:bg-slate-900/70 dark:text-slate-200",children:[v,": ",A]},v))})]}):null,e.jsxs("footer",{className:"mt-6 flex justify-end gap-3",children:[e.jsx("button",{type:"button",onClick:u,className:O,children:f("providers.testDialog.cancel")}),e.jsx("button",{type:"button",onClick:()=>{r()},className:te,children:f("providers.testDialog.primary")})]})]})]})}function Re(s){return s.label&&s.label.trim().length>0?`${s.label} (${s.id})`:s.id}function dt({type:s}){const n={openai:{label:"OpenAI",color:"bg-green-100 text-green-700 dark:bg-green-900/40 dark:text-green-300"},deepseek:{label:"DeepSeek",color:"bg-blue-100 text-blue-700 dark:bg-blue-900/40 dark:text-blue-300"},huawei:{label:"华为云",color:"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300"},kimi:{label:"Kimi",color:"bg-purple-100 text-purple-700 dark:bg-purple-900/40 dark:text-purple-300"},anthropic:{label:"Anthropic",color:"bg-indigo-100 text-indigo-700 dark:bg-indigo-900/40 dark:text-indigo-300"},custom:{label:"Custom",color:"bg-slate-100 text-slate-700 dark:bg-slate-800 dark:text-slate-300"}},{label:m,color:L}=n[s]||n.custom;return e.jsx("span",{className:`rounded-full ${L} px-2.5 py-1 text-xs font-semibold shadow-sm`,children:m})}export{ct as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as te,a as ae,r as u,j as e,d as c,S as re,L as V,b as N,k as R,x as K,A as f,m as y,z as B}from"./index-ChT0XT-w.js";import{u as _}from"./useApiQuery-mBT5M_Q6.js";import{P as ne,a as v}from"./PageSection-eOpSKdGw.js";import{C as le}from"./copy-Br9n1n5X.js";const oe=[{value:"fatal",labelKey:"fatal"},{value:"error",labelKey:"error"},{value:"warn",labelKey:"warn"},{value:"info",labelKey:"info"},{value:"debug",labelKey:"debug"},{value:"trace",labelKey:"trace"}];function me(){const{t:s}=te(),{pushToast:g}=ae(),l=_(["config","info"],{url:"/api/config/info",method:"GET"}),x=_(["auth","web"],{url:"/api/auth/web",method:"GET"}),[r,q]=u.useState(null),[L,G]=u.useState(""),[d,h]=u.useState({port:"",host:"",logRetentionDays:"",storeRequestPayloads:!0,storeResponsePayloads:!0,logLevel:"info",requestLogging:!0,responseLogging:!0,bodyLimitMb:"10"}),[p,S]=u.useState({}),[P,E]=u.useState(!1),[A,F]=u.useState(!1),[M,D]=u.useState(!1),[o,H]=u.useState(null),[n,b]=u.useState({enabled:!1,username:"",password:"",confirmPassword:""}),[w,k]=u.useState({}),[C,O]=u.useState(!1),Q=u.useMemo(()=>{if(!r)return null;const t=r.defaults;if(!t)return null;const a=[];return t.completion&&a.push(s("settings.defaults.completion",{model:t.completion})),t.reasoning&&a.push(s("settings.defaults.reasoning",{model:t.reasoning})),t.background&&a.push(s("settings.defaults.background",{model:t.background})),a.length>0?a.join(" | "):s("settings.defaults.none")},[r,s]),T=u.useMemo(()=>n.enabled?o!=null&&o.hasPassword?n.username.trim()!==((o==null?void 0:o.username)??""):!0:!1,[n.enabled,n.username,o]);u.useEffect(()=>{if(l.data){q(l.data.config),G(l.data.path);const t=l.data.config.storePayloads,a=i=>typeof i=="boolean"?i:typeof t=="boolean"?t:!0;h({port:String(l.data.config.port??""),host:l.data.config.host??"",logRetentionDays:String(l.data.config.logRetentionDays??30),storeRequestPayloads:a(l.data.config.storeRequestPayloads),storeResponsePayloads:a(l.data.config.storeResponsePayloads),logLevel:l.data.config.logLevel??"info",requestLogging:l.data.config.requestLogging!==!1,responseLogging:l.data.config.responseLogging??l.data.config.requestLogging!==!1,bodyLimitMb:(()=>{const i=l.data.config.bodyLimit;return typeof i=="number"&&Number.isFinite(i)&&i>0?String(Math.max(1,Math.round(i/(1024*1024)))):"10"})()})}},[l.data]),u.useEffect(()=>{x.data&&(H(x.data),b({enabled:x.data.enabled,username:x.data.username??"",password:"",confirmPassword:""}),k({}))},[x.data]),u.useEffect(()=>{l.isError&&l.error&&g({title:s("settings.toast.loadFailure",{message:l.error.message}),variant:"error"})},[l.isError,l.error,g,s]),u.useEffect(()=>{x.isError&&x.error&&g({title:s("settings.toast.authLoadFailure",{message:x.error.message}),variant:"error"})},[x.isError,x.error,g,s]);const j=t=>a=>{h(i=>({...i,[t]:a}))},I=()=>{const t={},a=Number(d.port);(!Number.isFinite(a)||a<1||a>65535)&&(t.port=s("settings.validation.port"));const i=Number(d.logRetentionDays);(!Number.isFinite(i)||i<1||i>365)&&(t.logRetentionDays=s("settings.validation.retention"));const m=Number(d.bodyLimitMb);return(!Number.isFinite(m)||m<1||m>2048)&&(t.bodyLimitMb=s("settings.validation.bodyLimit")),S(t),Object.keys(t).length===0},z=()=>{const t={},a=n.username.trim(),i=o?a!==(o.username??""):!0,m=n.enabled&&(!(o!=null&&o.hasPassword)||i);return n.enabled&&!a&&(t.username=s("settings.auth.validation.username")),n.password&&n.password.length<6&&(t.password=s("settings.auth.validation.minLength")),m&&!n.password&&(t.password=s("settings.auth.validation.passwordRequired")),(n.password||n.confirmPassword)&&n.password!==n.confirmPassword&&(t.confirmPassword=s("settings.auth.validation.confirmMismatch")),k(t),Object.keys(t).length===0},W=async()=>{if(!r){g({title:s("settings.toast.loadFailure",{message:s("settings.toast.missingConfig")}),variant:"error"});return}if(I()){E(!0);try{const t=Number(d.port),a=Number(d.logRetentionDays),i=Number(d.bodyLimitMb),m={...r,port:t,host:d.host.trim()||void 0,logRetentionDays:a,storeRequestPayloads:d.storeRequestPayloads,storeResponsePayloads:d.storeResponsePayloads,logLevel:d.logLevel,requestLogging:d.requestLogging,responseLogging:d.responseLogging,bodyLimit:Math.max(1,Math.floor(i*1024*1024))},{webAuth:ie,...se}=m;await N.put("/api/config",se),q({...m,webAuth:r.webAuth}),g({title:s("settings.toast.saveSuccess"),variant:"success"}),l.refetch()}catch(t){g({title:s("settings.toast.saveFailure",{message:t instanceof Error?t.message:"unknown"}),variant:"error"})}finally{E(!1)}}},$=()=>{r&&(h({port:String(r.port??""),host:r.host??"",logRetentionDays:String(r.logRetentionDays??30),storeRequestPayloads:typeof r.storeRequestPayloads=="boolean"?r.storeRequestPayloads:typeof r.storePayloads=="boolean"?r.storePayloads:!0,storeResponsePayloads:typeof r.storeResponsePayloads=="boolean"?r.storeResponsePayloads:typeof r.storePayloads=="boolean"?r.storePayloads:!0,logLevel:r.logLevel??"info",requestLogging:r.requestLogging!==!1,responseLogging:r.responseLogging??r.requestLogging!==!1,bodyLimitMb:(()=>{const t=r.bodyLimit;return typeof t=="number"&&Number.isFinite(t)&&t>0?String(Math.max(1,Math.round(t/(1024*1024)))):"10"})()}),S({}))},J=async()=>{var t;if(z()){O(!0);try{const a={enabled:n.enabled,username:n.username.trim()||void 0};n.password&&(a.password=n.password);const m=(t=(await N.post("/api/auth/web",a)).data)==null?void 0:t.auth;m&&(H(m),b({enabled:m.enabled,username:m.username??"",password:"",confirmPassword:""}),k({})),g({title:s("settings.auth.toast.success"),variant:"success"}),x.refetch()}catch(a){const i=a instanceof Error?a.message:"unknown";g({title:s("settings.auth.toast.failure",{message:i}),variant:"error"})}finally{O(!1)}}},U=()=>{o&&(b({enabled:o.enabled,username:o.username??"",password:"",confirmPassword:""}),k({}))},X=async()=>{if(!L){g({title:s("settings.toast.copyFailure",{message:s("settings.file.unknown")}),variant:"error"});return}try{await navigator.clipboard.writeText(L),g({title:s("settings.toast.copySuccess"),variant:"success"})}catch(t){g({title:s("settings.toast.copyFailure",{message:t instanceof Error?t.message:"unknown"}),variant:"error"})}},Y=async()=>{F(!0);try{const a=(await N.post("/api/logs/cleanup")).data.deleted??0;g({title:a>0?s("settings.toast.cleanupSuccess",{count:a}):s("settings.toast.cleanupNone"),variant:"success"})}catch(t){g({title:s("settings.toast.cleanupFailure",{message:t instanceof Error?t.message:"unknown"}),variant:"error"})}finally{F(!1)}},Z=async()=>{D(!0);try{const t=await N.post("/api/logs/clear"),{deleted:a,metricsCleared:i}=t.data;g({title:s("settings.toast.clearAllSuccess",{logs:a,metrics:i}),variant:"success"})}catch(t){g({title:s("settings.toast.clearAllFailure",{message:t instanceof Error?t.message:"unknown"}),variant:"error"})}finally{D(!1)}},ee=l.isPending||!r&&l.isFetching;return e.jsxs("div",{className:"flex flex-col gap-8",children:[e.jsx(ne,{icon:e.jsx(re,{className:"h-6 w-6","aria-hidden":"true"}),title:s("settings.title"),description:s("settings.description"),actions:r?e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("button",{type:"button",onClick:$,className:c(R,"h-10 rounded-full px-4"),disabled:P,children:s("common.actions.reset")}),e.jsx("button",{type:"button",onClick:W,className:c(K,"h-10 rounded-full px-4"),disabled:P,children:s(P?"common.actions.saving":"common.actions.save")})]}):null}),ee?e.jsx(v,{className:"flex min-h-[220px] items-center justify-center",children:e.jsx(V,{})}):r?e.jsxs(e.Fragment,{children:[e.jsxs(v,{title:s("settings.sections.basics"),contentClassName:"grid w-full gap-5 md:grid-cols-2",children:[e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.fields.port")}),e.jsx("input",{type:"number",min:1,max:65535,value:d.port,onChange:t=>j("port")(t.target.value),className:c(f,"h-11"),"aria-invalid":!!p.port}),p.port?e.jsx("span",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:p.port}):null]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.fields.host")}),e.jsx("input",{value:d.host,onChange:t=>j("host")(t.target.value),placeholder:s("settings.fields.hostPlaceholder"),className:c(f,"h-11")})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.fields.retention")}),e.jsx("input",{type:"number",min:1,max:365,value:d.logRetentionDays,onChange:t=>j("logRetentionDays")(t.target.value),className:c(f,"h-11"),"aria-invalid":!!p.logRetentionDays}),p.logRetentionDays?e.jsx("span",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:p.logRetentionDays}):null]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.fields.bodyLimit")}),e.jsx("input",{type:"number",min:1,max:2048,value:d.bodyLimitMb,onChange:t=>j("bodyLimitMb")(t.target.value),className:c(f,"h-11"),"aria-invalid":!!p.bodyLimitMb}),e.jsx("p",{className:c(y,"text-[11px] leading-relaxed"),children:s("settings.fields.bodyLimitHint")}),p.bodyLimitMb?e.jsx("span",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:p.bodyLimitMb}):null]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.fields.logLevel")}),e.jsx("select",{value:d.logLevel,onChange:t=>h(a=>({...a,logLevel:t.target.value})),className:"h-10",children:oe.map(t=>e.jsx("option",{value:t.value,children:s(`settings.fields.logLevelOption.${t.labelKey}`)},t.value))})]}),e.jsxs("div",{className:"md:col-span-2 grid gap-4 sm:grid-cols-2",children:[e.jsxs("label",{className:"flex items-start gap-3 rounded-2xl border border-slate-200/70 bg-white/80 px-4 py-3 shadow-sm shadow-slate-200/60 transition hover:border-slate-300 dark:border-slate-700/60 dark:bg-slate-900/70 dark:hover:border-slate-500/60",children:[e.jsx("input",{type:"checkbox",checked:d.storeRequestPayloads,onChange:t=>h(a=>({...a,storeRequestPayloads:t.target.checked})),className:"mt-1 h-4 w-4 rounded border-slate-300 text-blue-600 focus:ring-blue-400 dark:border-slate-600"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-700 dark:text-slate-100",children:s("settings.fields.storeRequestPayloads")}),e.jsx("p",{className:c(y,"text-xs"),children:s("settings.fields.storeRequestPayloadsHint")})]})]}),e.jsxs("label",{className:"flex items-start gap-3 rounded-2xl border border-slate-200/70 bg-white/80 px-4 py-3 shadow-sm shadow-slate-200/60 transition hover:border-slate-300 dark:border-slate-700/60 dark:bg-slate-900/70 dark:hover:border-slate-500/60",children:[e.jsx("input",{type:"checkbox",checked:d.storeResponsePayloads,onChange:t=>h(a=>({...a,storeResponsePayloads:t.target.checked})),className:"mt-1 h-4 w-4 rounded border-slate-300 text-blue-600 focus:ring-blue-400 dark:border-slate-600"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-700 dark:text-slate-100",children:s("settings.fields.storeResponsePayloads")}),e.jsx("p",{className:c(y,"text-xs"),children:s("settings.fields.storeResponsePayloadsHint")})]})]}),e.jsxs("label",{className:"flex items-start gap-3 rounded-2xl border border-slate-200/70 bg-white/80 px-4 py-3 shadow-sm shadow-slate-200/60 transition hover:border-slate-300 dark:border-slate-700/60 dark:bg-slate-900/70 dark:hover:border-slate-500/60",children:[e.jsx("input",{type:"checkbox",checked:d.requestLogging,onChange:t=>h(a=>({...a,requestLogging:t.target.checked})),className:"mt-1 h-4 w-4 rounded border-slate-300 text-blue-600 focus:ring-blue-400 dark:border-slate-600"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-700 dark:text-slate-100",children:s("settings.fields.requestLogging")}),e.jsx("p",{className:c(y,"text-xs"),children:s("settings.fields.requestLoggingHint")})]})]}),e.jsxs("label",{className:"flex items-start gap-3 rounded-2xl border border-slate-200/70 bg-white/80 px-4 py-3 shadow-sm shadow-slate-200/60 transition hover:border-slate-300 dark:border-slate-700/60 dark:bg-slate-900/70 dark:hover:border-slate-500/60",children:[e.jsx("input",{type:"checkbox",checked:d.responseLogging,onChange:t=>h(a=>({...a,responseLogging:t.target.checked})),className:"mt-1 h-4 w-4 rounded border-slate-300 text-blue-600 focus:ring-blue-400 dark:border-slate-600"}),e.jsxs("div",{className:"space-y-1",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-700 dark:text-slate-100",children:s("settings.fields.responseLogging")}),e.jsx("p",{className:c(y,"text-xs"),children:s("settings.fields.responseLoggingHint")})]})]})]}),e.jsxs("div",{className:"md:col-span-2 rounded-2xl border border-slate-200/70 bg-white/80 px-4 py-3 text-sm text-slate-700 shadow-sm shadow-slate-200/60 dark:border-slate-700/60 dark:bg-slate-900/70 dark:text-slate-200",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.fields.defaults")}),e.jsx("p",{className:"mt-2 text-sm",children:Q??s("settings.defaults.none")})]})]}),e.jsx(v,{title:s("settings.sections.security"),description:s("settings.auth.description"),contentClassName:"space-y-5",children:x.isPending&&!o?e.jsx("div",{className:"flex min-h-[120px] items-center justify-center",children:e.jsx(V,{})}):e.jsxs("div",{className:"space-y-6",children:[e.jsx("div",{className:"rounded-2xl border border-slate-200/70 bg-white/90 p-5 shadow-sm shadow-slate-200/50 transition dark:border-slate-700/60 dark:bg-slate-900/80 dark:shadow-slate-900/40",children:e.jsxs("label",{className:"flex cursor-pointer select-none items-start gap-3",children:[e.jsx("input",{type:"checkbox",checked:n.enabled,onChange:t=>b(a=>({...a,enabled:t.target.checked})),className:"mt-1 h-5 w-5 rounded border-slate-300 bg-white text-blue-600 shadow-sm transition focus:ring-blue-400/40 dark:border-slate-600 dark:bg-slate-900 dark:text-blue-200"}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("span",{className:"text-sm font-semibold text-slate-800 dark:text-slate-100",children:s("settings.auth.enable")}),e.jsx("p",{className:c(y,"text-xs leading-relaxed"),children:s("settings.auth.enableHint")}),e.jsxs("div",{className:"flex flex-wrap gap-2 text-[11px] font-medium text-slate-500 dark:text-slate-400",children:[e.jsx("span",{className:"rounded-full bg-slate-100/90 px-3 py-1 shadow-sm shadow-slate-200/40 dark:bg-slate-800/70",children:"/ui"}),e.jsx("span",{className:"rounded-full bg-slate-100/90 px-3 py-1 shadow-sm shadow-slate-200/40 dark:bg-slate-800/70",children:"/api/*"}),e.jsx("span",{className:"rounded-full bg-slate-100/90 px-3 py-1 shadow-sm shadow-slate-200/40 dark:bg-slate-800/70",children:"Cookie Session"})]})]})]})}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-[minmax(0,1fr)_minmax(0,0.85fr)]",children:[e.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[e.jsxs("div",{className:"flex flex-col gap-2 sm:col-span-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.auth.username")}),e.jsx("input",{value:n.username,onChange:t=>b(a=>({...a,username:t.target.value})),placeholder:s("settings.auth.usernamePlaceholder"),className:c(f,"h-11 font-medium")}),w.username?e.jsx("span",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:w.username}):null]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.auth.password")}),e.jsx("input",{type:"password",value:n.password,disabled:!n.enabled,onChange:t=>b(a=>({...a,password:t.target.value})),placeholder:s("settings.auth.passwordPlaceholder"),className:c(f,"h-11 disabled:cursor-not-allowed disabled:bg-slate-100 dark:disabled:bg-slate-900/40")}),w.password?e.jsx("span",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:w.password}):e.jsx("span",{className:c(y,"text-xs leading-relaxed"),children:s(T?"settings.auth.passwordHintRequired":"settings.auth.passwordHintOptional")})]}),e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("span",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400",children:s("settings.auth.confirmPassword")}),e.jsx("input",{type:"password",value:n.confirmPassword,disabled:!n.enabled,onChange:t=>b(a=>({...a,confirmPassword:t.target.value})),placeholder:s("settings.auth.confirmPasswordPlaceholder"),className:c(f,"h-11 disabled:cursor-not-allowed disabled:bg-slate-100 dark:disabled:bg-slate-900/40")}),w.confirmPassword?e.jsx("span",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:w.confirmPassword}):null]})]}),e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"rounded-2xl border border-slate-200/70 bg-white/95 px-5 py-4 text-sm shadow-sm shadow-slate-200/40 dark:border-slate-700/60 dark:bg-slate-900/75 dark:text-slate-200 dark:shadow-slate-900/40",children:[e.jsx("div",{className:"text-xs font-semibold uppercase tracking-wide text-slate-500/90 dark:text-slate-400",children:s("settings.auth.status")}),e.jsx("div",{className:"mt-2 text-base font-semibold text-slate-800 dark:text-slate-100",children:o!=null&&o.enabled?s("settings.auth.statusEnabled"):s("settings.auth.statusDisabled")}),o!=null&&o.username?e.jsxs("div",{className:"mt-3 rounded-2xl bg-blue-50/80 px-3 py-2 text-xs font-medium text-blue-700 shadow-sm shadow-blue-200/40 dark:bg-blue-500/20 dark:text-blue-100",children:[s("settings.auth.username"),": ",o.username]}):null]}),e.jsx("div",{className:"rounded-2xl border border-slate-200/60 bg-slate-50/80 px-5 py-4 text-xs leading-relaxed text-slate-600 shadow-sm shadow-slate-200/40 dark:border-slate-700/50 dark:bg-slate-800/60 dark:text-slate-300",children:s(T?"settings.auth.passwordHintRequired":"settings.auth.passwordHintOptional")})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-3",children:[e.jsx("button",{type:"button",onClick:J,className:c(K,"h-10 rounded-full px-6"),disabled:C,children:s(C?"common.actions.saving":"settings.auth.actions.save")}),e.jsx("button",{type:"button",onClick:U,className:c(R,"h-10 rounded-full px-4"),disabled:C,children:s("common.actions.reset")})]})]})}),e.jsx(v,{title:s("settings.sections.configFile"),description:s("settings.file.description"),actions:e.jsxs("button",{type:"button",onClick:X,className:c(R,"h-10 rounded-full px-4"),children:[e.jsx(le,{className:"h-4 w-4","aria-hidden":"true"}),s("common.actions.copy")]}),contentClassName:"gap-3",children:e.jsx("code",{className:"block break-all rounded-2xl border border-slate-200/60 bg-slate-100 px-4 py-3 text-xs text-slate-700 dark:border-slate-700/60 dark:bg-slate-900 dark:text-slate-200",children:L||s("settings.file.unknown")})}),e.jsxs(v,{title:s("settings.sections.cleanup"),description:s("settings.cleanup.description"),contentClassName:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.jsx("button",{type:"button",onClick:Y,className:c(B,"px-5"),disabled:A,children:s(A?"common.actions.cleaning":"common.actions.cleanup")}),e.jsx("button",{type:"button",onClick:Z,className:c(B,"px-5 border-red-500/70 bg-red-600 text-white hover:bg-red-600/90 dark:border-red-500 dark:bg-red-500 dark:text-white"),disabled:M,children:s(M?"settings.cleanup.clearingAll":"settings.cleanup.clearAll")})]}),e.jsx("p",{className:"text-xs font-medium text-red-500 dark:text-red-300",children:s("settings.cleanup.clearAllWarning")})]})]}):e.jsx(v,{children:e.jsx("p",{className:"text-sm font-medium text-red-500 dark:text-red-300",children:s("settings.toast.missingConfig")})})]})}export{me as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 475px){.container{max-width:475px}}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}@media (min-width: 1600px){.container{max-width:1600px}}@media (min-width: 1920px){.container{max-width:1920px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-y-0{top:0;bottom:0}.bottom-32{bottom:8rem}.left-0{left:0}.left-10{left:2.5rem}.right-0{right:0}.right-16{right:4rem}.right-6{right:1.5rem}.top-0{top:0}.top-20{top:5rem}.top-6{top:1.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}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.mt-7{margin-top:1.75rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-36{height:9rem}.h-4{height:1rem}.h-40{height:10rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-56{max-height:14rem}.max-h-64{max-height:16rem}.max-h-80{max-height:20rem}.max-h-\[60vh\]{max-height:60vh}.min-h-\[120px\]{min-height:120px}.min-h-\[200px\]{min-height:200px}.min-h-\[220px\]{min-height:220px}.min-h-\[320px\]{min-height:320px}.min-h-\[44px\]{min-height:44px}.min-h-\[96px\]{min-height:96px}.min-h-screen{min-height:100vh}.w-1\.5{width:.375rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-\[240px\]{min-width:240px}.min-w-full{min-width:100%}.max-w-3xl{max-width:48rem}.max-w-\[1600px\]{max-width:1600px}.max-w-\[360px\]{max-width:360px}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fade-in .2s ease-out}@keyframes slide-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-down{animation:slide-down .3s ease-out}@keyframes slide-up{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-slide-up{animation:slide-up .3s ease-out}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-wait{cursor:wait}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.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{gap:0px}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-3{row-gap:.75rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-slate-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(226 232 240 / var(--tw-divide-opacity, 1))}.divide-slate-200\/50>:not([hidden])~:not([hidden]){border-color:#e2e8f080}.divide-slate-200\/60>:not([hidden])~:not([hidden]){border-color:#e2e8f099}.divide-slate-200\/70>:not([hidden])~:not([hidden]){border-color:#e2e8f0b3}.divide-slate-200\/80>:not([hidden])~:not([hidden]){border-color:#e2e8f0cc}.self-start{align-self:flex-start}.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;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[3px\]{border-width:3px}.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-blue-200\/40{border-color:#bfdbfe66}.border-blue-200\/50{border-color:#bfdbfe80}.border-blue-200\/60{border-color:#bfdbfe99}.border-blue-400{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.border-blue-500\/30{border-color:#3b82f64d}.border-blue-600{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-current{border-color:currentColor}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-green-200\/60{border-color:#bbf7d099}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-200\/50{border-color:#fecaca80}.border-red-200\/70{border-color:#fecacab3}.border-red-300\/50{border-color:#fca5a580}.border-red-500\/70{border-color:#ef4444b3}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/20{border-color:#e2e8f033}.border-slate-200\/30{border-color:#e2e8f04d}.border-slate-200\/40{border-color:#e2e8f066}.border-slate-200\/50{border-color:#e2e8f080}.border-slate-200\/60{border-color:#e2e8f099}.border-slate-200\/70{border-color:#e2e8f0b3}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-300\/50{border-color:#cbd5e180}.border-slate-300\/60{border-color:#cbd5e199}.border-t-blue-600{--tw-border-opacity: 1;border-top-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.bg-amber-500\/15{background-color:#f59e0b26}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-100\/50{background-color:#dbeafe80}.bg-blue-100\/80{background-color:#dbeafecc}.bg-blue-50\/70{background-color:#eff6ffb3}.bg-blue-50\/80{background-color:#eff6ffcc}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-500\/15{background-color:#3b82f626}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-current{background-color:currentColor}.bg-emerald-100\/80{background-color:#d1fae5cc}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-500\/15{background-color:#10b98126}.bg-emerald-500\/20{background-color:#10b98133}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-100\/50{background-color:#dcfce780}.bg-green-500{--tw-bg-opacity: 1;background-color:rgb(34 197 94 / var(--tw-bg-opacity, 1))}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-100\/80{background-color:#fee2e2cc}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/80{background-color:#fef2f2cc}.bg-red-500\/15{background-color:#ef444426}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-100\/50{background-color:#f1f5f980}.bg-slate-100\/70{background-color:#f1f5f9b3}.bg-slate-100\/80{background-color:#f1f5f9cc}.bg-slate-100\/90{background-color:#f1f5f9e6}.bg-slate-200\/40{background-color:#e2e8f066}.bg-slate-200\/50{background-color:#e2e8f080}.bg-slate-200\/80{background-color:#e2e8f0cc}.bg-slate-300\/35{background-color:#cbd5e159}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/30{background-color:#f8fafc4d}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-900\/60{background-color:#0f172a99}.bg-slate-900\/80{background-color:#0f172acc}.bg-slate-900\/90{background-color:#0f172ae6}.bg-slate-900\/95{background-color:#0f172af2}.bg-slate-950\/60{background-color:#02061799}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/60{background-color:#fff9}.bg-white\/70{background-color:#ffffffb3}.bg-white\/75{background-color:#ffffffbf}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-\[radial-gradient\(circle_at_top\,_rgba\(15\,23\,42\,0\.08\)\,_transparent_55\%\)\]{background-image:radial-gradient(circle at top,rgba(15,23,42,.08),transparent 55%)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-50\/80{--tw-gradient-from: rgb(239 246 255 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-50\/90{--tw-gradient-from: rgb(239 246 255 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500\/20{--tw-gradient-from: rgb(59 130 246 / .2) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-600\/15{--tw-gradient-from: rgb(37 99 235 / .15) var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-50\/80{--tw-gradient-from: rgb(240 253 244 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-50{--tw-gradient-from: #fef2f2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-100{--tw-gradient-from: #f1f5f9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(241 245 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-50\/80{--tw-gradient-from: rgb(248 250 252 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-900{--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/80{--tw-gradient-from: rgb(255 255 255 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/85{--tw-gradient-from: rgb(255 255 255 / .85) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/90{--tw-gradient-from: rgb(255 255 255 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/95{--tw-gradient-from: rgb(255 255 255 / .95) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-blue-600{--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #2563eb var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-slate-800{--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #1e293b var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/60{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .6) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/80{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .8) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/90{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-blue-700{--tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position)}.to-emerald-50\/60{--tw-gradient-to: rgb(236 253 245 / .6) var(--tw-gradient-to-position)}.to-indigo-50{--tw-gradient-to: #eef2ff var(--tw-gradient-to-position)}.to-indigo-50\/60{--tw-gradient-to: rgb(238 242 255 / .6) var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-indigo-500\/20{--tw-gradient-to: rgb(99 102 241 / .2) var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-indigo-600\/10{--tw-gradient-to: rgb(79 70 229 / .1) var(--tw-gradient-to-position)}.to-purple-50\/80{--tw-gradient-to: rgb(250 245 255 / .8) var(--tw-gradient-to-position)}.to-red-100{--tw-gradient-to: #fee2e2 var(--tw-gradient-to-position)}.to-slate-100\/70{--tw-gradient-to: rgb(241 245 249 / .7) var(--tw-gradient-to-position)}.to-slate-200{--tw-gradient-to: #e2e8f0 var(--tw-gradient-to-position)}.to-slate-50{--tw-gradient-to: #f8fafc var(--tw-gradient-to-position)}.to-slate-700{--tw-gradient-to: #334155 var(--tw-gradient-to-position)}.to-white\/70{--tw-gradient-to: rgb(255 255 255 / .7) var(--tw-gradient-to-position)}.to-white\/75{--tw-gradient-to: rgb(255 255 255 / .75) var(--tw-gradient-to-position)}.to-white\/80{--tw-gradient-to: rgb(255 255 255 / .8) var(--tw-gradient-to-position)}.to-white\/85{--tw-gradient-to: rgb(255 255 255 / .85) var(--tw-gradient-to-position)}.to-white\/90{--tw-gradient-to: rgb(255 255 255 / .9) var(--tw-gradient-to-position)}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:0}.p-1\.5{padding:.375rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.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-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-10{padding-bottom:2.5rem}.pb-8{padding-bottom:2rem}.pr-10{padding-right:2.5rem}.pt-2{padding-top:.5rem}.pt-6{padding-top:1.5rem}.pt-9{padding-top:2.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.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}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-6{line-height:1.5rem}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-\[0\.12em\]{letter-spacing:.12em}.tracking-\[0\.14em\]{letter-spacing:.14em}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / 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-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-900{--tw-text-opacity: 1;color:rgb(6 78 59 / 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-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.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-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-50{--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-500\/90{color:#64748be6}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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)}.shadow-blue-100\/40{--tw-shadow-color: rgb(219 234 254 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-100\/50{--tw-shadow-color: rgb(219 234 254 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-200\/30{--tw-shadow-color: rgb(191 219 254 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-200\/40{--tw-shadow-color: rgb(191 219 254 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-200\/50{--tw-shadow-color: rgb(191 219 254 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-500\/20{--tw-shadow-color: rgb(59 130 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-500\/30{--tw-shadow-color: rgb(59 130 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-blue-600\/30{--tw-shadow-color: rgb(37 99 235 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-emerald-500\/30{--tw-shadow-color: rgb(16 185 129 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-100\/50{--tw-shadow-color: rgb(220 252 231 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-green-500\/30{--tw-shadow-color: rgb(34 197 94 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-200\/30{--tw-shadow-color: rgb(254 202 202 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-200\/40{--tw-shadow-color: rgb(254 202 202 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/15{--tw-shadow-color: rgb(226 232 240 / .15);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/20{--tw-shadow-color: rgb(226 232 240 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/25{--tw-shadow-color: rgb(226 232 240 / .25);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/30{--tw-shadow-color: rgb(226 232 240 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/40{--tw-shadow-color: rgb(226 232 240 / .4);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/50{--tw-shadow-color: rgb(226 232 240 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/60{--tw-shadow-color: rgb(226 232 240 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-200\/70{--tw-shadow-color: rgb(226 232 240 / .7);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-400\/30{--tw-shadow-color: rgb(148 163 184 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-900\/30{--tw-shadow-color: rgb(15 23 42 / .3);--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-900\/40{--tw-shadow-color: rgb(15 23 42 / .4);--tw-shadow: var(--tw-shadow-colored)}.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);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);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-amber-500\/25{--tw-ring-color: rgb(245 158 11 / .25)}.ring-blue-200\/50{--tw-ring-color: rgb(191 219 254 / .5)}.ring-blue-400\/30{--tw-ring-color: rgb(96 165 250 / .3)}.ring-blue-500\/20{--tw-ring-color: rgb(59 130 246 / .2)}.ring-blue-500\/25{--tw-ring-color: rgb(59 130 246 / .25)}.ring-blue-500\/30{--tw-ring-color: rgb(59 130 246 / .3)}.ring-emerald-200\/50{--tw-ring-color: rgb(167 243 208 / .5)}.ring-emerald-500\/25{--tw-ring-color: rgb(16 185 129 / .25)}.ring-red-200\/50{--tw-ring-color: rgb(254 202 202 / .5)}.ring-red-500\/25{--tw-ring-color: rgb(239 68 68 / .25)}.ring-slate-200\/30{--tw-ring-color: rgb(226 232 240 / .3)}.ring-slate-200\/40{--tw-ring-color: rgb(226 232 240 / .4)}.ring-slate-200\/50{--tw-ring-color: rgb(226 232 240 / .5)}.ring-slate-200\/60{--tw-ring-color: rgb(226 232 240 / .6)}.blur-3xl{--tw-blur: blur(64px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-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-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-150{transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}:root{color-scheme:light dark;--color-primary-50: 239 246 255;--color-primary-100: 219 234 254;--color-primary-200: 191 219 254;--color-primary-300: 147 197 253;--color-primary-400: 96 165 250;--color-primary-500: 59 130 246;--color-primary-600: 37 99 235;--color-primary-700: 29 78 216;--color-primary-800: 30 64 175;--color-primary-900: 30 58 138;--color-primary-950: 23 37 84;--glass-bg: rgba(255, 255, 255, .8);--glass-border: rgba(255, 255, 255, .2);--glass-shadow: rgba(0, 0, 0, .1)}:root,html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;min-height:100%}[data-theme=dark]{--glass-bg: rgba(15, 23, 42, .8);--glass-border: rgba(255, 255, 255, .1);--glass-shadow: rgba(0, 0, 0, .3)}html,body,#root{height:100%;width:100%;overflow-x:hidden;max-width:100vw;position:relative}body{min-height:100vh;background-image:linear-gradient(to bottom right,var(--tw-gradient-stops));--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(239 246 255 / .3) var(--tw-gradient-via-position), var(--tw-gradient-to);--tw-gradient-to: rgb(238 242 255 / .2) var(--tw-gradient-to-position);--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1));-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}body:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1));--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}body{background-image:radial-gradient(circle at 25% 15%,rgba(59,130,246,.08),transparent 50%),radial-gradient(circle at 75% 10%,rgba(139,92,246,.06),transparent 45%),radial-gradient(circle at 50% 80%,rgba(236,72,153,.04),transparent 35%);background-attachment:fixed;background-size:100% 100%,80% 80%,60% 60%;background-color:#f8fafc;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background-image:radial-gradient(rgba(148,163,184,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.03) 1px,transparent 1px);background-size:32px 32px,32px 32px;opacity:.8;pointer-events:none}@media (prefers-color-scheme: dark){body{background-image:radial-gradient(circle at 25% 15%,rgba(59,130,246,.12),transparent 50%),radial-gradient(circle at 75% 10%,rgba(139,92,246,.1),transparent 45%),radial-gradient(circle at 50% 80%,rgba(236,72,153,.06),transparent 35%);background-color:#020617}body:before{background-image:radial-gradient(rgba(148,163,184,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.02) 1px,transparent 1px);opacity:.4}}input[type=text],input[type=number],input[type=search],input[type=email],input[type=url],input[type=date],input[type=time],input[type=datetime-local],input[type=password],select,textarea{border-radius:1rem;border-width:1px;border-color:#e2e8f080;background-color:#ffffffe6;padding:.75rem 1rem;font-size:.875rem;line-height:1.25rem;--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(226 232 240 / .3);--tw-shadow: var(--tw-shadow-colored);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}input[type=text]:focus,input[type=number]:focus,input[type=search]:focus,input[type=email]:focus,input[type=url]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus,input[type=password]:focus,select:focus,textarea:focus{border-color:#60a5fab3;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(191 219 254 / .4);--tw-shadow: var(--tw-shadow-colored);outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-color: rgb(96 165 250 / .2)}input[type=text]:is([data-theme=dark] *),input[type=number]:is([data-theme=dark] *),input[type=search]:is([data-theme=dark] *),input[type=email]:is([data-theme=dark] *),input[type=url]:is([data-theme=dark] *),input[type=date]:is([data-theme=dark] *),input[type=time]:is([data-theme=dark] *),input[type=datetime-local]:is([data-theme=dark] *),input[type=password]:is([data-theme=dark] *),select:is([data-theme=dark] *),textarea:is([data-theme=dark] *){border-color:#33415580;background-color:#0f172ae6;--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-shadow-color: rgb(15 23 42 / .3);--tw-shadow: var(--tw-shadow-colored)}input[type=text]:focus:is([data-theme=dark] *),input[type=number]:focus:is([data-theme=dark] *),input[type=search]:focus:is([data-theme=dark] *),input[type=email]:focus:is([data-theme=dark] *),input[type=url]:focus:is([data-theme=dark] *),input[type=date]:focus:is([data-theme=dark] *),input[type=time]:focus:is([data-theme=dark] *),input[type=datetime-local]:focus:is([data-theme=dark] *),input[type=password]:focus:is([data-theme=dark] *),select:focus:is([data-theme=dark] *),textarea:focus:is([data-theme=dark] *){border-color:#60a5fab3;--tw-ring-color: rgb(96 165 250 / .2)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background-color:#f1f5f980}:is([data-theme=dark] *)::-webkit-scrollbar-track{background-color:#1e293b80}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background-color:#cbd5e1b3}:is([data-theme=dark] *)::-webkit-scrollbar-thumb{background-color:#475569b3}::-webkit-scrollbar-thumb{border-radius:10px}::-webkit-scrollbar-thumb:hover{background-color:#94a3b8cc}:is([data-theme=dark] *)::-webkit-scrollbar-thumb:hover{background-color:#64748bcc}*:focus-visible{outline:2px solid transparent;outline-offset:2px;--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);--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fff}*:focus-visible:is([data-theme=dark] *){--tw-ring-offset-color: #020617}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.gradient-text{background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #9333ea var(--tw-gradient-to-position);-webkit-background-clip:text;background-clip:text;color:transparent}.gradient-text:is([data-theme=dark] *){--tw-gradient-from: #60a5fa var(--tw-gradient-from-position);--tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #c084fc var(--tw-gradient-to-position)}.glass{backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:0 8px 32px var(--glass-shadow)}.hover-lift{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s;transition-timing-function:cubic-bezier(0,0,.2,1)}.hover-lift:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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)}*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}::-moz-selection{background-color:#3b82f633;--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}::selection{background-color:#3b82f633;--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}:is([data-theme=dark] *)::-moz-selection{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}:is([data-theme=dark] *)::selection{--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}@media (min-resolution: 192dpi){.fine-detail{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@media (hover: none) and (pointer: coarse){.hover-lift:hover{transform:none}button,a,[role=button]{min-height:44px;min-width:44px}}.table-container{width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;transform:translateZ(0)}@supports (-webkit-appearance: none){.table-container{-webkit-overflow-scrolling:auto;scrollbar-width:auto}}.table-container::-webkit-scrollbar{height:12px!important;width:12px!important;display:block!important}.table-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.table-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media (prefers-color-scheme: dark){.table-container::-webkit-scrollbar-track{background:#1e293b}.table-container::-webkit-scrollbar-thumb{background:#475569}.table-container::-webkit-scrollbar-thumb:hover{background:#64748b}}.gpu-accelerated{will-change:opacity}.responsive-container{width:100%;max-width:1600px;margin:0 auto;padding:0 1rem}@media (min-width: 640px){.responsive-container{padding:0 2rem}}@media (min-width: 1921px){.responsive-container{max-width:1800px;padding:0 3rem}}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-200:hover{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.hover\:border-blue-200\/60:hover{border-color:#bfdbfe99}.hover\:border-slate-200\/70:hover{border-color:#e2e8f0b3}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:border-slate-300\/70:hover{border-color:#cbd5e1b3}.hover\:bg-blue-50\/50:hover{background-color:#eff6ff80}.hover\:bg-blue-50\/70:hover{background-color:#eff6ffb3}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-500\/90:hover{background-color:#10b981e6}.hover\:bg-red-500\/10:hover{background-color:#ef44441a}.hover\:bg-red-600\/90:hover{background-color:#dc2626e6}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100\/80:hover{background-color:#f1f5f9cc}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-300:hover{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}.hover\:bg-slate-50\/80:hover{background-color:#f8fafccc}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/80:hover{background-color:#fffc}.hover\:bg-white\/90:hover{background-color:#ffffffe6}.hover\:bg-white\/95:hover{background-color:#fffffff2}.hover\:bg-gradient-to-r:hover{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.hover\:from-blue-700:hover{--tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-red-100:hover{--tw-gradient-from: #fee2e2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 226 226 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-white:hover{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:via-white\/95:hover{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .95) var(--tw-gradient-via-position), var(--tw-gradient-to)}.hover\:to-blue-800:hover{--tw-gradient-to: #1e40af var(--tw-gradient-to-position)}.hover\:to-red-200:hover{--tw-gradient-to: #fecaca var(--tw-gradient-to-position)}.hover\:to-white\/90:hover{--tw-gradient-to: rgb(255 255 255 / .9) var(--tw-gradient-to-position)}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-2xl:hover{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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)}.hover\:shadow-blue-200\/40:hover{--tw-shadow-color: rgb(191 219 254 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-blue-600\/40:hover{--tw-shadow-color: rgb(37 99 235 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-red-200\/40:hover{--tw-shadow-color: rgb(254 202 202 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-slate-200\/30:hover{--tw-shadow-color: rgb(226 232 240 / .3);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-slate-200\/40:hover{--tw-shadow-color: rgb(226 232 240 / .4);--tw-shadow: var(--tw-shadow-colored)}.hover\:shadow-slate-200\/50:hover{--tw-shadow-color: rgb(226 232 240 / .5);--tw-shadow: var(--tw-shadow-colored)}.focus\:not-sr-only:focus{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.focus\:absolute:focus{position:absolute}.focus\:z-50:focus{z-index:50}.focus\:m-4:focus{margin:1rem}.focus\:rounded-md:focus{border-radius:.375rem}.focus\:border-blue-400\/70:focus{border-color:#60a5fab3}.focus\:border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:bg-blue-600:focus{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.focus\:bg-white:focus{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.focus\:px-4:focus{padding-left:1rem;padding-right:1rem}.focus\:py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus\:text-white:focus{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.focus\:shadow-md:focus{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:shadow-blue-200\/40:focus{--tw-shadow-color: rgb(191 219 254 / .4);--tw-shadow: var(--tw-shadow-colored)}.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-200:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.focus\:ring-blue-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1))}.focus\:ring-blue-400\/20:focus{--tw-ring-color: rgb(96 165 250 / .2)}.focus\:ring-blue-400\/30:focus{--tw-ring-color: rgb(96 165 250 / .3)}.focus\:ring-blue-400\/40:focus{--tw-ring-color: rgb(96 165 250 / .4)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-blue-500\/30:focus{--tw-ring-color: rgb(59 130 246 / .3)}.focus\:ring-blue-500\/50:focus{--tw-ring-color: rgb(59 130 246 / .5)}.focus\:ring-red-500\/30:focus{--tw-ring-color: rgb(239 68 68 / .3)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-slate-100:disabled{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.disabled\:text-slate-400:disabled{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.dark\:divide-slate-700:is([data-theme=dark] *)>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(51 65 85 / var(--tw-divide-opacity, 1))}.dark\:divide-slate-700\/50:is([data-theme=dark] *)>:not([hidden])~:not([hidden]){border-color:#33415580}.dark\:divide-slate-700\/60:is([data-theme=dark] *)>:not([hidden])~:not([hidden]){border-color:#33415599}.dark\:divide-slate-700\/80:is([data-theme=dark] *)>:not([hidden])~:not([hidden]){border-color:#334155cc}.dark\:divide-slate-800\/60:is([data-theme=dark] *)>:not([hidden])~:not([hidden]){border-color:#1e293b99}.dark\:border-blue-400:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.dark\:border-blue-400\/20:is([data-theme=dark] *){border-color:#60a5fa33}.dark\:border-blue-400\/30:is([data-theme=dark] *){border-color:#60a5fa4d}.dark\:border-blue-500\/30:is([data-theme=dark] *){border-color:#3b82f64d}.dark\:border-blue-700\/60:is([data-theme=dark] *){border-color:#1d4ed899}.dark\:border-blue-900\/30:is([data-theme=dark] *){border-color:#1e3a8a4d}.dark\:border-emerald-700:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(4 120 87 / var(--tw-border-opacity, 1))}.dark\:border-green-700\/60:is([data-theme=dark] *){border-color:#15803d99}.dark\:border-red-500:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.dark\:border-red-500\/30:is([data-theme=dark] *){border-color:#ef44444d}.dark\:border-red-500\/40:is([data-theme=dark] *){border-color:#ef444466}.dark\:border-red-700:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.dark\:border-red-800\/50:is([data-theme=dark] *){border-color:#991b1b80}.dark\:border-red-800\/70:is([data-theme=dark] *){border-color:#991b1bb3}.dark\:border-slate-600:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(71 85 105 / var(--tw-border-opacity, 1))}.dark\:border-slate-600\/50:is([data-theme=dark] *){border-color:#47556980}.dark\:border-slate-600\/60:is([data-theme=dark] *){border-color:#47556999}.dark\:border-slate-700:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.dark\:border-slate-700\/30:is([data-theme=dark] *){border-color:#3341554d}.dark\:border-slate-700\/40:is([data-theme=dark] *){border-color:#33415566}.dark\:border-slate-700\/50:is([data-theme=dark] *){border-color:#33415580}.dark\:border-slate-700\/60:is([data-theme=dark] *){border-color:#33415599}.dark\:border-slate-800:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:border-slate-800\/20:is([data-theme=dark] *){border-color:#1e293b33}.dark\:border-slate-800\/30:is([data-theme=dark] *){border-color:#1e293b4d}.dark\:border-slate-800\/40:is([data-theme=dark] *){border-color:#1e293b66}.dark\:border-slate-800\/50:is([data-theme=dark] *){border-color:#1e293b80}.dark\:border-slate-800\/60:is([data-theme=dark] *){border-color:#1e293b99}.dark\:border-t-blue-300:is([data-theme=dark] *){--tw-border-opacity: 1;border-top-color:rgb(147 197 253 / var(--tw-border-opacity, 1))}.dark\:bg-amber-500\/20:is([data-theme=dark] *){background-color:#f59e0b33}.dark\:bg-blue-500\/20:is([data-theme=dark] *){background-color:#3b82f633}.dark\:bg-blue-900\/20:is([data-theme=dark] *){background-color:#1e3a8a33}.dark\:bg-blue-900\/30:is([data-theme=dark] *){background-color:#1e3a8a4d}.dark\:bg-blue-900\/40:is([data-theme=dark] *){background-color:#1e3a8a66}.dark\:bg-emerald-500\/20:is([data-theme=dark] *){background-color:#10b98133}.dark\:bg-emerald-500\/30:is([data-theme=dark] *){background-color:#10b9814d}.dark\:bg-emerald-900\/40:is([data-theme=dark] *){background-color:#064e3b66}.dark\:bg-green-900\/20:is([data-theme=dark] *){background-color:#14532d33}.dark\:bg-green-900\/40:is([data-theme=dark] *){background-color:#14532d66}.dark\:bg-indigo-900\/40:is([data-theme=dark] *){background-color:#312e8166}.dark\:bg-purple-500\/20:is([data-theme=dark] *){background-color:#a855f733}.dark\:bg-purple-900\/40:is([data-theme=dark] *){background-color:#581c8766}.dark\:bg-red-500:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.dark\:bg-red-500\/15:is([data-theme=dark] *){background-color:#ef444426}.dark\:bg-red-500\/20:is([data-theme=dark] *){background-color:#ef444433}.dark\:bg-red-900\/40:is([data-theme=dark] *){background-color:#7f1d1d66}.dark\:bg-slate-700\/30:is([data-theme=dark] *){background-color:#3341554d}.dark\:bg-slate-700\/50:is([data-theme=dark] *){background-color:#33415580}.dark\:bg-slate-800:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-800\/20:is([data-theme=dark] *){background-color:#1e293b33}.dark\:bg-slate-800\/30:is([data-theme=dark] *){background-color:#1e293b4d}.dark\:bg-slate-800\/40:is([data-theme=dark] *){background-color:#1e293b66}.dark\:bg-slate-800\/50:is([data-theme=dark] *){background-color:#1e293b80}.dark\:bg-slate-800\/60:is([data-theme=dark] *){background-color:#1e293b99}.dark\:bg-slate-800\/70:is([data-theme=dark] *){background-color:#1e293bb3}.dark\:bg-slate-800\/80:is([data-theme=dark] *){background-color:#1e293bcc}.dark\:bg-slate-800\/90:is([data-theme=dark] *){background-color:#1e293be6}.dark\:bg-slate-900:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900\/50:is([data-theme=dark] *){background-color:#0f172a80}.dark\:bg-slate-900\/60:is([data-theme=dark] *){background-color:#0f172a99}.dark\:bg-slate-900\/70:is([data-theme=dark] *){background-color:#0f172ab3}.dark\:bg-slate-900\/75:is([data-theme=dark] *){background-color:#0f172abf}.dark\:bg-slate-900\/80:is([data-theme=dark] *){background-color:#0f172acc}.dark\:bg-slate-900\/85:is([data-theme=dark] *){background-color:#0f172ad9}.dark\:bg-slate-900\/90:is([data-theme=dark] *){background-color:#0f172ae6}.dark\:bg-slate-900\/95:is([data-theme=dark] *){background-color:#0f172af2}.dark\:bg-slate-950\/60:is([data-theme=dark] *){background-color:#02061799}.dark\:bg-slate-950\/90:is([data-theme=dark] *){background-color:#020617e6}.dark\:from-blue-400:is([data-theme=dark] *){--tw-gradient-from: #60a5fa var(--tw-gradient-from-position);--tw-gradient-to: rgb(96 165 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-500:is([data-theme=dark] *){--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-500\/25:is([data-theme=dark] *){--tw-gradient-from: rgb(59 130 246 / .25) var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-900\/30:is([data-theme=dark] *){--tw-gradient-from: rgb(30 58 138 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 58 138 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-blue-900\/40:is([data-theme=dark] *){--tw-gradient-from: rgb(30 58 138 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 58 138 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-green-900\/30:is([data-theme=dark] *){--tw-gradient-from: rgb(20 83 45 / .3) var(--tw-gradient-from-position);--tw-gradient-to: rgb(20 83 45 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-red-900\/40:is([data-theme=dark] *){--tw-gradient-from: rgb(127 29 29 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(127 29 29 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-100:is([data-theme=dark] *){--tw-gradient-from: #f1f5f9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(241 245 249 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-800:is([data-theme=dark] *){--tw-gradient-from: #1e293b var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-800\/60:is([data-theme=dark] *){--tw-gradient-from: rgb(30 41 59 / .6) var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-900\/80:is([data-theme=dark] *){--tw-gradient-from: rgb(15 23 42 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-900\/85:is([data-theme=dark] *){--tw-gradient-from: rgb(15 23 42 / .85) var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-900\/90:is([data-theme=dark] *){--tw-gradient-from: rgb(15 23 42 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:from-slate-950\/95:is([data-theme=dark] *){--tw-gradient-from: rgb(2 6 23 / .95) var(--tw-gradient-from-position);--tw-gradient-to: rgb(2 6 23 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:via-blue-600:is([data-theme=dark] *){--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #2563eb var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:via-slate-900\/50:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(15 23 42 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:via-slate-900\/70:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(15 23 42 / .7) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:via-slate-900\/80:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(15 23 42 / .8) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:via-slate-950:is([data-theme=dark] *){--tw-gradient-to: rgb(2 6 23 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #020617 var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:to-blue-600:is([data-theme=dark] *){--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.dark\:to-emerald-900\/30:is([data-theme=dark] *){--tw-gradient-to: rgb(6 78 59 / .3) var(--tw-gradient-to-position)}.dark\:to-indigo-400:is([data-theme=dark] *){--tw-gradient-to: #818cf8 var(--tw-gradient-to-position)}.dark\:to-indigo-500:is([data-theme=dark] *){--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.dark\:to-indigo-500\/15:is([data-theme=dark] *){--tw-gradient-to: rgb(99 102 241 / .15) var(--tw-gradient-to-position)}.dark\:to-indigo-600:is([data-theme=dark] *){--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.dark\:to-indigo-900\/30:is([data-theme=dark] *){--tw-gradient-to: rgb(49 46 129 / .3) var(--tw-gradient-to-position)}.dark\:to-red-800\/40:is([data-theme=dark] *){--tw-gradient-to: rgb(153 27 27 / .4) var(--tw-gradient-to-position)}.dark\:to-slate-300:is([data-theme=dark] *){--tw-gradient-to: #cbd5e1 var(--tw-gradient-to-position)}.dark\:to-slate-700\/50:is([data-theme=dark] *){--tw-gradient-to: rgb(51 65 85 / .5) var(--tw-gradient-to-position)}.dark\:to-slate-800\/60:is([data-theme=dark] *){--tw-gradient-to: rgb(30 41 59 / .6) var(--tw-gradient-to-position)}.dark\:to-slate-800\/70:is([data-theme=dark] *){--tw-gradient-to: rgb(30 41 59 / .7) var(--tw-gradient-to-position)}.dark\:to-slate-900:is([data-theme=dark] *){--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.dark\:to-slate-900\/70:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / .7) var(--tw-gradient-to-position)}.dark\:to-slate-900\/75:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / .75) var(--tw-gradient-to-position)}.dark\:to-slate-900\/80:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / .8) var(--tw-gradient-to-position)}.dark\:to-slate-900\/85:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / .85) var(--tw-gradient-to-position)}.dark\:to-slate-950\/90:is([data-theme=dark] *){--tw-gradient-to: rgb(2 6 23 / .9) var(--tw-gradient-to-position)}.dark\:text-amber-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.dark\:text-amber-400:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.dark\:text-blue-100:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(219 234 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-200:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(191 219 254 / var(--tw-text-opacity, 1))}.dark\:text-blue-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(147 197 253 / var(--tw-text-opacity, 1))}.dark\:text-blue-400:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity, 1))}.dark\:text-emerald-200:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(167 243 208 / var(--tw-text-opacity, 1))}.dark\:text-emerald-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(110 231 183 / var(--tw-text-opacity, 1))}.dark\:text-emerald-400:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.dark\:text-green-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(134 239 172 / var(--tw-text-opacity, 1))}.dark\:text-green-400:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1))}.dark\:text-indigo-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(165 180 252 / var(--tw-text-opacity, 1))}.dark\:text-purple-200:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(233 213 255 / var(--tw-text-opacity, 1))}.dark\:text-purple-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(216 180 254 / var(--tw-text-opacity, 1))}.dark\:text-red-100:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(254 226 226 / var(--tw-text-opacity, 1))}.dark\:text-red-200:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(254 202 202 / var(--tw-text-opacity, 1))}.dark\:text-red-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.dark\:text-red-400:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-slate-100:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-200:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:text-slate-50:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(248 250 252 / var(--tw-text-opacity, 1))}.dark\:text-slate-500:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.dark\:text-slate-600:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.dark\:text-white:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:shadow-2xl:is([data-theme=dark] *){--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-lg:is([data-theme=dark] *){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-md:is([data-theme=dark] *){--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:shadow-xl:is([data-theme=dark] *){--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(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)}.dark\:shadow-black\/40:is([data-theme=dark] *){--tw-shadow-color: rgb(0 0 0 / .4);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-blue-500\/20:is([data-theme=dark] *){--tw-shadow-color: rgb(59 130 246 / .2);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-blue-500\/30:is([data-theme=dark] *){--tw-shadow-color: rgb(59 130 246 / .3);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-blue-900\/30:is([data-theme=dark] *){--tw-shadow-color: rgb(30 58 138 / .3);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-blue-900\/40:is([data-theme=dark] *){--tw-shadow-color: rgb(30 58 138 / .4);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-green-900\/30:is([data-theme=dark] *){--tw-shadow-color: rgb(20 83 45 / .3);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-indigo-900\/40:is([data-theme=dark] *){--tw-shadow-color: rgb(49 46 129 / .4);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-red-900\/30:is([data-theme=dark] *){--tw-shadow-color: rgb(127 29 29 / .3);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-slate-900\/20:is([data-theme=dark] *){--tw-shadow-color: rgb(15 23 42 / .2);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-slate-900\/30:is([data-theme=dark] *){--tw-shadow-color: rgb(15 23 42 / .3);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-slate-900\/40:is([data-theme=dark] *){--tw-shadow-color: rgb(15 23 42 / .4);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-slate-900\/50:is([data-theme=dark] *){--tw-shadow-color: rgb(15 23 42 / .5);--tw-shadow: var(--tw-shadow-colored)}.dark\:shadow-slate-900\/60:is([data-theme=dark] *){--tw-shadow-color: rgb(15 23 42 / .6);--tw-shadow: var(--tw-shadow-colored)}.dark\:ring-amber-400\/30:is([data-theme=dark] *){--tw-ring-color: rgb(251 191 36 / .3)}.dark\:ring-blue-400\/20:is([data-theme=dark] *){--tw-ring-color: rgb(96 165 250 / .2)}.dark\:ring-blue-400\/30:is([data-theme=dark] *){--tw-ring-color: rgb(96 165 250 / .3)}.dark\:ring-blue-700\/50:is([data-theme=dark] *){--tw-ring-color: rgb(29 78 216 / .5)}.dark\:ring-emerald-400\/30:is([data-theme=dark] *){--tw-ring-color: rgb(52 211 153 / .3)}.dark\:ring-emerald-700\/50:is([data-theme=dark] *){--tw-ring-color: rgb(4 120 87 / .5)}.dark\:ring-red-400\/30:is([data-theme=dark] *){--tw-ring-color: rgb(248 113 113 / .3)}.dark\:ring-red-700\/50:is([data-theme=dark] *){--tw-ring-color: rgb(185 28 28 / .5)}.dark\:ring-slate-700\/40:is([data-theme=dark] *){--tw-ring-color: rgb(51 65 85 / .4)}.dark\:ring-slate-700\/50:is([data-theme=dark] *){--tw-ring-color: rgb(51 65 85 / .5)}.dark\:ring-slate-700\/60:is([data-theme=dark] *){--tw-ring-color: rgb(51 65 85 / .6)}.dark\:hover\:border-blue-500\/40:hover:is([data-theme=dark] *){border-color:#3b82f666}.dark\:hover\:border-blue-500\/60:hover:is([data-theme=dark] *){border-color:#3b82f699}.dark\:hover\:border-slate-500\/60:hover:is([data-theme=dark] *){border-color:#64748b99}.dark\:hover\:border-slate-500\/70:hover:is([data-theme=dark] *){border-color:#64748bb3}.dark\:hover\:border-slate-600\/70:hover:is([data-theme=dark] *){border-color:#475569b3}.dark\:hover\:bg-blue-900\/20:hover:is([data-theme=dark] *){background-color:#1e3a8a33}.dark\:hover\:bg-slate-700:hover:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-700\/60:hover:is([data-theme=dark] *){background-color:#33415599}.dark\:hover\:bg-slate-700\/70:hover:is([data-theme=dark] *){background-color:#334155b3}.dark\:hover\:bg-slate-800:hover:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-800\/40:hover:is([data-theme=dark] *){background-color:#1e293b66}.dark\:hover\:bg-slate-800\/60:hover:is([data-theme=dark] *){background-color:#1e293b99}.dark\:hover\:bg-slate-800\/80:hover:is([data-theme=dark] *){background-color:#1e293bcc}.dark\:hover\:bg-slate-900:hover:is([data-theme=dark] *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-slate-900\/80:hover:is([data-theme=dark] *){background-color:#0f172acc}.dark\:hover\:bg-slate-900\/90:hover:is([data-theme=dark] *){background-color:#0f172ae6}.dark\:hover\:bg-slate-900\/95:hover:is([data-theme=dark] *){background-color:#0f172af2}.dark\:hover\:from-slate-900:hover:is([data-theme=dark] *){--tw-gradient-from: #0f172a var(--tw-gradient-from-position);--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:hover\:via-slate-900\/95:hover:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(15 23 42 / .95) var(--tw-gradient-via-position), var(--tw-gradient-to)}.dark\:hover\:to-slate-900\/90:hover:is([data-theme=dark] *){--tw-gradient-to: rgb(15 23 42 / .9) var(--tw-gradient-to-position)}.dark\:hover\:text-slate-100:hover:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is([data-theme=dark] *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:hover\:shadow-lg:hover:is([data-theme=dark] *){--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:hover\:shadow-slate-900\/30:hover:is([data-theme=dark] *){--tw-shadow-color: rgb(15 23 42 / .3);--tw-shadow: var(--tw-shadow-colored)}.dark\:focus\:border-blue-400:focus:is([data-theme=dark] *){--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.dark\:focus\:border-blue-400\/70:focus:is([data-theme=dark] *){border-color:#60a5fab3}.dark\:focus\:ring-blue-400\/20:focus:is([data-theme=dark] *){--tw-ring-color: rgb(96 165 250 / .2)}.dark\:focus\:ring-blue-400\/40:focus:is([data-theme=dark] *){--tw-ring-color: rgb(96 165 250 / .4)}.dark\:disabled\:bg-slate-800\/60:disabled:is([data-theme=dark] *){background-color:#1e293b99}.dark\:disabled\:bg-slate-900\/40:disabled:is([data-theme=dark] *){background-color:#0f172a66}@media (min-width: 640px){.sm\:col-span-2{grid-column:span 2 / span 2}.sm\:mt-4{margin-top:1rem}.sm\:inline{display:inline}.sm\:h-10{height:2.5rem}.sm\:max-h-\[70vh\]{max-height:70vh}.sm\:min-h-0{min-height:0px}.sm\:min-h-\[300px\]{min-height:300px}.sm\:w-10{width:2.5rem}.sm\:w-80{width:20rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:gap-8{gap:2rem}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:rounded-3xl{border-radius:1.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:py-8{padding-top:2rem;padding-bottom:2rem}.sm\:pb-12{padding-bottom:3rem}.sm\:pt-8{padding-top:2rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}}@media (min-width: 768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}}@media (min-width: 1024px){.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-36{width:9rem}.lg\:min-w-\[9rem\]{min-width:9rem}.lg\:max-w-\[9rem\]{max-width:9rem}.lg\:flex-shrink-0{flex-shrink:0}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,0\.85fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,.85fr)}.lg\:space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.lg\:p-10{padding:2.5rem}.lg\:p-4{padding:1rem}.lg\:p-6{padding:1.5rem}.lg\:p-8{padding:2rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:pb-16{padding-bottom:4rem}.lg\:text-2xl{font-size:1.5rem;line-height:2rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1280px){.xl\:block{display:block}.xl\:w-40{width:10rem}.xl\:min-w-\[10rem\]{min-width:10rem}.xl\:max-w-\[10rem\]{max-width:10rem}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width: 1536px){.\32xl\:w-44{width:11rem}.\32xl\:min-w-\[11rem\]{min-width:11rem}.\32xl\:max-w-\[11rem\]{max-width:11rem}.\32xl\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}
|