From 88b862b515b193f73e35510af1e01780b210e3e9 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Mon, 24 Aug 2026 16:13:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A6=96=E9=A1=B5=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=8F=AA=E6=98=BE=E7=A4=BA=20localOnly=20?= =?UTF-8?q?=E8=BD=AC=E5=8F=91,=20=E9=9B=86=E7=BE=A4=E8=BD=AC=E5=8F=91?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E8=AF=AF=E6=8A=A5=E4=B8=BA=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - handleStatus 的 localStatuses 遍历所有 locals 时跳过非 localOnly, 集群转发只出现在活跃转发卡区 (per-remote 时代的残留逻辑) - gofmt 格式化 topoKey 定义 - 同步 dist (含 ⚙/⊕ emoji 变体选择器修复) --- cmd/webui4frpc/main.go | 61 ++++++++++++++----- internal/cluster/ring_engine.go | 9 +++ .../{index-D0MfyrKF.js => index-BUbn_fgs.js} | 4 +- ...{index-D67FPIKJ.css => index-DQV0nqgE.css} | 2 +- internal/httpapi/dist/index.html | 4 +- internal/httpapi/server.go | 18 ++++-- web/src/views/ClusterView.vue | 4 +- web/src/views/StatusView.vue | 4 +- 8 files changed, 78 insertions(+), 28 deletions(-) rename internal/httpapi/dist/assets/{index-D0MfyrKF.js => index-BUbn_fgs.js} (97%) rename internal/httpapi/dist/assets/{index-D67FPIKJ.css => index-DQV0nqgE.css} (97%) diff --git a/cmd/webui4frpc/main.go b/cmd/webui4frpc/main.go index ea60b43..30d1ae0 100644 --- a/cmd/webui4frpc/main.go +++ b/cmd/webui4frpc/main.go @@ -405,14 +405,13 @@ func main() { go ring.WatchTokenLoss(clusterCtx) go ring.WatchLeader(clusterCtx) - // Startup auto-submit: the leader re-submits local non-disabled, - // non-localOnly forwards from its SQLite store so the ring repopulates - // after a full-cluster restart (ring topology is in-memory only and is - // lost when all nodes crash simultaneously). On single-node restart the - // topology is recovered via AdoptState, and SubmitTask is idempotent - // via HasTask, so re-submitting is a harmless no-op in that case. - // Only the leader does this — the canvas is typically saved on the - // leader, so its local store has the complete set of forwards. + // Startup reconcile: every node (leader or not) checks its own topology + // entries and re-claims any whose per-forward frpc worker process is + // absent — the topology was recovered via AdoptState but the worker + // processes died with the restart. This is safer than the leader clearing + // and re-submitting all topology, which races with leader changes. + // LocalOnly forwards are never in the topology and are handled by the + // auto-start loop above. go func() { for { if ring.IsLeader() { @@ -426,12 +425,44 @@ func main() { } // Let the ring stabilize after leader election / rejoin. time.Sleep(3 * time.Second) + snap := ring.Snapshot() + reclaimed := 0 + for _, t := range snap.Topology { + if t.OwnerID != selfID { + continue + } + key := process.WorkerKey(t.Local.Name, t.Remote.Name, t.Link.RemotePort) + if _, has := pm.Status(key); has { + continue // worker already running + } + ctx, cancel := context.WithTimeout(clusterCtx, 15*time.Second) + if err := ring.Handler.Claim(ctx, &cluster.Task{ + ID: fmt.Sprintf("reclaim-%s-%s-%d", t.Local.Name, t.Remote.Name, t.Link.RemotePort), + Local: t.Local, Remote: t.Remote, Link: t.Link, + }); err != nil { + log.Printf("ring[%s] reclaim %s→%s:%d: %v", ring.ID, t.Local.Name, t.Remote.Name, t.Link.RemotePort, err) + } else { + reclaimed++ + } + cancel() + } + // Leader also re-submits any non-disabled, non-localOnly forwards + // that are NOT yet in the topology (new entries the canvas has but + // the ring hasn't processed yet). links, err := st.ListLinks() if err != nil { - log.Printf("ring[%s] auto-submit: %v", ring.ID, err) + log.Printf("ring[%s] reconcile: %v", ring.ID, err) return } - count := 0 + type ownerKey struct{ local, remote string; port int } + ownedBy := map[ownerKey]string{} + for _, t := range snap.Topology { + k := ownerKey{t.Local.Name, t.Remote.Name, t.Link.RemotePort} + if _, ok := ownedBy[k]; !ok { + ownedBy[k] = t.OwnerID + } + } + submitted := 0 for _, ln := range links { if ln.Disabled { continue @@ -444,12 +475,14 @@ func main() { if !ok { continue } + k := ownerKey{ln.Local, ln.Remote, ln.RemotePort} + if _, inTopo := ownedBy[k]; inTopo { + continue // already reclaimed above + } ring.SubmitTask(loc, rem, ln) - count++ - } - if count > 0 { - log.Printf("ring[%s] leader auto-submitted %d forwards on startup", ring.ID, count) + submitted++ } + log.Printf("ring[%s] startup reconcile: reclaimed=%d submitted=%d", ring.ID, reclaimed, submitted) }() go func() { diff --git a/internal/cluster/ring_engine.go b/internal/cluster/ring_engine.go index d57df3b..72416a5 100644 --- a/internal/cluster/ring_engine.go +++ b/internal/cluster/ring_engine.go @@ -758,6 +758,15 @@ func (e *Engine) CreateCluster() error { return nil } +// ResetTopology clears all established topology entries (pending tasks are +// kept). Used by the leader's startup reconcile: the recovered topology +// records forwards whose worker processes died with the restart, and HasTask +// would short-circuit re-submission — so the leader wipes topology first, +// then re-submits every forward to ride the token fresh. +func (e *Engine) ResetTopology() { + e.state.Topology = map[string]*TopoEntry{} +} + // SubmitTask adds a new forward request to pending; it rides the next token // round and is claimed by the lowest-load member. // RemoveNode publishes a node-removal command via the token; the target diff --git a/internal/httpapi/dist/assets/index-D0MfyrKF.js b/internal/httpapi/dist/assets/index-BUbn_fgs.js similarity index 97% rename from internal/httpapi/dist/assets/index-D0MfyrKF.js rename to internal/httpapi/dist/assets/index-BUbn_fgs.js index b700b14..324358d 100644 --- a/internal/httpapi/dist/assets/index-D0MfyrKF.js +++ b/internal/httpapi/dist/assets/index-BUbn_fgs.js @@ -73,5 +73,5 @@ Edge: ${e} Source: ${t} Target: ${n}`,EDGE_ORPHANED:e=>`Edge was orphaned (suddenly missing source or target) and has been removed Edge: ${e}`,EDGE_NOT_FOUND:e=>`Edge not found -Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Un extends Error{constructor(t,...n){var o;super((o=xS[t])==null?void 0:o.call(xS,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function Zy(e){return"clientX"in e}function sse(e){return"sourceEvent"in e}function Da(e,t){const n=Zy(e);let o,a;return n?(o=e.clientX,a=e.clientY):"touches"in e&&e.touches.length>0?(o=e.touches[0].clientX,a=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(o=e.changedTouches[0].clientX,a=e.changedTouches[0].clientY):(o=0,a=0),{x:o-(t?.left??0),y:a-(t?.top??0)}}const Af=()=>{var e;return typeof navigator<"u"&&((e=navigator?.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function rse(e){var t,n;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((n=e.dimensions)==null?void 0:n.height)??e.height??0}}function Lp(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const ise=()=>!0;function Uv(e){e?.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function use(e,t,n){const o=[],a={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const l of t.values())Rf(a,Pf(l))>0&&o.push(l);return o}const cse=250;function dse(e,t,n,o){var a,l;let s=[],r=Number.POSITIVE_INFINITY;const u=use(e,n,t+cse);for(const c of u){const d=[...((a=c.handleBounds)==null?void 0:a.source)??[],...((l=c.handleBounds)==null?void 0:l.target)??[]];for(const f of d){if(o.nodeId===f.nodeId&&o.type===f.type&&o.id===f.id)continue;const{x:v,y:h}=mi(c,f,f.position,!0),g=Math.sqrt((v-e.x)**2+(h-e.y)**2);g>t||(g1){const c=o.type==="source"?"target":"source";return s.find(d=>d.type===c)??s[0]}return s[0]}function ES(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:a,fromType:l,doc:s,lib:r,flowId:u,isValidConnection:c=ise},d,f,v,h){const g=l==="target",p=t?s.querySelector(`.${r}-flow__handle[data-id="${u}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:m,y}=Da(e),b=s.elementFromPoint(m,y),w=b?.classList.contains(`${r}-flow__handle`)?b:p,S={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const k=f_(void 0,w),x=w.getAttribute("data-nodeid"),$=w.getAttribute("data-handleid"),T=w.classList.contains("connectable"),N=w.classList.contains("connectableend");if(!x||!k)return S;const A={source:g?x:o,sourceHandle:g?$:a,target:g?o:x,targetHandle:g?a:$};S.connection=A;const _=T&&N&&(n===vs.Strict?g&&k==="source"||!g&&k==="target":x!==o||$!==a);S.isValid=_&&c(A,{nodes:f,edges:d,sourceNode:v(A.source),targetNode:v(A.target)}),S.toHandle=p_(x,k,$,h,n,!0)}return S}function f_(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function fse(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function pse(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}function p_(e,t,n,o,a,l=!1){var s,r,u;const c=o.get(e);if(!c)return null;const d=a===vs.Strict?(s=c.handleBounds)==null?void 0:s[t]:[...((r=c.handleBounds)==null?void 0:r.source)??[],...((u=c.handleBounds)==null?void 0:u.target)??[]],f=(n?d?.find(v=>v.id===n):d?.[0])??null;return f&&l?{...f,...mi(c,f,f.position,!0)}:f}const $m={[Tt.Left]:Tt.Right,[Tt.Right]:Tt.Left,[Tt.Top]:Tt.Bottom,[Tt.Bottom]:Tt.Top},vse=["production","prod"];function xc(e,...t){v_()&&console.warn(`[Vue Flow]: ${e}`,...t)}function v_(){return!vse.includes("production")}function $S(e,t,n,o,a){const l=t.querySelectorAll(`.vue-flow__handle.${e}`);return l?.length?Array.from(l).map(s=>{const r=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:a,position:s.getAttribute("data-handlepos"),x:(r.left-n.left)/o,y:(r.top-n.top)/o,...Dp(s)}}):null}function Tm(e,t,n,o,a,l=!1,s){a.value=!1,e.selected?(l||e.selected&&t)&&(o([e]),Re(()=>{s.blur()})):n([e])}function Ln(e){return typeof i(e)<"u"}function hse(e,t,n,o){if(!e||!e.source||!e.target)return n(new Un(Fn.EDGE_INVALID,e?.id??"[ID UNKNOWN]")),!1;let a;return hs(e)?a=e:a={...e,id:a_(e)},a=n_(a,void 0,o),qle(a,t)?!1:a}function mse(e,t,n,o,a){if(!t.source||!t.target)return a(new Un(Fn.EDGE_INVALID,e.id)),!1;if(!n)return a(new Un(Fn.EDGE_NOT_FOUND,e.id)),!1;const{id:l,...s}=e;return{...s,id:o?a_(t):l,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function TS(e,t,n){const o={},a=[];for(let l=0;lr.id===l.parentNode);l.parentNode&&!s&&n(new Un(Fn.NODE_MISSING_PARENT,l.id,l.parentNode)),(l.parentNode||o[l.id])&&(o[l.id]&&(l.isParent=!0),s&&(s.isParent=!0))}return a}function _S(e,t,n,o,a,l){let s=a;const r=o.get(s)||new Map;o.set(s,r.set(n,t)),s=`${a}-${e}`;const u=o.get(s)||new Map;if(o.set(s,u.set(n,t)),l){s=`${a}-${e}-${l}`;const c=o.get(s)||new Map;o.set(s,c.set(n,t))}}function Yv(e,t,n){e.clear();for(const o of n){const{source:a,target:l,sourceHandle:s=null,targetHandle:r=null}=o,u={edgeId:o.id,source:a,target:l,sourceHandle:s,targetHandle:r},c=`${a}-${s}--${l}-${r}`,d=`${l}-${r}--${a}-${s}`;_S("source",u,d,e,a,s),_S("target",u,c,e,l,r)}}function NS(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function qv(e,t,n,o,a,l,s,r){const u=[];for(const c of e){const d=hs(c)?c:hse(c,r,a,l);if(!d)continue;const f=n(d.source),v=n(d.target);if(!f||!v){a(new Un(Fn.EDGE_SOURCE_TARGET_MISSING,d.id,d.source,d.target));continue}if(!f){a(new Un(Fn.EDGE_SOURCE_MISSING,d.id,d.source));continue}if(!v){a(new Un(Fn.EDGE_TARGET_MISSING,d.id,d.target));continue}if(t&&!t(d,{edges:r,nodes:s,sourceNode:f,targetNode:v})){a(new Un(Fn.EDGE_INVALID,d.id));continue}const h=o(d.id);u.push({...n_(d,h,l),sourceNode:f,targetNode:v})}return u}const IS=Symbol("vueFlow"),h_=Symbol("nodeId"),m_=Symbol("nodeRef"),gse=Symbol("edgeId"),yse=Symbol("edgeRef"),Vp=Symbol("slots");function g_(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:o,noDragClassName:a,nodeLookup:l,nodeExtent:s,nodeDragThreshold:r,viewport:u,autoPanOnNodeDrag:c,autoPanSpeed:d,nodesDraggable:f,panBy:v,findNode:h,multiSelectionActive:g,nodesSelectionActive:p,selectNodesOnDrag:m,removeSelectedElements:y,addSelectedNodes:b,updateNodePositions:w,emits:S}=On(),{onStart:k,onDrag:x,onStop:$,onClick:T,el:N,disabled:A,id:D,selectable:_,dragHandle:W}=e,V=kt(!1);let H=[],P,O=null,M={x:void 0,y:void 0},B={x:0,y:0},L=null,K=!1,q=!1,X=0,ee=!1;const le=Sse(),Z=({x:j,y:Q})=>{M={x:j,y:Q};let U=!1;if(H=H.map(Y=>{const J={x:j-Y.distance.x,y:Q-Y.distance.y},{computedPosition:re}=Xy(Y,n.value?Lp(J,o.value):J,S.error,s.value,Y.parentNode?h(Y.parentNode):void 0);return U=U||Y.position.x!==re.x||Y.position.y!==re.y,Y.position=re,Y}),q=q||U,!!U&&(w(H,!0,!0),V.value=!0,L)){const[Y,J]=jv({id:D,dragItems:H,findNode:h});x({event:L,node:Y,nodes:J})}},ve=()=>{if(!O)return;const[j,Q]=c_(B,O,d.value);if(j!==0||Q!==0){const U={x:(M.x??0)-j/u.value.zoom,y:(M.y??0)-Q/u.value.zoom};v({x:j,y:Q})&&Z(U)}X=requestAnimationFrame(ve)},we=(j,Q)=>{K=!0;const U=h(D);!m.value&&!g.value&&U&&(U.selected||y()),U&&Nt(_)&&m.value&&Tm(U,g.value,b,y,p,!1,Q);const Y=le(j.sourceEvent);if(M=Y,H=ese(l.value,f.value,Y,D),H.length){const[J,re]=jv({id:D,dragItems:H,findNode:h});k({event:j.sourceEvent,node:J,nodes:re})}},Se=(j,Q)=>{var U;j.sourceEvent.type==="touchmove"&&j.sourceEvent.touches.length>1||(q=!1,r.value===0&&we(j,Q),M=le(j.sourceEvent),O=((U=t.value)==null?void 0:U.getBoundingClientRect())||null,B=Da(j.sourceEvent,O))},oe=(j,Q)=>{const U=le(j.sourceEvent);if(!ee&&K&&c.value&&(ee=!0,ve()),!K){const Y=U.xSnapped-(M.x??0),J=U.ySnapped-(M.y??0);Math.sqrt(Y*Y+J*J)>r.value&&we(j,Q)}(M.x!==U.xSnapped||M.y!==U.ySnapped)&&H.length&&K&&(L=j.sourceEvent,B=Da(j.sourceEvent,O),Z(U))},ce=j=>{let Q=!1;if(!K&&!V.value&&!g.value){const U=j.sourceEvent,Y=le(U),J=Y.xSnapped-(M.x??0),re=Y.ySnapped-(M.y??0),pe=Math.sqrt(J*J+re*re);pe!==0&&pe<=r.value&&(T?.(U),Q=!0)}if(H.length&&!Q){q&&(w(H,!1,!1),q=!1);const[U,Y]=jv({id:D,dragItems:H,findNode:h});$({event:j.sourceEvent,node:U,nodes:Y})}H=[],V.value=!1,ee=!1,K=!1,M={x:void 0,y:void 0},cancelAnimationFrame(X)};return be([()=>Nt(A),N],([j,Q],U,Y)=>{if(Q){const J=da(Q);j||(P=Woe().on("start",re=>Se(re,Q)).on("drag",re=>oe(re,Q)).on("end",re=>ce(re)).filter(re=>{const pe=re.target,ue=Nt(W);return!re.button&&(!a.value||!CS(pe,`.${a.value}`,Q)&&(!ue||CS(pe,ue,Q)))}),J.call(P)),Y(()=>{J.on(".drag",null),P&&(P.on("start",null),P.on("drag",null),P.on("end",null))})}}),V}function bse(){return{doubleClick:bt(),click:bt(),mouseEnter:bt(),mouseMove:bt(),mouseLeave:bt(),contextMenu:bt(),updateStart:bt(),update:bt(),updateEnd:bt()}}function wse(e,t){const n=bse();return n.doubleClick.on(o=>{var a,l;t.edgeDoubleClick(o),(l=(a=e.events)==null?void 0:a.doubleClick)==null||l.call(a,o)}),n.click.on(o=>{var a,l;t.edgeClick(o),(l=(a=e.events)==null?void 0:a.click)==null||l.call(a,o)}),n.mouseEnter.on(o=>{var a,l;t.edgeMouseEnter(o),(l=(a=e.events)==null?void 0:a.mouseEnter)==null||l.call(a,o)}),n.mouseMove.on(o=>{var a,l;t.edgeMouseMove(o),(l=(a=e.events)==null?void 0:a.mouseMove)==null||l.call(a,o)}),n.mouseLeave.on(o=>{var a,l;t.edgeMouseLeave(o),(l=(a=e.events)==null?void 0:a.mouseLeave)==null||l.call(a,o)}),n.contextMenu.on(o=>{var a,l;t.edgeContextMenu(o),(l=(a=e.events)==null?void 0:a.contextMenu)==null||l.call(a,o)}),n.updateStart.on(o=>{var a,l;t.edgeUpdateStart(o),(l=(a=e.events)==null?void 0:a.updateStart)==null||l.call(a,o)}),n.update.on(o=>{var a,l;t.edgeUpdate(o),(l=(a=e.events)==null?void 0:a.update)==null||l.call(a,o)}),n.updateEnd.on(o=>{var a,l;t.edgeUpdateEnd(o),(l=(a=e.events)==null?void 0:a.updateEnd)==null||l.call(a,o)}),Object.entries(n).reduce((o,[a,l])=>(o.emit[a]=l.trigger,o.on[a]=l.on,o),{emit:{},on:{}})}function Sse(){const{viewport:e,snapGrid:t,snapToGrid:n,vueFlowRef:o}=On();return a=>{var l;const s=((l=o.value)==null?void 0:l.getBoundingClientRect())??{left:0,top:0},r=sse(a)?a.sourceEvent:a,{x:u,y:c}=Da(r,s),d=Uu({x:u,y:c},e.value),{x:f,y:v}=n.value?Lp(d,t.value):d;return{xSnapped:f,ySnapped:v,...d}}}function ad(){return!0}function y_({handleId:e,nodeId:t,type:n,isValidConnection:o,edgeUpdaterType:a,onEdgeUpdate:l,onEdgeUpdateEnd:s}){const{id:r,vueFlowRef:u,connectionMode:c,connectionRadius:d,connectOnClick:f,connectionClickStartHandle:v,nodesConnectable:h,autoPanOnConnect:g,autoPanSpeed:p,findNode:m,panBy:y,startConnection:b,updateConnection:w,endConnection:S,emits:k,viewport:x,edges:$,nodes:T,isValidConnection:N,nodeLookup:A}=On();let D=null,_=!1,W=null;function V(P){var O;const M=Nt(n)==="target",B=Zy(P),L=pS(P.target),K=P.currentTarget;if(K&&(B&&P.button===0||!B)){let q=function(he){U=Da(he,ce),Z=dse(Uu(U,x.value,!1,[1,1]),d.value,A.value,re),Y||(J(),Y=!0);const de=ES(he,{handle:Z,connectionMode:c.value,fromNodeId:Nt(t),fromHandleId:Nt(e),fromType:M?"target":"source",isValidConnection:le,doc:L,lib:"vue",flowId:r,nodeLookup:A.value},$.value,T.value,m,A.value);W=de.handleDomNode,D=de.connection,_=pse(!!Z,de.isValid);const Ce={...se,isValid:_,to:de.toHandle&&_?ju({x:de.toHandle.x,y:de.toHandle.y},x.value):U,toHandle:de.toHandle,toPosition:_&&de.toHandle?de.toHandle.position:$m[re.position],toNode:de.toHandle?A.value.get(de.toHandle.nodeId):null};if(_&&Z&&se?.toHandle&&Ce.toHandle&&se.toHandle.type===Ce.toHandle.type&&se.toHandle.nodeId===Ce.toHandle.nodeId&&se.toHandle.id===Ce.toHandle.id&&se.to.x===Ce.to.x&&se.to.y===Ce.to.y)return;const $e=Z??de.toHandle;if(w($e&&_?ju({x:$e.x,y:$e.y},x.value):U,$e,fse(!!$e,_)),se=Ce,!Z&&!_&&!W)return Uv(Q);D&&D.source!==D.target&&W&&(Uv(Q),Q=W,W.classList.add("connecting","vue-flow__handle-connecting"),W.classList.toggle("valid",!!_),W.classList.toggle("vue-flow__handle-valid",!!_))},X=function(he){"touches"in he&&he.touches.length>0||((Z||W)&&D&&_&&(l?l(he,D):k.connect(D)),k.connectEnd(he),a&&s?.(he),Uv(Q),cancelAnimationFrame(ve),S(he),Y=!1,_=!1,D=null,W=null,L.removeEventListener("mousemove",q),L.removeEventListener("mouseup",X),L.removeEventListener("touchmove",q),L.removeEventListener("touchend",X))};const ee=m(Nt(t));let le=Nt(o)||N.value||ad;!le&&ee&&(le=(M?ee.isValidSourcePos:ee.isValidTargetPos)||ad);let Z,ve=0;const{x:we,y:Se}=Da(P),oe=f_(Nt(a),K),ce=(O=u.value)==null?void 0:O.getBoundingClientRect();if(!ce||!oe)return;const j=p_(Nt(t),oe,Nt(e),A.value,c.value);if(!j)return;let Q,U=Da(P,ce),Y=!1;const J=()=>{if(!g.value)return;const[he,de]=c_(U,ce,p.value);y({x:he,y:de}),ve=requestAnimationFrame(J)},re={...j,nodeId:Nt(t),type:oe,position:j.position},pe=A.value.get(Nt(t)),ie={inProgress:!0,isValid:null,from:mi(pe,re,Tt.Left,!0),fromHandle:re,fromPosition:re.position,fromNode:pe,to:U,toHandle:null,toPosition:$m[re.position],toNode:null};b({nodeId:Nt(t),id:Nt(e),type:oe,position:K?.getAttribute("data-handlepos")||Tt.Top,...U},{x:we-ce.left,y:Se-ce.top}),k.connectStart({event:P,nodeId:Nt(t),handleId:Nt(e),handleType:oe});let se=ie;L.addEventListener("mousemove",q),L.addEventListener("mouseup",X),L.addEventListener("touchmove",q),L.addEventListener("touchend",X)}}function H(P){var O,M;if(!f.value)return;const B=Nt(n)==="target";if(!v.value){k.clickConnectStart({event:P,nodeId:Nt(t),handleId:Nt(e)}),b({nodeId:Nt(t),type:Nt(n),id:Nt(e),position:Tt.Top,...Da(P)},void 0,!0);return}let L=Nt(o)||N.value||ad;const K=m(Nt(t));if(!L&&K&&(L=(B?K.isValidSourcePos:K.isValidTargetPos)||ad),K&&(typeof K.connectable>"u"?h.value:K.connectable)===!1)return;const q=pS(P.target),X=ES(P,{handle:{nodeId:Nt(t),id:Nt(e),type:Nt(n),position:Tt.Top,...Da(P)},connectionMode:c.value,fromNodeId:v.value.nodeId,fromHandleId:v.value.id??null,fromType:v.value.type,isValidConnection:L,doc:q,lib:"vue",flowId:r,nodeLookup:A.value},$.value,T.value,m,A.value),ee=((O=X.connection)==null?void 0:O.source)===((M=X.connection)==null?void 0:M.target);X.isValid&&X.connection&&!ee&&k.connect(X.connection),k.clickConnectEnd(P),S(P,!0)}return{handlePointerDown:V,handleClick:H}}function Cse(){return Fe(h_,"")}function b_(e){const t=e??Cse()??"",n=Fe(m_,F(null)),{findNode:o,edges:a,emits:l}=On(),s=o(t);return s||l.error(new Un(Fn.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:s,parentNode:C(()=>o(s.parentNode)),connectedEdges:C(()=>i_([s],a.value))}}function kse(){return{doubleClick:bt(),click:bt(),mouseEnter:bt(),mouseMove:bt(),mouseLeave:bt(),contextMenu:bt(),dragStart:bt(),drag:bt(),dragStop:bt()}}function xse(e,t){const n=kse();return n.doubleClick.on(o=>{var a,l;t.nodeDoubleClick(o),(l=(a=e.events)==null?void 0:a.doubleClick)==null||l.call(a,o)}),n.click.on(o=>{var a,l;t.nodeClick(o),(l=(a=e.events)==null?void 0:a.click)==null||l.call(a,o)}),n.mouseEnter.on(o=>{var a,l;t.nodeMouseEnter(o),(l=(a=e.events)==null?void 0:a.mouseEnter)==null||l.call(a,o)}),n.mouseMove.on(o=>{var a,l;t.nodeMouseMove(o),(l=(a=e.events)==null?void 0:a.mouseMove)==null||l.call(a,o)}),n.mouseLeave.on(o=>{var a,l;t.nodeMouseLeave(o),(l=(a=e.events)==null?void 0:a.mouseLeave)==null||l.call(a,o)}),n.contextMenu.on(o=>{var a,l;t.nodeContextMenu(o),(l=(a=e.events)==null?void 0:a.contextMenu)==null||l.call(a,o)}),n.dragStart.on(o=>{var a,l;t.nodeDragStart(o),(l=(a=e.events)==null?void 0:a.dragStart)==null||l.call(a,o)}),n.drag.on(o=>{var a,l;t.nodeDrag(o),(l=(a=e.events)==null?void 0:a.drag)==null||l.call(a,o)}),n.dragStop.on(o=>{var a,l;t.nodeDragStop(o),(l=(a=e.events)==null?void 0:a.dragStop)==null||l.call(a,o)}),Object.entries(n).reduce((o,[a,l])=>(o.emit[a]=l.trigger,o.on[a]=l.on,o),{emit:{},on:{}})}function w_(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:o,snapGrid:a,snapToGrid:l,nodesDraggable:s,emits:r}=On();return(u,c=!1)=>{const d=l.value?a.value[0]:5,f=l.value?a.value[1]:5,v=c?4:1,h=u.x*d*v,g=u.y*f*v,p=[];for(const m of e.value)if(m.draggable||s&&typeof m.draggable>"u"){const y={x:m.computedPosition.x+h,y:m.computedPosition.y+g},{position:b}=Xy(m,y,r.error,t.value,m.parentNode?o(m.parentNode):void 0);p.push({id:m.id,position:b,from:m.position,distance:{x:u.x,y:u.y},dimensions:m.dimensions})}n(p,!0,!1)}}const ld=.1,Ese=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function zl(){return xc("Viewport not initialized yet."),Promise.resolve(!1)}const $se={zoomIn:zl,zoomOut:zl,zoomTo:zl,fitView:zl,setCenter:zl,fitBounds:zl,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:zl,setTransform:zl,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function Tse(e){function t(o,a){return new Promise(l=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate(a?.interpolate==="linear"?iu:Ad).scaleBy(Gv(e.d3Selection,a?.duration,a?.ease,()=>{l(!0)}),o):l(!1)})}function n(o,a,l,s){return new Promise(r=>{var u;const{x:c,y:d}=t_({x:-o,y:-a},e.translateExtent),f=hi.translate(-c,-d).scale(l);e.d3Selection&&e.d3Zoom?(u=e.d3Zoom)==null||u.interpolate(s?.interpolate==="linear"?iu:Ad).transform(Gv(e.d3Selection,s?.duration,s?.ease,()=>{r(!0)}),f):r(!1)})}return C(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:a=>t(1.2,a),zoomOut:a=>t(1/1.2,a),zoomTo:(a,l)=>new Promise(s=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate(l?.interpolate==="linear"?iu:Ad).scaleTo(Gv(e.d3Selection,l?.duration,l?.ease,()=>{s(!0)}),a):s(!1)}),setViewport:(a,l)=>n(a.x,a.y,a.zoom,l),setTransform:(a,l)=>n(a.x,a.y,a.zoom,l),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(a={padding:ld,includeHiddenNodes:!1,duration:0})=>{var l,s;const r=[];for(const v of e.nodes)v.dimensions.width&&v.dimensions.height&&(a?.includeHiddenNodes||!v.hidden)&&(!((l=a.nodes)!=null&&l.length)||(s=a.nodes)!=null&&s.length&&a.nodes.includes(v.id))&&r.push(v);if(!r.length)return Promise.resolve(!1);const u=s_(r),{x:c,y:d,zoom:f}=vS(u,e.dimensions.width,e.dimensions.height,a.minZoom??e.minZoom,a.maxZoom??e.maxZoom,a.padding??ld);return n(c,d,f,a)},setCenter:(a,l,s)=>{const r=typeof s?.zoom<"u"?s.zoom:e.maxZoom,u=e.dimensions.width/2-a*r,c=e.dimensions.height/2-l*r;return n(u,c,r,s)},fitBounds:(a,l={padding:ld})=>{const{x:s,y:r,zoom:u}=vS(a,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,l.padding??ld);return n(s,r,u,l)},project:a=>Uu(a,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:a=>{if(e.vueFlowRef){const{x:l,y:s}=e.vueFlowRef.getBoundingClientRect(),r={x:a.x-l,y:a.y-s};return Uu(r,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:a=>{if(e.vueFlowRef){const{x:l,y:s}=e.vueFlowRef.getBoundingClientRect(),r={x:a.x+l,y:a.y+s};return ju(r,e.viewport)}return{x:0,y:0}}}:$se)}function Gv(e,t=0,n=Ese,o=()=>{}){const a=typeof t=="number"&&t>0;return a||o(),a?e.transition().duration(t).ease(n).on("end",o):e}function _se(e,t,n){const o=Hf(!0);return o.run(()=>{const a=()=>{o.run(()=>{let p,m,y=!!(n.nodes.value.length||n.edges.value.length);p=Tr([e.modelValue,()=>{var b,w;return(w=(b=e.modelValue)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(m?.pause(),n.setElements(b),!m&&!y&&b.length?y=!0:m?.resume())}),m=Tr([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([b,w])=>{var S;(S=e.modelValue)!=null&&S.value&&Array.isArray(e.modelValue.value)&&(p?.pause(),e.modelValue.value=[...b,...w],Re(()=>{p?.resume()}))},{immediate:y}),Dr(()=>{p?.stop(),m?.stop()})})},l=()=>{o.run(()=>{let p,m,y=!!n.nodes.value.length;p=Tr([e.nodes,()=>{var b,w;return(w=(b=e.nodes)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(m?.pause(),n.setNodes(b),!m&&!y&&b.length?y=!0:m?.resume())}),m=Tr([n.nodes,()=>n.nodes.value.length],([b])=>{var w;(w=e.nodes)!=null&&w.value&&Array.isArray(e.nodes.value)&&(p?.pause(),e.nodes.value=[...b],Re(()=>{p?.resume()}))},{immediate:y}),Dr(()=>{p?.stop(),m?.stop()})})},s=()=>{o.run(()=>{let p,m,y=!!n.edges.value.length;p=Tr([e.edges,()=>{var b,w;return(w=(b=e.edges)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(m?.pause(),n.setEdges(b),!m&&!y&&b.length?y=!0:m?.resume())}),m=Tr([n.edges,()=>n.edges.value.length],([b])=>{var w;(w=e.edges)!=null&&w.value&&Array.isArray(e.edges.value)&&(p?.pause(),e.edges.value=[...b],Re(()=>{p?.resume()}))},{immediate:y}),Dr(()=>{p?.stop(),m?.stop()})})},r=()=>{o.run(()=>{be(()=>t.maxZoom,()=>{t.maxZoom&&Ln(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},u=()=>{o.run(()=>{be(()=>t.minZoom,()=>{t.minZoom&&Ln(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},c=()=>{o.run(()=>{be(()=>t.translateExtent,()=>{t.translateExtent&&Ln(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},d=()=>{o.run(()=>{be(()=>t.nodeExtent,()=>{t.nodeExtent&&Ln(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},f=()=>{o.run(()=>{be(()=>t.applyDefault,()=>{Ln(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},v=()=>{o.run(()=>{const p=async m=>{let y=m;typeof t.autoConnect=="function"&&(y=await t.autoConnect(m)),y!==!1&&n.addEdges([y])};be(()=>t.autoConnect,()=>{Ln(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),be(n.autoConnect,(m,y,b)=>{m?n.onConnect(p):n.hooks.value.connect.off(p),b(()=>{n.hooks.value.connect.off(p)})},{immediate:!0})})},h=()=>{const p=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const m of Object.keys(t)){const y=m;if(!p.includes(y)){const b=wt(()=>t[y]),w=n[y];gt(w)&&o.run(()=>{be(b,S=>{Ln(S)&&(w.value=S)},{immediate:!0})})}}};a(),l(),s(),u(),r(),c(),d(),f(),v(),h()}),()=>o.stop()}function Nse(){return{edgesChange:bt(),nodesChange:bt(),nodeDoubleClick:bt(),nodeClick:bt(),nodeMouseEnter:bt(),nodeMouseMove:bt(),nodeMouseLeave:bt(),nodeContextMenu:bt(),nodeDragStart:bt(),nodeDrag:bt(),nodeDragStop:bt(),nodesInitialized:bt(),miniMapNodeClick:bt(),miniMapNodeDoubleClick:bt(),miniMapNodeMouseEnter:bt(),miniMapNodeMouseMove:bt(),miniMapNodeMouseLeave:bt(),connect:bt(),connectStart:bt(),connectEnd:bt(),clickConnectStart:bt(),clickConnectEnd:bt(),paneReady:bt(),init:bt(),move:bt(),moveStart:bt(),moveEnd:bt(),selectionDragStart:bt(),selectionDrag:bt(),selectionDragStop:bt(),selectionContextMenu:bt(),selectionStart:bt(),selectionEnd:bt(),viewportChangeStart:bt(),viewportChange:bt(),viewportChangeEnd:bt(),paneScroll:bt(),paneClick:bt(),paneContextMenu:bt(),paneMouseEnter:bt(),paneMouseMove:bt(),paneMouseLeave:bt(),edgeContextMenu:bt(),edgeMouseEnter:bt(),edgeMouseMove:bt(),edgeMouseLeave:bt(),edgeDoubleClick:bt(),edgeClick:bt(),edgeUpdateStart:bt(),edgeUpdate:bt(),edgeUpdateEnd:bt(),updateNodeInternals:bt(),error:bt(e=>xc(e.message))}}function Ise(e,t){const n=ct();Qu(()=>{for(const[a,l]of Object.entries(t.value)){const s=r=>{e(a,r)};l.setEmitter(s),Fu(l.removeEmitter),l.setHasEmitListeners(()=>o(a)),Fu(l.removeHasEmitListeners)}});function o(a){var l;const s=Ose(a);return!!((l=n?.vnode.props)==null?void 0:l[s])}}function Ose(e){const[t,...n]=e.split(":");return`on${t.replace(/(?:^|-)(\w)/g,(a,l)=>l.toUpperCase())}${n.length?`:${n.join(":")}`:""}`}function S_(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:Gy.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:uu.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:Is.Bezier,style:{}},connectionMode:vs.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:Af()?"Meta":"Control",zoomActivationKeyCode:Af()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:Nse(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const Mse=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function Pse(e,t,n){const o=Tse(e),a=U=>{const Y=U??[];e.hooks.updateNodeInternals.trigger(Y)},l=U=>Yle(U,e.nodes,e.edges),s=U=>Ule(U,e.nodes,e.edges),r=U=>i_(U,e.edges),u=({id:U,type:Y,nodeId:J})=>{var re;const pe=U?`-${Y}-${U}`:`-${Y}`;return Array.from(((re=e.connectionLookup.get(`${J}${pe}`))==null?void 0:re.values())??[])},c=U=>{if(U)return t.value.get(U)},d=U=>{if(U)return n.value.get(U)},f=(U,Y,J)=>{var re,pe;const ue=[];for(const ie of U){const se={id:ie.id,type:"position",dragging:J,from:ie.from};if(Y&&(se.position=ie.position,ie.parentNode)){const he=c(ie.parentNode);se.position={x:se.position.x-(((re=he?.computedPosition)==null?void 0:re.x)??0),y:se.position.y-(((pe=he?.computedPosition)==null?void 0:pe.y)??0)}}ue.push(se)}ue?.length&&e.hooks.nodesChange.trigger(ue)},v=U=>{if(!e.vueFlowRef)return;const Y=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!Y)return;const J=window.getComputedStyle(Y),{m22:re}=new window.DOMMatrixReadOnly(J.transform),pe=[];for(const ue of U){const ie=ue,se=c(ie.id);if(se){const he=Dp(ie.nodeElement);if(!!(he.width&&he.height&&(se.dimensions.width!==he.width||se.dimensions.height!==he.height||ie.forceUpdate))){const Ce=ie.nodeElement.getBoundingClientRect();se.dimensions=he,se.handleBounds.source=$S("source",ie.nodeElement,Ce,re,se.id),se.handleBounds.target=$S("target",ie.nodeElement,Ce,re,se.id),pe.push({id:se.id,type:"dimensions",dimensions:he})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&o.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),pe.length&&e.hooks.nodesChange.trigger(pe)},h=(U,Y)=>{const J=new Set,re=new Set;for(const ie of U)qs(ie)?J.add(ie.id):hs(ie)&&re.add(ie.id);const pe=Xl(t.value,J,!0),ue=Xl(n.value,re);if(e.multiSelectionActive){for(const ie of J)pe.push(ql(ie,Y));for(const ie of re)ue.push(ql(ie,Y))}pe.length&&e.hooks.nodesChange.trigger(pe),ue.length&&e.hooks.edgesChange.trigger(ue)},g=U=>{if(e.multiSelectionActive){const Y=U.map(J=>ql(J.id,!0));e.hooks.nodesChange.trigger(Y);return}e.hooks.nodesChange.trigger(Xl(t.value,new Set(U.map(Y=>Y.id)),!0)),e.hooks.edgesChange.trigger(Xl(n.value))},p=U=>{if(e.multiSelectionActive){const Y=U.map(J=>ql(J.id,!0));e.hooks.edgesChange.trigger(Y);return}e.hooks.edgesChange.trigger(Xl(n.value,new Set(U.map(Y=>Y.id)))),e.hooks.nodesChange.trigger(Xl(t.value,new Set,!0))},m=U=>{h(U,!0)},y=U=>{const J=(U||e.nodes).map(re=>(re.selected=!1,ql(re.id,!1)));e.hooks.nodesChange.trigger(J)},b=U=>{const J=(U||e.edges).map(re=>(re.selected=!1,ql(re.id,!1)));e.hooks.edgesChange.trigger(J)},w=U=>{if(!U||!U.length)return h([],!1);const Y=U.reduce((J,re)=>{const pe=ql(re.id,!1);return qs(re)?J.nodes.push(pe):J.edges.push(pe),J},{nodes:[],edges:[]});Y.nodes.length&&e.hooks.nodesChange.trigger(Y.nodes),Y.edges.length&&e.hooks.edgesChange.trigger(Y.edges)},S=U=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([U,e.maxZoom]),e.minZoom=U},k=U=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([e.minZoom,U]),e.maxZoom=U},x=U=>{var Y;(Y=e.d3Zoom)==null||Y.translateExtent(U),e.translateExtent=U},$=U=>{e.nodeExtent=U,a()},T=U=>{var Y;(Y=e.d3Zoom)==null||Y.clickDistance(U)},N=U=>{e.nodesDraggable=U,e.nodesConnectable=U,e.elementsSelectable=U},A=U=>{const Y=U instanceof Function?U(e.nodes):U;!e.initialized&&!Y.length||(e.nodes=TS(Y,c,e.hooks.error.trigger))},D=U=>{const Y=U instanceof Function?U(e.edges):U;if(!e.initialized&&!Y.length)return;const J=qv(Y,e.isValidConnection,c,d,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);Yv(e.connectionLookup,n.value,J),e.edges=J},_=U=>{const Y=U instanceof Function?U([...e.nodes,...e.edges]):U;!e.initialized&&!Y.length||(A(Y.filter(qs)),D(Y.filter(hs)))},W=U=>{let Y=U instanceof Function?U(e.nodes):U;Y=Array.isArray(Y)?Y:[Y];const J=TS(Y,c,e.hooks.error.trigger),re=[];for(const pe of J)re.push(yS(pe));re.length&&e.hooks.nodesChange.trigger(re)},V=U=>{let Y=U instanceof Function?U(e.edges):U;Y=Array.isArray(Y)?Y:[Y];const J=qv(Y,e.isValidConnection,c,d,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),re=[];for(const pe of J)re.push(yS(pe));re.length&&e.hooks.edgesChange.trigger(re)},H=(U,Y=!0,J=!1)=>{const re=U instanceof Function?U(e.nodes):U,pe=Array.isArray(re)?re:[re],ue=[],ie=[];function se(de){const Ce=r(de);for(const $e of Ce)(!Ln($e.deletable)||$e.deletable)&&ie.push(wS($e.id,$e.source,$e.target,$e.sourceHandle,$e.targetHandle))}function he(de){const Ce=[];for(const $e of e.nodes)$e.parentNode===de&&Ce.push($e);if(Ce.length){for(const $e of Ce)ue.push(bS($e.id));Y&&se(Ce);for(const $e of Ce)he($e.id)}}for(const de of pe){const Ce=typeof de=="string"?c(de):de;Ce&&(Ln(Ce.deletable)&&!Ce.deletable||(ue.push(bS(Ce.id)),Y&&se([Ce]),J&&he(Ce.id)))}ie.length&&e.hooks.edgesChange.trigger(ie),ue.length&&e.hooks.nodesChange.trigger(ue)},P=U=>{const Y=U instanceof Function?U(e.edges):U,J=Array.isArray(Y)?Y:[Y],re=[];for(const pe of J){const ue=typeof pe=="string"?d(pe):pe;ue&&(Ln(ue.deletable)&&!ue.deletable||re.push(wS(typeof pe=="string"?pe:pe.id,ue.source,ue.target,ue.sourceHandle,ue.targetHandle)))}e.hooks.edgesChange.trigger(re)},O=(U,Y,J=!0)=>{const re=d(U.id);if(!re)return!1;const pe=e.edges.indexOf(re),ue=mse(U,Y,re,J,e.hooks.error.trigger);if(ue){const[ie]=qv([ue],e.isValidConnection,c,d,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((se,he)=>he===pe?ie:se),Yv(e.connectionLookup,n.value,[ie]),ie}return!1},M=(U,Y,J={replace:!1})=>{const re=d(U);if(!re)return;const pe=typeof Y=="function"?Y(re):Y;re.data=J.replace?pe:{...re.data,...pe}},B=U=>gS(U,e.nodes),L=U=>{const Y=gS(U,e.edges);return Yv(e.connectionLookup,n.value,Y),Y},K=(U,Y,J={replace:!1})=>{const re=c(U);if(!re)return;const pe=typeof Y=="function"?Y(re):Y;J.replace?e.nodes.splice(e.nodes.indexOf(re),1,pe):Object.assign(re,pe)},q=(U,Y,J={replace:!1})=>{const re=c(U);if(!re)return;const pe=typeof Y=="function"?Y(re):Y;re.data=J.replace?pe:{...re.data,...pe}},X=(U,Y,J=!1)=>{J?e.connectionClickStartHandle=U:e.connectionStartHandle=U,e.connectionEndHandle=null,e.connectionStatus=null,Y&&(e.connectionPosition=Y)},ee=(U,Y=null,J=null)=>{e.connectionStartHandle&&(e.connectionPosition=U,e.connectionEndHandle=Y,e.connectionStatus=J)},le=(U,Y)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,Y?e.connectionClickStartHandle=null:e.connectionStartHandle=null},Z=U=>{const Y=Wle(U),J=Y?null:Gi(U)?U:c(U.id);return!Y&&!J?[null,null,Y]:[Y?U:Pf(J),J,Y]},ve=(U,Y=!0,J=e.nodes)=>{const[re,pe,ue]=Z(U);if(!re)return[];const ie=[];for(const se of J||e.nodes){if(!ue&&(se.id===pe.id||!se.computedPosition))continue;const he=Pf(se),de=Rf(he,re);(Y&&de>0||de>=he.width*he.height||de>=Number(re.width)*Number(re.height))&&ie.push(se)}return ie},we=(U,Y,J=!0)=>{const[re]=Z(U);if(!re)return!1;const pe=Rf(re,Y);return J&&pe>0||pe>=Number(re.width)*Number(re.height)},Se=U=>{const{viewport:Y,dimensions:J,d3Zoom:re,d3Selection:pe,translateExtent:ue}=e;if(!re||!pe||!U.x&&!U.y)return!1;const ie=hi.translate(Y.x+U.x,Y.y+U.y).scale(Y.zoom),se=[[0,0],[J.width,J.height]],he=re.constrain()(ie,se,ue),de=e.viewport.x!==he.x||e.viewport.y!==he.y||e.viewport.zoom!==he.k;return re.transform(pe,he),de},oe=U=>{const Y=U instanceof Function?U(e):U,J=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Ln(Y.defaultEdgeOptions)&&(e.defaultEdgeOptions=Y.defaultEdgeOptions);const re=Y.modelValue||Y.nodes||Y.edges?[]:void 0;re&&(Y.modelValue&&re.push(...Y.modelValue),Y.nodes&&re.push(...Y.nodes),Y.edges&&re.push(...Y.edges),_(re));const pe=()=>{Ln(Y.maxZoom)&&k(Y.maxZoom),Ln(Y.minZoom)&&S(Y.minZoom),Ln(Y.translateExtent)&&x(Y.translateExtent)};for(const ue of Object.keys(Y)){const ie=ue,se=Y[ie];![...Mse,...J].includes(ie)&&Ln(se)&&(e[ie]=se)}hm(()=>e.d3Zoom).not.toBeNull().then(pe),e.initialized||(e.initialized=!0)};return{updateNodePositions:f,updateNodeDimensions:v,setElements:_,setNodes:A,setEdges:D,addNodes:W,addEdges:V,removeNodes:H,removeEdges:P,findNode:c,findEdge:d,updateEdge:O,updateEdgeData:M,updateNode:K,updateNodeData:q,applyEdgeChanges:L,applyNodeChanges:B,addSelectedElements:m,addSelectedNodes:g,addSelectedEdges:p,setMinZoom:S,setMaxZoom:k,setTranslateExtent:x,setNodeExtent:$,setPaneClickDistance:T,removeSelectedElements:w,removeSelectedNodes:y,removeSelectedEdges:b,startConnection:X,updateConnection:ee,endConnection:le,setInteractive:N,setState:oe,getIntersectingNodes:ve,getIncomers:l,getOutgoers:s,getConnectedEdges:r,getHandleConnections:u,isNodeIntersecting:we,panBy:Se,fitView:U=>o.value.fitView(U),zoomIn:U=>o.value.zoomIn(U),zoomOut:U=>o.value.zoomOut(U),zoomTo:(U,Y)=>o.value.zoomTo(U,Y),setViewport:(U,Y)=>o.value.setViewport(U,Y),setTransform:(U,Y)=>o.value.setTransform(U,Y),getViewport:()=>o.value.getViewport(),getTransform:()=>o.value.getTransform(),setCenter:(U,Y,J)=>o.value.setCenter(U,Y,J),fitBounds:(U,Y)=>o.value.fitBounds(U,Y),project:U=>o.value.project(U),screenToFlowCoordinate:U=>o.value.screenToFlowCoordinate(U),flowToScreenCoordinate:U=>o.value.flowToScreenCoordinate(U),toObject:()=>{const U=[],Y=[];for(const J of e.nodes){const{computedPosition:re,handleBounds:pe,selected:ue,dimensions:ie,isParent:se,resizing:he,dragging:de,events:Ce,...$e}=J;U.push($e)}for(const J of e.edges){const{selected:re,sourceNode:pe,targetNode:ue,events:ie,...se}=J;Y.push(se)}return JSON.parse(JSON.stringify({nodes:U,edges:Y,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:U=>new Promise(Y=>{const{nodes:J,edges:re,position:pe,zoom:ue,viewport:ie}=U;J&&A(J),re&&D(re);const[se,he]=ie?.x&&ie?.y?[ie.x,ie.y]:pe??[null,null];if(se&&he){const de=ie?.zoom||ue||e.viewport.zoom;return hm(()=>o.value.viewportInitialized).toBe(!0).then(()=>{o.value.setViewport({x:se,y:he,zoom:de}).then(()=>{Y(!0)})})}else Y(!0)}),updateNodeInternals:a,viewportHelper:o,$reset:()=>{const U=S_();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const Y=hi.translate(U.defaultViewport.x??0,U.defaultViewport.y??0).scale(ur(U.defaultViewport.zoom??1,U.minZoom,U.maxZoom)),J=e.viewportRef.getBoundingClientRect(),re=[[0,0],[J.width,J.height]],pe=e.d3Zoom.constrain()(Y,re,U.translateExtent);e.d3Zoom.transform(e.d3Selection,pe)}oe(U)},$destroy:()=>{}}}const Rse=["data-id","data-handleid","data-nodeid","data-handlepos"],Ase={name:"Handle",compatConfig:{MODE:3}},gi=ge({...Ase,props:{id:{default:null},type:{},position:{default:()=>Tt.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=LN(e,["position","connectable","connectableStart","connectableEnd","id"]),o=wt(()=>n.type??"source"),a=wt(()=>n.isValidConnection??null),{id:l,connectionStartHandle:s,connectionClickStartHandle:r,connectionEndHandle:u,vueFlowRef:c,nodesConnectable:d,noDragClassName:f,noPanClassName:v}=On(),{id:h,node:g,nodeEl:p,connectedEdges:m}=b_(),y=F(),b=wt(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),w=wt(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),S=wt(()=>{var D,_,W,V,H,P;return((D=s.value)==null?void 0:D.nodeId)===h&&((_=s.value)==null?void 0:_.id)===e.id&&((W=s.value)==null?void 0:W.type)===o.value||((V=u.value)==null?void 0:V.nodeId)===h&&((H=u.value)==null?void 0:H.id)===e.id&&((P=u.value)==null?void 0:P.type)===o.value}),k=wt(()=>{var D,_,W;return((D=r.value)==null?void 0:D.nodeId)===h&&((_=r.value)==null?void 0:_.id)===e.id&&((W=r.value)==null?void 0:W.type)===o.value}),{handlePointerDown:x,handleClick:$}=y_({nodeId:h,handleId:e.id,isValidConnection:a,type:o}),T=C(()=>typeof e.connectable=="string"&&e.connectable==="single"?!m.value.some(D=>{const _=D[`${o.value}Handle`];return D[o.value]!==h?!1:_?_===e.id:!0}):typeof e.connectable=="number"?m.value.filter(D=>{const _=D[`${o.value}Handle`];return D[o.value]!==h?!1:_?_===e.id:!0}).length{var D;if(!g.dimensions.width||!g.dimensions.height)return;const _=(D=g.handleBounds[o.value])==null?void 0:D.find(B=>B.id===e.id);if(!c.value||_)return;const W=c.value.querySelector(".vue-flow__transformationpane");if(!p.value||!y.value||!W||!e.id)return;const V=p.value.getBoundingClientRect(),H=y.value.getBoundingClientRect(),P=window.getComputedStyle(W),{m22:O}=new window.DOMMatrixReadOnly(P.transform),M={id:e.id,position:e.position,x:(H.left-V.left)/O,y:(H.top-V.top)/O,type:o.value,nodeId:h,...Dp(y.value)};g.handleBounds[o.value]=[...g.handleBounds[o.value]??[],M]});function N(D){const _=Zy(D);T.value&&b.value&&(_&&D.button===0||!_)&&x(D)}function A(D){!h||!r.value&&!b.value||T.value&&$(D)}return t({handleClick:$,handlePointerDown:x,onClick:A,onPointerDown:N}),(D,_)=>(E(),z("div",{ref_key:"handle",ref:y,"data-id":`${i(l)}-${i(h)}-${e.id}-${o.value}`,"data-handleid":e.id,"data-nodeid":i(h),"data-handlepos":D.position,class:R(["vue-flow__handle",[`vue-flow__handle-${D.position}`,`vue-flow__handle-${e.id}`,i(f),i(v),o.value,{connectable:T.value,connecting:k.value,connectablestart:b.value,connectableend:w.value,connectionindicator:T.value&&(b.value&&!S.value||w.value&&S.value)}]]),onMousedown:N,onTouchstartPassive:N,onClick:A},[fe(D.$slots,"default",{id:D.id})],42,Rse))}}),Bp=function({sourcePosition:e=Tt.Bottom,targetPosition:t=Tt.Top,label:n,connectable:o=!0,isValidTargetPos:a,isValidSourcePos:l,data:s}){const r=s.label??n;return[Le(gi,{type:"target",position:t,connectable:o,isValidConnection:a}),typeof r!="string"&&r?Le(r):Le(Pe,[r]),Le(gi,{type:"source",position:e,connectable:o,isValidConnection:l})]};Bp.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"];Bp.inheritAttrs=!1;Bp.compatConfig={MODE:3};const Dse=Bp,Fp=function({targetPosition:e=Tt.Top,label:t,connectable:n=!0,isValidTargetPos:o,data:a}){const l=a.label??t;return[Le(gi,{type:"target",position:e,connectable:n,isValidConnection:o}),typeof l!="string"&&l?Le(l):Le(Pe,[l])]};Fp.props=["targetPosition","label","isValidTargetPos","connectable","data"];Fp.inheritAttrs=!1;Fp.compatConfig={MODE:3};const Lse=Fp,zp=function({sourcePosition:e=Tt.Bottom,label:t,connectable:n=!0,isValidSourcePos:o,data:a}){const l=a.label??t;return[typeof l!="string"&&l?Le(l):Le(Pe,[l]),Le(gi,{type:"source",position:e,connectable:n,isValidConnection:o})]};zp.props=["sourcePosition","label","isValidSourcePos","connectable","data"];zp.inheritAttrs=!1;zp.compatConfig={MODE:3};const Vse=zp,Bse=["transform"],Fse=["width","height","x","y","rx","ry"],zse=["y"],Hse={name:"EdgeText",compatConfig:{MODE:3}},Kse=ge({...Hse,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=F({x:0,y:0,width:0,height:0}),n=F(null),o=C(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);at(a),be([()=>e.x,()=>e.y,n,()=>e.label],a);function a(){if(!n.value)return;const l=n.value.getBBox();(l.width!==t.value.width||l.height!==t.value.height)&&(t.value=l)}return(l,s)=>(E(),z("g",{transform:o.value,class:"vue-flow__edge-textwrapper"},[l.labelShowBg?(E(),z("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*l.labelBgPadding[0]}px`,height:`${t.value.height+2*l.labelBgPadding[1]}px`,x:-l.labelBgPadding[0],y:-l.labelBgPadding[1],style:Be(l.labelBgStyle),rx:l.labelBgBorderRadius,ry:l.labelBgBorderRadius},null,12,Fse)):ae("",!0),I("text",pt(l.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:l.labelStyle}),[fe(l.$slots,"default",{},()=>[typeof l.label!="string"?(E(),me(ft(l.label),{key:0})):(E(),z(Pe,{key:1},[Me(ye(l.label),1)],64))])],16,zse)],8,Bse))}}),Wse=["id","d","marker-end","marker-start"],jse=["d","stroke-width"],Use={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Hp=ge({...Use,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=F(null),o=F(null),a=F(null),l=Za();return t({pathEl:n,interactionEl:o,labelEl:a}),(s,r)=>(E(),z(Pe,null,[I("path",pt(i(l),{id:s.id,ref_key:"pathEl",ref:n,d:s.path,class:"vue-flow__edge-path","marker-end":s.markerEnd,"marker-start":s.markerStart}),null,16,Wse),s.interactionWidth?(E(),z("path",{key:0,ref_key:"interactionEl",ref:o,fill:"none",d:s.path,"stroke-width":s.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,jse)):ae("",!0),s.label&&s.labelX&&s.labelY?(E(),me(Kse,{key:1,ref_key:"labelEl",ref:a,x:s.labelX,y:s.labelY,label:s.label,"label-show-bg":s.labelShowBg,"label-bg-style":s.labelBgStyle,"label-bg-padding":s.labelBgPadding,"label-bg-border-radius":s.labelBgBorderRadius,"label-style":s.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):ae("",!0)],64))}});function C_({sourceX:e,sourceY:t,targetX:n,targetY:o}){const a=Math.abs(n-e)/2,l=n=0?.5*e:t*25*Math.sqrt(-e)}function OS({pos:e,x1:t,y1:n,x2:o,y2:a,c:l}){let s,r;switch(e){case Tt.Left:s=t-sd(t-o,l),r=n;break;case Tt.Right:s=t+sd(o-t,l),r=n;break;case Tt.Top:s=t,r=n-sd(n-a,l);break;case Tt.Bottom:s=t,r=n+sd(a-n,l);break}return[s,r]}function x_(e){const{sourceX:t,sourceY:n,sourcePosition:o=Tt.Bottom,targetX:a,targetY:l,targetPosition:s=Tt.Top,curvature:r=.25}=e,[u,c]=OS({pos:o,x1:t,y1:n,x2:a,y2:l,c:r}),[d,f]=OS({pos:s,x1:a,y1:l,x2:t,y2:n,c:r}),[v,h,g,p]=k_({sourceX:t,sourceY:n,targetX:a,targetY:l,sourceControlX:u,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${t},${n} C${u},${c} ${d},${f} ${a},${l}`,v,h,g,p]}function MS({pos:e,x1:t,y1:n,x2:o,y2:a}){let l,s;switch(e){case Tt.Left:case Tt.Right:l=.5*(t+o),s=n;break;case Tt.Top:case Tt.Bottom:l=t,s=.5*(n+a);break}return[l,s]}function E_(e){const{sourceX:t,sourceY:n,sourcePosition:o=Tt.Bottom,targetX:a,targetY:l,targetPosition:s=Tt.Top}=e,[r,u]=MS({pos:o,x1:t,y1:n,x2:a,y2:l}),[c,d]=MS({pos:s,x1:a,y1:l,x2:t,y2:n}),[f,v,h,g]=k_({sourceX:t,sourceY:n,targetX:a,targetY:l,sourceControlX:r,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${t},${n} C${r},${u} ${c},${d} ${a},${l}`,f,v,h,g]}const PS={[Tt.Left]:{x:-1,y:0},[Tt.Right]:{x:1,y:0},[Tt.Top]:{x:0,y:-1},[Tt.Bottom]:{x:0,y:1}};function Yse({source:e,sourcePosition:t=Tt.Bottom,target:n}){return t===Tt.Left||t===Tt.Right?e.xe[f]?-1:1)*V:y[f]=(c[f]>n[f]?-1:1)*V}}if(t!==o){const W=f==="x"?"y":"x",V=s[f]===r[W],H=u[W]>c[W],P=u[W]=_?(g=(N.x+A.x)/2,p=h[0].y):(g=h[0].x,p=(N.y+A.y)/2)}return[[e,{x:u.x+m.x,y:u.y+m.y},...h,{x:c.x+y.x,y:c.y+y.y},n],g,p,S,k]}function Gse(e,t,n,o){const a=Math.min(RS(e,t)/2,RS(t,n)/2,o),{x:l,y:s}=t;if(e.x===l&&l===n.x||e.y===s&&s===n.y)return`L${l} ${s}`;if(e.y===s){const c=e.x{let S;return w>0&&w{const[n,o,a]=Xse(e);return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),Jse=Zse,Qse=ge({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,a]=_m({...e,sourcePosition:e.sourcePosition??Tt.Bottom,targetPosition:e.targetPosition??Tt.Top});return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),$_=Qse,ere=ge({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>Le($_,{...e,...t,borderRadius:0})}}),tre=ere,nre=ge({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,a]=x_({...e,sourcePosition:e.sourcePosition??Tt.Bottom,targetPosition:e.targetPosition??Tt.Top});return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),ore=nre,are=ge({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,a]=E_({...e,sourcePosition:e.sourcePosition??Tt.Bottom,targetPosition:e.targetPosition??Tt.Top});return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),lre=are,sre={input:Vse,default:Dse,output:Lse},rre={default:ore,straight:Jse,step:tre,smoothstep:$_,simplebezier:lre};function ire(e,t,n){const o=C(()=>p=>t.value.get(p)),a=C(()=>p=>n.value.get(p)),l=C(()=>{const p={...rre,...e.edgeTypes},m=Object.keys(p);for(const y of e.edges)y.type&&!m.includes(y.type)&&(p[y.type]=y.type);return p}),s=C(()=>{const p={...sre,...e.nodeTypes},m=Object.keys(p);for(const y of e.nodes)y.type&&!m.includes(y.type)&&(p[y.type]=y.type);return p}),r=C(()=>e.onlyRenderVisibleElements?r_(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),u=C(()=>{if(e.onlyRenderVisibleElements){const p=[];for(const m of e.edges){const y=t.value.get(m.source),b=t.value.get(m.target);ase({sourcePos:y.computedPosition||{x:0,y:0},targetPos:b.computedPosition||{x:0,y:0},sourceWidth:y.dimensions.width,sourceHeight:y.dimensions.height,targetWidth:b.dimensions.width,targetHeight:b.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&p.push(m)}return p}return e.edges}),c=C(()=>[...r.value,...u.value]),d=C(()=>{const p=[];for(const m of e.nodes)m.selected&&p.push(m);return p}),f=C(()=>{const p=[];for(const m of e.edges)m.selected&&p.push(m);return p}),v=C(()=>[...d.value,...f.value]),h=C(()=>{const p=[];for(const m of e.nodes)m.dimensions.width&&m.dimensions.height&&m.handleBounds!==void 0&&p.push(m);return p}),g=C(()=>r.value.length>0&&h.value.length===r.value.length);return{getNode:o,getEdge:a,getElements:c,getEdgeTypes:l,getNodeTypes:s,getEdges:u,getNodes:r,getSelectedElements:v,getSelectedNodes:d,getSelectedEdges:f,getNodesInitialized:h,areNodesInitialized:g}}class Os{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=ct())==null?void 0:t.appContext.app,o=n?.config.globalProperties.$vueFlowStorage??Os.instance;return Os.instance=o??new Os,n&&(n.config.globalProperties.$vueFlowStorage=Os.instance),Os.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const o=S_(),a=Kt(o),l={};for(const[v,h]of Object.entries(a.hooks)){const g=`on${v.charAt(0).toUpperCase()+v.slice(1)}`;l[g]=h.on}const s={};for(const[v,h]of Object.entries(a.hooks))s[v]=h.trigger;const r=C(()=>{const v=new Map;for(const h of a.nodes)v.set(h.id,h);return v}),u=C(()=>{const v=new Map;for(const h of a.edges)v.set(h.id,h);return v}),c=ire(a,r,u),d=Pse(a,r,u);d.setState({...a,...n});const f={...l,...c,...d,...Qte(a),nodeLookup:r,edgeLookup:u,emits:s,id:t,vueFlowVersion:"1.48.2",$destroy:()=>{this.remove(t)}};return this.set(t,f),f}getId(){return`vue-flow-${this.currentId++}`}}function On(e){const t=Os.getInstance(),n=Xu(),o=typeof e=="object",a=o?e:{id:e},l=a.id,s=l??n?.vueFlowId;let r;if(n){const u=Fe(IS,null);typeof u<"u"&&u!==null&&(!s||u.id===s)&&(r=u)}if(r||s&&(r=t.get(s)),!r||s&&r.id!==s){const u=l??t.getId(),c=t.create(u,a);r=c,(n??Hf(!0)).run(()=>{be(c.applyDefault,(f,v,h)=>{const g=m=>{c.applyNodeChanges(m)},p=m=>{c.applyEdgeChanges(m)};f?(c.onNodesChange(g),c.onEdgesChange(p)):(c.hooks.value.nodesChange.off(g),c.hooks.value.edgesChange.off(p)),h(()=>{c.hooks.value.nodesChange.off(g),c.hooks.value.edgesChange.off(p)})},{immediate:!0}),Fu(()=>{if(r){const f=t.get(r.id);f?f.$destroy():xc(`No store instance found for id ${r.id} in storage.`)}})})}else o&&r.setState(a);if(n&&(xt(IS,r),n.vueFlowId=r.id),o){const u=ct();u?.type.name!=="VueFlow"&&r.emits.error(new Un(Fn.USEVUEFLOW_OPTIONS))}return r}function ure(e){const{emits:t,dimensions:n}=On();let o;at(()=>{const a=()=>{var l,s;if(!e.value||!(((s=(l=e.value).checkVisibility)==null?void 0:s.call(l))??!0))return;const r=Dp(e.value);(r.width===0||r.height===0)&&t.error(new Un(Fn.MISSING_VIEWPORT_DIMENSIONS)),n.value={width:r.width||500,height:r.height||500}};a(),window.addEventListener("resize",a),e.value&&(o=new ResizeObserver(()=>a()),o.observe(e.value)),Ft(()=>{window.removeEventListener("resize",a),o&&e.value&&o.unobserve(e.value)})})}const cre={name:"UserSelection",compatConfig:{MODE:3}},dre=ge({...cre,props:{userSelectionRect:{}},setup(e){return(t,n)=>(E(),z("div",{class:"vue-flow__selection vue-flow__container",style:Be({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),fre=["tabIndex"],pre={name:"NodesSelection",compatConfig:{MODE:3}},vre=ge({...pre,setup(e){const{emits:t,viewport:n,getSelectedNodes:o,noPanClassName:a,disableKeyboardA11y:l,userSelectionActive:s}=On(),r=w_(),u=F(null),c=g_({el:u,onStart(g){t.selectionDragStart(g),t.nodeDragStart(g)},onDrag(g){t.selectionDrag(g),t.nodeDrag(g)},onStop(g){t.selectionDragStop(g),t.nodeDragStop(g)}});at(()=>{var g;l.value||(g=u.value)==null||g.focus({preventScroll:!0})});const d=C(()=>s_(o.value)),f=C(()=>({width:`${d.value.width}px`,height:`${d.value.height}px`,top:`${d.value.y}px`,left:`${d.value.x}px`}));function v(g){t.selectionContextMenu({event:g,nodes:o.value})}function h(g){l.value||Yr[g.key]&&(g.preventDefault(),r({x:Yr[g.key].x,y:Yr[g.key].y},g.shiftKey))}return(g,p)=>!i(s)&&d.value.width&&d.value.height?(E(),z("div",{key:0,class:R(["vue-flow__nodesselection vue-flow__container",i(a)]),style:Be({transform:`translate(${i(n).x}px,${i(n).y}px) scale(${i(n).zoom})`})},[I("div",{ref_key:"el",ref:u,class:R([{dragging:i(c)},"vue-flow__nodesselection-rect"]),style:Be(f.value),tabIndex:i(l)?void 0:-1,onContextmenu:v,onKeydown:h},null,46,fre)],6)):ae("",!0)}});function hre(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const mre={name:"Pane",compatConfig:{MODE:3}},gre=ge({...mre,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:n,viewport:o,emits:a,userSelectionActive:l,removeSelectedElements:s,userSelectionRect:r,elementsSelectable:u,nodesSelectionActive:c,getSelectedEdges:d,getSelectedNodes:f,removeNodes:v,removeEdges:h,selectionMode:g,deleteKeyCode:p,multiSelectionKeyCode:m,multiSelectionActive:y,edgeLookup:b,nodeLookup:w,connectionLookup:S,defaultEdgeOptions:k,connectionStartHandle:x,panOnDrag:$}=On(),T=kt(null),N=kt(new Set),A=kt(new Set),D=kt(null),_=wt(()=>u.value&&(e.isSelecting||l.value)),W=wt(()=>x.value!==null);let V=!1,H=!1;const P=cu(p,{actInsideInputWithModifier:!1}),O=cu(m);be(P,le=>{le&&(v(f.value),h(d.value),c.value=!1)}),be(O,le=>{y.value=le});function M(le,Z){return ve=>{ve.target===Z&&le?.(ve)}}function B(le){if(V||W.value){V=!1;return}a.paneClick(le),s(),c.value=!1}function L(le){var Z;if(Array.isArray($.value)&&((Z=$.value)!=null&&Z.includes(2))){le.preventDefault();return}a.paneContextMenu(le)}function K(le){a.paneScroll(le)}function q(le){var Z,ve,we;if(D.value=((Z=t.value)==null?void 0:Z.getBoundingClientRect())??null,!u.value||!e.isSelecting||le.button!==0||le.target!==T.value||!D.value)return;(we=(ve=le.target)==null?void 0:ve.setPointerCapture)==null||we.call(ve,le.pointerId);const{x:Se,y:oe}=hre(le,D.value);H=!0,V=!1,s(),r.value={width:0,height:0,startX:Se,startY:oe,x:Se,y:oe},a.selectionStart(le)}function X(le){var Z;if(!D.value||!r.value)return;V=!0;const{x:ve,y:we}=Da(le,D.value),{startX:Se=0,startY:oe=0}=r.value,ce={startX:Se,startY:oe,x:veY.id)),A.value=new Set;const U=((Z=k.value)==null?void 0:Z.selectable)??!0;for(const Y of N.value){const J=S.value.get(Y);if(J)for(const{edgeId:re}of J.values()){const pe=b.value.get(re);pe&&(pe.selectable??U)&&A.value.add(re)}}if(!NS(j,N.value)){const Y=Xl(w.value,N.value,!0);a.nodesChange(Y)}if(!NS(Q,A.value)){const Y=Xl(b.value,A.value);a.edgesChange(Y)}r.value=ce,l.value=!0,c.value=!1}function ee(le){var Z;le.button!==0||!H||((Z=le.target)==null||Z.releasePointerCapture(le.pointerId),!l.value&&r.value&&le.target===T.value&&B(le),l.value=!1,r.value=null,c.value=N.value.size>0,a.selectionEnd(le),e.selectionKeyPressed&&(V=!1),H=!1)}return(le,Z)=>(E(),z("div",{ref_key:"container",ref:T,class:R(["vue-flow__pane vue-flow__container",{selection:le.isSelecting}]),onClick:Z[0]||(Z[0]=ve=>_.value?void 0:M(B,T.value)(ve)),onContextmenu:Z[1]||(Z[1]=ve=>M(L,T.value)(ve)),onWheelPassive:Z[2]||(Z[2]=ve=>M(K,T.value)(ve)),onPointerenter:Z[3]||(Z[3]=ve=>_.value?void 0:i(a).paneMouseEnter(ve)),onPointerdown:Z[4]||(Z[4]=ve=>_.value?q(ve):i(a).paneMouseMove(ve)),onPointermove:Z[5]||(Z[5]=ve=>_.value?X(ve):i(a).paneMouseMove(ve)),onPointerup:Z[6]||(Z[6]=ve=>_.value?ee(ve):void 0),onPointerleave:Z[7]||(Z[7]=ve=>i(a).paneMouseLeave(ve))},[fe(le.$slots,"default"),i(l)&&i(r)?(E(),me(dre,{key:0,"user-selection-rect":i(r)},null,8,["user-selection-rect"])):ae("",!0),i(c)&&i(f).length?(E(),me(vre,{key:1})):ae("",!0)],34))}}),yre={name:"Transform",compatConfig:{MODE:3}},bre=ge({...yre,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:o}=On(),a=C(()=>n.value?!o.value:!1),l=C(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(s,r)=>(E(),z("div",{class:"vue-flow__transformationpane vue-flow__container",style:Be({transform:l.value,opacity:a.value?0:void 0})},[fe(s.$slots,"default")],4))}}),wre={name:"Viewport",compatConfig:{MODE:3}},Sre=ge({...wre,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:o,translateExtent:a,zoomActivationKeyCode:l,selectionKeyCode:s,panActivationKeyCode:r,panOnScroll:u,panOnScrollMode:c,panOnScrollSpeed:d,panOnDrag:f,zoomOnDoubleClick:v,zoomOnPinch:h,zoomOnScroll:g,preventScrolling:p,noWheelClassName:m,noPanClassName:y,emits:b,connectionStartHandle:w,userSelectionActive:S,paneDragging:k,d3Zoom:x,d3Selection:$,d3ZoomHandler:T,viewport:N,viewportRef:A,paneClickDistance:D}=On();ure(A);const _=kt(!1),W=kt(!1);let V=null,H=!1,P=0,O={x:0,y:0,zoom:0};const M=cu(r),B=cu(s),L=cu(l),K=wt(()=>(!B.value||B.value&&s.value===!0)&&(M.value||f.value)),q=wt(()=>M.value||u.value),X=wt(()=>s.value===!0&&K.value!==!0),ee=wt(()=>B.value&&s.value!==!0||S.value||X.value),le=wt(()=>w.value!==null);at(()=>{if(!A.value){xc("Viewport element is missing");return}const oe=A.value,ce=oe.getBoundingClientRect(),j=Lle().clickDistance(D.value).scaleExtent([t.value,n.value]).translateExtent(a.value),Q=da(oe).call(j),U=Q.on("wheel.zoom"),Y=hi.translate(o.value.x??0,o.value.y??0).scale(ur(o.value.zoom??1,t.value,n.value)),J=[[0,0],[ce.width,ce.height]],re=j.constrain()(Y,J,a.value);j.transform(Q,re),j.wheelDelta(hS),x.value=j,$.value=Q,T.value=U,N.value={x:re.x,y:re.y,zoom:re.k},j.on("start",pe=>{var ue;if(!pe.sourceEvent)return null;P=pe.sourceEvent.button,_.value=!0;const ie=we(pe.transform);((ue=pe.sourceEvent)==null?void 0:ue.type)==="mousedown"&&(k.value=!0),O=ie,b.viewportChangeStart(ie),b.moveStart({event:pe,flowTransform:ie})}),j.on("end",pe=>{if(!pe.sourceEvent)return null;if(_.value=!1,k.value=!1,Z(K.value,P??0)&&!H&&b.paneContextMenu(pe.sourceEvent),H=!1,ve(O,pe.transform)){const ue=we(pe.transform);O=ue,b.viewportChangeEnd(ue),b.moveEnd({event:pe,flowTransform:ue})}}),j.filter(pe=>{var ue;const ie=L.value||g.value,se=h.value&&pe.ctrlKey,he=pe.button,de=pe.type==="wheel";if(he===1&&pe.type==="mousedown"&&(Se(pe,"vue-flow__node")||Se(pe,"vue-flow__edge")))return!0;if(!K.value&&!ie&&!q.value&&!v.value&&!h.value||S.value||le.value&&!de||!v.value&&pe.type==="dblclick"||Se(pe,m.value)&&de||Se(pe,y.value)&&(!de||q.value&&de&&!L.value)||!h.value&&pe.ctrlKey&&de||!ie&&!q.value&&!se&&de)return!1;if(!h&&pe.type==="touchstart"&&((ue=pe.touches)==null?void 0:ue.length)>1)return pe.preventDefault(),!1;if(!K.value&&(pe.type==="mousedown"||pe.type==="touchstart")||X.value&&Array.isArray(f.value)&&f.value.includes(0)&&he===0||Array.isArray(f.value)&&!f.value.includes(he)&&(pe.type==="mousedown"||pe.type==="touchstart"))return!1;const Ce=Array.isArray(f.value)&&f.value.includes(he)||s.value===!0&&Array.isArray(f.value)&&!f.value.includes(0)||!he||he<=1;return(!pe.ctrlKey||M.value||de)&&Ce}),be([S,K],()=>{S.value&&!_.value?j.on("zoom",null):S.value||j.on("zoom",pe=>{N.value={x:pe.transform.x,y:pe.transform.y,zoom:pe.transform.k};const ue=we(pe.transform);H=Z(K.value,P??0),b.viewportChange(ue),b.move({event:pe,flowTransform:ue})})},{immediate:!0}),be([S,q,c,L,h,p,m],()=>{q.value&&!L.value&&!S.value?Q.on("wheel.zoom",pe=>{if(Se(pe,m.value))return!1;const ue=L.value||g.value,ie=h.value&&pe.ctrlKey;if(!(!p.value||q.value||ue||ie))return!1;pe.preventDefault(),pe.stopImmediatePropagation();const he=Q.property("__zoom").k||1,de=Af();if(!M.value&&pe.ctrlKey&&h.value&&de){const Xe=Ma(pe),$t=hS(pe),At=he*2**$t;j.scaleTo(Q,At,Xe,pe);return}const Ce=pe.deltaMode===1?20:1;let $e=c.value===uu.Vertical?0:pe.deltaX*Ce,Ue=c.value===uu.Horizontal?0:pe.deltaY*Ce;!de&&pe.shiftKey&&c.value!==uu.Vertical&&!$e&&Ue&&($e=Ue,Ue=0),j.translateBy(Q,-($e/he)*d.value,-(Ue/he)*d.value);const Qe=we(Q.property("__zoom"));V&&clearTimeout(V),W.value?(b.move({event:pe,flowTransform:Qe}),b.viewportChange(Qe),V=setTimeout(()=>{b.moveEnd({event:pe,flowTransform:Qe}),b.viewportChangeEnd(Qe),W.value=!1},150)):(W.value=!0,b.moveStart({event:pe,flowTransform:Qe}),b.viewportChangeStart(Qe))},{passive:!1}):typeof U<"u"&&Q.on("wheel.zoom",function(pe,ue){const ie=!p.value&&pe.type==="wheel"&&!pe.ctrlKey,se=L.value||g.value,he=h.value&&pe.ctrlKey;if(!se&&!u.value&&!he&&pe.type==="wheel"||ie||Se(pe,m.value))return null;pe.preventDefault(),U.call(this,pe,ue)},{passive:!1})},{immediate:!0})});function Z(oe,ce){return ce===2&&Array.isArray(oe)&&oe.includes(2)}function ve(oe,ce){return oe.x!==ce.x&&!Number.isNaN(ce.x)||oe.y!==ce.y&&!Number.isNaN(ce.y)||oe.zoom!==ce.k&&!Number.isNaN(ce.k)}function we(oe){return{x:oe.x,y:oe.y,zoom:oe.k}}function Se(oe,ce){return oe.target.closest(`.${ce}`)}return(oe,ce)=>(E(),z("div",{ref_key:"viewportRef",ref:A,class:"vue-flow__viewport vue-flow__container"},[G(gre,{"is-selecting":ee.value,"selection-key-pressed":i(B),class:R({connecting:le.value,dragging:i(k),draggable:i(f)===!0||Array.isArray(i(f))&&i(f).includes(0)})},{default:ne(()=>[G(bre,null,{default:ne(()=>[fe(oe.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),Cre=["id"],kre=["id"],xre=["id"],Ere={name:"A11yDescriptions",compatConfig:{MODE:3}},$re=ge({...Ere,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:o}=On();return(a,l)=>(E(),z(Pe,null,[I("div",{id:`${i(JT)}-${i(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+ye(i(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,Cre),I("div",{id:`${i(QT)}-${i(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,kre),i(n)?ae("",!0):(E(),z("div",{key:0,id:`${i(Kle)}-${i(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},ye(i(o)),9,xre))],64))}});function Tre(){const e=On();be(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function _re(e,t,n){return n===Tt.Left?e-t:n===Tt.Right?e+t:e}function Nre(e,t,n){return n===Tt.Top?e-t:n===Tt.Bottom?e+t:e}const Jy=function({radius:e=10,centerX:t=0,centerY:n=0,position:o=Tt.Top,type:a}){return Le("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${a}`,cx:_re(t,e,o),cy:Nre(n,e,o),r:e,stroke:"transparent",fill:"transparent"})};Jy.props=["radius","centerX","centerY","position","type"];Jy.compatConfig={MODE:3};const AS=Jy,Ire=ge({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:o,edgeUpdaterRadius:a,emits:l,nodesSelectionActive:s,noPanClassName:r,getEdgeTypes:u,removeSelectedEdges:c,findEdge:d,findNode:f,isValidConnection:v,multiSelectionActive:h,disableKeyboardA11y:g,elementsSelectable:p,edgesUpdatable:m,edgesFocusable:y,hooks:b}=On(),w=C(()=>d(e.id)),{emit:S,on:k}=wse(w.value,l),x=Fe(Vp),$=ct(),T=F(!1),N=F(!1),A=F(""),D=F(null),_=F("source"),W=F(null),V=wt(()=>typeof w.value.selectable>"u"?p.value:w.value.selectable),H=wt(()=>typeof w.value.updatable>"u"?m.value:w.value.updatable),P=wt(()=>typeof w.value.focusable>"u"?y.value:w.value.focusable);xt(gse,e.id),xt(yse,W);const O=C(()=>w.value.class instanceof Function?w.value.class(w.value):w.value.class),M=C(()=>w.value.style instanceof Function?w.value.style(w.value):w.value.style),B=C(()=>{const Y=w.value.type||"default",J=x?.[`edge-${Y}`];if(J)return J;let re=w.value.template??u.value[Y];if(typeof re=="string"&&$){const pe=Object.keys($.appContext.components);pe&&pe.includes(Y)&&(re=yt(Y,!1))}return re&&typeof re!="string"?re:(l.error(new Un(Fn.EDGE_TYPE_MISSING,re)),!1)}),{handlePointerDown:L}=y_({nodeId:A,handleId:D,type:_,isValidConnection:v,edgeUpdaterType:_,onEdgeUpdate:X,onEdgeUpdateEnd:ee});return()=>{const Y=f(w.value.source),J=f(w.value.target),re="pathOptions"in w.value?w.value.pathOptions:{};if(!Y&&!J)return l.error(new Un(Fn.EDGE_SOURCE_TARGET_MISSING,w.value.id,w.value.source,w.value.target)),null;if(!Y)return l.error(new Un(Fn.EDGE_SOURCE_MISSING,w.value.id,w.value.source)),null;if(!J)return l.error(new Un(Fn.EDGE_TARGET_MISSING,w.value.id,w.value.target)),null;if(!w.value||w.value.hidden||Y.hidden||J.hidden)return null;let pe;o.value===vs.Strict?pe=Y.handleBounds.source:pe=[...Y.handleBounds.source||[],...Y.handleBounds.target||[]];const ue=kS(pe,w.value.sourceHandle);let ie;o.value===vs.Strict?ie=J.handleBounds.target:ie=[...J.handleBounds.target||[],...J.handleBounds.source||[]];const se=kS(ie,w.value.targetHandle),he=ue?.position||Tt.Bottom,de=se?.position||Tt.Top,{x:Ce,y:$e}=mi(Y,ue,he),{x:Ue,y:Qe}=mi(J,se,de);return w.value.sourceX=Ce,w.value.sourceY=$e,w.value.targetX=Ue,w.value.targetY=Qe,Le("g",{ref:W,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${B.value===!1?"default":w.value.type||"default"}`,r.value,O.value,{updating:T.value,selected:w.value.selected,animated:w.value.animated,inactive:!V.value&&!b.value.edgeClick.hasListeners()}],tabIndex:P.value?0:void 0,"aria-label":w.value.ariaLabel===null?void 0:w.value.ariaLabel??`Edge from ${w.value.source} to ${w.value.target}`,"aria-describedby":P.value?`${QT}-${t}`:void 0,"aria-roledescription":"edge",role:P.value?"group":"img",...w.value.domAttributes,onClick:Z,onContextmenu:ve,onDblclick:we,onMouseenter:Se,onMousemove:oe,onMouseleave:ce,onKeyDown:P.value?U:void 0},[N.value?null:Le(B.value===!1?u.value.default:B.value,{id:e.id,sourceNode:Y,targetNode:J,source:w.value.source,target:w.value.target,type:w.value.type,updatable:H.value,selected:w.value.selected,animated:w.value.animated,label:w.value.label,labelStyle:w.value.labelStyle,labelShowBg:w.value.labelShowBg,labelBgStyle:w.value.labelBgStyle,labelBgPadding:w.value.labelBgPadding,labelBgBorderRadius:w.value.labelBgBorderRadius,data:w.value.data,events:{...w.value.events,...k},style:M.value,markerStart:`url('#${Yu(w.value.markerStart,t)}')`,markerEnd:`url('#${Yu(w.value.markerEnd,t)}')`,sourcePosition:he,targetPosition:de,sourceX:Ce,sourceY:$e,targetX:Ue,targetY:Qe,sourceHandleId:w.value.sourceHandle,targetHandleId:w.value.targetHandle,interactionWidth:w.value.interactionWidth,...re}),[H.value==="source"||H.value===!0?[Le("g",{onMousedown:j,onMouseenter:K,onMouseout:q},Le(AS,{position:he,centerX:Ce,centerY:$e,radius:a.value,type:"source","data-type":"source"}))]:null,H.value==="target"||H.value===!0?[Le("g",{onMousedown:Q,onMouseenter:K,onMouseout:q},Le(AS,{position:de,centerX:Ue,centerY:Qe,radius:a.value,type:"target","data-type":"target"}))]:null]])};function K(){T.value=!0}function q(){T.value=!1}function X(Y,J){S.update({event:Y,edge:w.value,connection:J})}function ee(Y){S.updateEnd({event:Y,edge:w.value}),N.value=!1}function le(Y,J){Y.button===0&&(N.value=!0,A.value=J?w.value.target:w.value.source,D.value=(J?w.value.targetHandle:w.value.sourceHandle)??null,_.value=J?"target":"source",S.updateStart({event:Y,edge:w.value}),L(Y))}function Z(Y){var J;const re={event:Y,edge:w.value};V.value&&(s.value=!1,w.value.selected&&h.value?(c([w.value]),(J=W.value)==null||J.blur()):n([w.value])),S.click(re)}function ve(Y){S.contextMenu({event:Y,edge:w.value})}function we(Y){S.doubleClick({event:Y,edge:w.value})}function Se(Y){S.mouseEnter({event:Y,edge:w.value})}function oe(Y){S.mouseMove({event:Y,edge:w.value})}function ce(Y){S.mouseLeave({event:Y,edge:w.value})}function j(Y){le(Y,!0)}function Q(Y){le(Y,!1)}function U(Y){var J;!g.value&&e_.includes(Y.key)&&V.value&&(Y.key==="Escape"?((J=W.value)==null||J.blur(),c([d(e.id)])):n([d(e.id)]))}}}),Ore=Ire,Mre=ge({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:o,connectionEndHandle:a,connectionPosition:l,connectionLineType:s,connectionLineStyle:r,connectionLineOptions:u,connectionStatus:c,viewport:d,findNode:f}=On(),v=(e=Fe(Vp))==null?void 0:e["connection-line"],h=C(()=>{var b;return f((b=o.value)==null?void 0:b.nodeId)}),g=C(()=>{var b;return f((b=a.value)==null?void 0:b.nodeId)??null}),p=C(()=>({x:(l.value.x-d.value.x)/d.value.zoom,y:(l.value.y-d.value.y)/d.value.zoom})),m=C(()=>u.value.markerStart?`url(#${Yu(u.value.markerStart,t)})`:""),y=C(()=>u.value.markerEnd?`url(#${Yu(u.value.markerEnd,t)})`:"");return()=>{var b,w,S;if(!h.value||!o.value)return null;const k=o.value.id,x=o.value.type,$=h.value.handleBounds;let T=$?.[x]??[];if(n.value===vs.Loose){const M=$?.[x==="source"?"target":"source"]??[];T=[...T,...M]}if(!T)return null;const N=(k?T.find(M=>M.id===k):T[0])??null,A=N?.position??Tt.Top,{x:D,y:_}=mi(h.value,N,A);let W=null;g.value&&(n.value===vs.Strict?W=((b=g.value.handleBounds[x==="source"?"target":"source"])==null?void 0:b.find(M=>{var B;return M.id===((B=a.value)==null?void 0:B.id)}))||null:W=((w=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:w.find(M=>{var B;return M.id===((B=a.value)==null?void 0:B.id)}))||null);const V=((S=a.value)==null?void 0:S.position)??(A?$m[A]:null);if(!A||!V)return null;const H=s.value??u.value.type??Is.Bezier;let P="";const O={sourceX:D,sourceY:_,sourcePosition:A,targetX:p.value.x,targetY:p.value.y,targetPosition:V};return H===Is.Bezier?[P]=x_(O):H===Is.Step?[P]=_m({...O,borderRadius:0}):H===Is.SmoothStep?[P]=_m(O):H===Is.SimpleBezier?[P]=E_(O):P=`M${D},${_} ${p.value.x},${p.value.y}`,Le("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},Le("g",{class:"vue-flow__connection"},v?Le(v,{sourceX:D,sourceY:_,sourcePosition:A,targetX:p.value.x,targetY:p.value.y,targetPosition:V,sourceNode:h.value,sourceHandle:N,targetNode:g.value,targetHandle:W,markerEnd:y.value,markerStart:m.value,connectionStatus:c.value}):Le("path",{d:P,class:[u.value.class,c.value,"vue-flow__connection-path"],style:{...r.value,...u.value.style},"marker-end":y.value,"marker-start":m.value})))}}}),Pre=Mre,Rre=["id","markerWidth","markerHeight","markerUnits","orient"],Are={name:"MarkerType",compatConfig:{MODE:3}},Dre=ge({...Are,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(E(),z("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===i(xm).ArrowClosed?(E(),z("polyline",{key:0,style:Be({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):ae("",!0),t.type===i(xm).Arrow?(E(),z("polyline",{key:1,style:Be({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):ae("",!0)],8,Rre))}}),Lre={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},Vre={name:"MarkerDefinitions",compatConfig:{MODE:3}},Bre=ge({...Vre,setup(e){const{id:t,edges:n,connectionLineOptions:o,defaultMarkerColor:a}=On(),l=C(()=>{const s=new Set,r=[],u=c=>{if(c){const d=Yu(c,t);s.has(d)||(typeof c=="object"?r.push({...c,id:d,color:c.color||a.value}):r.push({id:d,color:a.value,type:c}),s.add(d))}};for(const c of[o.value.markerEnd,o.value.markerStart])u(c);for(const c of n.value)for(const d of[c.markerStart,c.markerEnd])u(d);return r.sort((c,d)=>c.id.localeCompare(d.id))});return(s,r)=>(E(),z("svg",Lre,[I("defs",null,[(E(!0),z(Pe,null,dt(l.value,u=>(E(),me(Dre,{id:u.id,key:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,"stroke-width":u.strokeWidth,orient:u.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),Fre={name:"Edges",compatConfig:{MODE:3}},zre=ge({...Fre,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:o}=On();return(a,l)=>(E(),z(Pe,null,[G(Bre),(E(!0),z(Pe,null,dt(i(n),s=>(E(),z("svg",{key:s.id,class:"vue-flow__edges vue-flow__container",style:Be({zIndex:i(lse)(s,i(t),i(o))})},[G(i(Ore),{id:s.id},null,8,["id"])],4))),128)),G(i(Pre))],64))}}),Hre=ge({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:o,nodesSelectionActive:a,multiSelectionActive:l,emits:s,removeSelectedNodes:r,addSelectedNodes:u,updateNodeDimensions:c,onUpdateNodeInternals:d,getNodeTypes:f,nodeExtent:v,elevateNodesOnSelect:h,disableKeyboardA11y:g,ariaLiveMessage:p,snapToGrid:m,snapGrid:y,nodeDragThreshold:b,nodesDraggable:w,elementsSelectable:S,nodesConnectable:k,nodesFocusable:x,hooks:$}=On(),T=F(null);xt(m_,T),xt(h_,e.id);const N=Fe(Vp),A=ct(),D=w_(),{node:_,parentNode:W}=b_(e.id),{emit:V,on:H}=xse(_,s),P=wt(()=>typeof _.draggable>"u"?w.value:_.draggable),O=wt(()=>typeof _.selectable>"u"?S.value:_.selectable),M=wt(()=>typeof _.connectable>"u"?k.value:_.connectable),B=wt(()=>typeof _.focusable>"u"?x.value:_.focusable),L=C(()=>O.value||P.value||$.value.nodeClick.hasListeners()||$.value.nodeDoubleClick.hasListeners()||$.value.nodeMouseEnter.hasListeners()||$.value.nodeMouseMove.hasListeners()||$.value.nodeMouseLeave.hasListeners()),K=wt(()=>!!_.dimensions.width&&!!_.dimensions.height),q=C(()=>{const J=_.type||"default",re=N?.[`node-${J}`];if(re)return re;let pe=_.template||f.value[J];if(typeof pe=="string"&&A){const ue=Object.keys(A.appContext.components);ue&&ue.includes(J)&&(pe=yt(J,!1))}return pe&&typeof pe!="string"?pe:(s.error(new Un(Fn.NODE_TYPE_MISSING,pe)),!1)}),X=g_({id:e.id,el:T,disabled:()=>!P.value,selectable:O,dragHandle:()=>_.dragHandle,onStart(J){V.dragStart(J)},onDrag(J){V.drag(J)},onStop(J){V.dragStop(J)},onClick(J){U(J)}}),ee=C(()=>_.class instanceof Function?_.class(_):_.class),le=C(()=>{const J=(_.style instanceof Function?_.style(_):_.style)||{},re=_.width instanceof Function?_.width(_):_.width,pe=_.height instanceof Function?_.height(_):_.height;return!J.width&&re&&(J.width=typeof re=="string"?re:`${re}px`),!J.height&&pe&&(J.height=typeof pe=="string"?pe:`${pe}px`),J}),Z=wt(()=>Number(_.zIndex??le.value.zIndex??0));return d(J=>{(J.includes(e.id)||!J.length)&&we()}),at(()=>{be(()=>_.hidden,(J=!1,re,pe)=>{!J&&T.value&&(e.resizeObserver.observe(T.value),pe(()=>{T.value&&e.resizeObserver.unobserve(T.value)}))},{immediate:!0,flush:"post"})}),be([()=>_.type,()=>_.sourcePosition,()=>_.targetPosition],()=>{Re(()=>{c([{id:e.id,nodeElement:T.value,forceUpdate:!0}])})}),be([()=>_.position.x,()=>_.position.y,()=>{var J;return(J=W.value)==null?void 0:J.computedPosition.x},()=>{var J;return(J=W.value)==null?void 0:J.computedPosition.y},()=>{var J;return(J=W.value)==null?void 0:J.computedPosition.z},Z,()=>_.selected,()=>_.dimensions.height,()=>_.dimensions.width,()=>{var J;return(J=W.value)==null?void 0:J.dimensions.height},()=>{var J;return(J=W.value)==null?void 0:J.dimensions.width}],([J,re,pe,ue,ie,se])=>{const he={x:J,y:re,z:se+(h.value&&_.selected?1e3:0)};typeof pe<"u"&&typeof ue<"u"?_.computedPosition=Qle({x:pe,y:ue,z:ie},he):_.computedPosition=he},{flush:"post",immediate:!0}),be([()=>_.extent,v],([J,re],[pe,ue])=>{(J!==pe||re!==ue)&&ve()}),_.extent==="parent"||typeof _.extent=="object"&&"range"in _.extent&&_.extent.range==="parent"?hm(()=>K).toBe(!0).then(ve):ve(),()=>_.hidden?null:Le("div",{ref:T,"data-id":_.id,class:["vue-flow__node",`vue-flow__node-${q.value===!1?"default":_.type||"default"}`,{[n.value]:P.value,dragging:X?.value,draggable:P.value,selected:_.selected,selectable:O.value,parent:_.isParent},ee.value],style:{visibility:K.value?"visible":"hidden",zIndex:_.computedPosition.z??Z.value,transform:`translate(${_.computedPosition.x}px,${_.computedPosition.y}px)`,pointerEvents:L.value?"all":"none",...le.value},tabIndex:B.value?0:void 0,role:B.value?"group":void 0,"aria-describedby":g.value?void 0:`${JT}-${t}`,"aria-label":_.ariaLabel,"aria-roledescription":"node",..._.domAttributes,onMouseenter:Se,onMousemove:oe,onMouseleave:ce,onContextmenu:j,onClick:U,onDblclick:Q,onKeydown:Y},[Le(q.value===!1?f.value.default:q.value,{id:_.id,type:_.type,data:_.data,events:{..._.events,...H},selected:_.selected,resizing:_.resizing,dragging:X.value,connectable:M.value,position:_.computedPosition,dimensions:_.dimensions,isValidTargetPos:_.isValidTargetPos,isValidSourcePos:_.isValidSourcePos,parent:_.parentNode,parentNodeId:_.parentNode,zIndex:_.computedPosition.z??Z.value,targetPosition:_.targetPosition,sourcePosition:_.sourcePosition,label:_.label,dragHandle:_.dragHandle,onUpdateNodeInternals:we})]);function ve(){const J=_.computedPosition,{computedPosition:re,position:pe}=Xy(_,m.value?Lp(J,y.value):J,s.error,v.value,W.value);(_.computedPosition.x!==re.x||_.computedPosition.y!==re.y)&&(_.computedPosition={..._.computedPosition,...re}),(_.position.x!==pe.x||_.position.y!==pe.y)&&(_.position=pe)}function we(){T.value&&c([{id:e.id,nodeElement:T.value,forceUpdate:!0}])}function Se(J){X?.value||V.mouseEnter({event:J,node:_})}function oe(J){X?.value||V.mouseMove({event:J,node:_})}function ce(J){X?.value||V.mouseLeave({event:J,node:_})}function j(J){return V.contextMenu({event:J,node:_})}function Q(J){return V.doubleClick({event:J,node:_})}function U(J){O.value&&(!o.value||!P.value||b.value>0)&&Tm(_,l.value,u,r,a,!1,T.value),V.click({event:J,node:_})}function Y(J){if(!(Em(J)||g.value))if(e_.includes(J.key)&&O.value){const re=J.key==="Escape";Tm(_,l.value,u,r,a,re,T.value)}else P.value&&_.selected&&Yr[J.key]&&(J.preventDefault(),p.value=`Moved selected node ${J.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~_.position.x}, y: ${~~_.position.y}`,D({x:Yr[J.key].x,y:Yr[J.key].y},J.shiftKey))}}}),Kre=Hre,Wre={height:"0",width:"0"},jre={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},Ure=ge({...jre,setup(e){const{viewportRef:t}=On(),n=wt(()=>{var o;return(o=t.value)==null?void 0:o.getElementsByClassName("vue-flow__edge-labels")[0]});return(o,a)=>(E(),z("svg",null,[(E(),z("foreignObject",Wre,[(E(),me(cr,{to:n.value,disabled:!n.value},[fe(o.$slots,"default")],8,["to","disabled"]))]))]))}});function Yre(e={includeHiddenNodes:!1}){const{nodes:t}=On();return C(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&(n?.handleBounds===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const qre={class:"vue-flow__nodes vue-flow__container"},Gre={name:"Nodes",compatConfig:{MODE:3}},Xre=ge({...Gre,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:o}=On(),a=Yre(),l=F();return be(a,s=>{s&&Re(()=>{o.nodesInitialized(t.value)})},{immediate:!0}),at(()=>{l.value=new ResizeObserver(s=>{const r=s.map(u=>({id:u.target.getAttribute("data-id"),nodeElement:u.target,forceUpdate:!0}));Re(()=>n(r))})}),Ft(()=>{var s;return(s=l.value)==null?void 0:s.disconnect()}),(s,r)=>(E(),z("div",qre,[l.value?(E(!0),z(Pe,{key:0},dt(i(t),(u,c,d,f)=>{const v=[u.id];if(f&&f.key===u.id&&yI(f,v))return f;const h=(E(),me(i(Kre),{id:u.id,key:u.id,"resize-observer":l.value},null,8,["id","resize-observer"]));return h.memo=v,h},r,0),128)):ae("",!0)]))}});function Zre(){const{emits:e}=On();at(()=>{if(v_()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Un(Fn.MISSING_STYLES))}})}const Jre=I("div",{class:"vue-flow__edge-labels"},null,-1),Qre={name:"VueFlow",compatConfig:{MODE:3}},eie=ge({...Qre,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const o=e,a=bn(),l=Bv(o,"modelValue",n),s=Bv(o,"nodes",n),r=Bv(o,"edges",n),u=On(o),c=_se({modelValue:l,nodes:s,edges:r},o,u);return Ise(n,u.hooks),Tre(),Zre(),xt(Vp,a),dr(c),t(u),(d,f)=>(E(),z("div",{ref:i(u).vueFlowRef,class:"vue-flow"},[G(Sre,null,{default:ne(()=>[G(zre),Jre,G(Xre),fe(d.$slots,"zoom-pane")]),_:3}),fe(d.$slots,"default"),G($re)],512))}});var ml=(e=>(e.Lines="lines",e.Dots="dots",e))(ml||{});const T_=function({dimensions:e,size:t,color:n}){return Le("path",{stroke:n,"stroke-width":t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},__=function({radius:e,color:t}){return Le("circle",{cx:e,cy:e,r:e,fill:t})};ml.Lines+"",ml.Dots+"";const tie={[ml.Dots]:"#81818a",[ml.Lines]:"#eee"},nie=["id","x","y","width","height","patternTransform"],oie={key:2,height:"100",width:"100"},aie=["fill"],lie=["x","y","fill"],sie={name:"Background",compatConfig:{MODE:3}},rie=ge({...sie,props:{id:{},variant:{default:()=>ml.Dots},gap:{default:20},size:{default:1},lineWidth:{default:1},patternColor:{},color:{},bgColor:{},height:{default:100},width:{default:100},x:{default:0},y:{default:0},offset:{default:0}},setup(e){const{id:t,viewport:n}=On(),o=C(()=>{const s=n.value.zoom,[r,u]=Array.isArray(e.gap)?e.gap:[e.gap,e.gap],c=[r*s||1,u*s||1],d=e.size*s,[f,v]=Array.isArray(e.offset)?e.offset:[e.offset,e.offset],h=[f*s||1+c[0]/2,v*s||1+c[1]/2];return{scaledGap:c,offset:h,size:d}}),a=wt(()=>`pattern-${t}${e.id?`-${e.id}`:""}`),l=wt(()=>e.color||e.patternColor||tie[e.variant||ml.Dots]);return(s,r)=>(E(),z("svg",{class:"vue-flow__background vue-flow__container",style:Be({height:`${s.height>100?100:s.height}%`,width:`${s.width>100?100:s.width}%`})},[fe(s.$slots,"pattern-container",{id:a.value},()=>[I("pattern",{id:a.value,x:i(n).x%o.value.scaledGap[0],y:i(n).y%o.value.scaledGap[1],width:o.value.scaledGap[0],height:o.value.scaledGap[1],patternTransform:`translate(-${o.value.offset[0]},-${o.value.offset[1]})`,patternUnits:"userSpaceOnUse"},[fe(s.$slots,"pattern",{},()=>[s.variant===i(ml).Lines?(E(),me(i(T_),{key:0,size:s.lineWidth,color:l.value,dimensions:o.value.scaledGap},null,8,["size","color","dimensions"])):s.variant===i(ml).Dots?(E(),me(i(__),{key:1,color:l.value,radius:o.value.size/2},null,8,["color","radius"])):ae("",!0),s.bgColor?(E(),z("svg",oie,[I("rect",{width:"100%",height:"100%",fill:s.bgColor},null,8,aie)])):ae("",!0)])],8,nie)]),I("rect",{x:s.x,y:s.y,width:"100%",height:"100%",fill:`url(#${a.value})`},null,8,lie),fe(s.$slots,"default",{id:a.value})],4))}}),iie={class:"node-head"},uie={class:"fields"},cie={class:"adv-check"},die={class:"adv"},fie={key:0,class:"adv-body"},pie={class:"adv-check"},vie={class:"adv-check"},hie={class:"adv-wide"},mie={class:"adv-wide"},gie={class:"adv-wide"},yie={class:"adv-wide"},bie={class:"adv-wide"},wie=ge({__name:"LocalNode",props:{data:{},selected:{type:Boolean},conflicted:{type:Boolean}},emits:["update:data","remove"],setup(e,{emit:t}){const n=e,o=t,a=H=>C({get:()=>n.data[H],set:P=>{o("update:data",{...n.data,[H]:P})}}),l=a("name"),s=a("ip"),r=a("port"),u=a("protocol"),c=a("localOnly"),d=a("useEncryption"),f=a("useCompression"),v=a("bandwidthLimit"),h=a("poolCount"),g=F(!1),p=C({get:()=>JSON.stringify(n.data.metadatas??{}),set:H=>{let P={};if(H.trim())try{P=JSON.parse(H)}catch{return}o("update:data",{...n.data,metadatas:P})}}),m=C({get:()=>JSON.stringify(n.data.annotations??{}),set:H=>{let P={};if(H.trim())try{P=JSON.parse(H)}catch{return}o("update:data",{...n.data,annotations:P})}}),y=a("customDomains"),b=a("subdomain"),w=a("hostHeaderRewrite"),S=a("basicAuthUser"),k=a("basicAuthPassword"),x=a("lbGroup"),$=a("lbGroupKey"),T=a("healthCheckType"),N=a("healthCheckPath"),A=a("healthCheckTimeout"),D=a("healthCheckMaxFailed"),_=a("healthCheckInterval"),W=C({get:()=>JSON.stringify(n.data.locations??[]),set:H=>{let P=[];if(H.trim())try{const O=JSON.parse(H);if(Array.isArray(O))P=O.map(String);else return}catch{return}o("update:data",{...n.data,locations:P})}}),V=C({get:()=>JSON.stringify(n.data.httpHeaders??{}),set:H=>{let P={};if(H.trim())try{P=JSON.parse(H)}catch{return}o("update:data",{...n.data,httpHeaders:P})}});return(H,P)=>(E(),z("div",{class:R(["local-node",{selected:e.selected,conflicted:e.conflicted}])},[G(i(gi),{type:"source",position:i(Tt).Right},null,8,["position"]),I("div",iie,[P[27]||(P[27]=I("span",{class:"node-icon"},"⬢",-1)),qe(I("input",{"onUpdate:modelValue":P[0]||(P[0]=O=>gt(l)?l.value=O:null),class:"name-input"},null,512),[[sn,i(l)]]),I("button",{class:"del-btn",title:"删除",onClick:P[1]||(P[1]=Ge(O=>o("remove",n.data.name),["stop"]))}," × ")]),I("div",uie,[I("label",null,[P[28]||(P[28]=Me("IP ",-1)),qe(I("input",{"onUpdate:modelValue":P[2]||(P[2]=O=>gt(s)?s.value=O:null)},null,512),[[sn,i(s)]])]),I("label",null,[P[29]||(P[29]=Me("端口 ",-1)),qe(I("input",{"onUpdate:modelValue":P[3]||(P[3]=O=>gt(r)?r.value=O:null),type:"number"},null,512),[[sn,i(r),void 0,{number:!0}]])]),I("label",null,[P[31]||(P[31]=Me("协议 ",-1)),qe(I("select",{"onUpdate:modelValue":P[4]||(P[4]=O=>gt(u)?u.value=O:null)},[...P[30]||(P[30]=[I("option",{value:"tcp"},"tcp",-1),I("option",{value:"udp"},"udp",-1),I("option",{value:"http"},"http",-1),I("option",{value:"https"},"https",-1)])],512),[[ih,i(u)]])]),I("label",cie,[qe(I("input",{"onUpdate:modelValue":P[5]||(P[5]=O=>gt(c)?c.value=O:null),type:"checkbox"},null,512),[[zs,i(c)]]),P[32]||(P[32]=Me(" 仅本机转发 ",-1)),P[33]||(P[33]=I("span",{class:"hint"},"(勾选=直接在本机拉起,不进集群;不勾选=127.0.0.1 替换为本机实际地址交给集群)",-1))])]),I("div",die,[I("button",{class:"adv-toggle",onClick:P[6]||(P[6]=Ge(O=>g.value=!g.value,["stop"]))},ye(g.value?"▾ 收起高级":"▸ 高级"),1),g.value?(E(),z("div",fie,[I("label",pie,[qe(I("input",{"onUpdate:modelValue":P[7]||(P[7]=O=>gt(d)?d.value=O:null),type:"checkbox"},null,512),[[zs,i(d)]]),P[34]||(P[34]=Me(" 加密 (useEncryption) ",-1))]),I("label",vie,[qe(I("input",{"onUpdate:modelValue":P[8]||(P[8]=O=>gt(f)?f.value=O:null),type:"checkbox"},null,512),[[zs,i(f)]]),P[35]||(P[35]=Me(" 压缩 (useCompression) ",-1))]),I("label",null,[P[36]||(P[36]=Me("限速 ",-1)),qe(I("input",{"onUpdate:modelValue":P[9]||(P[9]=O=>gt(v)?v.value=O:null),placeholder:"如 1MB"},null,512),[[sn,i(v)]])]),I("label",null,[P[37]||(P[37]=Me("连接池 ",-1)),qe(I("input",{"onUpdate:modelValue":P[10]||(P[10]=O=>gt(h)?h.value=O:null),type:"number",min:"0"},null,512),[[sn,i(h),void 0,{number:!0}]])]),I("label",hie,[P[38]||(P[38]=Me("元数据(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[11]||(P[11]=O=>p.value=O),placeholder:'{"env":"prod"}'},null,512),[[sn,p.value]])]),I("label",mie,[P[39]||(P[39]=Me("注解(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[12]||(P[12]=O=>m.value=O),placeholder:'{"owner":"ops"}'},null,512),[[sn,m.value]])]),P[55]||(P[55]=I("div",{class:"adv-sep"},"HTTP/HTTPS 路由",-1)),I("label",gie,[P[40]||(P[40]=Me("域名(逗号分隔) ",-1)),qe(I("input",{"onUpdate:modelValue":P[13]||(P[13]=O=>gt(y)?y.value=O:null),placeholder:"app.example.com"},null,512),[[sn,i(y)]])]),I("label",null,[P[41]||(P[41]=Me("子域 ",-1)),qe(I("input",{"onUpdate:modelValue":P[14]||(P[14]=O=>gt(b)?b.value=O:null),placeholder:"app (需 frps subdomain_host)"},null,512),[[sn,i(b)]])]),I("label",yie,[P[42]||(P[42]=Me("路径路由(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[15]||(P[15]=O=>W.value=O),placeholder:'["/api","/admin"]'},null,512),[[sn,W.value]])]),I("label",null,[P[43]||(P[43]=Me("Host 改写 ",-1)),qe(I("input",{"onUpdate:modelValue":P[16]||(P[16]=O=>gt(w)?w.value=O:null),placeholder:"backend.internal"},null,512),[[sn,i(w)]])]),I("label",bie,[P[44]||(P[44]=Me("请求头(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[17]||(P[17]=O=>V.value=O),placeholder:'{"X-Custom":"val"}'},null,512),[[sn,V.value]])]),I("label",null,[P[45]||(P[45]=Me("BasicAuth 用户 ",-1)),qe(I("input",{"onUpdate:modelValue":P[18]||(P[18]=O=>gt(S)?S.value=O:null),placeholder:"user"},null,512),[[sn,i(S)]])]),I("label",null,[P[46]||(P[46]=Me("BasicAuth 密码 ",-1)),qe(I("input",{"onUpdate:modelValue":P[19]||(P[19]=O=>gt(k)?k.value=O:null),type:"password",placeholder:"pass"},null,512),[[sn,i(k)]])]),P[56]||(P[56]=I("div",{class:"adv-sep"},"负载均衡 (M3)",-1)),I("label",null,[P[47]||(P[47]=Me("LB 组 ",-1)),qe(I("input",{"onUpdate:modelValue":P[20]||(P[20]=O=>gt(x)?x.value=O:null),placeholder:"如 web (同组自动负载均衡)"},null,512),[[sn,i(x)]])]),I("label",null,[P[48]||(P[48]=Me("组密钥 ",-1)),qe(I("input",{"onUpdate:modelValue":P[21]||(P[21]=O=>gt($)?$.value=O:null),placeholder:"组内相同"},null,512),[[sn,i($)]])]),P[57]||(P[57]=I("div",{class:"adv-sep"},"健康检查 (M3)",-1)),I("label",null,[P[50]||(P[50]=Me("类型 ",-1)),qe(I("select",{"onUpdate:modelValue":P[22]||(P[22]=O=>gt(T)?T.value=O:null)},[...P[49]||(P[49]=[I("option",{value:""},"关闭",-1),I("option",{value:"tcp"},"tcp",-1),I("option",{value:"http"},"http",-1)])],512),[[ih,i(T)]])]),I("label",null,[P[51]||(P[51]=Me("HTTP 路径 ",-1)),qe(I("input",{"onUpdate:modelValue":P[23]||(P[23]=O=>gt(N)?N.value=O:null),placeholder:"/healthz"},null,512),[[sn,i(N)]])]),I("label",null,[P[52]||(P[52]=Me("超时(秒) ",-1)),qe(I("input",{"onUpdate:modelValue":P[24]||(P[24]=O=>gt(A)?A.value=O:null),type:"number",min:"0",placeholder:"默认3"},null,512),[[sn,i(A),void 0,{number:!0}]])]),I("label",null,[P[53]||(P[53]=Me("失败次数 ",-1)),qe(I("input",{"onUpdate:modelValue":P[25]||(P[25]=O=>gt(D)?D.value=O:null),type:"number",min:"0",placeholder:"默认1"},null,512),[[sn,i(D),void 0,{number:!0}]])]),I("label",null,[P[54]||(P[54]=Me("间隔(秒) ",-1)),qe(I("input",{"onUpdate:modelValue":P[26]||(P[26]=O=>gt(_)?_.value=O:null),type:"number",min:"0",placeholder:"默认10"},null,512),[[sn,i(_),void 0,{number:!0}]])])])):ae("",!0)])],2))}}),Ll=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},Sie=Ll(wie,[["__scopeId","data-v-2cf42f62"]]),Cie={class:"node-head"},kie={class:"enabled"},xie={class:"fields"},Eie={class:"adv"},$ie={key:0,class:"adv-body"},Tie={class:"adv-check"},_ie=ge({__name:"RemoteNode",props:{data:{},selected:{type:Boolean},conflicted:{type:Boolean}},emits:["update:data","remove"],setup(e,{emit:t}){const n=e,o=t,a=k=>C({get:()=>n.data[k],set:x=>{o("update:data",{...n.data,[k]:x})}}),l=a("name"),s=a("ip"),r=a("port"),u=a("token"),c=a("url"),d=a("enabled"),f=a("transportProtocol"),v=a("transportTls"),h=a("transportTlsServerName"),g=a("transportPool"),p=a("vhostHttpPort"),m=a("adminAddr"),y=a("adminPort"),b=a("adminUser"),w=a("adminPassword"),S=F(!1);return(k,x)=>(E(),z("div",{class:R(["remote-node",{selected:e.selected,conflicted:e.conflicted}])},[G(i(gi),{type:"target",position:i(Tt).Left},null,8,["position"]),I("div",Cie,[x[18]||(x[18]=I("span",{class:"node-icon"},"⬤",-1)),qe(I("input",{"onUpdate:modelValue":x[0]||(x[0]=$=>gt(l)?l.value=$:null),class:"name-input"},null,512),[[sn,i(l)]]),I("label",kie,[qe(I("input",{"onUpdate:modelValue":x[1]||(x[1]=$=>gt(d)?d.value=$:null),type:"checkbox"},null,512),[[zs,i(d)]]),x[17]||(x[17]=Me(" 启用 ",-1))]),I("button",{class:"del-btn",title:"删除",onClick:x[2]||(x[2]=Ge($=>o("remove",n.data.name),["stop"]))}," × ")]),I("div",xie,[I("label",null,[x[19]||(x[19]=Me("IP ",-1)),qe(I("input",{"onUpdate:modelValue":x[3]||(x[3]=$=>gt(s)?s.value=$:null)},null,512),[[sn,i(s)]])]),I("label",null,[x[20]||(x[20]=Me("端口 ",-1)),qe(I("input",{"onUpdate:modelValue":x[4]||(x[4]=$=>gt(r)?r.value=$:null),type:"number"},null,512),[[sn,i(r),void 0,{number:!0}]])]),I("label",null,[x[21]||(x[21]=Me("令牌 ",-1)),qe(I("input",{"onUpdate:modelValue":x[5]||(x[5]=$=>gt(u)?u.value=$:null)},null,512),[[sn,i(u)]])]),I("label",null,[x[22]||(x[22]=Me("URL ",-1)),qe(I("input",{"onUpdate:modelValue":x[6]||(x[6]=$=>gt(c)?c.value=$:null)},null,512),[[sn,i(c)]])])]),I("div",Eie,[I("button",{class:"adv-toggle",onClick:x[7]||(x[7]=Ge($=>S.value=!S.value,["stop"]))},ye(S.value?"▾ 收起高级":"▸ 高级"),1),S.value?(E(),z("div",$ie,[I("label",null,[x[24]||(x[24]=Me("传输协议 ",-1)),qe(I("select",{"onUpdate:modelValue":x[8]||(x[8]=$=>gt(f)?f.value=$:null)},[...x[23]||(x[23]=[I("option",{value:""},"tcp(默认)",-1),I("option",{value:"quic"},"quic",-1),I("option",{value:"kcp"},"kcp",-1),I("option",{value:"websocket"},"websocket",-1)])],512),[[ih,i(f)]])]),I("label",Tie,[qe(I("input",{"onUpdate:modelValue":x[9]||(x[9]=$=>gt(v)?v.value=$:null),type:"checkbox"},null,512),[[zs,i(v)]]),x[25]||(x[25]=Me(" TLS 传输 ",-1))]),I("label",null,[x[26]||(x[26]=Me("TLS SNI ",-1)),qe(I("input",{"onUpdate:modelValue":x[10]||(x[10]=$=>gt(h)?h.value=$:null),placeholder:"frps.local"},null,512),[[sn,i(h)]])]),I("label",null,[x[27]||(x[27]=Me("连接池 ",-1)),qe(I("input",{"onUpdate:modelValue":x[11]||(x[11]=$=>gt(g)?g.value=$:null),type:"number",min:"0"},null,512),[[sn,i(g),void 0,{number:!0}]])]),x[33]||(x[33]=I("label",{class:"adv-sep"},"HTTP 访问端口 (frps vhostHTTPPort)",-1)),I("label",null,[x[28]||(x[28]=Me("vhostHTTPPort ",-1)),qe(I("input",{"onUpdate:modelValue":x[12]||(x[12]=$=>gt(p)?p.value=$:null),type:"number",min:"0"},null,512),[[sn,i(p),void 0,{number:!0}]])]),x[34]||(x[34]=I("label",{class:"adv-sep"},"本地 frpc 管理 API (M3)",-1)),x[35]||(x[35]=I("label",{class:"adv-check"},[Me("启用后状态页按真实代理状态展示 "),I("span",{class:"hint-txt"},"(adminPort > 0)")],-1)),I("label",null,[x[29]||(x[29]=Me("地址 ",-1)),qe(I("input",{"onUpdate:modelValue":x[13]||(x[13]=$=>gt(m)?m.value=$:null),placeholder:"127.0.0.1"},null,512),[[sn,i(m)]])]),I("label",null,[x[30]||(x[30]=Me("端口 ",-1)),qe(I("input",{"onUpdate:modelValue":x[14]||(x[14]=$=>gt(y)?y.value=$:null),type:"number",min:"0",placeholder:"如 7400"},null,512),[[sn,i(y),void 0,{number:!0}]])]),I("label",null,[x[31]||(x[31]=Me("用户 ",-1)),qe(I("input",{"onUpdate:modelValue":x[15]||(x[15]=$=>gt(b)?b.value=$:null),placeholder:"admin"},null,512),[[sn,i(b)]])]),I("label",null,[x[32]||(x[32]=Me("密码 ",-1)),qe(I("input",{"onUpdate:modelValue":x[16]||(x[16]=$=>gt(w)?w.value=$:null),type:"password",placeholder:"可选"},null,512),[[sn,i(w)]])])])):ae("",!0)])],2))}}),Nie=Ll(_ie,[["__scopeId","data-v-b77096cd"]]),Iie=["d","stroke-width"],Oie={class:"port-num"},DS=2,Mie=ge({__name:"PortEdge",props:{id:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},label:{},style:{},selected:{type:Boolean,default:!1},sourcePosition:{},targetPosition:{},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},markerEnd:{},curvature:{},interactionWidth:{},data:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{},sourceX:{},sourceY:{},targetX:{},targetY:{},conflicted:{type:Boolean,default:!1}},emits:["label-click","label-drag","toggle-disabled","edit-group","delete-edge"],setup(e,{emit:t}){const n=e,o=t,a=F({x:Number(n.data?.offsetX??0),y:Number(n.data?.offsetY??0)}),l=F(null);let s=!1,r=0,u=0,c={x:0,y:0},d=!1;const f=D=>{if(D.stopPropagation(),d=!0,s=!1,r=D.clientX,u=D.clientY,c={...a.value},l.value)try{l.value.setPointerCapture(D.pointerId)}catch{}D.preventDefault()},v=D=>{if(!d)return;const _=D.clientX-r,W=D.clientY-u;(Math.abs(_)>DS||Math.abs(W)>DS)&&(s=!0);const V=g();a.value={x:c.x+_/V,y:c.y+W/V},o("label-drag",{edgeId:n.id,offset:{...a.value}})},h=D=>{D.stopPropagation();const _=d;if(d=!1,l.value&&D.pointerId!=null)try{l.value.releasePointerCapture?.(D.pointerId)}catch{}_&&(s||o("label-click",{edgeId:n.id}))};function g(){const D=document.querySelector(".vue-flow__viewport");if(!D)return 1;const _=/scale\(([0-9.]+)\)/.exec(D.style.transform||"");if(!_)return 1;const W=Number(_[1]);return W>0?W:1}const p=C(()=>Number(n.data?.layer??0)),m=C(()=>!!n.data?.disabled),y=C(()=>String(n.data?.group??"")),b=C(()=>String(n.label??"")||"?"),w=C(()=>{const D=p.value,_=D%2===0?1:-1,W=(Math.floor(D/2)+1)*16;return _*W}),S=C(()=>w.value+a.value.y),k=C(()=>{const{sourceX:D,sourceY:_,sourcePosition:W,targetX:V,targetY:H,targetPosition:P}=n;return N(D,_,W,V,H,P,S.value)}),x=C(()=>A(k.value)),$=C(()=>({position:"absolute",transform:`translate(${x.value.x+a.value.x}px, ${x.value.y}px) translate(-50%, -50%)`,pointerEvents:"all",cursor:"grab",zIndex:10})),T=C(()=>{if(m.value)return"var(--el-color-info-light-5)";if(n.conflicted)return"var(--w4f-danger)";const D=p.value,_=["var(--el-color-primary)","var(--el-color-success)","var(--el-color-warning)","var(--el-color-danger)","var(--el-color-info)","var(--el-color-primary)"];return _[D%_.length]});function N(D,_,W,V,H,P,O){const M=Math.abs(V-D),B=Math.max(M*.45,40);let L=D,K=_,q=V,X=H;W==="Right"?L=D:W==="Left"?L=D-B:W==="Top"?(L=D,K=_):L=D,P==="Left"?q=V:P==="Right"?q=V+B:P==="Top"&&(X=H);const ee=L+(q-L)*.5,le=K+O,Z=q-(q-L)*.5,ve=X+O;return`M ${L} ${K} C ${ee} ${le}, ${Z} ${ve}, ${q} ${X}`}function A(D){const _=D.replace("M","").replace("C","").split(/[ ,]+/).filter(le=>le.length>0).map(Number);if(_.length<8)return{x:0,y:0};const W=_[0]??0,V=_[1]??0,H=_[2]??0,P=_[3]??0,O=_[4]??0,M=_[5]??0,B=_[6]??0,L=_[7]??0,K=.5,q=1-K,X=q*q*q*W+3*q*q*K*H+3*q*K*K*O+K*K*K*B,ee=q*q*q*V+3*q*q*K*P+3*q*K*K*M+K*K*K*L;return{x:X,y:ee}}return(D,_)=>(E(),z("g",{class:R(["port-edge",{selected:e.selected}])},[I("path",{d:k.value,class:R(["port-edge-path",{selected:e.selected,conflicted:e.conflicted}]),fill:"none",style:Be({stroke:T.value}),"stroke-width":e.selected?3.5:2.5},null,14,Iie),G(i(Ure),null,{default:ne(()=>[I("div",{ref_key:"labelEl",ref:l,class:R(["port-label",{dragging:i(d)}]),style:Be($.value),onPointerdown:Ge(f,["stop","prevent"]),onPointermove:v,onPointerup:h,onPointercancel:h},[I("span",{class:R(["port-toggle",{off:m.value}]),onPointerdown:_[0]||(_[0]=Ge(()=>{},["stop"])),onClick:_[1]||(_[1]=Ge(W=>o("toggle-disabled",{edgeId:n.id}),["stop"]))},ye(m.value?"禁":"通"),35),I("span",Oie,ye(b.value),1),y.value?(E(),z("span",{key:0,class:"port-group",onPointerdown:_[2]||(_[2]=Ge(()=>{},["stop"])),onClick:_[3]||(_[3]=Ge(W=>o("edit-group",{edgeId:n.id}),["stop"]))},ye(y.value),33)):ae("",!0),I("span",{class:"port-delete",onPointerdown:_[4]||(_[4]=Ge(()=>{},["stop"])),onClick:_[5]||(_[5]=Ge(W=>o("delete-edge",{edgeId:n.id}),["stop"])),title:"删除连线"},"×",32)],38)]),_:1})],2))}}),Pie=Ll(Mie,[["__scopeId","data-v-cecf0202"]]);class Rie extends Error{status;constructor(t,n){super(n),this.status=t}}async function Qt(e,t={}){const n=await fetch(e,{credentials:"same-origin",...t});if(!n.ok)throw new Rie(n.status,`HTTP ${n.status}`);return(n.headers.get("content-type")||"").includes("application/json")?n.json():n.text()}const Xv=e=>({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),un={status:()=>Qt("/api/manager/status"),canvas:()=>Qt("/api/manager/canvas"),saveCanvas:e=>Qt("/api/manager/canvas",Xv(e)),settings:()=>Qt("/api/manager/settings"),saveSettings:e=>Qt("/api/manager/settings",Xv(e)),binaryStatus:()=>Qt("/api/manager/binary/status"),installBinary:e=>Qt("/api/manager/binary/install",{method:"POST",headers:{"Content-Type":"application/json"},body:e?JSON.stringify({version:e}):void 0}),saveRemote:e=>Qt("/api/manager/remotes",Xv(e)),deleteRemote:e=>Qt(`/api/manager/remotes/${encodeURIComponent(e)}`,{method:"DELETE"}),addLink:e=>Qt("/api/manager/links",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),deleteLink:e=>Qt(`/api/manager/links/${e}`,{method:"DELETE"}),forwardStart:(e,t,n)=>Qt("/api/manager/forwards/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({local:e,remote:t,remotePort:n})}),forwardStop:(e,t,n)=>Qt("/api/manager/forwards/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({local:e,remote:t,remotePort:n})}),groupStart:e=>Qt("/api/manager/forwards/group/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:e})}),groupStop:e=>Qt("/api/manager/forwards/group/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:e})}),assignGroup:(e,t,n,o)=>Qt("/api/manager/forwards/assign",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({local:e,remote:t,remotePort:n,group:o})}),deleteGroup:e=>Qt("/api/manager/forwards/group/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:e})}),profileStart:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/start`,{method:"POST"}),profileStop:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/stop`,{method:"POST"}),profileRestart:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/restart`,{method:"POST"}),profileConfig:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/config`),profileLogs:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/logs`),clusterNodes:()=>Qt("/api/manager/cluster/nodes"),clusterCache:()=>Qt("/api/manager/cluster/cache"),pruneCache:e=>Qt("/api/manager/cluster/cache",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keep:e})}),ring:()=>Qt("/api/manager/cluster/ring"),clusterCreate:()=>Qt("/api/manager/cluster/create",{method:"POST"}),clusterJoinRing:(e,t)=>Qt("/api/manager/cluster/join-ring",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({addr:e,joinKey:t})}),clusterRemoveNode:e=>Qt("/api/manager/cluster/node-remove",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}),me:()=>Qt("/api/manager/me"),listUsers:()=>Qt("/api/manager/users"),createUser:(e,t,n)=>Qt("/api/manager/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t,role:n})}),updateUser:(e,t)=>Qt(`/api/manager/users/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),deleteUser:e=>Qt(`/api/manager/users/${encodeURIComponent(e)}`,{method:"DELETE"}),listApiKeys:()=>Qt("/api/manager/apikeys"),createApiKey:(e,t,n)=>Qt("/api/manager/apikeys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:e,label:t,scope:n})}),deleteApiKey:e=>Qt(`/api/manager/apikeys/${e}`,{method:"DELETE"}),exportCanvas:()=>Qt("/api/manager/canvas/export"),importCanvas:e=>Qt("/api/manager/canvas/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),exportWorkerLogs:()=>Qt("/api/manager/cluster/logs/export")},Gs=F("read"),Nm=F(""),Im=F(!1),LS={read:1,write:2,admin:3},VS=C(()=>LS[Gs.value]>=LS.write),Aie=C(()=>Gs.value==="admin");async function Die(){try{const e=await un.me();Gs.value=e.level,Nm.value=e.name}catch{Gs.value="read",Nm.value=""}finally{Im.value=!0}}const Lie={class:"canvas-editor"},Vie={class:"toolbar"},Bie={class:"toolbar-right"},Fie={class:"save-hint"},zie=["disabled"],Hie=["disabled"],Kie={class:"flow-wrap"},Wie={class:"dlg-row"},jie={class:"dlg-value"},Uie={class:"dlg-row"},Yie={class:"dlg-row"},qie=ge({__name:"CanvasView",setup(e){const t=F([]),n=F([]),o=F(!1),a=F("rgba(120,130,150,0.22)");let l=null;const s=()=>{const ue=getComputedStyle(document.documentElement).getPropertyValue("--w4f-line-strong").trim();a.value=ue||"rgba(120,130,150,0.22)"},r=F([]),u=C(()=>{const ue=new Set;for(const ie of r.value)for(const se of ie.edgeIds)ue.add(se);return ue}),c=F(!1),d=F(!1),f=F({visible:!1,isNew:!1,local:"",remote:"",remotePort:0,group:"",pendingEdge:null}),v=F(""),h=F(""),g=(ue,ie,se,he,de,Ce="")=>{f.value={visible:!0,isNew:he,local:ue,remote:ie,remotePort:se,group:Ce,pendingEdge:de??null},v.value=String(se),h.value=Ce},p={localX:60,remoteX:760,startY:90,gap:24,estLocal:210,estRemote:200},m=ue=>{const ie=document.querySelector(`.vue-flow__node[data-id="${ue}"]`);return ie?ie.offsetHeight:0},y=ue=>{let ie=p.startY,se=p.startY;for(const he of t.value)if(he.type==="local"){const de=ue&&m(he.id)||p.estLocal;he.position={x:p.localX,y:ie},ie+=de+p.gap}else{const de=ue&&m(he.id)||p.estRemote;he.position={x:p.remoteX,y:se},se+=de+p.gap}},b=ue=>t.value.find(ie=>ie.type==="local"&&ie.data?.name===ue)?.data,w=()=>{const ue=[],ie=new Map;for(const se of n.value){const he=se.source.startsWith("local::")?se.source.slice(7):"",de=se.target.startsWith("remote::")?se.target.slice(8):"";if(!he||!de)continue;const Ce=b(he),$e=Number(se.label);!Ce||isNaN($e)||$e<=0||(ie.has(de)||ie.set(de,[]),ie.get(de).push({edgeId:se.id,local:he,remotePort:$e,type:Ce.protocol}))}for(const[se,he]of ie){const de=new Map;for(const $e of he)$e.type!=="tcp"&&$e.type!=="udp"||(de.has($e.remotePort)||de.set($e.remotePort,[]),de.get($e.remotePort).push({local:$e.local,edgeId:$e.edgeId}));for(const[$e,Ue]of de)Ue.length<2||ue.push({type:"port",remote:se,remotePort:$e,locals:Ue.map(Qe=>Qe.local),edgeIds:Ue.map(Qe=>Qe.edgeId)});const Ce=new Map;for(const $e of he){if($e.type!=="http"&&$e.type!=="https")continue;const Ue=$e.local+".local";Ce.has(Ue)||Ce.set(Ue,[]),Ce.get(Ue).push({local:$e.local,edgeId:$e.edgeId})}for(const[$e,Ue]of Ce)Ue.length<2||ue.push({type:"domain",remote:se,domain:$e,locals:Ue.map(Qe=>Qe.local),edgeIds:Ue.map(Qe=>Qe.edgeId)})}return r.value=ue,ue},S=ue=>r.value.some(ie=>ie.remote===ue),k=ue=>r.value.some(ie=>ie.locals.includes(ue)),x=ue=>u.value.has(ue),$=(ue,ie)=>`${ue}::${ie}`,T=()=>{const ue=`local-${t.value.filter(se=>se.type==="local").length+1}`,ie={name:ue,ip:"127.0.0.1",port:8080,protocol:"tcp"};t.value.push({id:$("local",ue),type:"local",position:{x:p.localX,y:p.startY+t.value.filter(se=>se.type==="local").length*(p.estLocal+p.gap)},data:ie}),d.value=!0},N=()=>{const ue=`remote-${t.value.filter(se=>se.type==="remote").length+1}`,ie={name:ue,ip:"127.0.0.1",port:7e3,token:"",url:"",enabled:!0};t.value.push({id:$("remote",ue),type:"remote",position:{x:p.remoteX,y:p.startY+t.value.filter(se=>se.type==="remote").length*(p.estRemote+p.gap)},data:ie}),d.value=!0},A=ue=>{t.value=t.value.filter(ie=>!(ie.type==="local"&&ie.data?.name===ue)),n.value=n.value.filter(ie=>ie.source!==$("local",ue)),d.value=!0,w()},D=ue=>{t.value=t.value.filter(ie=>!(ie.type==="remote"&&ie.data?.name===ue)),n.value=n.value.filter(ie=>ie.target!==$("remote",ue)),d.value=!0,w()},_=(ue,ie,se)=>`${ue}-->${ie}@${se}`,W=ue=>{const ie=ue.source.startsWith("local::")?ue.source.slice(7):"",se=ue.target.startsWith("remote::")?ue.target.slice(8):"";if(!ie||!se)return;const he=b(ie);he&&g(ie,se,he.port,!0,{id:_(ue.source,ue.target,he.port),source:ue.source,target:ue.target})},V=()=>{const ue=f.value,ie=Number(v.value);if(!Number.isInteger(ie)||ie<1||ie>65535){Ht.warning("请输入 1-65535 的整数端口");return}if(ue.remotePort=ie,ue.group=h.value.trim(),ue.isNew&&ue.pendingEdge){const se=_(ue.pendingEdge.source,ue.pendingEdge.target,ue.remotePort),he=n.value.find(de=>de.id===se);he?(he.label=String(ue.remotePort),he.data={...he.data,group:ue.group}):(n.value.push({id:se,source:ue.pendingEdge.source,target:ue.pendingEdge.target,label:String(ue.remotePort),type:"portedge",animated:!1,data:{group:ue.group}}),X())}else if(ue.pendingEdge){const se=ue.pendingEdge,he=_(se.source,se.target,ue.remotePort);if(n.value.find(Ce=>Ce.id===he&&Ce!==se)){Ht.warning("该端口已被同一条连线占用");return}se.id!==he&&(se.id=he),se.label=String(ue.remotePort),se.data={...se.data,group:ue.group}}f.value.visible=!1,d.value=!0},H=ue=>{const ie=ue.source.startsWith("local::")?ue.source.slice(7):"",se=ue.target.startsWith("remote::")?ue.target.slice(8):"",he=b(ie);g(ie,se,Number(ue.label)||(he?he.port:0),!1,ue,ue.data?.group??"")},P=async({edgeId:ue})=>{if(n.value.find(se=>se.id===ue)){try{await pl.confirm("确认删除该连线?删除后需点击「保存配置」生效。","删除连线",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}M([ue])}},O=async ue=>{if(ue.key!=="Delete"&&ue.key!=="Backspace")return;const ie=ue.target?.tagName;if(ie==="INPUT"||ie==="TEXTAREA"||ie==="SELECT"||!VS.value)return;const se=n.value.filter(he=>!!he.selected).map(he=>he.id);if(se.length!==0){ue.preventDefault();try{await pl.confirm(`确认删除选中的 ${se.length} 条连线?删除后需点击「保存配置」生效。`,"删除连线",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}M(se)}},M=ue=>{const ie=new Set(ue);n.value=n.value.filter(se=>!ie.has(se.id)),X(),d.value=!0},B=({edgeId:ue})=>{const ie=n.value.find(se=>se.id===ue);ie&&H(ie)},L=({edgeId:ue,offset:ie})=>{const se=n.value.find(he=>he.id===ue);se&&(se.data={...se.data,offsetX:ie.x,offsetY:ie.y},d.value=!0)},K=({edgeId:ue})=>{const ie=n.value.find(se=>se.id===ue);ie&&(ie.data={...ie.data,disabled:!ie.data?.disabled},d.value=!0)},q=async({edgeId:ue})=>{const ie=n.value.find(Ce=>Ce.id===ue);if(!ie)return;const se=new Set;for(const Ce of n.value){const $e=Ce.data?.group??"";$e&&se.add($e)}const he=se.size?`现有分组:${[...se].join("、")}(留空=移出分组)`:"输入分组名称(留空=移出分组)",de=ie.data?.group??"";try{const{value:Ce}=await pl.prompt(he,"编辑分组",{inputValue:de,inputPlaceholder:"分组名称",confirmButtonText:"确定",cancelButtonText:"取消"}),$e=(Ce||"").trim();ie.data={...ie.data,group:$e},d.value=!0}catch{}},X=()=>{const ue=new Map;for(const ie of n.value){const se=`${ie.source}||${ie.target}`,he=ue.get(se)??0;ue.set(se,he+1),ie.data={...ie.data,layer:he}}w()},ee=ue=>{const ie=t.value.find(se=>se.type==="local"&&se.data?.name===ue.name);ie&&(ie.data={...ue}),d.value=!0},le=ue=>{const ie=t.value.find(se=>se.type==="remote"&&se.data?.name===ue.name);ie&&(ie.data={...ue}),d.value=!0},Z=({edge:ue})=>{H(ue)},ve=()=>{const ue=w();if(ue.length===0)return!0;const ie=ue.map(se=>{const he=se.locals.join("、");return se.type==="port"?`· 本地服务「${he}」→ 远程节点「${se.remote}」:远程端口 ${se.remotePort} 重复`:`· 本地服务「${he}」→ 远程节点「${se.remote}」:域名 ${se.domain} 重复(一个域名只能绑定一个 http/https 服务)`});return pl.alert(`
${ie.join("
")}
`,"发现连接冲突,请检查标红的节点与连线",{confirmButtonText:"知道了",dangerouslyUseHTMLString:!0,type:"warning"}),!1},we=()=>{w(),t.value.forEach(ue=>{ue.selected=!1})},Se=C(()=>t.value.filter(ue=>ue.type==="local")),oe=C(()=>t.value.filter(ue=>ue.type==="remote")),ce=()=>y(!0),j=async()=>{o.value=!0;try{const ue=await un.canvas();t.value=[],n.value=[];for(const ie of ue.locals||[])t.value.push({id:$("local",ie.name),type:"local",position:{x:p.localX,y:p.startY},data:{...ie}});for(const ie of ue.remotes||[])t.value.push({id:$("remote",ie.name),type:"remote",position:{x:p.remoteX,y:p.startY},data:{...ie}});y(!1);for(const ie of ue.links||[]){const se=$("local",ie.local),he=$("remote",ie.remote);if(!t.value.some(Ce=>Ce.id===se)||!t.value.some(Ce=>Ce.id===he))continue;const de=ie.remotePort||b(ie.local)?.port||0;n.value.push({id:_(se,he,de),source:se,target:he,label:String(de),type:"portedge",animated:!1,data:{offsetX:ie.offsetX??0,offsetY:ie.offsetY??0,group:ie.group??"",disabled:ie.disabled??!1}})}X(),d.value=!1}finally{o.value=!1}},Q=()=>{const ue=Se.value.map(he=>({...he.data})),ie=oe.value.map(he=>({...he.data})),se=[];for(const he of n.value){const de=he.source.startsWith("local::")?he.source.slice(7):"",Ce=he.target.startsWith("remote::")?he.target.slice(8):"",$e=Number(he.label);se.push({local:de,remote:Ce,remotePort:isNaN($e)||$e<=0?0:$e,offsetX:he.data?.offsetX??0,offsetY:he.data?.offsetY??0,group:he.data?.group??"",disabled:he.data?.disabled??!1})}return{locals:ue,remotes:ie,links:se}},U=async()=>{if(ve()){c.value=!0;try{const ue=await un.saveCanvas(Q()),ie=new Map(t.value.map(de=>[de.id,de.position]));t.value=[];let se=0,he=0;for(const de of ue.locals||[]){const Ce=$("local",de.name);t.value.push({id:Ce,type:"local",position:ie.get(Ce)||{x:p.localX,y:p.startY+se*(p.estLocal+p.gap)},data:{...de}}),se++}for(const de of ue.remotes||[]){const Ce=$("remote",de.name);t.value.push({id:Ce,type:"remote",position:ie.get(Ce)||{x:p.remoteX,y:p.startY+he*(p.estRemote+p.gap)},data:{...de}}),he++}n.value=[];for(const de of ue.links||[]){const Ce=$("local",de.local),$e=$("remote",de.remote),Ue=de.remotePort||b(de.local)?.port||0;n.value.push({id:_(Ce,$e,Ue),source:Ce,target:$e,label:String(Ue),type:"portedge",data:{offsetX:de.offsetX??0,offsetY:de.offsetY??0,group:de.group??"",disabled:de.disabled??!1}})}X(),d.value=!1,Ht.success("配置已保存")}catch(ue){Ht.error("保存失败: "+(ue.message||ue))}finally{c.value=!1}}},Y=F(null),J=async()=>{try{const ue=await un.exportCanvas(),ie=new Blob([JSON.stringify(ue,null,2)],{type:"application/json"}),se=URL.createObjectURL(ie),he=document.createElement("a");he.href=se,he.download=`webui4frpc-canvas-${new Date().toISOString().slice(0,19).replace(/[:T]/g,"")}.json`,document.body.appendChild(he),he.click(),document.body.removeChild(he),URL.revokeObjectURL(se),Ht.success("已导出转发表")}catch(ue){Ht.error("导出失败: "+(ue.message||ue))}},re=()=>{Y.value?.click()},pe=async ue=>{const ie=ue.target,se=ie.files?.[0];if(se)try{const he=await se.text(),de=JSON.parse(he),Ce=de?._type==="webui4frpc-canvas"?de.canvas:de?.locals?de:void 0;if(!Ce){Ht.warning("文件格式不符:需为导出的信封或裸画布 JSON");return}await pl.confirm(`导入将覆盖当前连接配置(${Ce.locals?.length??0} 本地 / ${Ce.remotes?.length??0} 远程 / ${Ce.links?.length??0} 连线)。继续?`,"导入转发表",{type:"warning"}),await un.importCanvas(de),await j(),Ht.success("已导入并应用")}catch(he){if(he==="cancel"||he?.action==="cancel")return;Ht.error("导入失败: "+(he.message||he))}finally{ie&&(ie.value="")}};return at(()=>{j(),s(),l=new MutationObserver(s),l.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),window.addEventListener("keydown",O)}),Ft(()=>{window.removeEventListener("keydown",O),l?.disconnect(),l=null}),(ue,ie)=>{const se=yt("el-input"),he=yt("el-dialog");return E(),z("div",Lie,[I("div",Vie,[I("div",{class:"toolbar-left"},[ie[6]||(ie[6]=I("span",{class:"toolbar-title"},"连接配置",-1)),I("button",{class:"btn local-add",onClick:T},"+ 本地转发项"),I("button",{class:"btn remote-add",onClick:N},"+ 远程节点"),I("button",{class:"btn warn",onClick:ce},"自动排列")]),I("div",Bie,[I("span",Fie,ye(d.value?"● 未保存":"已保存"),1),I("button",{class:"btn ghost",onClick:J},"导出"),I("button",{class:"btn ghost",disabled:!i(VS),onClick:re,title:"导入转发表(覆盖当前)"}," 导入 ",8,zie),I("input",{ref_key:"importInput",ref:Y,type:"file",accept:".json,application/json",class:"hidden-input",onChange:pe},null,544),I("button",{class:"btn save",disabled:c.value,onClick:U}," 保存配置 ",8,Hie)])]),I("div",Kie,[G(i(eie),{nodes:t.value,"onUpdate:nodes":ie[0]||(ie[0]=de=>t.value=de),edges:n.value,"onUpdate:edges":ie[1]||(ie[1]=de=>n.value=de),"default-viewport":{zoom:.85},"min-zoom":.3,"max-zoom":2,"fit-view-on-init":"","delete-key-code":null,"edges-updatable":!1,"edges-reconnectable":!1,class:"flow-canvas",onConnect:W,onPaneClick:we,onEdgeClick:Z},{"node-local":ne(de=>[G(Sie,{data:de.data,selected:!!de.selected,conflicted:k(de.data?.name),onRemove:A,"onUpdate:data":ee},null,8,["data","selected","conflicted"])]),"node-remote":ne(de=>[G(Nie,{data:de.data,selected:!!de.selected,conflicted:S(de.data?.name),onRemove:D,"onUpdate:data":le},null,8,["data","selected","conflicted"])]),"edge-portedge":ne(de=>[G(Pie,pt(de,{conflicted:x(de.id),onLabelClick:B,onLabelDrag:L,onToggleDisabled:K,onEditGroup:q,onDeleteEdge:P}),null,16,["conflicted"])]),default:ne(()=>[G(i(rie),{"pattern-color":a.value,gap:20},null,8,["pattern-color"])]),_:1},8,["nodes","edges"])]),G(he,{modelValue:f.value.visible,"onUpdate:modelValue":ie[5]||(ie[5]=de=>f.value.visible=de),title:f.value.isNew?"新建连线":"编辑远程端口",width:"400px"},{footer:ne(()=>[I("button",{class:"btn",onClick:ie[4]||(ie[4]=de=>f.value.visible=!1)},"取消"),I("button",{class:"btn save",onClick:V},"确定")]),default:ne(()=>[I("div",Wie,[ie[7]||(ie[7]=I("label",null,"连接",-1)),I("span",jie,ye(f.value.local)+" → "+ye(f.value.remote),1)]),I("div",Uie,[ie[8]||(ie[8]=I("label",null,"远程端口",-1)),G(se,{modelValue:v.value,"onUpdate:modelValue":ie[2]||(ie[2]=de=>v.value=de),type:"number",min:"1",max:"65535",placeholder:"默认 = 本地端口",class:"port-input",onKeyup:rn(V,["enter"])},null,8,["modelValue"])]),I("div",Yie,[ie[9]||(ie[9]=I("label",null,"分组",-1)),G(se,{modelValue:h.value,"onUpdate:modelValue":ie[3]||(ie[3]=de=>h.value=de),placeholder:"可选,用于转发页一键启停整组",onKeyup:rn(V,["enter"])},null,8,["modelValue"])])]),_:1},8,["modelValue","title"])])}}}),Gie=Ll(qie,[["__scopeId","data-v-f91ed7cb"]]),Xie={class:"settings-page"},Zie={class:"page-content"},Jie={class:"panel"},Qie={class:"binary-row"},eue=["disabled"],tue={key:0,class:"binary-info"},nue={class:"info-value"},oue={key:0,class:"info-version"},aue={class:"panel"},lue={class:"setting-row"},sue={class:"setting-row"},rue={class:"setting-row"},iue=ge({__name:"SettingsView",setup(e){const t=F(!1),n=F(!1),o=F(""),a=F(null),l=F({autoStartProfiles:!0,restartOnExit:!0,restartIntervalSeconds:5}),s=async()=>{t.value=!0;try{l.value=await un.settings(),o.value=l.value.binaryPath||"";try{a.value=await un.binaryStatus()}catch{a.value=null}}finally{t.value=!1}},r=async()=>{try{const d=await un.settings();d.binaryPath=o.value.trim(),await un.saveSettings(d),l.value=d;const f=o.value.trim();Ht.success(f?`worker 将使用 ${f}`:"worker 将使用管理器自身(默认)"),await s()}catch(d){Ht.error("保存 frpc 路径失败: "+(d.message||d))}},u=async()=>{n.value=!0;try{const d=await un.installBinary();o.value=d.path,Ht.success(`已安装 frpc ${d.version}`),await s()}catch(d){Ht.error("安装失败: "+(d.message||d))}finally{n.value=!1}},c=async()=>{try{await un.saveSettings(l.value),Ht.success("运行策略已保存")}catch(d){Ht.error("保存失败: "+(d.message||d))}};return at(s),(d,f)=>{const v=yt("el-input"),h=yt("el-icon"),g=yt("el-switch"),p=yt("el-input-number"),m=jm("loading");return E(),z("div",Xie,[f[11]||(f[11]=I("div",{class:"page-top"},[I("div",{class:"page-header"},[I("h2",{class:"page-title"},"运行时设置"),I("p",{class:"page-subtitle"},"worker 二进制与运行策略")])],-1)),qe((E(),z("div",Zie,[I("section",Jie,[f[5]||(f[5]=I("h3",{class:"panel-title"},"frpc 可执行文件",-1)),f[6]||(f[6]=I("p",{class:"panel-desc"}," 用于拉起各 remote profile 的 frpc worker 进程。留空则使用管理器自身进程。 ",-1)),I("div",Qie,[G(v,{modelValue:o.value,"onUpdate:modelValue":f[0]||(f[0]=y=>o.value=y),placeholder:"如 /usr/local/bin/frpc,留空用当前进程",clearable:"",size:"large",class:"binary-input",onBlur:r,onKeyup:rn(r,["enter"])},null,8,["modelValue"]),I("button",{class:"btn install-btn",disabled:n.value,onClick:u},[n.value?(E(),me(h,{key:0,class:"spin"},{default:ne(()=>[G(i(sa))]),_:1})):ae("",!0),Me(" "+ye(n.value?"安装中…":"一键安装 frpc"),1)],8,eue)]),a.value?(E(),z("div",tue,[f[4]||(f[4]=I("span",{class:"info-label"},"当前路径",-1)),I("code",nue,ye(a.value.binaryPath),1),a.value.version?(E(),z("span",oue,ye(a.value.version),1)):ae("",!0)])):ae("",!0)]),I("section",aue,[f[10]||(f[10]=I("h3",{class:"panel-title"},"运行策略",-1)),I("div",lue,[f[7]||(f[7]=I("div",{class:"setting-text"},[I("span",{class:"setting-label"},"自动启动 profile"),I("span",{class:"setting-hint"},"管理器启动时自动拉起所有已启用的 remote")],-1)),G(g,{modelValue:l.value.autoStartProfiles,"onUpdate:modelValue":f[1]||(f[1]=y=>l.value.autoStartProfiles=y),onChange:c},null,8,["modelValue"])]),I("div",sue,[f[8]||(f[8]=I("div",{class:"setting-text"},[I("span",{class:"setting-label"},"异常退出自动重启"),I("span",{class:"setting-hint"},"worker 崩溃后带退避重启")],-1)),G(g,{modelValue:l.value.restartOnExit,"onUpdate:modelValue":f[2]||(f[2]=y=>l.value.restartOnExit=y),onChange:c},null,8,["modelValue"])]),I("div",rue,[f[9]||(f[9]=I("div",{class:"setting-text"},[I("span",{class:"setting-label"},"重启间隔(秒)"),I("span",{class:"setting-hint"},"崩溃重启的指数退避基数")],-1)),G(p,{modelValue:l.value.restartIntervalSeconds,"onUpdate:modelValue":f[3]||(f[3]=y=>l.value.restartIntervalSeconds=y),min:1,max:3600,onChange:c},null,8,["modelValue"])])])])),[[m,t.value]])])}}}),uue=Ll(iue,[["__scopeId","data-v-8b757323"]]),cue={class:"status-page"},due={key:0,class:"kpis"},fue={class:"w4f-kpi"},pue={class:"k-hdr"},vue={class:"k-lab"},hue={class:"k-val"},mue={class:"k-sub"},gue={class:"w4f-kpi"},yue={class:"k-hdr"},bue={class:"k-lab"},wue={class:"k-val"},Sue={class:"w4f-kpi"},Cue={class:"k-val"},kue={class:"w4f-kpi"},xue={class:"k-hdr"},Eue={class:"k-lab"},$ue={class:"k-val"},Tue={key:1,class:"status-body"},_ue={class:"section-title"},Nue={class:"grp-count"},Iue={class:"grp-actions"},Oue=["onClick"],Mue=["onClick"],Pue=["onClick"],Rue={class:"card-grid"},Aue={class:"fwd-head"},Due=["title"],Lue={class:"fwd-route"},Vue={key:0,class:"fwd-ip"},Bue={class:"fwd-port"},Fue={key:0,class:"w4f-tag w4f-tag-primary"},zue=["onClick","title"],Hue=["title"],Kue={class:"fwd-actions"},Wue=["onClick"],jue=["onClick"],Uue={key:0,class:"empty"},Yue={key:0,class:"empty"},que={class:"section"},Gue={class:"card-grid"},Xue={class:"nc-head"},Zue={class:"nc-name"},Jue={class:"nc-actions"},Que=["onClick"],ece=["onClick"],tce={class:"nc-meta"},nce={key:0,class:"meta-pill"},oce={key:1,class:"meta-pill warn"},ace=["title"],lce={key:3,class:"meta-pill info"},sce={key:0,class:"nc-forwards"},rce={key:1,class:"nc-groups"},ice={class:"w4f-tag w4f-tag-info"},uce={key:2,class:"nc-proxies"},cce={class:"np-name"},dce={class:"np-status"},fce={key:0,class:"np-addr"},pce=["title"],vce={key:3,class:"nc-proxies-empty"},hce={key:0,class:"empty"},mce={class:"section"},gce={class:"card-grid"},yce={class:"lc-head"},bce={class:"lc-name"},wce={class:"lc-addr"},Sce={class:"w4f-tag w4f-tag-primary"},Cce={key:0,class:"w4f-tag w4f-tag-ok"},kce={class:"lc-targets"},xce={class:"lc-remote"},Ece={class:"lc-port"},$ce={key:0,class:"lc-none"},Tce={key:0,class:"empty"},_ce={class:"form-row"},Nce={class:"form-row"},Ice={class:"form-row"},Oce={class:"form-row"},Mce={class:"form-row"},Pce={class:"form-row"},Rce=ge({__name:"StatusView",setup(e){const t=F(null);let n=null,o=null;const a=()=>({name:"",ip:"",port:7e3,token:"",url:"",enabled:!0}),l=Kt({visible:!1,isNew:!0,remote:a()}),s=()=>{l.isNew=!0,l.remote=a(),l.visible=!0},r=O=>{const M=t.value?.remotes.find(B=>B.name===O.name);l.isNew=!1,l.remote=M?{...M}:{name:O.name,ip:"",port:7e3,token:"",url:"",enabled:!0},l.visible=!0},u=async()=>{const O=l.remote;if(!O.name||!O.ip||O.port<=0){Ht.warning("请填写名称、IP、端口");return}try{await un.saveRemote(O),l.visible=!1,Ht.success(l.isNew?"节点已添加":"节点已更新"),await y()}catch(M){Ht.error("保存失败: "+(M.message||M))}},c=async O=>{try{await un.forwardStart(O.local,O.remote,O.remotePort),await y()}catch(M){Ht.error("启动转发失败: "+(M.message||M))}},d=async O=>{try{await un.forwardStop(O.local,O.remote,O.remotePort),await y()}catch(M){Ht.error("停止转发失败: "+(M.message||M))}},f=async O=>{try{await un.groupStart(O),await y()}catch(M){Ht.error("启动分组失败: "+(M.message||M))}},v=async O=>{try{await un.groupStop(O),await y()}catch(M){Ht.error("停止分组失败: "+(M.message||M))}},h=async O=>{const M=new Set;for(const L of t.value?.forwards??[])L.group&&M.add(L.group);const B=M.size?`现有分组:${[...M].join("、")}(留空=移出分组)`:"输入分组名称(留空=移出分组)";try{const{value:L}=await pl.prompt(B,"修改分组",{inputValue:O.group||"",inputPlaceholder:"分组名称",confirmButtonText:"确定",cancelButtonText:"取消"}),K=(L||"").trim();await un.assignGroup(O.local,O.remote,O.remotePort,K),await y()}catch(L){L!=="cancel"&&L?.message&&Ht.error("修改分组失败: "+(L.message||L))}},g=async O=>{if(window.confirm(`删除分组「${O}」?组内所有转发将移至未分组(转发本身不受影响)。`))try{await un.deleteGroup(O),await y(),Ht.success(`已删除分组「${O}」`)}catch(M){Ht.error("删除分组失败: "+(M.message||M))}},p=O=>O.kind!=="remote"?"":O.ownerId?O.ownerId===t.value?.selfId?"本机持有":"持有 "+O.ownerId:"待分配",m=async O=>{if(window.confirm(`删除远程节点 ${O}?`))try{await un.deleteRemote(O),await y()}catch(M){Ht.error("删除失败: "+(M.message||M))}},y=async()=>{try{t.value=await un.status()}catch{}},b=O=>O==="running",w=C(()=>t.value?.profiles.filter(O=>O.process.state==="running").length??0),S=C(()=>t.value?.profiles.filter(O=>O.connState==="connected").length??0),k=C(()=>(t.value?.profiles.length??0)>0&&S.value===t.value?.profiles.length),x=C(()=>t.value?.forwards.filter(O=>O.active).length??0),$=C(()=>{const O=new Map;for(const M of t.value?.forwards??[]){const B=M.group||"";let L=O.get(B);L||(L=[],O.set(B,L)),L.push(M)}return[...O.entries()].map(([M,B])=>({key:M,label:M||"未分组",items:B})).sort((M,B)=>M.key?B.key?M.label.localeCompare(B.label,"zh"):-1:1)}),T=O=>{switch(O){case"connected":return"已连接";case"connecting":return"连接中";case"failed":return"连接失败";case"disabled":return"已停用";default:return"未启动"}},N=O=>{switch(O){case"connected":return"w4f-tag-ok";case"connecting":return"w4f-tag-info";case"failed":return"w4f-tag-danger";default:return"w4f-tag-warn"}},A=O=>{switch(O){case"connected":return"";case"connecting":return"pending";case"failed":return"err";default:return""}},D=O=>{switch(O){case"running":return"运行中";case"wait start":return"等待启动";case"start error":return"启动错误";case"check failed":return"健康检查失败";case"closed":return"已关闭";default:return"新建"}},_=O=>{switch(O){case"running":return"ok";case"check failed":case"start error":return"err";case"wait start":return"pending";default:return""}},W=O=>O==="running"?"ok":O==="check failed"||O==="start error"?"err":"",V=O=>O==="running"?"100%":O==="wait start"?"45%":O==="new"?"15%":"30%",H=O=>{switch(O){case"running":return"运行中";case"starting":return"启动中";case"restarting":return"重启中";case"crashed":return"异常";default:return"未启动"}},P=O=>t.value?.remotes.find(M=>M.name===O)?.vhostHttpPort||0;return at(()=>{y(),n=window.setInterval(y,2500),o=()=>{document.hidden||y()},document.addEventListener("visibilitychange",o)}),Ft(()=>{n!==null&&(window.clearInterval(n),n=null),o&&(document.removeEventListener("visibilitychange",o),o=null)}),(O,M)=>{const B=yt("el-input"),L=yt("el-input-number"),K=yt("el-switch"),q=yt("el-dialog");return E(),z("div",cue,[I("div",{class:"topbar w4f-card"},[M[8]||(M[8]=I("div",{class:"tb-left"},[I("h2",{class:"page-title"},"状态总览"),I("span",{class:"page-sub"},"每 2.5 秒自动刷新")],-1)),I("div",{class:"tb-right"},[I("button",{class:"w4f-btn ghost small",onClick:y},"⟳ 刷新"),I("button",{class:"w4f-btn small",onClick:s},"+ 添加远程节点")])]),t.value?(E(),z("div",due,[I("div",fue,[I("div",pue,[I("span",vue,[I("span",{class:R(["w4f-dot",{err:!k.value}])},null,2),M[9]||(M[9]=Me("远程节点",-1))]),M[10]||(M[10]=I("span",{class:"k-ic"},"⊕",-1))]),I("div",hue,ye(t.value.profiles.length),1),I("div",mue,"在线 "+ye(S.value)+" · 离线 "+ye(t.value.profiles.length-S.value),1)]),I("div",gue,[I("div",yue,[I("span",bue,[I("span",{class:R(["w4f-dot",{err:w.value===0&&t.value.profiles.length>0}])},null,2),M[11]||(M[11]=Me("worker 进程",-1))]),M[12]||(M[12]=I("span",{class:"k-ic"},"⚙",-1))]),I("div",wue,ye(w.value),1),M[13]||(M[13]=I("div",{class:"k-sub"},"运行中 frpc 进程数",-1))]),I("div",Sue,[M[14]||(M[14]=I("div",{class:"k-hdr"},[I("span",{class:"k-lab"},[I("span",{class:"w4f-dot"}),Me("本地服务")]),I("span",{class:"k-ic"},"◳")],-1)),I("div",Cue,ye(t.value.localStatus.length),1),M[15]||(M[15]=I("div",{class:"k-sub"},"已配置本地服务",-1))]),I("div",kue,[I("div",xue,[I("span",Eue,[I("span",{class:R(["w4f-dot",{pending:x.value>0}])},null,2),M[16]||(M[16]=Me("活跃转发",-1))]),M[17]||(M[17]=I("span",{class:"k-ic"},"→",-1))]),I("div",$ue,ye(x.value),1),M[18]||(M[18]=I("div",{class:"k-sub"},"已编排转发链路",-1))])])):ae("",!0),t.value?(E(),z("div",Tue,[(E(!0),z(Pe,null,dt($.value,X=>(E(),z("section",{key:X.key||"__none__",class:"section"},[I("h3",_ue,[M[19]||(M[19]=I("span",{class:"k-ic"},"→",-1)),Me(ye(X.label)+" ",1),I("span",Nue,ye(X.items.length)+" 条",1),I("span",Iue,[I("button",{class:"w4f-btn small",onClick:ee=>f(X.key)},"一键启动整组",8,Oue),I("button",{class:"w4f-btn ghost small",onClick:ee=>v(X.key)},"一键停止整组",8,Mue),X.key?(E(),z("button",{key:0,class:"w4f-btn ghost small danger",onClick:ee=>g(X.key)},"删除分组",8,Pue)):ae("",!0)])]),I("div",Rue,[(E(!0),z(Pe,null,dt(X.items,ee=>(E(),z("div",{key:ee.local+":"+ee.remote+":"+ee.remotePort,class:R(["fwd-card w4f-card",{active:ee.active,stopped:ee.disabled}])},[I("div",Aue,[I("span",{class:R(["fwd-kind",ee.kind])},ye(ee.kind==="local"?"本地":"远程"),3),I("span",{class:R(["fwd-dot",{on:ee.active}]),title:ee.active?"运行中":ee.disabled?"已停止":"未运行"},null,10,Due),I("span",Lue,[I("b",null,ye(ee.local),1),ee.localIp?(E(),z("span",Vue,ye(ee.localIp)+":"+ye(ee.localPort),1)):ae("",!0),M[20]||(M[20]=I("span",{class:"fwd-arrow"},"→",-1)),I("b",null,ye(ee.remote),1),M[21]||(M[21]=Me(":",-1)),I("span",Bue,ye(ee.remotePort),1)]),ee.localProto?(E(),z("span",Fue,ye(ee.localProto),1)):ae("",!0),I("span",{class:"w4f-tag w4f-tag-info group-chip",onClick:le=>h(ee),title:"点击修改分组(当前:"+(ee.group||"未分组")+")"},ye(ee.group||"未分组"),9,zue),ee.kind==="remote"?(E(),z("span",{key:1,class:"fwd-owner",title:ee.ownerId||""},ye(p(ee)),9,Hue)):ae("",!0),I("span",Kue,[ee.active?(E(),z("button",{key:1,class:"w4f-btn ghost small",onClick:le=>d(ee)},"停止转发",8,jue)):(E(),z("button",{key:0,class:"w4f-btn small",onClick:le=>c(ee)},"启动转发",8,Wue))])])],2))),128)),X.items.length?ae("",!0):(E(),z("div",Uue,"该组暂无转发"))])]))),128)),t.value.forwards.length?ae("",!0):(E(),z("div",Yue,"尚未配置转发 — 前往「连接配置」画布编排 local→remote 连线")),I("section",que,[M[22]||(M[22]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"⊕"),Me("远程节点状态")],-1)),I("div",Gue,[(E(!0),z(Pe,null,dt(t.value.profiles,X=>(E(),z("div",{key:X.name,class:R(["node-card w4f-card",{healthy:b(X.process.state)}])},[I("div",Xue,[I("span",Zue,ye(X.name),1),I("span",{class:R(["w4f-tag",N(X.connState)])},[I("span",{class:R(["w4f-dot",A(X.connState)])},null,2),Me(ye(T(X.connState)),1)],2),I("span",Jue,[I("button",{class:"w4f-btn ghost small",onClick:ee=>r(X)},"编辑",8,Que),I("button",{class:"w4f-btn danger small",onClick:ee=>m(X.name)},"删除",8,ece)])]),I("div",tce,[X.process.pid?(E(),z("span",nce,"pid "+ye(X.process.pid),1)):ae("",!0),X.process.restartCount?(E(),z("span",oce,"重启 "+ye(X.process.restartCount),1)):ae("",!0),X.process.err?(E(),z("span",{key:2,class:"meta-pill err",title:X.process.err},ye(X.process.err),9,ace)):ae("",!0),P(X.name)?(E(),z("span",lce,"HTTP :"+ye(P(X.name)),1)):ae("",!0)]),X.forwards.length?(E(),z("div",sce,[(E(!0),z(Pe,null,dt(X.forwards,ee=>(E(),z("span",{key:ee.service,class:"w4f-tag w4f-tag-primary"},ye(ee.service)+" → :"+ye(ee.remotePort),1))),128))])):ae("",!0),X.groupCount?(E(),z("div",rce,[I("span",ice,"LB ×"+ye(X.groupCount),1)])):ae("",!0),X.proxyStates?.length?(E(),z("div",uce,[(E(!0),z(Pe,null,dt(X.proxyStates,ee=>(E(),z("div",{key:ee.name,class:R(["nc-proxy",_(ee.status)])},[I("span",cce,ye(ee.name),1),I("span",dce,ye(D(ee.status)),1),I("div",{class:R(["w4f-bar",W(ee.status)])},[I("i",{style:Be({width:V(ee.status)})},null,4)],2),ee.remote_addr?(E(),z("span",fce,ye(ee.remote_addr),1)):ae("",!0),ee.err?(E(),z("span",{key:1,class:"np-err",title:ee.err},ye(ee.err),9,pce)):ae("",!0)],2))),128))])):X.adminEnabled?(E(),z("div",vce," 管理 API 未返回状态(frpc 未连上远程 frps 或无代理) ")):ae("",!0)],2))),128)),t.value.profiles.length?ae("",!0):(E(),z("div",hce,"尚未配置远程节点 — 点击右上「+ 添加远程节点」"))])]),I("section",mce,[M[24]||(M[24]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"◳"),Me("本地服务")],-1)),I("div",gce,[(E(!0),z(Pe,null,dt(t.value.localStatus,X=>(E(),z("div",{key:X.local.name,class:"local-card w4f-card"},[I("div",yce,[I("span",bce,ye(X.local.name),1),I("span",wce,ye(X.local.ip)+":"+ye(X.local.port),1),I("span",Sce,ye(X.local.protocol),1),X.local.localOnly?(E(),z("span",Cce,"本地")):ae("",!0)]),I("div",kce,[(E(!0),z(Pe,null,dt(X.targets,ee=>(E(),z("div",{key:ee.remote+":"+ee.remotePort,class:"lc-target"},[M[23]||(M[23]=I("span",{class:"lc-arrow"},"→",-1)),I("span",xce,ye(ee.remote),1),I("span",Ece,":"+ye(ee.remotePort),1),I("span",{class:R(["w4f-tag",b(ee.workerState)?"w4f-tag-ok":"w4f-tag-danger"])},ye(H(ee.workerState)),3)]))),128)),X.targets.length?ae("",!0):(E(),z("div",$ce,"未转发"))])]))),128)),t.value.localStatus.length?ae("",!0):(E(),z("div",Tce,"尚未配置本地服务 — 前往「连接配置」画布编排"))])])])):ae("",!0),G(q,{modelValue:l.visible,"onUpdate:modelValue":M[7]||(M[7]=X=>l.visible=X),title:l.isNew?"添加远程节点":"编辑远程节点",width:"440px"},{footer:ne(()=>[I("button",{class:"w4f-btn ghost small",onClick:M[6]||(M[6]=X=>l.visible=!1)},"取消"),I("button",{class:"w4f-btn small",onClick:u},"保存")]),default:ne(()=>[I("div",_ce,[M[25]||(M[25]=I("label",null,"名称",-1)),G(B,{modelValue:l.remote.name,"onUpdate:modelValue":M[0]||(M[0]=X=>l.remote.name=X),disabled:!l.isNew,placeholder:"如 aliyun-hz"},null,8,["modelValue","disabled"])]),I("div",Nce,[M[26]||(M[26]=I("label",null,"服务器 IP",-1)),G(B,{modelValue:l.remote.ip,"onUpdate:modelValue":M[1]||(M[1]=X=>l.remote.ip=X),placeholder:"frps 地址"},null,8,["modelValue"])]),I("div",Ice,[M[27]||(M[27]=I("label",null,"端口",-1)),G(L,{modelValue:l.remote.port,"onUpdate:modelValue":M[2]||(M[2]=X=>l.remote.port=X),min:1,max:65535},null,8,["modelValue"])]),I("div",Oce,[M[28]||(M[28]=I("label",null,"Token",-1)),G(B,{modelValue:l.remote.token,"onUpdate:modelValue":M[3]||(M[3]=X=>l.remote.token=X),placeholder:"可选"},null,8,["modelValue"])]),I("div",Mce,[M[29]||(M[29]=I("label",null,"URL",-1)),G(B,{modelValue:l.remote.url,"onUpdate:modelValue":M[4]||(M[4]=X=>l.remote.url=X),placeholder:"可选"},null,8,["modelValue"])]),I("div",Pce,[M[30]||(M[30]=I("label",null,"启用",-1)),G(K,{modelValue:l.remote.enabled,"onUpdate:modelValue":M[5]||(M[5]=X=>l.remote.enabled=X)},null,8,["modelValue"])])]),_:1},8,["modelValue","title"])])}}}),Ace=Ll(Rce,[["__scopeId","data-v-3b790b1b"]]),Dce={class:"cluster-page"},Lce={class:"hero w4f-card"},Vce={key:0,class:"hero-stats"},Bce={class:"w4f-tag w4f-tag-info"},Fce=["title"],zce={key:0,class:"w4f-tag w4f-tag-primary"},Hce={key:1,class:"nodekey-bar"},Kce={class:"nk-value"},Wce={key:0,class:"kpis"},jce={class:"w4f-kpi"},Uce={class:"k-hdr"},Yce={class:"k-lab"},qce={class:"k-val"},Gce={class:"k-sub"},Xce={class:"w4f-kpi"},Zce={class:"k-val"},Jce={class:"w4f-kpi"},Qce={class:"k-hdr"},ede={class:"k-lab"},tde={class:"k-val"},nde={class:"w4f-kpi"},ode={class:"k-hdr"},ade={class:"k-lab"},lde={class:"k-val"},sde={class:"toolbar w4f-card"},rde=["disabled"],ide=["disabled"],ude={key:0,class:"act-hint"},cde={key:1,class:"act-hint"},dde=["disabled"],fde=["disabled"],pde={key:1,class:"cluster-body"},vde={class:"section w4f-card"},hde={class:"ring-line"},mde={class:"rn-top"},gde={class:"rn-id"},yde={key:0,class:"w4f-tag w4f-tag-primary"},bde={key:1,class:"w4f-tag w4f-tag-info"},wde={key:2,class:"w4f-tag w4f-tag-danger"},Sde={class:"rn-load-row"},Cde={class:"rn-load-label"},kde={class:"w4f-bar"},xde={class:"rn-addr"},Ede=["disabled","onClick"],$de={key:0,class:"ring-arrow"},Tde={key:0,class:"empty"},_de={key:0,class:"section w4f-card"},Nde={class:"task-list"},Ide={class:"tk-id"},Ode={class:"tk-name"},Mde={class:"tk-name"},Pde={class:"tk-name"},Rde={class:"tk-port"},Ade={class:"section w4f-card"},Dde={class:"topo-list"},Lde={class:"tp-id"},Vde={class:"tp-name"},Bde={class:"tp-name"},Fde={class:"tp-port"},zde={key:0,class:"empty"},Hde={class:"section w4f-card"},Kde={class:"section-title"},Wde={key:0,class:"log-count"},jde={class:"title-actions"},Ude=["disabled"],Yde=["disabled"],qde={class:"log-list"},Gde={class:"lg-seq"},Xde={class:"lg-time"},Zde={class:"lg-kind"},Jde={class:"lg-detail"},Qde={key:0,class:"empty"},efe={key:2,class:"empty-page w4f-card"},tfe={class:"form-row"},nfe={class:"form-row"},ofe=["disabled"],afe=ge({__name:"ClusterView",setup(e){const t=F(null),n=F(!1);let o=null,a=null;const l=Kt({visible:!1,addr:"",key:""}),s=async()=>{try{t.value=await un.ring()}catch{}},r=B=>B.length>22?"…"+B.slice(-20):B,u=async()=>{const B=t.value?.nodeKey;if(B)try{await navigator.clipboard.writeText(B),Ht.success("已复制加入密钥")}catch{Ht.error("复制失败,请手动选中复制")}},c=C(()=>!!t.value?.nodes.some(B=>B.id===t.value?.selfId)),d=C(()=>t.value?.nodes.filter(B=>B.alive).length??0),f=C(()=>d.value<=1||!c.value),v=C(()=>!!t.value&&t.value.nodes.length>1&&c.value),h=C(()=>!!t.value&&t.value.selfId===t.value.leaderId),g=C(()=>t.value?c.value?v.value?"运行中":"待加入":"已脱离":"未启动"),p=C(()=>t.value?c.value?v.value?"w4f-tag-ok":"w4f-tag-info":"w4f-tag-danger":"w4f-tag-warn"),m=C(()=>t.value?c.value?v.value?"":"pending":"err":""),y=F(Date.now());let b=null;const w=C(()=>{const B=t.value?.lastSync??0;if(!B)return"—";const L=Math.max(0,Math.floor(y.value/1e3)-B);return L<2?"刚刚":L<60?L+" 秒前":L<3600?Math.floor(L/60)+" 分钟前":Math.floor(L/3600)+" 小时前"}),S=C(()=>{const B=t.value?.lastSync??0;return B?Math.floor(y.value/1e3)-B>15:!1}),k=B=>{switch(B){case"forward.add":return"新增转发";case"forward.remove":return"撤销转发";case"node.join":return"节点加入";case"node.leave":return"节点离开";case"leader.change":return"leader 变更";default:return B}},x=B=>{switch(B){case"forward.add":return"add";case"forward.remove":return"remove";case"node.join":return"join";case"node.leave":return"leave";case"leader.change":return"leader";default:return""}},$=C(()=>[...t.value?.log??[]].reverse()),T=B=>{if(!B)return"--:--:--";const L=new Date(B*1e3),K=q=>String(q).padStart(2,"0");return`${K(L.getHours())}:${K(L.getMinutes())}:${K(L.getSeconds())}`},N=B=>{const L=B.data||{};switch(B.kind){case"forward.add":case"forward.remove":return`${L.local||"?"} → ${L.remote||"?"}${L.taskId?" · "+String(L.taskId).slice(-8):""}`;case"node.join":return`${L.node||"?"} @ ${L.addr||"?"}`;case"node.leave":return`${L.node||"?"}`;case"leader.change":return`→ ${L.leader||"?"}`;default:return L&&Object.keys(L).length?JSON.stringify(L):""}},A=B=>{const L=[...t.value?.log??[]].sort((ve,we)=>ve.seq-we.seq);if(!L.length)return;let K="",q="text/plain",X="log";if(B==="json")K=JSON.stringify(L,null,2),q="application/json",X="json";else{const ve="#seq time node kind detail",we=L.map(Se=>`#${Se.seq} ${T(Se.at)} ${r(Se.node)} ${Se.kind} ${N(Se)}`);K=[ve,...we].join(` -`)}const ee=new Blob([K],{type:q}),le=URL.createObjectURL(ee),Z=document.createElement("a");Z.href=le,Z.download=`cluster-log-${new Date().toISOString().slice(0,19).replace(/[:T]/g,"")}.${X}`,document.body.appendChild(Z),Z.click(),document.body.removeChild(Z),URL.revokeObjectURL(le)},D=F(!1),_=async()=>{D.value=!0;try{const B=await un.exportWorkerLogs(),L=new Blob([JSON.stringify(B,null,2)],{type:"application/json"}),K=URL.createObjectURL(L),q=document.createElement("a");q.href=K,q.download=`worker-logs-${new Date().toISOString().slice(0,19).replace(/[:T]/g,"")}.json`,document.body.appendChild(q),q.click(),document.body.removeChild(q),URL.revokeObjectURL(K);const X=(B.nodes||[]).filter(ee=>ee.ok).length;Ht.success(`已导出 worker 日志(${X}/${B.nodes?.length??0} 节点)`)}catch(B){Ht.error("导出失败: "+(B.message||B))}finally{D.value=!1}},W=B=>B.removeNode?"remove":B.revoke?"revoke":"pending",V=B=>B.removeNode?"移除节点":B.revoke?"撤销":"新增",H=async()=>{n.value=!0;try{t.value=await un.clusterCreate(),Ht.success("已创建集群(本节点为初始 leader)")}catch(B){Ht.error("创建失败: "+(B.message||B))}finally{n.value=!1,await s()}},P=async()=>{const B=l.addr.trim(),L=l.key.trim();if(!(!B||!L)){n.value=!0;try{t.value=await un.clusterJoinRing(B,L),l.visible=!1,l.addr="",l.key="",Ht.success(`已加入 ${B}`)}catch(K){Ht.error("加入失败: "+(K.message||K))}finally{n.value=!1,await s()}}},O=async()=>{if(t.value&&window.confirm("退出集群?本节点将取消一切集群远程转发并脱离环。")){n.value=!0;try{await un.clusterRemoveNode(t.value.selfId),Ht.success("退出指令已发布")}catch(B){Ht.error("退出失败: "+(B.message||B))}finally{n.value=!1,await s()}}},M=async B=>{if(window.confirm(`移除节点 ${r(B)} 出集群?`)){n.value=!0;try{await un.clusterRemoveNode(B),Ht.success("移除指令已发布")}catch(L){Ht.error("移除失败: "+(L.message||L))}finally{n.value=!1,await s()}}};return at(()=>{s(),o=window.setInterval(s,2e3),b=window.setInterval(()=>{y.value=Date.now()},1e3),a=()=>{document.hidden||s()},document.addEventListener("visibilitychange",a)}),Ft(()=>{o!==null&&(clearInterval(o),o=null),b!==null&&(clearInterval(b),b=null),a&&(document.removeEventListener("visibilitychange",a),a=null)}),(B,L)=>{const K=yt("el-dropdown-item"),q=yt("el-dropdown-menu"),X=yt("el-dropdown"),ee=yt("el-input"),le=yt("el-dialog");return E(),z("div",Dce,[I("div",Lce,[L[10]||(L[10]=I("div",{class:"hero-left"},[I("h2",{class:"page-title"},"集群令牌环"),I("span",{class:"page-sub"},"令牌环网 · 转发编排")],-1)),t.value?(E(),z("div",Vce,[I("span",{class:R(["w4f-tag",p.value])},[I("span",{class:R(["w4f-dot",m.value])},null,2),Me(ye(g.value),1)],2),I("span",Bce,[I("b",null,ye(d.value),1),L[5]||(L[5]=Me(" 成员",-1))]),I("span",{class:"w4f-tag w4f-tag-primary",title:"cycle "+t.value.cycle},[L[6]||(L[6]=Me("上次同步 ",-1)),I("b",null,ye(w.value),1)],8,Fce),h.value?(E(),z("span",zce,[...L[7]||(L[7]=[I("span",{class:"crown"},"♔",-1),Me(" 本机 leader",-1)])])):ae("",!0)])):ae("",!0),t.value?.nodeKey?(E(),z("div",Hce,[L[8]||(L[8]=I("span",{class:"nk-label"},"本节点加入密钥",-1)),I("code",Kce,ye(t.value.nodeKey),1),I("button",{class:"w4f-btn ghost small",onClick:u},"复制"),L[9]||(L[9]=I("span",{class:"nk-hint"},"其他节点通过本节点加入集群时需提供此密钥",-1))])):ae("",!0)]),t.value?(E(),z("div",Wce,[I("div",jce,[I("div",Uce,[I("span",Yce,[I("span",{class:R(["w4f-dot",{err:d.value===0}])},null,2),L[11]||(L[11]=Me("环节点",-1))]),L[12]||(L[12]=I("span",{class:"k-ic"},"○",-1))]),I("div",qce,ye(t.value.nodes.length),1),I("div",Gce,"活跃 "+ye(d.value)+" · 离线 "+ye(t.value.nodes.length-d.value),1)]),I("div",Xce,[L[13]||(L[13]=I("div",{class:"k-hdr"},[I("span",{class:"k-lab"},[I("span",{class:"w4f-dot"}),Me("活跃转发")]),I("span",{class:"k-ic"},"→")],-1)),I("div",Zce,ye(t.value.topology.length),1)]),I("div",Jce,[I("div",Qce,[I("span",ede,[I("span",{class:R(["w4f-dot",{pending:t.value.pending.length>0}])},null,2),L[14]||(L[14]=Me("待办命令",-1))]),L[15]||(L[15]=I("span",{class:"k-ic"},"⚙",-1))]),I("div",tde,ye(t.value.pending.length),1)]),I("div",nde,[I("div",ode,[I("span",ade,[I("span",{class:R(["w4f-dot",{err:S.value}])},null,2),L[16]||(L[16]=Me("上次同步",-1))]),L[17]||(L[17]=I("span",{class:"k-ic"},"⟳",-1))]),I("div",lde,ye(w.value),1)])])):ae("",!0),I("div",sde,[v.value?(E(),z(Pe,{key:1},[I("button",{class:"w4f-btn danger",disabled:n.value,onClick:O},"⏏ 退出集群",8,dde),L[18]||(L[18]=I("span",{class:"act-hint"},"退出后本节点仅保留 localOnly 转发;可重新创建/加入",-1))],64)):(E(),z(Pe,{key:0},[I("button",{class:"w4f-btn",disabled:n.value,onClick:H},"⊕ 创建集群",8,rde),I("button",{class:"w4f-btn ghost",disabled:n.value,onClick:L[0]||(L[0]=Z=>l.visible=!0)},"↪ 加入集群…",8,ide),f.value&&h.value?(E(),z("span",ude,"本节点为初始 leader,已就绪;可直接创建,或输入对端地址加入既有集群")):c.value?ae("",!0):(E(),z("span",cde,"本节点已脱离集群,可创建新集群或加入既有集群"))],64)),I("button",{class:"w4f-btn ghost small",style:{"margin-left":"auto"},disabled:n.value,onClick:s},"⟳ 刷新",8,fde)]),t.value?(E(),z("div",pde,[I("section",vde,[L[19]||(L[19]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"○"),Me("环拓扑")],-1)),I("div",hde,[(E(!0),z(Pe,null,dt(t.value.nodes,(Z,ve)=>(E(),z(Pe,{key:Z.id},[I("div",{class:R(["ring-node",{leader:Z.id===t.value.leaderId,dead:!Z.alive,self:Z.id===t.value.selfId}])},[I("div",mde,[I("span",gde,ye(r(Z.id)),1),Z.id===t.value.selfId?(E(),z("span",yde,"本机")):ae("",!0),Z.id===t.value.leaderId?(E(),z("span",bde,"LEADER")):ae("",!0),Z.alive?ae("",!0):(E(),z("span",wde,"离线"))]),I("div",Sde,[I("span",Cde,"负载 "+ye(Math.round(Z.load.memPct+Z.load.netPct)),1),I("div",kde,[I("i",{style:Be({width:Math.min(100,Z.load.memPct+Z.load.netPct)+"%"})},null,4)])]),I("div",xde,ye(Z.addr),1),Z.id!==t.value.selfId&&Z.alive?(E(),z("button",{key:0,class:"w4f-btn danger small rn-remove",disabled:n.value,onClick:we=>M(Z.id)},"移除节点",8,Ede)):ae("",!0)],2),ve(E(),z("div",{key:Z.id,class:R(["task-row",W(Z)])},[I("span",Ide,ye(Z.id),1),I("span",{class:R(["w4f-tag",Z.removeNode||Z.revoke?"w4f-tag-danger":"w4f-tag-primary"])},ye(V(Z)),3),Z.removeNode?(E(),z(Pe,{key:0},[L[20]||(L[20]=I("span",{class:"tk-arrow"},"→",-1)),I("span",Ode,"移除节点 "+ye(r(Z.removeNode)),1)],64)):(E(),z(Pe,{key:1},[I("span",Mde,ye(Z.local.name),1),L[21]||(L[21]=I("span",{class:"tk-arrow"},"→",-1)),I("span",Pde,ye(Z.remote.name),1),I("span",Rde,":"+ye(Z.link?.remotePort),1)],64))],2))),128))])])):ae("",!0),I("section",Ade,[L[24]||(L[24]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"→"),Me("活跃转发拓扑")],-1)),I("div",Dde,[(E(!0),z(Pe,null,dt(t.value.topology,Z=>(E(),z("div",{key:Z.taskId,class:"topo-row"},[I("span",Lde,ye(Z.taskId),1),I("span",Vde,ye(Z.local.name),1),L[23]||(L[23]=I("span",{class:"tk-arrow"},"→",-1)),I("span",Bde,ye(Z.remote.name),1),I("span",Fde,":"+ye(Z.link?.remotePort),1),I("span",{class:R(["tp-owner",{self:Z.ownerId===t.value.selfId}])},"owner: "+ye(r(Z.ownerId)),3),I("span",{class:R(["w4f-tag",Z.active?"w4f-tag-ok":"w4f-tag-danger"])},ye(Z.active?"运行中":"已停"),3)]))),128)),t.value.topology.length?ae("",!0):(E(),z("div",zde,"暂无活跃转发(画布编辑后将经令牌分发)"))])]),I("section",Hde,[I("h3",Kde,[L[27]||(L[27]=I("span",{class:"k-ic"},"≣",-1)),L[28]||(L[28]=Me("集群日志 ",-1)),t.value.log.length?(E(),z("span",Wde,ye(t.value.log.length)+" 条",1)):ae("",!0),I("div",jde,[G(X,{trigger:"click",onCommand:A,disabled:!t.value.log.length},{dropdown:ne(()=>[G(q,null,{default:ne(()=>[G(K,{command:"json"},{default:ne(()=>[...L[25]||(L[25]=[Me("JSON(完整结构)",-1)])]),_:1}),G(K,{command:"txt"},{default:ne(()=>[...L[26]||(L[26]=[Me("文本(可读 TSV)",-1)])]),_:1})]),_:1})]),default:ne(()=>[I("button",{class:"w4f-btn ghost small",disabled:!t.value.log.length},"⤓ 导出",8,Ude)]),_:1},8,["disabled"]),I("button",{class:"w4f-btn ghost small",disabled:D.value,onClick:_}," ⤓ 导出 worker 日志 ",8,Yde)])]),I("div",qde,[(E(!0),z(Pe,null,dt($.value,Z=>(E(),z("div",{key:Z.seq,class:R(["log-row",x(Z.kind)])},[I("span",Gde,"#"+ye(Z.seq),1),I("span",Xde,ye(T(Z.at)),1),I("span",{class:R(["lg-node",{self:Z.node===t.value.selfId}])},ye(r(Z.node)),3),I("span",Zde,ye(k(Z.kind)),1),I("span",Jde,ye(N(Z)),1)],2))),128)),$.value.length?ae("",!0):(E(),z("div",Qde,"日志为空"))])])])):(E(),z("div",efe,"集群未启动(无环节点)")),G(le,{modelValue:l.visible,"onUpdate:modelValue":L[4]||(L[4]=Z=>l.visible=Z),title:"加入集群",width:"420px"},{footer:ne(()=>[I("button",{class:"w4f-btn ghost small",onClick:L[3]||(L[3]=Z=>l.visible=!1)},"取消"),I("button",{class:"w4f-btn small",disabled:n.value||!l.addr.trim()||!l.key.trim(),onClick:P},"加入",8,ofe)]),default:ne(()=>[I("div",tfe,[L[29]||(L[29]=I("label",null,"对端地址",-1)),G(ee,{modelValue:l.addr,"onUpdate:modelValue":L[1]||(L[1]=Z=>l.addr=Z),placeholder:"对端 IP:port(如 192.168.1.10:7500)",onKeyup:rn(P,["enter"])},null,8,["modelValue"])]),I("div",nfe,[L[30]||(L[30]=I("label",null,"加入密钥",-1)),G(ee,{modelValue:l.key,"onUpdate:modelValue":L[2]||(L[2]=Z=>l.key=Z),placeholder:"对端节点的加入密钥(nodeKey)",onKeyup:rn(P,["enter"])},null,8,["modelValue"])]),L[31]||(L[31]=I("div",{class:"form-hint"},"填入对端节点可被本机路由到达的真实 IP:port(或域名:port),本节点将向对端请求加入并采纳其环状态,令牌到达即并入环。需提供对端节点的加入密钥以通过验证。",-1))]),_:1},8,["modelValue"])])}}}),lfe=Ll(afe,[["__scopeId","data-v-522b4320"]]),sfe={class:"users-view"},rfe={class:"card"},ife={class:"card-h"},ufe={key:1,class:"muted"},cfe={class:"card"},dfe={class:"card-h"},ffe={class:"muted"},pfe={key:1,class:"key-result"},vfe=ge({__name:"UsersView",setup(e){const t=F([]),n=F([]),o=async()=>{const T=await un.listUsers();t.value=T.users},a=async()=>{const T=await un.listApiKeys();n.value=T.apiKeys};at(async()=>{await Promise.all([o(),a()])});const l=T=>T?new Date(T*1e3).toLocaleString("zh-CN",{hour12:!1}):"—",s=T=>t.value.find(N=>N.id===T)?.username??`#${T}`,r=T=>T==="admin"?"danger":T==="write"?"warning":"info",u=F(!1),c=F(null),d=F(!1),f=F({username:"",password:"",role:"viewer",enabled:!0}),v=()=>{c.value=null,f.value={username:"",password:"",role:"viewer",enabled:!0},u.value=!0},h=T=>{c.value=T,f.value={username:T.username,password:"",role:T.role,enabled:T.enabled},u.value=!0},g=async()=>{d.value=!0;try{if(c.value){const T={role:f.value.role,enabled:f.value.enabled};f.value.password&&(T.password=f.value.password),await un.updateUser(c.value.username,T),Ht.success("已更新")}else{if(!f.value.username||!f.value.password){Ht.warning("用户名和密码必填"),d.value=!1;return}await un.createUser(f.value.username,f.value.password,f.value.role),Ht.success("已创建")}u.value=!1,await o()}catch(T){Ht.error("失败: "+(T.message||T))}finally{d.value=!1}},p=async T=>{try{await pl.confirm(`确认删除账号 ${T.username}?`,"删除账号",{type:"warning"})}catch{return}try{await un.deleteUser(T.username),Ht.success("已删除"),await o()}catch(N){Ht.error("删除失败: "+(N.message||N))}},m=F(!1),y=F(!1),b=F(""),w=F({userId:0,label:"",scope:"read"}),S=()=>{w.value={userId:t.value.find(T=>!T.system)?.id??t.value[0]?.id??0,label:"",scope:"read"},b.value="",m.value=!0},k=async()=>{if(!w.value.userId){Ht.warning("请选择归属用户");return}y.value=!0;try{const T=await un.createApiKey(w.value.userId,w.value.label,w.value.scope);b.value=T.key,await a()}catch(T){Ht.error("创建失败: "+(T.message||T))}finally{y.value=!1}},x=async()=>{try{await navigator.clipboard.writeText(b.value),Ht.success("已复制")}catch{Ht.warning("复制失败,请手动选择")}},$=async T=>{try{await pl.confirm(`确认吊销密钥 ${T.label} (${T.prefix}…)?`,"吊销密钥",{type:"warning"})}catch{return}try{await un.deleteApiKey(T.id),Ht.success("已吊销"),await a()}catch(N){Ht.error("吊销失败: "+(N.message||N))}};return(T,N)=>{const A=yt("el-button"),D=yt("el-table-column"),_=yt("el-tag"),W=yt("el-table"),V=yt("el-input"),H=yt("el-form-item"),P=yt("el-option"),O=yt("el-select"),M=yt("el-switch"),B=yt("el-form"),L=yt("el-dialog");return E(),z("div",sfe,[I("section",rfe,[I("header",ife,[N[15]||(N[15]=I("h3",null,"账号",-1)),G(A,{type:"primary",size:"small",onClick:v},{default:ne(()=>[...N[14]||(N[14]=[Me("+ 新建账号",-1)])]),_:1})]),G(W,{data:t.value,size:"small",stripe:"","empty-text":"暂无账号"},{default:ne(()=>[G(D,{prop:"username",label:"用户名","min-width":"140"}),G(D,{label:"角色",width:"110"},{default:ne(({row:K})=>[G(_,{size:"small",type:K.role==="admin"?"danger":"info"},{default:ne(()=>[Me(ye(K.role==="admin"?"管理员":"审计(viewer)"),1)]),_:2},1032,["type"])]),_:1}),G(D,{label:"状态",width:"90"},{default:ne(({row:K})=>[G(_,{size:"small",type:K.enabled?"success":"warning"},{default:ne(()=>[Me(ye(K.enabled?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),G(D,{label:"来源",width:"110"},{default:ne(({row:K})=>[K.system?(E(),me(_,{key:0,size:"small",type:"warning"},{default:ne(()=>[...N[16]||(N[16]=[Me("内置(flag)",-1)])]),_:1})):(E(),z("span",ufe,"手动"))]),_:1}),G(D,{label:"创建时间",width:"170"},{default:ne(({row:K})=>[Me(ye(l(K.createdAt)),1)]),_:1}),G(D,{label:"最后登录",width:"170"},{default:ne(({row:K})=>[Me(ye(K.lastLoginAt?l(K.lastLoginAt):"—"),1)]),_:1}),G(D,{label:"操作",width:"180",fixed:"right"},{default:ne(({row:K})=>[G(A,{size:"small",onClick:q=>h(K),disabled:K.system},{default:ne(()=>[...N[17]||(N[17]=[Me("编辑",-1)])]),_:1},8,["onClick","disabled"]),G(A,{size:"small",type:"danger",plain:"",onClick:q=>p(K),disabled:K.system},{default:ne(()=>[...N[18]||(N[18]=[Me(" 删除 ",-1)])]),_:1},8,["onClick","disabled"])]),_:1})]),_:1},8,["data"])]),I("section",cfe,[I("header",dfe,[N[20]||(N[20]=I("h3",null,"API 密钥",-1)),G(A,{type:"primary",size:"small",onClick:S},{default:ne(()=>[...N[19]||(N[19]=[Me("+ 新建密钥",-1)])]),_:1})]),G(W,{data:n.value,size:"small",stripe:"","empty-text":"暂无密钥"},{default:ne(()=>[G(D,{prop:"label",label:"标签","min-width":"140"}),G(D,{label:"作用域",width:"100"},{default:ne(({row:K})=>[G(_,{size:"small",type:r(K.scope)},{default:ne(()=>[Me(ye(K.scope),1)]),_:2},1032,["type"])]),_:1}),G(D,{label:"归属用户",width:"140"},{default:ne(({row:K})=>[Me(ye(s(K.userId)),1)]),_:1}),G(D,{prop:"prefix",label:"前缀",width:"120"}),G(D,{label:"创建时间",width:"170"},{default:ne(({row:K})=>[Me(ye(l(K.createdAt)),1)]),_:1}),G(D,{label:"最近使用",width:"170"},{default:ne(({row:K})=>[Me(ye(K.lastUsedAt?l(K.lastUsedAt):"—"),1)]),_:1}),G(D,{label:"操作",width:"110",fixed:"right"},{default:ne(({row:K})=>[G(A,{size:"small",type:"danger",plain:"",onClick:q=>$(K)},{default:ne(()=>[...N[21]||(N[21]=[Me("吊销",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),G(L,{modelValue:u.value,"onUpdate:modelValue":N[6]||(N[6]=K=>u.value=K),title:c.value?"编辑账号":"新建账号",width:"420px"},{footer:ne(()=>[G(A,{onClick:N[5]||(N[5]=K=>u.value=!1)},{default:ne(()=>[...N[22]||(N[22]=[Me("取消",-1)])]),_:1}),G(A,{type:"primary",onClick:g,loading:d.value},{default:ne(()=>[...N[23]||(N[23]=[Me("保存",-1)])]),_:1},8,["loading"])]),default:ne(()=>[G(B,{"label-width":"86px",onSubmit:N[4]||(N[4]=Ge(()=>{},["prevent"]))},{default:ne(()=>[c.value?(E(),me(H,{key:1,label:"用户名"},{default:ne(()=>[I("span",ffe,ye(f.value.username),1)]),_:1})):(E(),me(H,{key:0,label:"用户名"},{default:ne(()=>[G(V,{modelValue:f.value.username,"onUpdate:modelValue":N[0]||(N[0]=K=>f.value.username=K),autocomplete:"off"},null,8,["modelValue"])]),_:1})),G(H,{label:c.value?"新密码":"密码"},{default:ne(()=>[G(V,{modelValue:f.value.password,"onUpdate:modelValue":N[1]||(N[1]=K=>f.value.password=K),type:"password","show-password":"",placeholder:c.value?"留空则不改":"",autocomplete:"new-password"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),G(H,{label:"角色"},{default:ne(()=>[G(O,{modelValue:f.value.role,"onUpdate:modelValue":N[2]||(N[2]=K=>f.value.role=K),disabled:c.value&&c.value?.system},{default:ne(()=>[G(P,{label:"管理员 (admin)",value:"admin"}),G(P,{label:"审计 (viewer)",value:"viewer"})]),_:1},8,["modelValue","disabled"])]),_:1}),c.value?(E(),me(H,{key:2,label:"启用"},{default:ne(()=>[G(M,{modelValue:f.value.enabled,"onUpdate:modelValue":N[3]||(N[3]=K=>f.value.enabled=K),disabled:c.value?.system},null,8,["modelValue","disabled"])]),_:1})):ae("",!0)]),_:1})]),_:1},8,["modelValue","title"]),G(L,{modelValue:m.value,"onUpdate:modelValue":N[13]||(N[13]=K=>m.value=K),title:"新建 API 密钥",width:"440px"},{footer:ne(()=>[G(A,{onClick:N[12]||(N[12]=K=>m.value=!1)},{default:ne(()=>[Me(ye(b.value?"关闭":"取消"),1)]),_:1}),b.value?ae("",!0):(E(),me(A,{key:0,type:"primary",onClick:k,loading:y.value},{default:ne(()=>[...N[27]||(N[27]=[Me("生成",-1)])]),_:1},8,["loading"]))]),default:ne(()=>[b.value?(E(),z("div",pfe,[N[25]||(N[25]=I("p",{class:"warn"},"密钥仅显示一次,请立即复制保存:",-1)),G(V,{modelValue:b.value,"onUpdate:modelValue":N[11]||(N[11]=K=>b.value=K),readonly:""},{append:ne(()=>[G(A,{onClick:x},{default:ne(()=>[...N[24]||(N[24]=[Me("复制",-1)])]),_:1})]),_:1},8,["modelValue"]),N[26]||(N[26]=I("p",{class:"hint"},[Me("使用方式:请求头 "),I("code",null,"Authorization: Bearer ")],-1))])):(E(),me(B,{key:0,"label-width":"86px",onSubmit:N[10]||(N[10]=Ge(()=>{},["prevent"]))},{default:ne(()=>[G(H,{label:"归属用户"},{default:ne(()=>[G(O,{modelValue:w.value.userId,"onUpdate:modelValue":N[7]||(N[7]=K=>w.value.userId=K),placeholder:"选择用户"},{default:ne(()=>[(E(!0),z(Pe,null,dt(t.value,K=>(E(),me(P,{key:K.id,label:K.username,value:K.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),G(H,{label:"标签"},{default:ne(()=>[G(V,{modelValue:w.value.label,"onUpdate:modelValue":N[8]||(N[8]=K=>w.value.label=K),placeholder:"如 ci-deploy"},null,8,["modelValue"])]),_:1}),G(H,{label:"作用域"},{default:ne(()=>[G(O,{modelValue:w.value.scope,"onUpdate:modelValue":N[9]||(N[9]=K=>w.value.scope=K)},{default:ne(()=>[G(P,{label:"read — 只读 + 导出",value:"read"}),G(P,{label:"write — 改转发/worker/设置",value:"write"}),G(P,{label:"admin — 全量 (含账号管理)",value:"admin"})]),_:1},8,["modelValue"])]),_:1})]),_:1}))]),_:1},8,["modelValue"])])}}}),hfe=Ll(vfe,[["__scopeId","data-v-35347cd7"]]),mfe={class:"app-shell"},gfe={class:"sidebar"},yfe={class:"sb-nav"},bfe=["onClick"],wfe=["innerHTML"],Sfe={class:"label"},Cfe={class:"sb-foot"},kfe={key:0,class:"sb-identity"},xfe={class:"id-name"},Efe={class:"sb-theme",role:"group","aria-label":"主题"},$fe={class:"main"},Tfe={class:"breadcrumb"},_fe={class:"crumb"},Nfe={class:"content"},Ife=ge({__name:"App",setup(e){const t=F("status");at(()=>{Die()});const n=C(()=>Gs.value==="admin"?"管理员":Gs.value==="write"?"写":"只读"),a=F(["white","blue","pink"].includes(document.documentElement.getAttribute("data-theme")||"")?document.documentElement.getAttribute("data-theme"):"white"),l=c=>{a.value=c,document.documentElement.setAttribute("data-theme",c),localStorage.setItem("w4f-theme",c)},s=[{key:"status",label:"状态",icon:''},{key:"canvas",label:"连接配置",icon:''},{key:"settings",label:"设置",icon:''},{key:"cluster",label:"集群",icon:''},{key:"users",label:"账号与密钥",adminOnly:!0,icon:''}],r=C(()=>s.filter(c=>!c.adminOnly||Im.value&&Aie.value)),u=C(()=>r.value.find(c=>c.key===t.value)?.label??"");return(c,d)=>(E(),z(Pe,null,[d[4]||(d[4]=I("div",{id:"bgfx","aria-hidden":"true"},[I("i",{class:"blob b1"}),I("i",{class:"blob b2"}),I("i",{class:"blob b3"})],-1)),I("div",mfe,[I("aside",gfe,[d[3]||(d[3]=I("div",{class:"sb-brand"},[I("img",{class:"sb-logo",src:Wte,alt:"webui4frpc"}),I("span",{class:"sb-brand-text"},[I("b",null,"webui4frpc"),I("small",null,"令牌环 · 转发编排")])],-1)),I("nav",yfe,[(E(!0),z(Pe,null,dt(r.value,f=>(E(),z("button",{key:f.key,class:R(["sb-i",{active:t.value===f.key}]),onClick:v=>t.value=f.key},[I("span",{class:"ic",innerHTML:f.icon},null,8,wfe),I("span",Sfe,ye(f.label),1)],10,bfe))),128))]),I("div",Cfe,[i(Im)?(E(),z("div",kfe,[I("span",xfe,ye(i(Nm)||"匿名"),1),I("span",{class:R(["id-level",i(Gs)])},ye(n.value),3)])):ae("",!0),I("div",Efe,[I("button",{class:R(["sw white",{on:a.value==="white"}]),title:"白色",onClick:d[0]||(d[0]=f=>l("white"))},null,2),I("button",{class:R(["sw blue",{on:a.value==="blue"}]),title:"蓝色",onClick:d[1]||(d[1]=f=>l("blue"))},null,2),I("button",{class:R(["sw pink",{on:a.value==="pink"}]),title:"粉色",onClick:d[2]||(d[2]=f=>l("pink"))},null,2)])])]),I("div",$fe,[I("div",Tfe,[I("span",_fe,ye(u.value),1)]),I("main",Nfe,[t.value==="canvas"?(E(),me(Gie,{key:0})):t.value==="settings"?(E(),me(uue,{key:1})):t.value==="cluster"?(E(),me(lfe,{key:2})):t.value==="users"?(E(),me(hfe,{key:3})):(E(),me(Ace,{key:4}))])])])],64))}}),Ofe=Ll(Ife,[["__scopeId","data-v-48c4803f"]]);(function(){try{const t=localStorage.getItem("w4f-theme");(t==="blue"||t==="pink")&&document.documentElement.setAttribute("data-theme",t)}catch{}})();const Qy=ik(Ofe);Qy.use(aO());Qy.use(Kte);Qy.mount("#app")});export default Mfe(); +Edge: ${e}`,USEVUEFLOW_OPTIONS:()=>"The options parameter is deprecated and will be removed in the next major version. Please use the id parameter instead"};class Un extends Error{constructor(t,...n){var o;super((o=xS[t])==null?void 0:o.call(xS,...n)),this.name="VueFlowError",this.code=t,this.args=n}}function Zy(e){return"clientX"in e}function sse(e){return"sourceEvent"in e}function Da(e,t){const n=Zy(e);let o,a;return n?(o=e.clientX,a=e.clientY):"touches"in e&&e.touches.length>0?(o=e.touches[0].clientX,a=e.touches[0].clientY):"changedTouches"in e&&e.changedTouches.length>0?(o=e.changedTouches[0].clientX,a=e.changedTouches[0].clientY):(o=0,a=0),{x:o-(t?.left??0),y:a-(t?.top??0)}}const Af=()=>{var e;return typeof navigator<"u"&&((e=navigator?.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function rse(e){var t,n;return{width:((t=e.dimensions)==null?void 0:t.width)??e.width??0,height:((n=e.dimensions)==null?void 0:n.height)??e.height??0}}function Lp(e,t=[1,1]){return{x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}}const ise=()=>!0;function Uv(e){e?.classList.remove("valid","connecting","vue-flow__handle-valid","vue-flow__handle-connecting")}function use(e,t,n){const o=[],a={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const l of t.values())Rf(a,Pf(l))>0&&o.push(l);return o}const cse=250;function dse(e,t,n,o){var a,l;let s=[],r=Number.POSITIVE_INFINITY;const u=use(e,n,t+cse);for(const c of u){const d=[...((a=c.handleBounds)==null?void 0:a.source)??[],...((l=c.handleBounds)==null?void 0:l.target)??[]];for(const f of d){if(o.nodeId===f.nodeId&&o.type===f.type&&o.id===f.id)continue;const{x:v,y:h}=mi(c,f,f.position,!0),g=Math.sqrt((v-e.x)**2+(h-e.y)**2);g>t||(g1){const c=o.type==="source"?"target":"source";return s.find(d=>d.type===c)??s[0]}return s[0]}function ES(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:a,fromType:l,doc:s,lib:r,flowId:u,isValidConnection:c=ise},d,f,v,h){const g=l==="target",p=t?s.querySelector(`.${r}-flow__handle[data-id="${u}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:m,y}=Da(e),b=s.elementFromPoint(m,y),w=b?.classList.contains(`${r}-flow__handle`)?b:p,S={handleDomNode:w,isValid:!1,connection:null,toHandle:null};if(w){const k=f_(void 0,w),x=w.getAttribute("data-nodeid"),$=w.getAttribute("data-handleid"),T=w.classList.contains("connectable"),N=w.classList.contains("connectableend");if(!x||!k)return S;const A={source:g?x:o,sourceHandle:g?$:a,target:g?o:x,targetHandle:g?a:$};S.connection=A;const _=T&&N&&(n===vs.Strict?g&&k==="source"||!g&&k==="target":x!==o||$!==a);S.isValid=_&&c(A,{nodes:f,edges:d,sourceNode:v(A.source),targetNode:v(A.target)}),S.toHandle=p_(x,k,$,h,n,!0)}return S}function f_(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function fse(e,t){let n=null;return t?n="valid":e&&!t&&(n="invalid"),n}function pse(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}function p_(e,t,n,o,a,l=!1){var s,r,u;const c=o.get(e);if(!c)return null;const d=a===vs.Strict?(s=c.handleBounds)==null?void 0:s[t]:[...((r=c.handleBounds)==null?void 0:r.source)??[],...((u=c.handleBounds)==null?void 0:u.target)??[]],f=(n?d?.find(v=>v.id===n):d?.[0])??null;return f&&l?{...f,...mi(c,f,f.position,!0)}:f}const $m={[Tt.Left]:Tt.Right,[Tt.Right]:Tt.Left,[Tt.Top]:Tt.Bottom,[Tt.Bottom]:Tt.Top},vse=["production","prod"];function xc(e,...t){v_()&&console.warn(`[Vue Flow]: ${e}`,...t)}function v_(){return!vse.includes("production")}function $S(e,t,n,o,a){const l=t.querySelectorAll(`.vue-flow__handle.${e}`);return l?.length?Array.from(l).map(s=>{const r=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:a,position:s.getAttribute("data-handlepos"),x:(r.left-n.left)/o,y:(r.top-n.top)/o,...Dp(s)}}):null}function Tm(e,t,n,o,a,l=!1,s){a.value=!1,e.selected?(l||e.selected&&t)&&(o([e]),Re(()=>{s.blur()})):n([e])}function Ln(e){return typeof i(e)<"u"}function hse(e,t,n,o){if(!e||!e.source||!e.target)return n(new Un(Fn.EDGE_INVALID,e?.id??"[ID UNKNOWN]")),!1;let a;return hs(e)?a=e:a={...e,id:a_(e)},a=n_(a,void 0,o),qle(a,t)?!1:a}function mse(e,t,n,o,a){if(!t.source||!t.target)return a(new Un(Fn.EDGE_INVALID,e.id)),!1;if(!n)return a(new Un(Fn.EDGE_NOT_FOUND,e.id)),!1;const{id:l,...s}=e;return{...s,id:o?a_(t):l,source:t.source,target:t.target,sourceHandle:t.sourceHandle,targetHandle:t.targetHandle}}function TS(e,t,n){const o={},a=[];for(let l=0;lr.id===l.parentNode);l.parentNode&&!s&&n(new Un(Fn.NODE_MISSING_PARENT,l.id,l.parentNode)),(l.parentNode||o[l.id])&&(o[l.id]&&(l.isParent=!0),s&&(s.isParent=!0))}return a}function _S(e,t,n,o,a,l){let s=a;const r=o.get(s)||new Map;o.set(s,r.set(n,t)),s=`${a}-${e}`;const u=o.get(s)||new Map;if(o.set(s,u.set(n,t)),l){s=`${a}-${e}-${l}`;const c=o.get(s)||new Map;o.set(s,c.set(n,t))}}function Yv(e,t,n){e.clear();for(const o of n){const{source:a,target:l,sourceHandle:s=null,targetHandle:r=null}=o,u={edgeId:o.id,source:a,target:l,sourceHandle:s,targetHandle:r},c=`${a}-${s}--${l}-${r}`,d=`${l}-${r}--${a}-${s}`;_S("source",u,d,e,a,s),_S("target",u,c,e,l,r)}}function NS(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function qv(e,t,n,o,a,l,s,r){const u=[];for(const c of e){const d=hs(c)?c:hse(c,r,a,l);if(!d)continue;const f=n(d.source),v=n(d.target);if(!f||!v){a(new Un(Fn.EDGE_SOURCE_TARGET_MISSING,d.id,d.source,d.target));continue}if(!f){a(new Un(Fn.EDGE_SOURCE_MISSING,d.id,d.source));continue}if(!v){a(new Un(Fn.EDGE_TARGET_MISSING,d.id,d.target));continue}if(t&&!t(d,{edges:r,nodes:s,sourceNode:f,targetNode:v})){a(new Un(Fn.EDGE_INVALID,d.id));continue}const h=o(d.id);u.push({...n_(d,h,l),sourceNode:f,targetNode:v})}return u}const IS=Symbol("vueFlow"),h_=Symbol("nodeId"),m_=Symbol("nodeRef"),gse=Symbol("edgeId"),yse=Symbol("edgeRef"),Vp=Symbol("slots");function g_(e){const{vueFlowRef:t,snapToGrid:n,snapGrid:o,noDragClassName:a,nodeLookup:l,nodeExtent:s,nodeDragThreshold:r,viewport:u,autoPanOnNodeDrag:c,autoPanSpeed:d,nodesDraggable:f,panBy:v,findNode:h,multiSelectionActive:g,nodesSelectionActive:p,selectNodesOnDrag:m,removeSelectedElements:y,addSelectedNodes:b,updateNodePositions:w,emits:S}=On(),{onStart:k,onDrag:x,onStop:$,onClick:T,el:N,disabled:A,id:D,selectable:_,dragHandle:W}=e,V=kt(!1);let H=[],P,O=null,M={x:void 0,y:void 0},B={x:0,y:0},L=null,K=!1,q=!1,X=0,ee=!1;const le=Sse(),Z=({x:j,y:Q})=>{M={x:j,y:Q};let U=!1;if(H=H.map(Y=>{const J={x:j-Y.distance.x,y:Q-Y.distance.y},{computedPosition:re}=Xy(Y,n.value?Lp(J,o.value):J,S.error,s.value,Y.parentNode?h(Y.parentNode):void 0);return U=U||Y.position.x!==re.x||Y.position.y!==re.y,Y.position=re,Y}),q=q||U,!!U&&(w(H,!0,!0),V.value=!0,L)){const[Y,J]=jv({id:D,dragItems:H,findNode:h});x({event:L,node:Y,nodes:J})}},ve=()=>{if(!O)return;const[j,Q]=c_(B,O,d.value);if(j!==0||Q!==0){const U={x:(M.x??0)-j/u.value.zoom,y:(M.y??0)-Q/u.value.zoom};v({x:j,y:Q})&&Z(U)}X=requestAnimationFrame(ve)},we=(j,Q)=>{K=!0;const U=h(D);!m.value&&!g.value&&U&&(U.selected||y()),U&&Nt(_)&&m.value&&Tm(U,g.value,b,y,p,!1,Q);const Y=le(j.sourceEvent);if(M=Y,H=ese(l.value,f.value,Y,D),H.length){const[J,re]=jv({id:D,dragItems:H,findNode:h});k({event:j.sourceEvent,node:J,nodes:re})}},Se=(j,Q)=>{var U;j.sourceEvent.type==="touchmove"&&j.sourceEvent.touches.length>1||(q=!1,r.value===0&&we(j,Q),M=le(j.sourceEvent),O=((U=t.value)==null?void 0:U.getBoundingClientRect())||null,B=Da(j.sourceEvent,O))},oe=(j,Q)=>{const U=le(j.sourceEvent);if(!ee&&K&&c.value&&(ee=!0,ve()),!K){const Y=U.xSnapped-(M.x??0),J=U.ySnapped-(M.y??0);Math.sqrt(Y*Y+J*J)>r.value&&we(j,Q)}(M.x!==U.xSnapped||M.y!==U.ySnapped)&&H.length&&K&&(L=j.sourceEvent,B=Da(j.sourceEvent,O),Z(U))},ce=j=>{let Q=!1;if(!K&&!V.value&&!g.value){const U=j.sourceEvent,Y=le(U),J=Y.xSnapped-(M.x??0),re=Y.ySnapped-(M.y??0),pe=Math.sqrt(J*J+re*re);pe!==0&&pe<=r.value&&(T?.(U),Q=!0)}if(H.length&&!Q){q&&(w(H,!1,!1),q=!1);const[U,Y]=jv({id:D,dragItems:H,findNode:h});$({event:j.sourceEvent,node:U,nodes:Y})}H=[],V.value=!1,ee=!1,K=!1,M={x:void 0,y:void 0},cancelAnimationFrame(X)};return be([()=>Nt(A),N],([j,Q],U,Y)=>{if(Q){const J=da(Q);j||(P=Woe().on("start",re=>Se(re,Q)).on("drag",re=>oe(re,Q)).on("end",re=>ce(re)).filter(re=>{const pe=re.target,ue=Nt(W);return!re.button&&(!a.value||!CS(pe,`.${a.value}`,Q)&&(!ue||CS(pe,ue,Q)))}),J.call(P)),Y(()=>{J.on(".drag",null),P&&(P.on("start",null),P.on("drag",null),P.on("end",null))})}}),V}function bse(){return{doubleClick:bt(),click:bt(),mouseEnter:bt(),mouseMove:bt(),mouseLeave:bt(),contextMenu:bt(),updateStart:bt(),update:bt(),updateEnd:bt()}}function wse(e,t){const n=bse();return n.doubleClick.on(o=>{var a,l;t.edgeDoubleClick(o),(l=(a=e.events)==null?void 0:a.doubleClick)==null||l.call(a,o)}),n.click.on(o=>{var a,l;t.edgeClick(o),(l=(a=e.events)==null?void 0:a.click)==null||l.call(a,o)}),n.mouseEnter.on(o=>{var a,l;t.edgeMouseEnter(o),(l=(a=e.events)==null?void 0:a.mouseEnter)==null||l.call(a,o)}),n.mouseMove.on(o=>{var a,l;t.edgeMouseMove(o),(l=(a=e.events)==null?void 0:a.mouseMove)==null||l.call(a,o)}),n.mouseLeave.on(o=>{var a,l;t.edgeMouseLeave(o),(l=(a=e.events)==null?void 0:a.mouseLeave)==null||l.call(a,o)}),n.contextMenu.on(o=>{var a,l;t.edgeContextMenu(o),(l=(a=e.events)==null?void 0:a.contextMenu)==null||l.call(a,o)}),n.updateStart.on(o=>{var a,l;t.edgeUpdateStart(o),(l=(a=e.events)==null?void 0:a.updateStart)==null||l.call(a,o)}),n.update.on(o=>{var a,l;t.edgeUpdate(o),(l=(a=e.events)==null?void 0:a.update)==null||l.call(a,o)}),n.updateEnd.on(o=>{var a,l;t.edgeUpdateEnd(o),(l=(a=e.events)==null?void 0:a.updateEnd)==null||l.call(a,o)}),Object.entries(n).reduce((o,[a,l])=>(o.emit[a]=l.trigger,o.on[a]=l.on,o),{emit:{},on:{}})}function Sse(){const{viewport:e,snapGrid:t,snapToGrid:n,vueFlowRef:o}=On();return a=>{var l;const s=((l=o.value)==null?void 0:l.getBoundingClientRect())??{left:0,top:0},r=sse(a)?a.sourceEvent:a,{x:u,y:c}=Da(r,s),d=Uu({x:u,y:c},e.value),{x:f,y:v}=n.value?Lp(d,t.value):d;return{xSnapped:f,ySnapped:v,...d}}}function ad(){return!0}function y_({handleId:e,nodeId:t,type:n,isValidConnection:o,edgeUpdaterType:a,onEdgeUpdate:l,onEdgeUpdateEnd:s}){const{id:r,vueFlowRef:u,connectionMode:c,connectionRadius:d,connectOnClick:f,connectionClickStartHandle:v,nodesConnectable:h,autoPanOnConnect:g,autoPanSpeed:p,findNode:m,panBy:y,startConnection:b,updateConnection:w,endConnection:S,emits:k,viewport:x,edges:$,nodes:T,isValidConnection:N,nodeLookup:A}=On();let D=null,_=!1,W=null;function V(P){var O;const M=Nt(n)==="target",B=Zy(P),L=pS(P.target),K=P.currentTarget;if(K&&(B&&P.button===0||!B)){let q=function(he){U=Da(he,ce),Z=dse(Uu(U,x.value,!1,[1,1]),d.value,A.value,re),Y||(J(),Y=!0);const de=ES(he,{handle:Z,connectionMode:c.value,fromNodeId:Nt(t),fromHandleId:Nt(e),fromType:M?"target":"source",isValidConnection:le,doc:L,lib:"vue",flowId:r,nodeLookup:A.value},$.value,T.value,m,A.value);W=de.handleDomNode,D=de.connection,_=pse(!!Z,de.isValid);const Ce={...se,isValid:_,to:de.toHandle&&_?ju({x:de.toHandle.x,y:de.toHandle.y},x.value):U,toHandle:de.toHandle,toPosition:_&&de.toHandle?de.toHandle.position:$m[re.position],toNode:de.toHandle?A.value.get(de.toHandle.nodeId):null};if(_&&Z&&se?.toHandle&&Ce.toHandle&&se.toHandle.type===Ce.toHandle.type&&se.toHandle.nodeId===Ce.toHandle.nodeId&&se.toHandle.id===Ce.toHandle.id&&se.to.x===Ce.to.x&&se.to.y===Ce.to.y)return;const $e=Z??de.toHandle;if(w($e&&_?ju({x:$e.x,y:$e.y},x.value):U,$e,fse(!!$e,_)),se=Ce,!Z&&!_&&!W)return Uv(Q);D&&D.source!==D.target&&W&&(Uv(Q),Q=W,W.classList.add("connecting","vue-flow__handle-connecting"),W.classList.toggle("valid",!!_),W.classList.toggle("vue-flow__handle-valid",!!_))},X=function(he){"touches"in he&&he.touches.length>0||((Z||W)&&D&&_&&(l?l(he,D):k.connect(D)),k.connectEnd(he),a&&s?.(he),Uv(Q),cancelAnimationFrame(ve),S(he),Y=!1,_=!1,D=null,W=null,L.removeEventListener("mousemove",q),L.removeEventListener("mouseup",X),L.removeEventListener("touchmove",q),L.removeEventListener("touchend",X))};const ee=m(Nt(t));let le=Nt(o)||N.value||ad;!le&&ee&&(le=(M?ee.isValidSourcePos:ee.isValidTargetPos)||ad);let Z,ve=0;const{x:we,y:Se}=Da(P),oe=f_(Nt(a),K),ce=(O=u.value)==null?void 0:O.getBoundingClientRect();if(!ce||!oe)return;const j=p_(Nt(t),oe,Nt(e),A.value,c.value);if(!j)return;let Q,U=Da(P,ce),Y=!1;const J=()=>{if(!g.value)return;const[he,de]=c_(U,ce,p.value);y({x:he,y:de}),ve=requestAnimationFrame(J)},re={...j,nodeId:Nt(t),type:oe,position:j.position},pe=A.value.get(Nt(t)),ie={inProgress:!0,isValid:null,from:mi(pe,re,Tt.Left,!0),fromHandle:re,fromPosition:re.position,fromNode:pe,to:U,toHandle:null,toPosition:$m[re.position],toNode:null};b({nodeId:Nt(t),id:Nt(e),type:oe,position:K?.getAttribute("data-handlepos")||Tt.Top,...U},{x:we-ce.left,y:Se-ce.top}),k.connectStart({event:P,nodeId:Nt(t),handleId:Nt(e),handleType:oe});let se=ie;L.addEventListener("mousemove",q),L.addEventListener("mouseup",X),L.addEventListener("touchmove",q),L.addEventListener("touchend",X)}}function H(P){var O,M;if(!f.value)return;const B=Nt(n)==="target";if(!v.value){k.clickConnectStart({event:P,nodeId:Nt(t),handleId:Nt(e)}),b({nodeId:Nt(t),type:Nt(n),id:Nt(e),position:Tt.Top,...Da(P)},void 0,!0);return}let L=Nt(o)||N.value||ad;const K=m(Nt(t));if(!L&&K&&(L=(B?K.isValidSourcePos:K.isValidTargetPos)||ad),K&&(typeof K.connectable>"u"?h.value:K.connectable)===!1)return;const q=pS(P.target),X=ES(P,{handle:{nodeId:Nt(t),id:Nt(e),type:Nt(n),position:Tt.Top,...Da(P)},connectionMode:c.value,fromNodeId:v.value.nodeId,fromHandleId:v.value.id??null,fromType:v.value.type,isValidConnection:L,doc:q,lib:"vue",flowId:r,nodeLookup:A.value},$.value,T.value,m,A.value),ee=((O=X.connection)==null?void 0:O.source)===((M=X.connection)==null?void 0:M.target);X.isValid&&X.connection&&!ee&&k.connect(X.connection),k.clickConnectEnd(P),S(P,!0)}return{handlePointerDown:V,handleClick:H}}function Cse(){return Fe(h_,"")}function b_(e){const t=e??Cse()??"",n=Fe(m_,F(null)),{findNode:o,edges:a,emits:l}=On(),s=o(t);return s||l.error(new Un(Fn.NODE_NOT_FOUND,t)),{id:t,nodeEl:n,node:s,parentNode:C(()=>o(s.parentNode)),connectedEdges:C(()=>i_([s],a.value))}}function kse(){return{doubleClick:bt(),click:bt(),mouseEnter:bt(),mouseMove:bt(),mouseLeave:bt(),contextMenu:bt(),dragStart:bt(),drag:bt(),dragStop:bt()}}function xse(e,t){const n=kse();return n.doubleClick.on(o=>{var a,l;t.nodeDoubleClick(o),(l=(a=e.events)==null?void 0:a.doubleClick)==null||l.call(a,o)}),n.click.on(o=>{var a,l;t.nodeClick(o),(l=(a=e.events)==null?void 0:a.click)==null||l.call(a,o)}),n.mouseEnter.on(o=>{var a,l;t.nodeMouseEnter(o),(l=(a=e.events)==null?void 0:a.mouseEnter)==null||l.call(a,o)}),n.mouseMove.on(o=>{var a,l;t.nodeMouseMove(o),(l=(a=e.events)==null?void 0:a.mouseMove)==null||l.call(a,o)}),n.mouseLeave.on(o=>{var a,l;t.nodeMouseLeave(o),(l=(a=e.events)==null?void 0:a.mouseLeave)==null||l.call(a,o)}),n.contextMenu.on(o=>{var a,l;t.nodeContextMenu(o),(l=(a=e.events)==null?void 0:a.contextMenu)==null||l.call(a,o)}),n.dragStart.on(o=>{var a,l;t.nodeDragStart(o),(l=(a=e.events)==null?void 0:a.dragStart)==null||l.call(a,o)}),n.drag.on(o=>{var a,l;t.nodeDrag(o),(l=(a=e.events)==null?void 0:a.drag)==null||l.call(a,o)}),n.dragStop.on(o=>{var a,l;t.nodeDragStop(o),(l=(a=e.events)==null?void 0:a.dragStop)==null||l.call(a,o)}),Object.entries(n).reduce((o,[a,l])=>(o.emit[a]=l.trigger,o.on[a]=l.on,o),{emit:{},on:{}})}function w_(){const{getSelectedNodes:e,nodeExtent:t,updateNodePositions:n,findNode:o,snapGrid:a,snapToGrid:l,nodesDraggable:s,emits:r}=On();return(u,c=!1)=>{const d=l.value?a.value[0]:5,f=l.value?a.value[1]:5,v=c?4:1,h=u.x*d*v,g=u.y*f*v,p=[];for(const m of e.value)if(m.draggable||s&&typeof m.draggable>"u"){const y={x:m.computedPosition.x+h,y:m.computedPosition.y+g},{position:b}=Xy(m,y,r.error,t.value,m.parentNode?o(m.parentNode):void 0);p.push({id:m.id,position:b,from:m.position,distance:{x:u.x,y:u.y},dimensions:m.dimensions})}n(p,!0,!1)}}const ld=.1,Ese=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2;function zl(){return xc("Viewport not initialized yet."),Promise.resolve(!1)}const $se={zoomIn:zl,zoomOut:zl,zoomTo:zl,fitView:zl,setCenter:zl,fitBounds:zl,project:e=>e,screenToFlowCoordinate:e=>e,flowToScreenCoordinate:e=>e,setViewport:zl,setTransform:zl,getViewport:()=>({x:0,y:0,zoom:1}),getTransform:()=>({x:0,y:0,zoom:1}),viewportInitialized:!1};function Tse(e){function t(o,a){return new Promise(l=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate(a?.interpolate==="linear"?iu:Ad).scaleBy(Gv(e.d3Selection,a?.duration,a?.ease,()=>{l(!0)}),o):l(!1)})}function n(o,a,l,s){return new Promise(r=>{var u;const{x:c,y:d}=t_({x:-o,y:-a},e.translateExtent),f=hi.translate(-c,-d).scale(l);e.d3Selection&&e.d3Zoom?(u=e.d3Zoom)==null||u.interpolate(s?.interpolate==="linear"?iu:Ad).transform(Gv(e.d3Selection,s?.duration,s?.ease,()=>{r(!0)}),f):r(!1)})}return C(()=>e.d3Zoom&&e.d3Selection&&e.dimensions.width&&e.dimensions.height?{viewportInitialized:!0,zoomIn:a=>t(1.2,a),zoomOut:a=>t(1/1.2,a),zoomTo:(a,l)=>new Promise(s=>{e.d3Selection&&e.d3Zoom?e.d3Zoom.interpolate(l?.interpolate==="linear"?iu:Ad).scaleTo(Gv(e.d3Selection,l?.duration,l?.ease,()=>{s(!0)}),a):s(!1)}),setViewport:(a,l)=>n(a.x,a.y,a.zoom,l),setTransform:(a,l)=>n(a.x,a.y,a.zoom,l),getViewport:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),getTransform:()=>({x:e.viewport.x,y:e.viewport.y,zoom:e.viewport.zoom}),fitView:(a={padding:ld,includeHiddenNodes:!1,duration:0})=>{var l,s;const r=[];for(const v of e.nodes)v.dimensions.width&&v.dimensions.height&&(a?.includeHiddenNodes||!v.hidden)&&(!((l=a.nodes)!=null&&l.length)||(s=a.nodes)!=null&&s.length&&a.nodes.includes(v.id))&&r.push(v);if(!r.length)return Promise.resolve(!1);const u=s_(r),{x:c,y:d,zoom:f}=vS(u,e.dimensions.width,e.dimensions.height,a.minZoom??e.minZoom,a.maxZoom??e.maxZoom,a.padding??ld);return n(c,d,f,a)},setCenter:(a,l,s)=>{const r=typeof s?.zoom<"u"?s.zoom:e.maxZoom,u=e.dimensions.width/2-a*r,c=e.dimensions.height/2-l*r;return n(u,c,r,s)},fitBounds:(a,l={padding:ld})=>{const{x:s,y:r,zoom:u}=vS(a,e.dimensions.width,e.dimensions.height,e.minZoom,e.maxZoom,l.padding??ld);return n(s,r,u,l)},project:a=>Uu(a,e.viewport,e.snapToGrid,e.snapGrid),screenToFlowCoordinate:a=>{if(e.vueFlowRef){const{x:l,y:s}=e.vueFlowRef.getBoundingClientRect(),r={x:a.x-l,y:a.y-s};return Uu(r,e.viewport,e.snapToGrid,e.snapGrid)}return{x:0,y:0}},flowToScreenCoordinate:a=>{if(e.vueFlowRef){const{x:l,y:s}=e.vueFlowRef.getBoundingClientRect(),r={x:a.x+l,y:a.y+s};return ju(r,e.viewport)}return{x:0,y:0}}}:$se)}function Gv(e,t=0,n=Ese,o=()=>{}){const a=typeof t=="number"&&t>0;return a||o(),a?e.transition().duration(t).ease(n).on("end",o):e}function _se(e,t,n){const o=Hf(!0);return o.run(()=>{const a=()=>{o.run(()=>{let p,m,y=!!(n.nodes.value.length||n.edges.value.length);p=Tr([e.modelValue,()=>{var b,w;return(w=(b=e.modelValue)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(m?.pause(),n.setElements(b),!m&&!y&&b.length?y=!0:m?.resume())}),m=Tr([n.nodes,n.edges,()=>n.edges.value.length,()=>n.nodes.value.length],([b,w])=>{var S;(S=e.modelValue)!=null&&S.value&&Array.isArray(e.modelValue.value)&&(p?.pause(),e.modelValue.value=[...b,...w],Re(()=>{p?.resume()}))},{immediate:y}),Dr(()=>{p?.stop(),m?.stop()})})},l=()=>{o.run(()=>{let p,m,y=!!n.nodes.value.length;p=Tr([e.nodes,()=>{var b,w;return(w=(b=e.nodes)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(m?.pause(),n.setNodes(b),!m&&!y&&b.length?y=!0:m?.resume())}),m=Tr([n.nodes,()=>n.nodes.value.length],([b])=>{var w;(w=e.nodes)!=null&&w.value&&Array.isArray(e.nodes.value)&&(p?.pause(),e.nodes.value=[...b],Re(()=>{p?.resume()}))},{immediate:y}),Dr(()=>{p?.stop(),m?.stop()})})},s=()=>{o.run(()=>{let p,m,y=!!n.edges.value.length;p=Tr([e.edges,()=>{var b,w;return(w=(b=e.edges)==null?void 0:b.value)==null?void 0:w.length}],([b])=>{b&&Array.isArray(b)&&(m?.pause(),n.setEdges(b),!m&&!y&&b.length?y=!0:m?.resume())}),m=Tr([n.edges,()=>n.edges.value.length],([b])=>{var w;(w=e.edges)!=null&&w.value&&Array.isArray(e.edges.value)&&(p?.pause(),e.edges.value=[...b],Re(()=>{p?.resume()}))},{immediate:y}),Dr(()=>{p?.stop(),m?.stop()})})},r=()=>{o.run(()=>{be(()=>t.maxZoom,()=>{t.maxZoom&&Ln(t.maxZoom)&&n.setMaxZoom(t.maxZoom)},{immediate:!0})})},u=()=>{o.run(()=>{be(()=>t.minZoom,()=>{t.minZoom&&Ln(t.minZoom)&&n.setMinZoom(t.minZoom)},{immediate:!0})})},c=()=>{o.run(()=>{be(()=>t.translateExtent,()=>{t.translateExtent&&Ln(t.translateExtent)&&n.setTranslateExtent(t.translateExtent)},{immediate:!0})})},d=()=>{o.run(()=>{be(()=>t.nodeExtent,()=>{t.nodeExtent&&Ln(t.nodeExtent)&&n.setNodeExtent(t.nodeExtent)},{immediate:!0})})},f=()=>{o.run(()=>{be(()=>t.applyDefault,()=>{Ln(t.applyDefault)&&(n.applyDefault.value=t.applyDefault)},{immediate:!0})})},v=()=>{o.run(()=>{const p=async m=>{let y=m;typeof t.autoConnect=="function"&&(y=await t.autoConnect(m)),y!==!1&&n.addEdges([y])};be(()=>t.autoConnect,()=>{Ln(t.autoConnect)&&(n.autoConnect.value=t.autoConnect)},{immediate:!0}),be(n.autoConnect,(m,y,b)=>{m?n.onConnect(p):n.hooks.value.connect.off(p),b(()=>{n.hooks.value.connect.off(p)})},{immediate:!0})})},h=()=>{const p=["id","modelValue","translateExtent","nodeExtent","edges","nodes","maxZoom","minZoom","applyDefault","autoConnect"];for(const m of Object.keys(t)){const y=m;if(!p.includes(y)){const b=wt(()=>t[y]),w=n[y];gt(w)&&o.run(()=>{be(b,S=>{Ln(S)&&(w.value=S)},{immediate:!0})})}}};a(),l(),s(),u(),r(),c(),d(),f(),v(),h()}),()=>o.stop()}function Nse(){return{edgesChange:bt(),nodesChange:bt(),nodeDoubleClick:bt(),nodeClick:bt(),nodeMouseEnter:bt(),nodeMouseMove:bt(),nodeMouseLeave:bt(),nodeContextMenu:bt(),nodeDragStart:bt(),nodeDrag:bt(),nodeDragStop:bt(),nodesInitialized:bt(),miniMapNodeClick:bt(),miniMapNodeDoubleClick:bt(),miniMapNodeMouseEnter:bt(),miniMapNodeMouseMove:bt(),miniMapNodeMouseLeave:bt(),connect:bt(),connectStart:bt(),connectEnd:bt(),clickConnectStart:bt(),clickConnectEnd:bt(),paneReady:bt(),init:bt(),move:bt(),moveStart:bt(),moveEnd:bt(),selectionDragStart:bt(),selectionDrag:bt(),selectionDragStop:bt(),selectionContextMenu:bt(),selectionStart:bt(),selectionEnd:bt(),viewportChangeStart:bt(),viewportChange:bt(),viewportChangeEnd:bt(),paneScroll:bt(),paneClick:bt(),paneContextMenu:bt(),paneMouseEnter:bt(),paneMouseMove:bt(),paneMouseLeave:bt(),edgeContextMenu:bt(),edgeMouseEnter:bt(),edgeMouseMove:bt(),edgeMouseLeave:bt(),edgeDoubleClick:bt(),edgeClick:bt(),edgeUpdateStart:bt(),edgeUpdate:bt(),edgeUpdateEnd:bt(),updateNodeInternals:bt(),error:bt(e=>xc(e.message))}}function Ise(e,t){const n=ct();Qu(()=>{for(const[a,l]of Object.entries(t.value)){const s=r=>{e(a,r)};l.setEmitter(s),Fu(l.removeEmitter),l.setHasEmitListeners(()=>o(a)),Fu(l.removeHasEmitListeners)}});function o(a){var l;const s=Ose(a);return!!((l=n?.vnode.props)==null?void 0:l[s])}}function Ose(e){const[t,...n]=e.split(":");return`on${t.replace(/(?:^|-)(\w)/g,(a,l)=>l.toUpperCase())}${n.length?`:${n.join(":")}`:""}`}function S_(){return{vueFlowRef:null,viewportRef:null,nodes:[],edges:[],connectionLookup:new Map,nodeTypes:{},edgeTypes:{},initialized:!1,dimensions:{width:0,height:0},viewport:{x:0,y:0,zoom:1},d3Zoom:null,d3Selection:null,d3ZoomHandler:null,minZoom:.5,maxZoom:2,translateExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],nodeExtent:[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],selectionMode:Gy.Full,paneDragging:!1,preventScrolling:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,panOnScroll:!1,panOnScrollSpeed:.5,panOnScrollMode:uu.Free,paneClickDistance:0,panOnDrag:!0,edgeUpdaterRadius:10,onlyRenderVisibleElements:!1,defaultViewport:{x:0,y:0,zoom:1},nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,defaultMarkerColor:"#b1b1b7",connectionLineStyle:{},connectionLineType:null,connectionLineOptions:{type:Is.Bezier,style:{}},connectionMode:vs.Loose,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectionPosition:{x:Number.NaN,y:Number.NaN},connectionRadius:20,connectOnClick:!0,connectionStatus:null,isValidConnection:null,snapGrid:[15,15],snapToGrid:!1,edgesUpdatable:!1,edgesFocusable:!0,nodesFocusable:!0,nodesConnectable:!0,nodesDraggable:!0,nodeDragThreshold:1,elementsSelectable:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,selectionKeyCode:"Shift",multiSelectionKeyCode:Af()?"Meta":"Control",zoomActivationKeyCode:Af()?"Meta":"Control",deleteKeyCode:"Backspace",panActivationKeyCode:"Space",hooks:Nse(),applyDefault:!0,autoConnect:!1,fitViewOnInit:!1,fitViewOnInitDone:!1,noDragClassName:"nodrag",noWheelClassName:"nowheel",noPanClassName:"nopan",defaultEdgeOptions:void 0,elevateEdgesOnSelect:!1,elevateNodesOnSelect:!0,autoPanOnNodeDrag:!0,autoPanOnConnect:!0,autoPanSpeed:15,disableKeyboardA11y:!1,ariaLiveMessage:""}}const Mse=["id","vueFlowRef","viewportRef","initialized","modelValue","nodes","edges","maxZoom","minZoom","translateExtent","hooks","defaultEdgeOptions"];function Pse(e,t,n){const o=Tse(e),a=U=>{const Y=U??[];e.hooks.updateNodeInternals.trigger(Y)},l=U=>Yle(U,e.nodes,e.edges),s=U=>Ule(U,e.nodes,e.edges),r=U=>i_(U,e.edges),u=({id:U,type:Y,nodeId:J})=>{var re;const pe=U?`-${Y}-${U}`:`-${Y}`;return Array.from(((re=e.connectionLookup.get(`${J}${pe}`))==null?void 0:re.values())??[])},c=U=>{if(U)return t.value.get(U)},d=U=>{if(U)return n.value.get(U)},f=(U,Y,J)=>{var re,pe;const ue=[];for(const ie of U){const se={id:ie.id,type:"position",dragging:J,from:ie.from};if(Y&&(se.position=ie.position,ie.parentNode)){const he=c(ie.parentNode);se.position={x:se.position.x-(((re=he?.computedPosition)==null?void 0:re.x)??0),y:se.position.y-(((pe=he?.computedPosition)==null?void 0:pe.y)??0)}}ue.push(se)}ue?.length&&e.hooks.nodesChange.trigger(ue)},v=U=>{if(!e.vueFlowRef)return;const Y=e.vueFlowRef.querySelector(".vue-flow__transformationpane");if(!Y)return;const J=window.getComputedStyle(Y),{m22:re}=new window.DOMMatrixReadOnly(J.transform),pe=[];for(const ue of U){const ie=ue,se=c(ie.id);if(se){const he=Dp(ie.nodeElement);if(!!(he.width&&he.height&&(se.dimensions.width!==he.width||se.dimensions.height!==he.height||ie.forceUpdate))){const Ce=ie.nodeElement.getBoundingClientRect();se.dimensions=he,se.handleBounds.source=$S("source",ie.nodeElement,Ce,re,se.id),se.handleBounds.target=$S("target",ie.nodeElement,Ce,re,se.id),pe.push({id:se.id,type:"dimensions",dimensions:he})}}}!e.fitViewOnInitDone&&e.fitViewOnInit&&o.value.fitView().then(()=>{e.fitViewOnInitDone=!0}),pe.length&&e.hooks.nodesChange.trigger(pe)},h=(U,Y)=>{const J=new Set,re=new Set;for(const ie of U)qs(ie)?J.add(ie.id):hs(ie)&&re.add(ie.id);const pe=Xl(t.value,J,!0),ue=Xl(n.value,re);if(e.multiSelectionActive){for(const ie of J)pe.push(ql(ie,Y));for(const ie of re)ue.push(ql(ie,Y))}pe.length&&e.hooks.nodesChange.trigger(pe),ue.length&&e.hooks.edgesChange.trigger(ue)},g=U=>{if(e.multiSelectionActive){const Y=U.map(J=>ql(J.id,!0));e.hooks.nodesChange.trigger(Y);return}e.hooks.nodesChange.trigger(Xl(t.value,new Set(U.map(Y=>Y.id)),!0)),e.hooks.edgesChange.trigger(Xl(n.value))},p=U=>{if(e.multiSelectionActive){const Y=U.map(J=>ql(J.id,!0));e.hooks.edgesChange.trigger(Y);return}e.hooks.edgesChange.trigger(Xl(n.value,new Set(U.map(Y=>Y.id)))),e.hooks.nodesChange.trigger(Xl(t.value,new Set,!0))},m=U=>{h(U,!0)},y=U=>{const J=(U||e.nodes).map(re=>(re.selected=!1,ql(re.id,!1)));e.hooks.nodesChange.trigger(J)},b=U=>{const J=(U||e.edges).map(re=>(re.selected=!1,ql(re.id,!1)));e.hooks.edgesChange.trigger(J)},w=U=>{if(!U||!U.length)return h([],!1);const Y=U.reduce((J,re)=>{const pe=ql(re.id,!1);return qs(re)?J.nodes.push(pe):J.edges.push(pe),J},{nodes:[],edges:[]});Y.nodes.length&&e.hooks.nodesChange.trigger(Y.nodes),Y.edges.length&&e.hooks.edgesChange.trigger(Y.edges)},S=U=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([U,e.maxZoom]),e.minZoom=U},k=U=>{var Y;(Y=e.d3Zoom)==null||Y.scaleExtent([e.minZoom,U]),e.maxZoom=U},x=U=>{var Y;(Y=e.d3Zoom)==null||Y.translateExtent(U),e.translateExtent=U},$=U=>{e.nodeExtent=U,a()},T=U=>{var Y;(Y=e.d3Zoom)==null||Y.clickDistance(U)},N=U=>{e.nodesDraggable=U,e.nodesConnectable=U,e.elementsSelectable=U},A=U=>{const Y=U instanceof Function?U(e.nodes):U;!e.initialized&&!Y.length||(e.nodes=TS(Y,c,e.hooks.error.trigger))},D=U=>{const Y=U instanceof Function?U(e.edges):U;if(!e.initialized&&!Y.length)return;const J=qv(Y,e.isValidConnection,c,d,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);Yv(e.connectionLookup,n.value,J),e.edges=J},_=U=>{const Y=U instanceof Function?U([...e.nodes,...e.edges]):U;!e.initialized&&!Y.length||(A(Y.filter(qs)),D(Y.filter(hs)))},W=U=>{let Y=U instanceof Function?U(e.nodes):U;Y=Array.isArray(Y)?Y:[Y];const J=TS(Y,c,e.hooks.error.trigger),re=[];for(const pe of J)re.push(yS(pe));re.length&&e.hooks.nodesChange.trigger(re)},V=U=>{let Y=U instanceof Function?U(e.edges):U;Y=Array.isArray(Y)?Y:[Y];const J=qv(Y,e.isValidConnection,c,d,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges),re=[];for(const pe of J)re.push(yS(pe));re.length&&e.hooks.edgesChange.trigger(re)},H=(U,Y=!0,J=!1)=>{const re=U instanceof Function?U(e.nodes):U,pe=Array.isArray(re)?re:[re],ue=[],ie=[];function se(de){const Ce=r(de);for(const $e of Ce)(!Ln($e.deletable)||$e.deletable)&&ie.push(wS($e.id,$e.source,$e.target,$e.sourceHandle,$e.targetHandle))}function he(de){const Ce=[];for(const $e of e.nodes)$e.parentNode===de&&Ce.push($e);if(Ce.length){for(const $e of Ce)ue.push(bS($e.id));Y&&se(Ce);for(const $e of Ce)he($e.id)}}for(const de of pe){const Ce=typeof de=="string"?c(de):de;Ce&&(Ln(Ce.deletable)&&!Ce.deletable||(ue.push(bS(Ce.id)),Y&&se([Ce]),J&&he(Ce.id)))}ie.length&&e.hooks.edgesChange.trigger(ie),ue.length&&e.hooks.nodesChange.trigger(ue)},P=U=>{const Y=U instanceof Function?U(e.edges):U,J=Array.isArray(Y)?Y:[Y],re=[];for(const pe of J){const ue=typeof pe=="string"?d(pe):pe;ue&&(Ln(ue.deletable)&&!ue.deletable||re.push(wS(typeof pe=="string"?pe:pe.id,ue.source,ue.target,ue.sourceHandle,ue.targetHandle)))}e.hooks.edgesChange.trigger(re)},O=(U,Y,J=!0)=>{const re=d(U.id);if(!re)return!1;const pe=e.edges.indexOf(re),ue=mse(U,Y,re,J,e.hooks.error.trigger);if(ue){const[ie]=qv([ue],e.isValidConnection,c,d,e.hooks.error.trigger,e.defaultEdgeOptions,e.nodes,e.edges);return e.edges=e.edges.map((se,he)=>he===pe?ie:se),Yv(e.connectionLookup,n.value,[ie]),ie}return!1},M=(U,Y,J={replace:!1})=>{const re=d(U);if(!re)return;const pe=typeof Y=="function"?Y(re):Y;re.data=J.replace?pe:{...re.data,...pe}},B=U=>gS(U,e.nodes),L=U=>{const Y=gS(U,e.edges);return Yv(e.connectionLookup,n.value,Y),Y},K=(U,Y,J={replace:!1})=>{const re=c(U);if(!re)return;const pe=typeof Y=="function"?Y(re):Y;J.replace?e.nodes.splice(e.nodes.indexOf(re),1,pe):Object.assign(re,pe)},q=(U,Y,J={replace:!1})=>{const re=c(U);if(!re)return;const pe=typeof Y=="function"?Y(re):Y;re.data=J.replace?pe:{...re.data,...pe}},X=(U,Y,J=!1)=>{J?e.connectionClickStartHandle=U:e.connectionStartHandle=U,e.connectionEndHandle=null,e.connectionStatus=null,Y&&(e.connectionPosition=Y)},ee=(U,Y=null,J=null)=>{e.connectionStartHandle&&(e.connectionPosition=U,e.connectionEndHandle=Y,e.connectionStatus=J)},le=(U,Y)=>{e.connectionPosition={x:Number.NaN,y:Number.NaN},e.connectionEndHandle=null,e.connectionStatus=null,Y?e.connectionClickStartHandle=null:e.connectionStartHandle=null},Z=U=>{const Y=Wle(U),J=Y?null:Gi(U)?U:c(U.id);return!Y&&!J?[null,null,Y]:[Y?U:Pf(J),J,Y]},ve=(U,Y=!0,J=e.nodes)=>{const[re,pe,ue]=Z(U);if(!re)return[];const ie=[];for(const se of J||e.nodes){if(!ue&&(se.id===pe.id||!se.computedPosition))continue;const he=Pf(se),de=Rf(he,re);(Y&&de>0||de>=he.width*he.height||de>=Number(re.width)*Number(re.height))&&ie.push(se)}return ie},we=(U,Y,J=!0)=>{const[re]=Z(U);if(!re)return!1;const pe=Rf(re,Y);return J&&pe>0||pe>=Number(re.width)*Number(re.height)},Se=U=>{const{viewport:Y,dimensions:J,d3Zoom:re,d3Selection:pe,translateExtent:ue}=e;if(!re||!pe||!U.x&&!U.y)return!1;const ie=hi.translate(Y.x+U.x,Y.y+U.y).scale(Y.zoom),se=[[0,0],[J.width,J.height]],he=re.constrain()(ie,se,ue),de=e.viewport.x!==he.x||e.viewport.y!==he.y||e.viewport.zoom!==he.k;return re.transform(pe,he),de},oe=U=>{const Y=U instanceof Function?U(e):U,J=["d3Zoom","d3Selection","d3ZoomHandler","viewportRef","vueFlowRef","dimensions","hooks"];Ln(Y.defaultEdgeOptions)&&(e.defaultEdgeOptions=Y.defaultEdgeOptions);const re=Y.modelValue||Y.nodes||Y.edges?[]:void 0;re&&(Y.modelValue&&re.push(...Y.modelValue),Y.nodes&&re.push(...Y.nodes),Y.edges&&re.push(...Y.edges),_(re));const pe=()=>{Ln(Y.maxZoom)&&k(Y.maxZoom),Ln(Y.minZoom)&&S(Y.minZoom),Ln(Y.translateExtent)&&x(Y.translateExtent)};for(const ue of Object.keys(Y)){const ie=ue,se=Y[ie];![...Mse,...J].includes(ie)&&Ln(se)&&(e[ie]=se)}hm(()=>e.d3Zoom).not.toBeNull().then(pe),e.initialized||(e.initialized=!0)};return{updateNodePositions:f,updateNodeDimensions:v,setElements:_,setNodes:A,setEdges:D,addNodes:W,addEdges:V,removeNodes:H,removeEdges:P,findNode:c,findEdge:d,updateEdge:O,updateEdgeData:M,updateNode:K,updateNodeData:q,applyEdgeChanges:L,applyNodeChanges:B,addSelectedElements:m,addSelectedNodes:g,addSelectedEdges:p,setMinZoom:S,setMaxZoom:k,setTranslateExtent:x,setNodeExtent:$,setPaneClickDistance:T,removeSelectedElements:w,removeSelectedNodes:y,removeSelectedEdges:b,startConnection:X,updateConnection:ee,endConnection:le,setInteractive:N,setState:oe,getIntersectingNodes:ve,getIncomers:l,getOutgoers:s,getConnectedEdges:r,getHandleConnections:u,isNodeIntersecting:we,panBy:Se,fitView:U=>o.value.fitView(U),zoomIn:U=>o.value.zoomIn(U),zoomOut:U=>o.value.zoomOut(U),zoomTo:(U,Y)=>o.value.zoomTo(U,Y),setViewport:(U,Y)=>o.value.setViewport(U,Y),setTransform:(U,Y)=>o.value.setTransform(U,Y),getViewport:()=>o.value.getViewport(),getTransform:()=>o.value.getTransform(),setCenter:(U,Y,J)=>o.value.setCenter(U,Y,J),fitBounds:(U,Y)=>o.value.fitBounds(U,Y),project:U=>o.value.project(U),screenToFlowCoordinate:U=>o.value.screenToFlowCoordinate(U),flowToScreenCoordinate:U=>o.value.flowToScreenCoordinate(U),toObject:()=>{const U=[],Y=[];for(const J of e.nodes){const{computedPosition:re,handleBounds:pe,selected:ue,dimensions:ie,isParent:se,resizing:he,dragging:de,events:Ce,...$e}=J;U.push($e)}for(const J of e.edges){const{selected:re,sourceNode:pe,targetNode:ue,events:ie,...se}=J;Y.push(se)}return JSON.parse(JSON.stringify({nodes:U,edges:Y,position:[e.viewport.x,e.viewport.y],zoom:e.viewport.zoom,viewport:e.viewport}))},fromObject:U=>new Promise(Y=>{const{nodes:J,edges:re,position:pe,zoom:ue,viewport:ie}=U;J&&A(J),re&&D(re);const[se,he]=ie?.x&&ie?.y?[ie.x,ie.y]:pe??[null,null];if(se&&he){const de=ie?.zoom||ue||e.viewport.zoom;return hm(()=>o.value.viewportInitialized).toBe(!0).then(()=>{o.value.setViewport({x:se,y:he,zoom:de}).then(()=>{Y(!0)})})}else Y(!0)}),updateNodeInternals:a,viewportHelper:o,$reset:()=>{const U=S_();if(e.edges=[],e.nodes=[],e.d3Zoom&&e.d3Selection){const Y=hi.translate(U.defaultViewport.x??0,U.defaultViewport.y??0).scale(ur(U.defaultViewport.zoom??1,U.minZoom,U.maxZoom)),J=e.viewportRef.getBoundingClientRect(),re=[[0,0],[J.width,J.height]],pe=e.d3Zoom.constrain()(Y,re,U.translateExtent);e.d3Zoom.transform(e.d3Selection,pe)}oe(U)},$destroy:()=>{}}}const Rse=["data-id","data-handleid","data-nodeid","data-handlepos"],Ase={name:"Handle",compatConfig:{MODE:3}},gi=ge({...Ase,props:{id:{default:null},type:{},position:{default:()=>Tt.Top},isValidConnection:{type:Function},connectable:{type:[Boolean,Number,String,Function],default:void 0},connectableStart:{type:Boolean,default:!0},connectableEnd:{type:Boolean,default:!0}},setup(e,{expose:t}){const n=LN(e,["position","connectable","connectableStart","connectableEnd","id"]),o=wt(()=>n.type??"source"),a=wt(()=>n.isValidConnection??null),{id:l,connectionStartHandle:s,connectionClickStartHandle:r,connectionEndHandle:u,vueFlowRef:c,nodesConnectable:d,noDragClassName:f,noPanClassName:v}=On(),{id:h,node:g,nodeEl:p,connectedEdges:m}=b_(),y=F(),b=wt(()=>typeof e.connectableStart<"u"?e.connectableStart:!0),w=wt(()=>typeof e.connectableEnd<"u"?e.connectableEnd:!0),S=wt(()=>{var D,_,W,V,H,P;return((D=s.value)==null?void 0:D.nodeId)===h&&((_=s.value)==null?void 0:_.id)===e.id&&((W=s.value)==null?void 0:W.type)===o.value||((V=u.value)==null?void 0:V.nodeId)===h&&((H=u.value)==null?void 0:H.id)===e.id&&((P=u.value)==null?void 0:P.type)===o.value}),k=wt(()=>{var D,_,W;return((D=r.value)==null?void 0:D.nodeId)===h&&((_=r.value)==null?void 0:_.id)===e.id&&((W=r.value)==null?void 0:W.type)===o.value}),{handlePointerDown:x,handleClick:$}=y_({nodeId:h,handleId:e.id,isValidConnection:a,type:o}),T=C(()=>typeof e.connectable=="string"&&e.connectable==="single"?!m.value.some(D=>{const _=D[`${o.value}Handle`];return D[o.value]!==h?!1:_?_===e.id:!0}):typeof e.connectable=="number"?m.value.filter(D=>{const _=D[`${o.value}Handle`];return D[o.value]!==h?!1:_?_===e.id:!0}).length{var D;if(!g.dimensions.width||!g.dimensions.height)return;const _=(D=g.handleBounds[o.value])==null?void 0:D.find(B=>B.id===e.id);if(!c.value||_)return;const W=c.value.querySelector(".vue-flow__transformationpane");if(!p.value||!y.value||!W||!e.id)return;const V=p.value.getBoundingClientRect(),H=y.value.getBoundingClientRect(),P=window.getComputedStyle(W),{m22:O}=new window.DOMMatrixReadOnly(P.transform),M={id:e.id,position:e.position,x:(H.left-V.left)/O,y:(H.top-V.top)/O,type:o.value,nodeId:h,...Dp(y.value)};g.handleBounds[o.value]=[...g.handleBounds[o.value]??[],M]});function N(D){const _=Zy(D);T.value&&b.value&&(_&&D.button===0||!_)&&x(D)}function A(D){!h||!r.value&&!b.value||T.value&&$(D)}return t({handleClick:$,handlePointerDown:x,onClick:A,onPointerDown:N}),(D,_)=>(E(),z("div",{ref_key:"handle",ref:y,"data-id":`${i(l)}-${i(h)}-${e.id}-${o.value}`,"data-handleid":e.id,"data-nodeid":i(h),"data-handlepos":D.position,class:R(["vue-flow__handle",[`vue-flow__handle-${D.position}`,`vue-flow__handle-${e.id}`,i(f),i(v),o.value,{connectable:T.value,connecting:k.value,connectablestart:b.value,connectableend:w.value,connectionindicator:T.value&&(b.value&&!S.value||w.value&&S.value)}]]),onMousedown:N,onTouchstartPassive:N,onClick:A},[fe(D.$slots,"default",{id:D.id})],42,Rse))}}),Bp=function({sourcePosition:e=Tt.Bottom,targetPosition:t=Tt.Top,label:n,connectable:o=!0,isValidTargetPos:a,isValidSourcePos:l,data:s}){const r=s.label??n;return[Le(gi,{type:"target",position:t,connectable:o,isValidConnection:a}),typeof r!="string"&&r?Le(r):Le(Pe,[r]),Le(gi,{type:"source",position:e,connectable:o,isValidConnection:l})]};Bp.props=["sourcePosition","targetPosition","label","isValidTargetPos","isValidSourcePos","connectable","data"];Bp.inheritAttrs=!1;Bp.compatConfig={MODE:3};const Dse=Bp,Fp=function({targetPosition:e=Tt.Top,label:t,connectable:n=!0,isValidTargetPos:o,data:a}){const l=a.label??t;return[Le(gi,{type:"target",position:e,connectable:n,isValidConnection:o}),typeof l!="string"&&l?Le(l):Le(Pe,[l])]};Fp.props=["targetPosition","label","isValidTargetPos","connectable","data"];Fp.inheritAttrs=!1;Fp.compatConfig={MODE:3};const Lse=Fp,zp=function({sourcePosition:e=Tt.Bottom,label:t,connectable:n=!0,isValidSourcePos:o,data:a}){const l=a.label??t;return[typeof l!="string"&&l?Le(l):Le(Pe,[l]),Le(gi,{type:"source",position:e,connectable:n,isValidConnection:o})]};zp.props=["sourcePosition","label","isValidSourcePos","connectable","data"];zp.inheritAttrs=!1;zp.compatConfig={MODE:3};const Vse=zp,Bse=["transform"],Fse=["width","height","x","y","rx","ry"],zse=["y"],Hse={name:"EdgeText",compatConfig:{MODE:3}},Kse=ge({...Hse,props:{x:{},y:{},label:{},labelStyle:{default:()=>({})},labelShowBg:{type:Boolean,default:!0},labelBgStyle:{default:()=>({})},labelBgPadding:{default:()=>[2,4]},labelBgBorderRadius:{default:2}},setup(e){const t=F({x:0,y:0,width:0,height:0}),n=F(null),o=C(()=>`translate(${e.x-t.value.width/2} ${e.y-t.value.height/2})`);at(a),be([()=>e.x,()=>e.y,n,()=>e.label],a);function a(){if(!n.value)return;const l=n.value.getBBox();(l.width!==t.value.width||l.height!==t.value.height)&&(t.value=l)}return(l,s)=>(E(),z("g",{transform:o.value,class:"vue-flow__edge-textwrapper"},[l.labelShowBg?(E(),z("rect",{key:0,class:"vue-flow__edge-textbg",width:`${t.value.width+2*l.labelBgPadding[0]}px`,height:`${t.value.height+2*l.labelBgPadding[1]}px`,x:-l.labelBgPadding[0],y:-l.labelBgPadding[1],style:Be(l.labelBgStyle),rx:l.labelBgBorderRadius,ry:l.labelBgBorderRadius},null,12,Fse)):ae("",!0),I("text",pt(l.$attrs,{ref_key:"el",ref:n,class:"vue-flow__edge-text",y:t.value.height/2,dy:"0.3em",style:l.labelStyle}),[fe(l.$slots,"default",{},()=>[typeof l.label!="string"?(E(),me(ft(l.label),{key:0})):(E(),z(Pe,{key:1},[Me(ye(l.label),1)],64))])],16,zse)],8,Bse))}}),Wse=["id","d","marker-end","marker-start"],jse=["d","stroke-width"],Use={name:"BaseEdge",inheritAttrs:!1,compatConfig:{MODE:3}},Hp=ge({...Use,props:{id:{},labelX:{},labelY:{},path:{},label:{},markerStart:{},markerEnd:{},interactionWidth:{default:20},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{}},setup(e,{expose:t}){const n=F(null),o=F(null),a=F(null),l=Za();return t({pathEl:n,interactionEl:o,labelEl:a}),(s,r)=>(E(),z(Pe,null,[I("path",pt(i(l),{id:s.id,ref_key:"pathEl",ref:n,d:s.path,class:"vue-flow__edge-path","marker-end":s.markerEnd,"marker-start":s.markerStart}),null,16,Wse),s.interactionWidth?(E(),z("path",{key:0,ref_key:"interactionEl",ref:o,fill:"none",d:s.path,"stroke-width":s.interactionWidth,"stroke-opacity":0,class:"vue-flow__edge-interaction"},null,8,jse)):ae("",!0),s.label&&s.labelX&&s.labelY?(E(),me(Kse,{key:1,ref_key:"labelEl",ref:a,x:s.labelX,y:s.labelY,label:s.label,"label-show-bg":s.labelShowBg,"label-bg-style":s.labelBgStyle,"label-bg-padding":s.labelBgPadding,"label-bg-border-radius":s.labelBgBorderRadius,"label-style":s.labelStyle},null,8,["x","y","label","label-show-bg","label-bg-style","label-bg-padding","label-bg-border-radius","label-style"])):ae("",!0)],64))}});function C_({sourceX:e,sourceY:t,targetX:n,targetY:o}){const a=Math.abs(n-e)/2,l=n=0?.5*e:t*25*Math.sqrt(-e)}function OS({pos:e,x1:t,y1:n,x2:o,y2:a,c:l}){let s,r;switch(e){case Tt.Left:s=t-sd(t-o,l),r=n;break;case Tt.Right:s=t+sd(o-t,l),r=n;break;case Tt.Top:s=t,r=n-sd(n-a,l);break;case Tt.Bottom:s=t,r=n+sd(a-n,l);break}return[s,r]}function x_(e){const{sourceX:t,sourceY:n,sourcePosition:o=Tt.Bottom,targetX:a,targetY:l,targetPosition:s=Tt.Top,curvature:r=.25}=e,[u,c]=OS({pos:o,x1:t,y1:n,x2:a,y2:l,c:r}),[d,f]=OS({pos:s,x1:a,y1:l,x2:t,y2:n,c:r}),[v,h,g,p]=k_({sourceX:t,sourceY:n,targetX:a,targetY:l,sourceControlX:u,sourceControlY:c,targetControlX:d,targetControlY:f});return[`M${t},${n} C${u},${c} ${d},${f} ${a},${l}`,v,h,g,p]}function MS({pos:e,x1:t,y1:n,x2:o,y2:a}){let l,s;switch(e){case Tt.Left:case Tt.Right:l=.5*(t+o),s=n;break;case Tt.Top:case Tt.Bottom:l=t,s=.5*(n+a);break}return[l,s]}function E_(e){const{sourceX:t,sourceY:n,sourcePosition:o=Tt.Bottom,targetX:a,targetY:l,targetPosition:s=Tt.Top}=e,[r,u]=MS({pos:o,x1:t,y1:n,x2:a,y2:l}),[c,d]=MS({pos:s,x1:a,y1:l,x2:t,y2:n}),[f,v,h,g]=k_({sourceX:t,sourceY:n,targetX:a,targetY:l,sourceControlX:r,sourceControlY:u,targetControlX:c,targetControlY:d});return[`M${t},${n} C${r},${u} ${c},${d} ${a},${l}`,f,v,h,g]}const PS={[Tt.Left]:{x:-1,y:0},[Tt.Right]:{x:1,y:0},[Tt.Top]:{x:0,y:-1},[Tt.Bottom]:{x:0,y:1}};function Yse({source:e,sourcePosition:t=Tt.Bottom,target:n}){return t===Tt.Left||t===Tt.Right?e.xe[f]?-1:1)*V:y[f]=(c[f]>n[f]?-1:1)*V}}if(t!==o){const W=f==="x"?"y":"x",V=s[f]===r[W],H=u[W]>c[W],P=u[W]=_?(g=(N.x+A.x)/2,p=h[0].y):(g=h[0].x,p=(N.y+A.y)/2)}return[[e,{x:u.x+m.x,y:u.y+m.y},...h,{x:c.x+y.x,y:c.y+y.y},n],g,p,S,k]}function Gse(e,t,n,o){const a=Math.min(RS(e,t)/2,RS(t,n)/2,o),{x:l,y:s}=t;if(e.x===l&&l===n.x||e.y===s&&s===n.y)return`L${l} ${s}`;if(e.y===s){const c=e.x{let S;return w>0&&w{const[n,o,a]=Xse(e);return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),Jse=Zse,Qse=ge({name:"SmoothStepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","borderRadius","markerEnd","markerStart","interactionWidth","offset"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,a]=_m({...e,sourcePosition:e.sourcePosition??Tt.Bottom,targetPosition:e.targetPosition??Tt.Top});return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),$_=Qse,ere=ge({name:"StepEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],setup(e,{attrs:t}){return()=>Le($_,{...e,...t,borderRadius:0})}}),tre=ere,nre=ge({name:"BezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","curvature","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,a]=x_({...e,sourcePosition:e.sourcePosition??Tt.Bottom,targetPosition:e.targetPosition??Tt.Top});return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),ore=nre,are=ge({name:"SimpleBezierEdge",props:["sourcePosition","targetPosition","label","labelStyle","labelShowBg","labelBgStyle","labelBgPadding","labelBgBorderRadius","sourceY","sourceX","targetX","targetY","markerEnd","markerStart","interactionWidth"],compatConfig:{MODE:3},setup(e,{attrs:t}){return()=>{const[n,o,a]=E_({...e,sourcePosition:e.sourcePosition??Tt.Bottom,targetPosition:e.targetPosition??Tt.Top});return Le(Hp,{path:n,labelX:o,labelY:a,...t,...e})}}}),lre=are,sre={input:Vse,default:Dse,output:Lse},rre={default:ore,straight:Jse,step:tre,smoothstep:$_,simplebezier:lre};function ire(e,t,n){const o=C(()=>p=>t.value.get(p)),a=C(()=>p=>n.value.get(p)),l=C(()=>{const p={...rre,...e.edgeTypes},m=Object.keys(p);for(const y of e.edges)y.type&&!m.includes(y.type)&&(p[y.type]=y.type);return p}),s=C(()=>{const p={...sre,...e.nodeTypes},m=Object.keys(p);for(const y of e.nodes)y.type&&!m.includes(y.type)&&(p[y.type]=y.type);return p}),r=C(()=>e.onlyRenderVisibleElements?r_(e.nodes,{x:0,y:0,width:e.dimensions.width,height:e.dimensions.height},e.viewport,!0):e.nodes),u=C(()=>{if(e.onlyRenderVisibleElements){const p=[];for(const m of e.edges){const y=t.value.get(m.source),b=t.value.get(m.target);ase({sourcePos:y.computedPosition||{x:0,y:0},targetPos:b.computedPosition||{x:0,y:0},sourceWidth:y.dimensions.width,sourceHeight:y.dimensions.height,targetWidth:b.dimensions.width,targetHeight:b.dimensions.height,width:e.dimensions.width,height:e.dimensions.height,viewport:e.viewport})&&p.push(m)}return p}return e.edges}),c=C(()=>[...r.value,...u.value]),d=C(()=>{const p=[];for(const m of e.nodes)m.selected&&p.push(m);return p}),f=C(()=>{const p=[];for(const m of e.edges)m.selected&&p.push(m);return p}),v=C(()=>[...d.value,...f.value]),h=C(()=>{const p=[];for(const m of e.nodes)m.dimensions.width&&m.dimensions.height&&m.handleBounds!==void 0&&p.push(m);return p}),g=C(()=>r.value.length>0&&h.value.length===r.value.length);return{getNode:o,getEdge:a,getElements:c,getEdgeTypes:l,getNodeTypes:s,getEdges:u,getNodes:r,getSelectedElements:v,getSelectedNodes:d,getSelectedEdges:f,getNodesInitialized:h,areNodesInitialized:g}}class Os{constructor(){this.currentId=0,this.flows=new Map}static getInstance(){var t;const n=(t=ct())==null?void 0:t.appContext.app,o=n?.config.globalProperties.$vueFlowStorage??Os.instance;return Os.instance=o??new Os,n&&(n.config.globalProperties.$vueFlowStorage=Os.instance),Os.instance}set(t,n){return this.flows.set(t,n)}get(t){return this.flows.get(t)}remove(t){return this.flows.delete(t)}create(t,n){const o=S_(),a=Kt(o),l={};for(const[v,h]of Object.entries(a.hooks)){const g=`on${v.charAt(0).toUpperCase()+v.slice(1)}`;l[g]=h.on}const s={};for(const[v,h]of Object.entries(a.hooks))s[v]=h.trigger;const r=C(()=>{const v=new Map;for(const h of a.nodes)v.set(h.id,h);return v}),u=C(()=>{const v=new Map;for(const h of a.edges)v.set(h.id,h);return v}),c=ire(a,r,u),d=Pse(a,r,u);d.setState({...a,...n});const f={...l,...c,...d,...Qte(a),nodeLookup:r,edgeLookup:u,emits:s,id:t,vueFlowVersion:"1.48.2",$destroy:()=>{this.remove(t)}};return this.set(t,f),f}getId(){return`vue-flow-${this.currentId++}`}}function On(e){const t=Os.getInstance(),n=Xu(),o=typeof e=="object",a=o?e:{id:e},l=a.id,s=l??n?.vueFlowId;let r;if(n){const u=Fe(IS,null);typeof u<"u"&&u!==null&&(!s||u.id===s)&&(r=u)}if(r||s&&(r=t.get(s)),!r||s&&r.id!==s){const u=l??t.getId(),c=t.create(u,a);r=c,(n??Hf(!0)).run(()=>{be(c.applyDefault,(f,v,h)=>{const g=m=>{c.applyNodeChanges(m)},p=m=>{c.applyEdgeChanges(m)};f?(c.onNodesChange(g),c.onEdgesChange(p)):(c.hooks.value.nodesChange.off(g),c.hooks.value.edgesChange.off(p)),h(()=>{c.hooks.value.nodesChange.off(g),c.hooks.value.edgesChange.off(p)})},{immediate:!0}),Fu(()=>{if(r){const f=t.get(r.id);f?f.$destroy():xc(`No store instance found for id ${r.id} in storage.`)}})})}else o&&r.setState(a);if(n&&(xt(IS,r),n.vueFlowId=r.id),o){const u=ct();u?.type.name!=="VueFlow"&&r.emits.error(new Un(Fn.USEVUEFLOW_OPTIONS))}return r}function ure(e){const{emits:t,dimensions:n}=On();let o;at(()=>{const a=()=>{var l,s;if(!e.value||!(((s=(l=e.value).checkVisibility)==null?void 0:s.call(l))??!0))return;const r=Dp(e.value);(r.width===0||r.height===0)&&t.error(new Un(Fn.MISSING_VIEWPORT_DIMENSIONS)),n.value={width:r.width||500,height:r.height||500}};a(),window.addEventListener("resize",a),e.value&&(o=new ResizeObserver(()=>a()),o.observe(e.value)),Ft(()=>{window.removeEventListener("resize",a),o&&e.value&&o.unobserve(e.value)})})}const cre={name:"UserSelection",compatConfig:{MODE:3}},dre=ge({...cre,props:{userSelectionRect:{}},setup(e){return(t,n)=>(E(),z("div",{class:"vue-flow__selection vue-flow__container",style:Be({width:`${t.userSelectionRect.width}px`,height:`${t.userSelectionRect.height}px`,transform:`translate(${t.userSelectionRect.x}px, ${t.userSelectionRect.y}px)`})},null,4))}}),fre=["tabIndex"],pre={name:"NodesSelection",compatConfig:{MODE:3}},vre=ge({...pre,setup(e){const{emits:t,viewport:n,getSelectedNodes:o,noPanClassName:a,disableKeyboardA11y:l,userSelectionActive:s}=On(),r=w_(),u=F(null),c=g_({el:u,onStart(g){t.selectionDragStart(g),t.nodeDragStart(g)},onDrag(g){t.selectionDrag(g),t.nodeDrag(g)},onStop(g){t.selectionDragStop(g),t.nodeDragStop(g)}});at(()=>{var g;l.value||(g=u.value)==null||g.focus({preventScroll:!0})});const d=C(()=>s_(o.value)),f=C(()=>({width:`${d.value.width}px`,height:`${d.value.height}px`,top:`${d.value.y}px`,left:`${d.value.x}px`}));function v(g){t.selectionContextMenu({event:g,nodes:o.value})}function h(g){l.value||Yr[g.key]&&(g.preventDefault(),r({x:Yr[g.key].x,y:Yr[g.key].y},g.shiftKey))}return(g,p)=>!i(s)&&d.value.width&&d.value.height?(E(),z("div",{key:0,class:R(["vue-flow__nodesselection vue-flow__container",i(a)]),style:Be({transform:`translate(${i(n).x}px,${i(n).y}px) scale(${i(n).zoom})`})},[I("div",{ref_key:"el",ref:u,class:R([{dragging:i(c)},"vue-flow__nodesselection-rect"]),style:Be(f.value),tabIndex:i(l)?void 0:-1,onContextmenu:v,onKeydown:h},null,46,fre)],6)):ae("",!0)}});function hre(e,t){return{x:e.clientX-t.left,y:e.clientY-t.top}}const mre={name:"Pane",compatConfig:{MODE:3}},gre=ge({...mre,props:{isSelecting:{type:Boolean},selectionKeyPressed:{type:Boolean}},setup(e){const{vueFlowRef:t,nodes:n,viewport:o,emits:a,userSelectionActive:l,removeSelectedElements:s,userSelectionRect:r,elementsSelectable:u,nodesSelectionActive:c,getSelectedEdges:d,getSelectedNodes:f,removeNodes:v,removeEdges:h,selectionMode:g,deleteKeyCode:p,multiSelectionKeyCode:m,multiSelectionActive:y,edgeLookup:b,nodeLookup:w,connectionLookup:S,defaultEdgeOptions:k,connectionStartHandle:x,panOnDrag:$}=On(),T=kt(null),N=kt(new Set),A=kt(new Set),D=kt(null),_=wt(()=>u.value&&(e.isSelecting||l.value)),W=wt(()=>x.value!==null);let V=!1,H=!1;const P=cu(p,{actInsideInputWithModifier:!1}),O=cu(m);be(P,le=>{le&&(v(f.value),h(d.value),c.value=!1)}),be(O,le=>{y.value=le});function M(le,Z){return ve=>{ve.target===Z&&le?.(ve)}}function B(le){if(V||W.value){V=!1;return}a.paneClick(le),s(),c.value=!1}function L(le){var Z;if(Array.isArray($.value)&&((Z=$.value)!=null&&Z.includes(2))){le.preventDefault();return}a.paneContextMenu(le)}function K(le){a.paneScroll(le)}function q(le){var Z,ve,we;if(D.value=((Z=t.value)==null?void 0:Z.getBoundingClientRect())??null,!u.value||!e.isSelecting||le.button!==0||le.target!==T.value||!D.value)return;(we=(ve=le.target)==null?void 0:ve.setPointerCapture)==null||we.call(ve,le.pointerId);const{x:Se,y:oe}=hre(le,D.value);H=!0,V=!1,s(),r.value={width:0,height:0,startX:Se,startY:oe,x:Se,y:oe},a.selectionStart(le)}function X(le){var Z;if(!D.value||!r.value)return;V=!0;const{x:ve,y:we}=Da(le,D.value),{startX:Se=0,startY:oe=0}=r.value,ce={startX:Se,startY:oe,x:veY.id)),A.value=new Set;const U=((Z=k.value)==null?void 0:Z.selectable)??!0;for(const Y of N.value){const J=S.value.get(Y);if(J)for(const{edgeId:re}of J.values()){const pe=b.value.get(re);pe&&(pe.selectable??U)&&A.value.add(re)}}if(!NS(j,N.value)){const Y=Xl(w.value,N.value,!0);a.nodesChange(Y)}if(!NS(Q,A.value)){const Y=Xl(b.value,A.value);a.edgesChange(Y)}r.value=ce,l.value=!0,c.value=!1}function ee(le){var Z;le.button!==0||!H||((Z=le.target)==null||Z.releasePointerCapture(le.pointerId),!l.value&&r.value&&le.target===T.value&&B(le),l.value=!1,r.value=null,c.value=N.value.size>0,a.selectionEnd(le),e.selectionKeyPressed&&(V=!1),H=!1)}return(le,Z)=>(E(),z("div",{ref_key:"container",ref:T,class:R(["vue-flow__pane vue-flow__container",{selection:le.isSelecting}]),onClick:Z[0]||(Z[0]=ve=>_.value?void 0:M(B,T.value)(ve)),onContextmenu:Z[1]||(Z[1]=ve=>M(L,T.value)(ve)),onWheelPassive:Z[2]||(Z[2]=ve=>M(K,T.value)(ve)),onPointerenter:Z[3]||(Z[3]=ve=>_.value?void 0:i(a).paneMouseEnter(ve)),onPointerdown:Z[4]||(Z[4]=ve=>_.value?q(ve):i(a).paneMouseMove(ve)),onPointermove:Z[5]||(Z[5]=ve=>_.value?X(ve):i(a).paneMouseMove(ve)),onPointerup:Z[6]||(Z[6]=ve=>_.value?ee(ve):void 0),onPointerleave:Z[7]||(Z[7]=ve=>i(a).paneMouseLeave(ve))},[fe(le.$slots,"default"),i(l)&&i(r)?(E(),me(dre,{key:0,"user-selection-rect":i(r)},null,8,["user-selection-rect"])):ae("",!0),i(c)&&i(f).length?(E(),me(vre,{key:1})):ae("",!0)],34))}}),yre={name:"Transform",compatConfig:{MODE:3}},bre=ge({...yre,setup(e){const{viewport:t,fitViewOnInit:n,fitViewOnInitDone:o}=On(),a=C(()=>n.value?!o.value:!1),l=C(()=>`translate(${t.value.x}px,${t.value.y}px) scale(${t.value.zoom})`);return(s,r)=>(E(),z("div",{class:"vue-flow__transformationpane vue-flow__container",style:Be({transform:l.value,opacity:a.value?0:void 0})},[fe(s.$slots,"default")],4))}}),wre={name:"Viewport",compatConfig:{MODE:3}},Sre=ge({...wre,setup(e){const{minZoom:t,maxZoom:n,defaultViewport:o,translateExtent:a,zoomActivationKeyCode:l,selectionKeyCode:s,panActivationKeyCode:r,panOnScroll:u,panOnScrollMode:c,panOnScrollSpeed:d,panOnDrag:f,zoomOnDoubleClick:v,zoomOnPinch:h,zoomOnScroll:g,preventScrolling:p,noWheelClassName:m,noPanClassName:y,emits:b,connectionStartHandle:w,userSelectionActive:S,paneDragging:k,d3Zoom:x,d3Selection:$,d3ZoomHandler:T,viewport:N,viewportRef:A,paneClickDistance:D}=On();ure(A);const _=kt(!1),W=kt(!1);let V=null,H=!1,P=0,O={x:0,y:0,zoom:0};const M=cu(r),B=cu(s),L=cu(l),K=wt(()=>(!B.value||B.value&&s.value===!0)&&(M.value||f.value)),q=wt(()=>M.value||u.value),X=wt(()=>s.value===!0&&K.value!==!0),ee=wt(()=>B.value&&s.value!==!0||S.value||X.value),le=wt(()=>w.value!==null);at(()=>{if(!A.value){xc("Viewport element is missing");return}const oe=A.value,ce=oe.getBoundingClientRect(),j=Lle().clickDistance(D.value).scaleExtent([t.value,n.value]).translateExtent(a.value),Q=da(oe).call(j),U=Q.on("wheel.zoom"),Y=hi.translate(o.value.x??0,o.value.y??0).scale(ur(o.value.zoom??1,t.value,n.value)),J=[[0,0],[ce.width,ce.height]],re=j.constrain()(Y,J,a.value);j.transform(Q,re),j.wheelDelta(hS),x.value=j,$.value=Q,T.value=U,N.value={x:re.x,y:re.y,zoom:re.k},j.on("start",pe=>{var ue;if(!pe.sourceEvent)return null;P=pe.sourceEvent.button,_.value=!0;const ie=we(pe.transform);((ue=pe.sourceEvent)==null?void 0:ue.type)==="mousedown"&&(k.value=!0),O=ie,b.viewportChangeStart(ie),b.moveStart({event:pe,flowTransform:ie})}),j.on("end",pe=>{if(!pe.sourceEvent)return null;if(_.value=!1,k.value=!1,Z(K.value,P??0)&&!H&&b.paneContextMenu(pe.sourceEvent),H=!1,ve(O,pe.transform)){const ue=we(pe.transform);O=ue,b.viewportChangeEnd(ue),b.moveEnd({event:pe,flowTransform:ue})}}),j.filter(pe=>{var ue;const ie=L.value||g.value,se=h.value&&pe.ctrlKey,he=pe.button,de=pe.type==="wheel";if(he===1&&pe.type==="mousedown"&&(Se(pe,"vue-flow__node")||Se(pe,"vue-flow__edge")))return!0;if(!K.value&&!ie&&!q.value&&!v.value&&!h.value||S.value||le.value&&!de||!v.value&&pe.type==="dblclick"||Se(pe,m.value)&&de||Se(pe,y.value)&&(!de||q.value&&de&&!L.value)||!h.value&&pe.ctrlKey&&de||!ie&&!q.value&&!se&&de)return!1;if(!h&&pe.type==="touchstart"&&((ue=pe.touches)==null?void 0:ue.length)>1)return pe.preventDefault(),!1;if(!K.value&&(pe.type==="mousedown"||pe.type==="touchstart")||X.value&&Array.isArray(f.value)&&f.value.includes(0)&&he===0||Array.isArray(f.value)&&!f.value.includes(he)&&(pe.type==="mousedown"||pe.type==="touchstart"))return!1;const Ce=Array.isArray(f.value)&&f.value.includes(he)||s.value===!0&&Array.isArray(f.value)&&!f.value.includes(0)||!he||he<=1;return(!pe.ctrlKey||M.value||de)&&Ce}),be([S,K],()=>{S.value&&!_.value?j.on("zoom",null):S.value||j.on("zoom",pe=>{N.value={x:pe.transform.x,y:pe.transform.y,zoom:pe.transform.k};const ue=we(pe.transform);H=Z(K.value,P??0),b.viewportChange(ue),b.move({event:pe,flowTransform:ue})})},{immediate:!0}),be([S,q,c,L,h,p,m],()=>{q.value&&!L.value&&!S.value?Q.on("wheel.zoom",pe=>{if(Se(pe,m.value))return!1;const ue=L.value||g.value,ie=h.value&&pe.ctrlKey;if(!(!p.value||q.value||ue||ie))return!1;pe.preventDefault(),pe.stopImmediatePropagation();const he=Q.property("__zoom").k||1,de=Af();if(!M.value&&pe.ctrlKey&&h.value&&de){const Xe=Ma(pe),$t=hS(pe),At=he*2**$t;j.scaleTo(Q,At,Xe,pe);return}const Ce=pe.deltaMode===1?20:1;let $e=c.value===uu.Vertical?0:pe.deltaX*Ce,Ue=c.value===uu.Horizontal?0:pe.deltaY*Ce;!de&&pe.shiftKey&&c.value!==uu.Vertical&&!$e&&Ue&&($e=Ue,Ue=0),j.translateBy(Q,-($e/he)*d.value,-(Ue/he)*d.value);const Qe=we(Q.property("__zoom"));V&&clearTimeout(V),W.value?(b.move({event:pe,flowTransform:Qe}),b.viewportChange(Qe),V=setTimeout(()=>{b.moveEnd({event:pe,flowTransform:Qe}),b.viewportChangeEnd(Qe),W.value=!1},150)):(W.value=!0,b.moveStart({event:pe,flowTransform:Qe}),b.viewportChangeStart(Qe))},{passive:!1}):typeof U<"u"&&Q.on("wheel.zoom",function(pe,ue){const ie=!p.value&&pe.type==="wheel"&&!pe.ctrlKey,se=L.value||g.value,he=h.value&&pe.ctrlKey;if(!se&&!u.value&&!he&&pe.type==="wheel"||ie||Se(pe,m.value))return null;pe.preventDefault(),U.call(this,pe,ue)},{passive:!1})},{immediate:!0})});function Z(oe,ce){return ce===2&&Array.isArray(oe)&&oe.includes(2)}function ve(oe,ce){return oe.x!==ce.x&&!Number.isNaN(ce.x)||oe.y!==ce.y&&!Number.isNaN(ce.y)||oe.zoom!==ce.k&&!Number.isNaN(ce.k)}function we(oe){return{x:oe.x,y:oe.y,zoom:oe.k}}function Se(oe,ce){return oe.target.closest(`.${ce}`)}return(oe,ce)=>(E(),z("div",{ref_key:"viewportRef",ref:A,class:"vue-flow__viewport vue-flow__container"},[G(gre,{"is-selecting":ee.value,"selection-key-pressed":i(B),class:R({connecting:le.value,dragging:i(k),draggable:i(f)===!0||Array.isArray(i(f))&&i(f).includes(0)})},{default:ne(()=>[G(bre,null,{default:ne(()=>[fe(oe.$slots,"default")]),_:3})]),_:3},8,["is-selecting","selection-key-pressed","class"])],512))}}),Cre=["id"],kre=["id"],xre=["id"],Ere={name:"A11yDescriptions",compatConfig:{MODE:3}},$re=ge({...Ere,setup(e){const{id:t,disableKeyboardA11y:n,ariaLiveMessage:o}=On();return(a,l)=>(E(),z(Pe,null,[I("div",{id:`${i(JT)}-${i(t)}`,style:{display:"none"}}," Press enter or space to select a node. "+ye(i(n)?"":"You can then use the arrow keys to move the node around.")+" You can then use the arrow keys to move the node around, press delete to remove it and press escape to cancel. ",9,Cre),I("div",{id:`${i(QT)}-${i(t)}`,style:{display:"none"}}," Press enter or space to select an edge. You can then press delete to remove it or press escape to cancel. ",8,kre),i(n)?ae("",!0):(E(),z("div",{key:0,id:`${i(Kle)}-${i(t)}`,"aria-live":"assertive","aria-atomic":"true",style:{position:"absolute",width:"1px",height:"1px",margin:"-1px",border:"0",padding:"0",overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)","clip-path":"inset(100%)"}},ye(i(o)),9,xre))],64))}});function Tre(){const e=On();be(()=>e.viewportHelper.value.viewportInitialized,t=>{t&&setTimeout(()=>{e.emits.init(e),e.emits.paneReady(e)},1)})}function _re(e,t,n){return n===Tt.Left?e-t:n===Tt.Right?e+t:e}function Nre(e,t,n){return n===Tt.Top?e-t:n===Tt.Bottom?e+t:e}const Jy=function({radius:e=10,centerX:t=0,centerY:n=0,position:o=Tt.Top,type:a}){return Le("circle",{class:`vue-flow__edgeupdater vue-flow__edgeupdater-${a}`,cx:_re(t,e,o),cy:Nre(n,e,o),r:e,stroke:"transparent",fill:"transparent"})};Jy.props=["radius","centerX","centerY","position","type"];Jy.compatConfig={MODE:3};const AS=Jy,Ire=ge({name:"Edge",compatConfig:{MODE:3},props:["id"],setup(e){const{id:t,addSelectedEdges:n,connectionMode:o,edgeUpdaterRadius:a,emits:l,nodesSelectionActive:s,noPanClassName:r,getEdgeTypes:u,removeSelectedEdges:c,findEdge:d,findNode:f,isValidConnection:v,multiSelectionActive:h,disableKeyboardA11y:g,elementsSelectable:p,edgesUpdatable:m,edgesFocusable:y,hooks:b}=On(),w=C(()=>d(e.id)),{emit:S,on:k}=wse(w.value,l),x=Fe(Vp),$=ct(),T=F(!1),N=F(!1),A=F(""),D=F(null),_=F("source"),W=F(null),V=wt(()=>typeof w.value.selectable>"u"?p.value:w.value.selectable),H=wt(()=>typeof w.value.updatable>"u"?m.value:w.value.updatable),P=wt(()=>typeof w.value.focusable>"u"?y.value:w.value.focusable);xt(gse,e.id),xt(yse,W);const O=C(()=>w.value.class instanceof Function?w.value.class(w.value):w.value.class),M=C(()=>w.value.style instanceof Function?w.value.style(w.value):w.value.style),B=C(()=>{const Y=w.value.type||"default",J=x?.[`edge-${Y}`];if(J)return J;let re=w.value.template??u.value[Y];if(typeof re=="string"&&$){const pe=Object.keys($.appContext.components);pe&&pe.includes(Y)&&(re=yt(Y,!1))}return re&&typeof re!="string"?re:(l.error(new Un(Fn.EDGE_TYPE_MISSING,re)),!1)}),{handlePointerDown:L}=y_({nodeId:A,handleId:D,type:_,isValidConnection:v,edgeUpdaterType:_,onEdgeUpdate:X,onEdgeUpdateEnd:ee});return()=>{const Y=f(w.value.source),J=f(w.value.target),re="pathOptions"in w.value?w.value.pathOptions:{};if(!Y&&!J)return l.error(new Un(Fn.EDGE_SOURCE_TARGET_MISSING,w.value.id,w.value.source,w.value.target)),null;if(!Y)return l.error(new Un(Fn.EDGE_SOURCE_MISSING,w.value.id,w.value.source)),null;if(!J)return l.error(new Un(Fn.EDGE_TARGET_MISSING,w.value.id,w.value.target)),null;if(!w.value||w.value.hidden||Y.hidden||J.hidden)return null;let pe;o.value===vs.Strict?pe=Y.handleBounds.source:pe=[...Y.handleBounds.source||[],...Y.handleBounds.target||[]];const ue=kS(pe,w.value.sourceHandle);let ie;o.value===vs.Strict?ie=J.handleBounds.target:ie=[...J.handleBounds.target||[],...J.handleBounds.source||[]];const se=kS(ie,w.value.targetHandle),he=ue?.position||Tt.Bottom,de=se?.position||Tt.Top,{x:Ce,y:$e}=mi(Y,ue,he),{x:Ue,y:Qe}=mi(J,se,de);return w.value.sourceX=Ce,w.value.sourceY=$e,w.value.targetX=Ue,w.value.targetY=Qe,Le("g",{ref:W,key:e.id,"data-id":e.id,class:["vue-flow__edge",`vue-flow__edge-${B.value===!1?"default":w.value.type||"default"}`,r.value,O.value,{updating:T.value,selected:w.value.selected,animated:w.value.animated,inactive:!V.value&&!b.value.edgeClick.hasListeners()}],tabIndex:P.value?0:void 0,"aria-label":w.value.ariaLabel===null?void 0:w.value.ariaLabel??`Edge from ${w.value.source} to ${w.value.target}`,"aria-describedby":P.value?`${QT}-${t}`:void 0,"aria-roledescription":"edge",role:P.value?"group":"img",...w.value.domAttributes,onClick:Z,onContextmenu:ve,onDblclick:we,onMouseenter:Se,onMousemove:oe,onMouseleave:ce,onKeyDown:P.value?U:void 0},[N.value?null:Le(B.value===!1?u.value.default:B.value,{id:e.id,sourceNode:Y,targetNode:J,source:w.value.source,target:w.value.target,type:w.value.type,updatable:H.value,selected:w.value.selected,animated:w.value.animated,label:w.value.label,labelStyle:w.value.labelStyle,labelShowBg:w.value.labelShowBg,labelBgStyle:w.value.labelBgStyle,labelBgPadding:w.value.labelBgPadding,labelBgBorderRadius:w.value.labelBgBorderRadius,data:w.value.data,events:{...w.value.events,...k},style:M.value,markerStart:`url('#${Yu(w.value.markerStart,t)}')`,markerEnd:`url('#${Yu(w.value.markerEnd,t)}')`,sourcePosition:he,targetPosition:de,sourceX:Ce,sourceY:$e,targetX:Ue,targetY:Qe,sourceHandleId:w.value.sourceHandle,targetHandleId:w.value.targetHandle,interactionWidth:w.value.interactionWidth,...re}),[H.value==="source"||H.value===!0?[Le("g",{onMousedown:j,onMouseenter:K,onMouseout:q},Le(AS,{position:he,centerX:Ce,centerY:$e,radius:a.value,type:"source","data-type":"source"}))]:null,H.value==="target"||H.value===!0?[Le("g",{onMousedown:Q,onMouseenter:K,onMouseout:q},Le(AS,{position:de,centerX:Ue,centerY:Qe,radius:a.value,type:"target","data-type":"target"}))]:null]])};function K(){T.value=!0}function q(){T.value=!1}function X(Y,J){S.update({event:Y,edge:w.value,connection:J})}function ee(Y){S.updateEnd({event:Y,edge:w.value}),N.value=!1}function le(Y,J){Y.button===0&&(N.value=!0,A.value=J?w.value.target:w.value.source,D.value=(J?w.value.targetHandle:w.value.sourceHandle)??null,_.value=J?"target":"source",S.updateStart({event:Y,edge:w.value}),L(Y))}function Z(Y){var J;const re={event:Y,edge:w.value};V.value&&(s.value=!1,w.value.selected&&h.value?(c([w.value]),(J=W.value)==null||J.blur()):n([w.value])),S.click(re)}function ve(Y){S.contextMenu({event:Y,edge:w.value})}function we(Y){S.doubleClick({event:Y,edge:w.value})}function Se(Y){S.mouseEnter({event:Y,edge:w.value})}function oe(Y){S.mouseMove({event:Y,edge:w.value})}function ce(Y){S.mouseLeave({event:Y,edge:w.value})}function j(Y){le(Y,!0)}function Q(Y){le(Y,!1)}function U(Y){var J;!g.value&&e_.includes(Y.key)&&V.value&&(Y.key==="Escape"?((J=W.value)==null||J.blur(),c([d(e.id)])):n([d(e.id)]))}}}),Ore=Ire,Mre=ge({name:"ConnectionLine",compatConfig:{MODE:3},setup(){var e;const{id:t,connectionMode:n,connectionStartHandle:o,connectionEndHandle:a,connectionPosition:l,connectionLineType:s,connectionLineStyle:r,connectionLineOptions:u,connectionStatus:c,viewport:d,findNode:f}=On(),v=(e=Fe(Vp))==null?void 0:e["connection-line"],h=C(()=>{var b;return f((b=o.value)==null?void 0:b.nodeId)}),g=C(()=>{var b;return f((b=a.value)==null?void 0:b.nodeId)??null}),p=C(()=>({x:(l.value.x-d.value.x)/d.value.zoom,y:(l.value.y-d.value.y)/d.value.zoom})),m=C(()=>u.value.markerStart?`url(#${Yu(u.value.markerStart,t)})`:""),y=C(()=>u.value.markerEnd?`url(#${Yu(u.value.markerEnd,t)})`:"");return()=>{var b,w,S;if(!h.value||!o.value)return null;const k=o.value.id,x=o.value.type,$=h.value.handleBounds;let T=$?.[x]??[];if(n.value===vs.Loose){const M=$?.[x==="source"?"target":"source"]??[];T=[...T,...M]}if(!T)return null;const N=(k?T.find(M=>M.id===k):T[0])??null,A=N?.position??Tt.Top,{x:D,y:_}=mi(h.value,N,A);let W=null;g.value&&(n.value===vs.Strict?W=((b=g.value.handleBounds[x==="source"?"target":"source"])==null?void 0:b.find(M=>{var B;return M.id===((B=a.value)==null?void 0:B.id)}))||null:W=((w=[...g.value.handleBounds.source??[],...g.value.handleBounds.target??[]])==null?void 0:w.find(M=>{var B;return M.id===((B=a.value)==null?void 0:B.id)}))||null);const V=((S=a.value)==null?void 0:S.position)??(A?$m[A]:null);if(!A||!V)return null;const H=s.value??u.value.type??Is.Bezier;let P="";const O={sourceX:D,sourceY:_,sourcePosition:A,targetX:p.value.x,targetY:p.value.y,targetPosition:V};return H===Is.Bezier?[P]=x_(O):H===Is.Step?[P]=_m({...O,borderRadius:0}):H===Is.SmoothStep?[P]=_m(O):H===Is.SimpleBezier?[P]=E_(O):P=`M${D},${_} ${p.value.x},${p.value.y}`,Le("svg",{class:"vue-flow__edges vue-flow__connectionline vue-flow__container"},Le("g",{class:"vue-flow__connection"},v?Le(v,{sourceX:D,sourceY:_,sourcePosition:A,targetX:p.value.x,targetY:p.value.y,targetPosition:V,sourceNode:h.value,sourceHandle:N,targetNode:g.value,targetHandle:W,markerEnd:y.value,markerStart:m.value,connectionStatus:c.value}):Le("path",{d:P,class:[u.value.class,c.value,"vue-flow__connection-path"],style:{...r.value,...u.value.style},"marker-end":y.value,"marker-start":m.value})))}}}),Pre=Mre,Rre=["id","markerWidth","markerHeight","markerUnits","orient"],Are={name:"MarkerType",compatConfig:{MODE:3}},Dre=ge({...Are,props:{id:{},type:{},color:{default:"none"},width:{default:12.5},height:{default:12.5},markerUnits:{default:"strokeWidth"},orient:{default:"auto-start-reverse"},strokeWidth:{default:1}},setup(e){return(t,n)=>(E(),z("marker",{id:t.id,class:"vue-flow__arrowhead",viewBox:"-10 -10 20 20",refX:"0",refY:"0",markerWidth:`${t.width}`,markerHeight:`${t.height}`,markerUnits:t.markerUnits,orient:t.orient},[t.type===i(xm).ArrowClosed?(E(),z("polyline",{key:0,style:Be({stroke:t.color,fill:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",points:"-5,-4 0,0 -5,4 -5,-4"},null,4)):ae("",!0),t.type===i(xm).Arrow?(E(),z("polyline",{key:1,style:Be({stroke:t.color,strokeWidth:t.strokeWidth}),"stroke-linecap":"round","stroke-linejoin":"round",fill:"none",points:"-5,-4 0,0 -5,4"},null,4)):ae("",!0)],8,Rre))}}),Lre={class:"vue-flow__marker vue-flow__container","aria-hidden":"true"},Vre={name:"MarkerDefinitions",compatConfig:{MODE:3}},Bre=ge({...Vre,setup(e){const{id:t,edges:n,connectionLineOptions:o,defaultMarkerColor:a}=On(),l=C(()=>{const s=new Set,r=[],u=c=>{if(c){const d=Yu(c,t);s.has(d)||(typeof c=="object"?r.push({...c,id:d,color:c.color||a.value}):r.push({id:d,color:a.value,type:c}),s.add(d))}};for(const c of[o.value.markerEnd,o.value.markerStart])u(c);for(const c of n.value)for(const d of[c.markerStart,c.markerEnd])u(d);return r.sort((c,d)=>c.id.localeCompare(d.id))});return(s,r)=>(E(),z("svg",Lre,[I("defs",null,[(E(!0),z(Pe,null,dt(l.value,u=>(E(),me(Dre,{id:u.id,key:u.id,type:u.type,color:u.color,width:u.width,height:u.height,markerUnits:u.markerUnits,"stroke-width":u.strokeWidth,orient:u.orient},null,8,["id","type","color","width","height","markerUnits","stroke-width","orient"]))),128))])]))}}),Fre={name:"Edges",compatConfig:{MODE:3}},zre=ge({...Fre,setup(e){const{findNode:t,getEdges:n,elevateEdgesOnSelect:o}=On();return(a,l)=>(E(),z(Pe,null,[G(Bre),(E(!0),z(Pe,null,dt(i(n),s=>(E(),z("svg",{key:s.id,class:"vue-flow__edges vue-flow__container",style:Be({zIndex:i(lse)(s,i(t),i(o))})},[G(i(Ore),{id:s.id},null,8,["id"])],4))),128)),G(i(Pre))],64))}}),Hre=ge({name:"Node",compatConfig:{MODE:3},props:["id","resizeObserver"],setup(e){const{id:t,noPanClassName:n,selectNodesOnDrag:o,nodesSelectionActive:a,multiSelectionActive:l,emits:s,removeSelectedNodes:r,addSelectedNodes:u,updateNodeDimensions:c,onUpdateNodeInternals:d,getNodeTypes:f,nodeExtent:v,elevateNodesOnSelect:h,disableKeyboardA11y:g,ariaLiveMessage:p,snapToGrid:m,snapGrid:y,nodeDragThreshold:b,nodesDraggable:w,elementsSelectable:S,nodesConnectable:k,nodesFocusable:x,hooks:$}=On(),T=F(null);xt(m_,T),xt(h_,e.id);const N=Fe(Vp),A=ct(),D=w_(),{node:_,parentNode:W}=b_(e.id),{emit:V,on:H}=xse(_,s),P=wt(()=>typeof _.draggable>"u"?w.value:_.draggable),O=wt(()=>typeof _.selectable>"u"?S.value:_.selectable),M=wt(()=>typeof _.connectable>"u"?k.value:_.connectable),B=wt(()=>typeof _.focusable>"u"?x.value:_.focusable),L=C(()=>O.value||P.value||$.value.nodeClick.hasListeners()||$.value.nodeDoubleClick.hasListeners()||$.value.nodeMouseEnter.hasListeners()||$.value.nodeMouseMove.hasListeners()||$.value.nodeMouseLeave.hasListeners()),K=wt(()=>!!_.dimensions.width&&!!_.dimensions.height),q=C(()=>{const J=_.type||"default",re=N?.[`node-${J}`];if(re)return re;let pe=_.template||f.value[J];if(typeof pe=="string"&&A){const ue=Object.keys(A.appContext.components);ue&&ue.includes(J)&&(pe=yt(J,!1))}return pe&&typeof pe!="string"?pe:(s.error(new Un(Fn.NODE_TYPE_MISSING,pe)),!1)}),X=g_({id:e.id,el:T,disabled:()=>!P.value,selectable:O,dragHandle:()=>_.dragHandle,onStart(J){V.dragStart(J)},onDrag(J){V.drag(J)},onStop(J){V.dragStop(J)},onClick(J){U(J)}}),ee=C(()=>_.class instanceof Function?_.class(_):_.class),le=C(()=>{const J=(_.style instanceof Function?_.style(_):_.style)||{},re=_.width instanceof Function?_.width(_):_.width,pe=_.height instanceof Function?_.height(_):_.height;return!J.width&&re&&(J.width=typeof re=="string"?re:`${re}px`),!J.height&&pe&&(J.height=typeof pe=="string"?pe:`${pe}px`),J}),Z=wt(()=>Number(_.zIndex??le.value.zIndex??0));return d(J=>{(J.includes(e.id)||!J.length)&&we()}),at(()=>{be(()=>_.hidden,(J=!1,re,pe)=>{!J&&T.value&&(e.resizeObserver.observe(T.value),pe(()=>{T.value&&e.resizeObserver.unobserve(T.value)}))},{immediate:!0,flush:"post"})}),be([()=>_.type,()=>_.sourcePosition,()=>_.targetPosition],()=>{Re(()=>{c([{id:e.id,nodeElement:T.value,forceUpdate:!0}])})}),be([()=>_.position.x,()=>_.position.y,()=>{var J;return(J=W.value)==null?void 0:J.computedPosition.x},()=>{var J;return(J=W.value)==null?void 0:J.computedPosition.y},()=>{var J;return(J=W.value)==null?void 0:J.computedPosition.z},Z,()=>_.selected,()=>_.dimensions.height,()=>_.dimensions.width,()=>{var J;return(J=W.value)==null?void 0:J.dimensions.height},()=>{var J;return(J=W.value)==null?void 0:J.dimensions.width}],([J,re,pe,ue,ie,se])=>{const he={x:J,y:re,z:se+(h.value&&_.selected?1e3:0)};typeof pe<"u"&&typeof ue<"u"?_.computedPosition=Qle({x:pe,y:ue,z:ie},he):_.computedPosition=he},{flush:"post",immediate:!0}),be([()=>_.extent,v],([J,re],[pe,ue])=>{(J!==pe||re!==ue)&&ve()}),_.extent==="parent"||typeof _.extent=="object"&&"range"in _.extent&&_.extent.range==="parent"?hm(()=>K).toBe(!0).then(ve):ve(),()=>_.hidden?null:Le("div",{ref:T,"data-id":_.id,class:["vue-flow__node",`vue-flow__node-${q.value===!1?"default":_.type||"default"}`,{[n.value]:P.value,dragging:X?.value,draggable:P.value,selected:_.selected,selectable:O.value,parent:_.isParent},ee.value],style:{visibility:K.value?"visible":"hidden",zIndex:_.computedPosition.z??Z.value,transform:`translate(${_.computedPosition.x}px,${_.computedPosition.y}px)`,pointerEvents:L.value?"all":"none",...le.value},tabIndex:B.value?0:void 0,role:B.value?"group":void 0,"aria-describedby":g.value?void 0:`${JT}-${t}`,"aria-label":_.ariaLabel,"aria-roledescription":"node",..._.domAttributes,onMouseenter:Se,onMousemove:oe,onMouseleave:ce,onContextmenu:j,onClick:U,onDblclick:Q,onKeydown:Y},[Le(q.value===!1?f.value.default:q.value,{id:_.id,type:_.type,data:_.data,events:{..._.events,...H},selected:_.selected,resizing:_.resizing,dragging:X.value,connectable:M.value,position:_.computedPosition,dimensions:_.dimensions,isValidTargetPos:_.isValidTargetPos,isValidSourcePos:_.isValidSourcePos,parent:_.parentNode,parentNodeId:_.parentNode,zIndex:_.computedPosition.z??Z.value,targetPosition:_.targetPosition,sourcePosition:_.sourcePosition,label:_.label,dragHandle:_.dragHandle,onUpdateNodeInternals:we})]);function ve(){const J=_.computedPosition,{computedPosition:re,position:pe}=Xy(_,m.value?Lp(J,y.value):J,s.error,v.value,W.value);(_.computedPosition.x!==re.x||_.computedPosition.y!==re.y)&&(_.computedPosition={..._.computedPosition,...re}),(_.position.x!==pe.x||_.position.y!==pe.y)&&(_.position=pe)}function we(){T.value&&c([{id:e.id,nodeElement:T.value,forceUpdate:!0}])}function Se(J){X?.value||V.mouseEnter({event:J,node:_})}function oe(J){X?.value||V.mouseMove({event:J,node:_})}function ce(J){X?.value||V.mouseLeave({event:J,node:_})}function j(J){return V.contextMenu({event:J,node:_})}function Q(J){return V.doubleClick({event:J,node:_})}function U(J){O.value&&(!o.value||!P.value||b.value>0)&&Tm(_,l.value,u,r,a,!1,T.value),V.click({event:J,node:_})}function Y(J){if(!(Em(J)||g.value))if(e_.includes(J.key)&&O.value){const re=J.key==="Escape";Tm(_,l.value,u,r,a,re,T.value)}else P.value&&_.selected&&Yr[J.key]&&(J.preventDefault(),p.value=`Moved selected node ${J.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~_.position.x}, y: ${~~_.position.y}`,D({x:Yr[J.key].x,y:Yr[J.key].y},J.shiftKey))}}}),Kre=Hre,Wre={height:"0",width:"0"},jre={name:"EdgeLabelRenderer",compatConfig:{MODE:3}},Ure=ge({...jre,setup(e){const{viewportRef:t}=On(),n=wt(()=>{var o;return(o=t.value)==null?void 0:o.getElementsByClassName("vue-flow__edge-labels")[0]});return(o,a)=>(E(),z("svg",null,[(E(),z("foreignObject",Wre,[(E(),me(cr,{to:n.value,disabled:!n.value},[fe(o.$slots,"default")],8,["to","disabled"]))]))]))}});function Yre(e={includeHiddenNodes:!1}){const{nodes:t}=On();return C(()=>{if(t.value.length===0)return!1;for(const n of t.value)if((e.includeHiddenNodes||!n.hidden)&&(n?.handleBounds===void 0||n.dimensions.width===0||n.dimensions.height===0))return!1;return!0})}const qre={class:"vue-flow__nodes vue-flow__container"},Gre={name:"Nodes",compatConfig:{MODE:3}},Xre=ge({...Gre,setup(e){const{getNodes:t,updateNodeDimensions:n,emits:o}=On(),a=Yre(),l=F();return be(a,s=>{s&&Re(()=>{o.nodesInitialized(t.value)})},{immediate:!0}),at(()=>{l.value=new ResizeObserver(s=>{const r=s.map(u=>({id:u.target.getAttribute("data-id"),nodeElement:u.target,forceUpdate:!0}));Re(()=>n(r))})}),Ft(()=>{var s;return(s=l.value)==null?void 0:s.disconnect()}),(s,r)=>(E(),z("div",qre,[l.value?(E(!0),z(Pe,{key:0},dt(i(t),(u,c,d,f)=>{const v=[u.id];if(f&&f.key===u.id&&yI(f,v))return f;const h=(E(),me(i(Kre),{id:u.id,key:u.id,"resize-observer":l.value},null,8,["id","resize-observer"]));return h.memo=v,h},r,0),128)):ae("",!0)]))}});function Zre(){const{emits:e}=On();at(()=>{if(v_()){const t=document.querySelector(".vue-flow__pane");t&&window.getComputedStyle(t).zIndex!=="1"&&e.error(new Un(Fn.MISSING_STYLES))}})}const Jre=I("div",{class:"vue-flow__edge-labels"},null,-1),Qre={name:"VueFlow",compatConfig:{MODE:3}},eie=ge({...Qre,props:{id:{},modelValue:{},nodes:{},edges:{},edgeTypes:{},nodeTypes:{},connectionMode:{},connectionLineType:{},connectionLineStyle:{default:void 0},connectionLineOptions:{default:void 0},connectionRadius:{},isValidConnection:{type:[Function,null],default:void 0},deleteKeyCode:{default:void 0},selectionKeyCode:{type:[Boolean,null],default:void 0},multiSelectionKeyCode:{default:void 0},zoomActivationKeyCode:{default:void 0},panActivationKeyCode:{default:void 0},snapToGrid:{type:Boolean,default:void 0},snapGrid:{},onlyRenderVisibleElements:{type:Boolean,default:void 0},edgesUpdatable:{type:[Boolean,String],default:void 0},nodesDraggable:{type:Boolean,default:void 0},nodesConnectable:{type:Boolean,default:void 0},nodeDragThreshold:{},elementsSelectable:{type:Boolean,default:void 0},selectNodesOnDrag:{type:Boolean,default:void 0},panOnDrag:{type:[Boolean,Array],default:void 0},minZoom:{},maxZoom:{},defaultViewport:{},translateExtent:{},nodeExtent:{},defaultMarkerColor:{},zoomOnScroll:{type:Boolean,default:void 0},zoomOnPinch:{type:Boolean,default:void 0},panOnScroll:{type:Boolean,default:void 0},panOnScrollSpeed:{},panOnScrollMode:{},paneClickDistance:{},zoomOnDoubleClick:{type:Boolean,default:void 0},preventScrolling:{type:Boolean,default:void 0},selectionMode:{},edgeUpdaterRadius:{},fitViewOnInit:{type:Boolean,default:void 0},connectOnClick:{type:Boolean,default:void 0},applyDefault:{type:Boolean,default:void 0},autoConnect:{type:[Boolean,Function],default:void 0},noDragClassName:{},noWheelClassName:{},noPanClassName:{},defaultEdgeOptions:{},elevateEdgesOnSelect:{type:Boolean,default:void 0},elevateNodesOnSelect:{type:Boolean,default:void 0},disableKeyboardA11y:{type:Boolean,default:void 0},edgesFocusable:{type:Boolean,default:void 0},nodesFocusable:{type:Boolean,default:void 0},autoPanOnConnect:{type:Boolean,default:void 0},autoPanOnNodeDrag:{type:Boolean,default:void 0},autoPanSpeed:{}},emits:["nodesChange","edgesChange","nodesInitialized","paneReady","init","updateNodeInternals","error","connect","connectStart","connectEnd","clickConnectStart","clickConnectEnd","moveStart","move","moveEnd","selectionDragStart","selectionDrag","selectionDragStop","selectionContextMenu","selectionStart","selectionEnd","viewportChangeStart","viewportChange","viewportChangeEnd","paneScroll","paneClick","paneContextMenu","paneMouseEnter","paneMouseMove","paneMouseLeave","edgeUpdate","edgeContextMenu","edgeMouseEnter","edgeMouseMove","edgeMouseLeave","edgeDoubleClick","edgeClick","edgeUpdateStart","edgeUpdateEnd","nodeContextMenu","nodeMouseEnter","nodeMouseMove","nodeMouseLeave","nodeDoubleClick","nodeClick","nodeDragStart","nodeDrag","nodeDragStop","miniMapNodeClick","miniMapNodeDoubleClick","miniMapNodeMouseEnter","miniMapNodeMouseMove","miniMapNodeMouseLeave","update:modelValue","update:nodes","update:edges"],setup(e,{expose:t,emit:n}){const o=e,a=bn(),l=Bv(o,"modelValue",n),s=Bv(o,"nodes",n),r=Bv(o,"edges",n),u=On(o),c=_se({modelValue:l,nodes:s,edges:r},o,u);return Ise(n,u.hooks),Tre(),Zre(),xt(Vp,a),dr(c),t(u),(d,f)=>(E(),z("div",{ref:i(u).vueFlowRef,class:"vue-flow"},[G(Sre,null,{default:ne(()=>[G(zre),Jre,G(Xre),fe(d.$slots,"zoom-pane")]),_:3}),fe(d.$slots,"default"),G($re)],512))}});var ml=(e=>(e.Lines="lines",e.Dots="dots",e))(ml||{});const T_=function({dimensions:e,size:t,color:n}){return Le("path",{stroke:n,"stroke-width":t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`})},__=function({radius:e,color:t}){return Le("circle",{cx:e,cy:e,r:e,fill:t})};ml.Lines+"",ml.Dots+"";const tie={[ml.Dots]:"#81818a",[ml.Lines]:"#eee"},nie=["id","x","y","width","height","patternTransform"],oie={key:2,height:"100",width:"100"},aie=["fill"],lie=["x","y","fill"],sie={name:"Background",compatConfig:{MODE:3}},rie=ge({...sie,props:{id:{},variant:{default:()=>ml.Dots},gap:{default:20},size:{default:1},lineWidth:{default:1},patternColor:{},color:{},bgColor:{},height:{default:100},width:{default:100},x:{default:0},y:{default:0},offset:{default:0}},setup(e){const{id:t,viewport:n}=On(),o=C(()=>{const s=n.value.zoom,[r,u]=Array.isArray(e.gap)?e.gap:[e.gap,e.gap],c=[r*s||1,u*s||1],d=e.size*s,[f,v]=Array.isArray(e.offset)?e.offset:[e.offset,e.offset],h=[f*s||1+c[0]/2,v*s||1+c[1]/2];return{scaledGap:c,offset:h,size:d}}),a=wt(()=>`pattern-${t}${e.id?`-${e.id}`:""}`),l=wt(()=>e.color||e.patternColor||tie[e.variant||ml.Dots]);return(s,r)=>(E(),z("svg",{class:"vue-flow__background vue-flow__container",style:Be({height:`${s.height>100?100:s.height}%`,width:`${s.width>100?100:s.width}%`})},[fe(s.$slots,"pattern-container",{id:a.value},()=>[I("pattern",{id:a.value,x:i(n).x%o.value.scaledGap[0],y:i(n).y%o.value.scaledGap[1],width:o.value.scaledGap[0],height:o.value.scaledGap[1],patternTransform:`translate(-${o.value.offset[0]},-${o.value.offset[1]})`,patternUnits:"userSpaceOnUse"},[fe(s.$slots,"pattern",{},()=>[s.variant===i(ml).Lines?(E(),me(i(T_),{key:0,size:s.lineWidth,color:l.value,dimensions:o.value.scaledGap},null,8,["size","color","dimensions"])):s.variant===i(ml).Dots?(E(),me(i(__),{key:1,color:l.value,radius:o.value.size/2},null,8,["color","radius"])):ae("",!0),s.bgColor?(E(),z("svg",oie,[I("rect",{width:"100%",height:"100%",fill:s.bgColor},null,8,aie)])):ae("",!0)])],8,nie)]),I("rect",{x:s.x,y:s.y,width:"100%",height:"100%",fill:`url(#${a.value})`},null,8,lie),fe(s.$slots,"default",{id:a.value})],4))}}),iie={class:"node-head"},uie={class:"fields"},cie={class:"adv-check"},die={class:"adv"},fie={key:0,class:"adv-body"},pie={class:"adv-check"},vie={class:"adv-check"},hie={class:"adv-wide"},mie={class:"adv-wide"},gie={class:"adv-wide"},yie={class:"adv-wide"},bie={class:"adv-wide"},wie=ge({__name:"LocalNode",props:{data:{},selected:{type:Boolean},conflicted:{type:Boolean}},emits:["update:data","remove"],setup(e,{emit:t}){const n=e,o=t,a=H=>C({get:()=>n.data[H],set:P=>{o("update:data",{...n.data,[H]:P})}}),l=a("name"),s=a("ip"),r=a("port"),u=a("protocol"),c=a("localOnly"),d=a("useEncryption"),f=a("useCompression"),v=a("bandwidthLimit"),h=a("poolCount"),g=F(!1),p=C({get:()=>JSON.stringify(n.data.metadatas??{}),set:H=>{let P={};if(H.trim())try{P=JSON.parse(H)}catch{return}o("update:data",{...n.data,metadatas:P})}}),m=C({get:()=>JSON.stringify(n.data.annotations??{}),set:H=>{let P={};if(H.trim())try{P=JSON.parse(H)}catch{return}o("update:data",{...n.data,annotations:P})}}),y=a("customDomains"),b=a("subdomain"),w=a("hostHeaderRewrite"),S=a("basicAuthUser"),k=a("basicAuthPassword"),x=a("lbGroup"),$=a("lbGroupKey"),T=a("healthCheckType"),N=a("healthCheckPath"),A=a("healthCheckTimeout"),D=a("healthCheckMaxFailed"),_=a("healthCheckInterval"),W=C({get:()=>JSON.stringify(n.data.locations??[]),set:H=>{let P=[];if(H.trim())try{const O=JSON.parse(H);if(Array.isArray(O))P=O.map(String);else return}catch{return}o("update:data",{...n.data,locations:P})}}),V=C({get:()=>JSON.stringify(n.data.httpHeaders??{}),set:H=>{let P={};if(H.trim())try{P=JSON.parse(H)}catch{return}o("update:data",{...n.data,httpHeaders:P})}});return(H,P)=>(E(),z("div",{class:R(["local-node",{selected:e.selected,conflicted:e.conflicted}])},[G(i(gi),{type:"source",position:i(Tt).Right},null,8,["position"]),I("div",iie,[P[27]||(P[27]=I("span",{class:"node-icon"},"⬢",-1)),qe(I("input",{"onUpdate:modelValue":P[0]||(P[0]=O=>gt(l)?l.value=O:null),class:"name-input"},null,512),[[sn,i(l)]]),I("button",{class:"del-btn",title:"删除",onClick:P[1]||(P[1]=Ge(O=>o("remove",n.data.name),["stop"]))}," × ")]),I("div",uie,[I("label",null,[P[28]||(P[28]=Me("IP ",-1)),qe(I("input",{"onUpdate:modelValue":P[2]||(P[2]=O=>gt(s)?s.value=O:null)},null,512),[[sn,i(s)]])]),I("label",null,[P[29]||(P[29]=Me("端口 ",-1)),qe(I("input",{"onUpdate:modelValue":P[3]||(P[3]=O=>gt(r)?r.value=O:null),type:"number"},null,512),[[sn,i(r),void 0,{number:!0}]])]),I("label",null,[P[31]||(P[31]=Me("协议 ",-1)),qe(I("select",{"onUpdate:modelValue":P[4]||(P[4]=O=>gt(u)?u.value=O:null)},[...P[30]||(P[30]=[I("option",{value:"tcp"},"tcp",-1),I("option",{value:"udp"},"udp",-1),I("option",{value:"http"},"http",-1),I("option",{value:"https"},"https",-1)])],512),[[ih,i(u)]])]),I("label",cie,[qe(I("input",{"onUpdate:modelValue":P[5]||(P[5]=O=>gt(c)?c.value=O:null),type:"checkbox"},null,512),[[zs,i(c)]]),P[32]||(P[32]=Me(" 仅本机转发 ",-1)),P[33]||(P[33]=I("span",{class:"hint"},"(勾选=直接在本机拉起,不进集群;不勾选=127.0.0.1 替换为本机实际地址交给集群)",-1))])]),I("div",die,[I("button",{class:"adv-toggle",onClick:P[6]||(P[6]=Ge(O=>g.value=!g.value,["stop"]))},ye(g.value?"▾ 收起高级":"▸ 高级"),1),g.value?(E(),z("div",fie,[I("label",pie,[qe(I("input",{"onUpdate:modelValue":P[7]||(P[7]=O=>gt(d)?d.value=O:null),type:"checkbox"},null,512),[[zs,i(d)]]),P[34]||(P[34]=Me(" 加密 (useEncryption) ",-1))]),I("label",vie,[qe(I("input",{"onUpdate:modelValue":P[8]||(P[8]=O=>gt(f)?f.value=O:null),type:"checkbox"},null,512),[[zs,i(f)]]),P[35]||(P[35]=Me(" 压缩 (useCompression) ",-1))]),I("label",null,[P[36]||(P[36]=Me("限速 ",-1)),qe(I("input",{"onUpdate:modelValue":P[9]||(P[9]=O=>gt(v)?v.value=O:null),placeholder:"如 1MB"},null,512),[[sn,i(v)]])]),I("label",null,[P[37]||(P[37]=Me("连接池 ",-1)),qe(I("input",{"onUpdate:modelValue":P[10]||(P[10]=O=>gt(h)?h.value=O:null),type:"number",min:"0"},null,512),[[sn,i(h),void 0,{number:!0}]])]),I("label",hie,[P[38]||(P[38]=Me("元数据(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[11]||(P[11]=O=>p.value=O),placeholder:'{"env":"prod"}'},null,512),[[sn,p.value]])]),I("label",mie,[P[39]||(P[39]=Me("注解(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[12]||(P[12]=O=>m.value=O),placeholder:'{"owner":"ops"}'},null,512),[[sn,m.value]])]),P[55]||(P[55]=I("div",{class:"adv-sep"},"HTTP/HTTPS 路由",-1)),I("label",gie,[P[40]||(P[40]=Me("域名(逗号分隔) ",-1)),qe(I("input",{"onUpdate:modelValue":P[13]||(P[13]=O=>gt(y)?y.value=O:null),placeholder:"app.example.com"},null,512),[[sn,i(y)]])]),I("label",null,[P[41]||(P[41]=Me("子域 ",-1)),qe(I("input",{"onUpdate:modelValue":P[14]||(P[14]=O=>gt(b)?b.value=O:null),placeholder:"app (需 frps subdomain_host)"},null,512),[[sn,i(b)]])]),I("label",yie,[P[42]||(P[42]=Me("路径路由(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[15]||(P[15]=O=>W.value=O),placeholder:'["/api","/admin"]'},null,512),[[sn,W.value]])]),I("label",null,[P[43]||(P[43]=Me("Host 改写 ",-1)),qe(I("input",{"onUpdate:modelValue":P[16]||(P[16]=O=>gt(w)?w.value=O:null),placeholder:"backend.internal"},null,512),[[sn,i(w)]])]),I("label",bie,[P[44]||(P[44]=Me("请求头(JSON) ",-1)),qe(I("input",{"onUpdate:modelValue":P[17]||(P[17]=O=>V.value=O),placeholder:'{"X-Custom":"val"}'},null,512),[[sn,V.value]])]),I("label",null,[P[45]||(P[45]=Me("BasicAuth 用户 ",-1)),qe(I("input",{"onUpdate:modelValue":P[18]||(P[18]=O=>gt(S)?S.value=O:null),placeholder:"user"},null,512),[[sn,i(S)]])]),I("label",null,[P[46]||(P[46]=Me("BasicAuth 密码 ",-1)),qe(I("input",{"onUpdate:modelValue":P[19]||(P[19]=O=>gt(k)?k.value=O:null),type:"password",placeholder:"pass"},null,512),[[sn,i(k)]])]),P[56]||(P[56]=I("div",{class:"adv-sep"},"负载均衡 (M3)",-1)),I("label",null,[P[47]||(P[47]=Me("LB 组 ",-1)),qe(I("input",{"onUpdate:modelValue":P[20]||(P[20]=O=>gt(x)?x.value=O:null),placeholder:"如 web (同组自动负载均衡)"},null,512),[[sn,i(x)]])]),I("label",null,[P[48]||(P[48]=Me("组密钥 ",-1)),qe(I("input",{"onUpdate:modelValue":P[21]||(P[21]=O=>gt($)?$.value=O:null),placeholder:"组内相同"},null,512),[[sn,i($)]])]),P[57]||(P[57]=I("div",{class:"adv-sep"},"健康检查 (M3)",-1)),I("label",null,[P[50]||(P[50]=Me("类型 ",-1)),qe(I("select",{"onUpdate:modelValue":P[22]||(P[22]=O=>gt(T)?T.value=O:null)},[...P[49]||(P[49]=[I("option",{value:""},"关闭",-1),I("option",{value:"tcp"},"tcp",-1),I("option",{value:"http"},"http",-1)])],512),[[ih,i(T)]])]),I("label",null,[P[51]||(P[51]=Me("HTTP 路径 ",-1)),qe(I("input",{"onUpdate:modelValue":P[23]||(P[23]=O=>gt(N)?N.value=O:null),placeholder:"/healthz"},null,512),[[sn,i(N)]])]),I("label",null,[P[52]||(P[52]=Me("超时(秒) ",-1)),qe(I("input",{"onUpdate:modelValue":P[24]||(P[24]=O=>gt(A)?A.value=O:null),type:"number",min:"0",placeholder:"默认3"},null,512),[[sn,i(A),void 0,{number:!0}]])]),I("label",null,[P[53]||(P[53]=Me("失败次数 ",-1)),qe(I("input",{"onUpdate:modelValue":P[25]||(P[25]=O=>gt(D)?D.value=O:null),type:"number",min:"0",placeholder:"默认1"},null,512),[[sn,i(D),void 0,{number:!0}]])]),I("label",null,[P[54]||(P[54]=Me("间隔(秒) ",-1)),qe(I("input",{"onUpdate:modelValue":P[26]||(P[26]=O=>gt(_)?_.value=O:null),type:"number",min:"0",placeholder:"默认10"},null,512),[[sn,i(_),void 0,{number:!0}]])])])):ae("",!0)])],2))}}),Ll=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},Sie=Ll(wie,[["__scopeId","data-v-2cf42f62"]]),Cie={class:"node-head"},kie={class:"enabled"},xie={class:"fields"},Eie={class:"adv"},$ie={key:0,class:"adv-body"},Tie={class:"adv-check"},_ie=ge({__name:"RemoteNode",props:{data:{},selected:{type:Boolean},conflicted:{type:Boolean}},emits:["update:data","remove"],setup(e,{emit:t}){const n=e,o=t,a=k=>C({get:()=>n.data[k],set:x=>{o("update:data",{...n.data,[k]:x})}}),l=a("name"),s=a("ip"),r=a("port"),u=a("token"),c=a("url"),d=a("enabled"),f=a("transportProtocol"),v=a("transportTls"),h=a("transportTlsServerName"),g=a("transportPool"),p=a("vhostHttpPort"),m=a("adminAddr"),y=a("adminPort"),b=a("adminUser"),w=a("adminPassword"),S=F(!1);return(k,x)=>(E(),z("div",{class:R(["remote-node",{selected:e.selected,conflicted:e.conflicted}])},[G(i(gi),{type:"target",position:i(Tt).Left},null,8,["position"]),I("div",Cie,[x[18]||(x[18]=I("span",{class:"node-icon"},"⬤",-1)),qe(I("input",{"onUpdate:modelValue":x[0]||(x[0]=$=>gt(l)?l.value=$:null),class:"name-input"},null,512),[[sn,i(l)]]),I("label",kie,[qe(I("input",{"onUpdate:modelValue":x[1]||(x[1]=$=>gt(d)?d.value=$:null),type:"checkbox"},null,512),[[zs,i(d)]]),x[17]||(x[17]=Me(" 启用 ",-1))]),I("button",{class:"del-btn",title:"删除",onClick:x[2]||(x[2]=Ge($=>o("remove",n.data.name),["stop"]))}," × ")]),I("div",xie,[I("label",null,[x[19]||(x[19]=Me("IP ",-1)),qe(I("input",{"onUpdate:modelValue":x[3]||(x[3]=$=>gt(s)?s.value=$:null)},null,512),[[sn,i(s)]])]),I("label",null,[x[20]||(x[20]=Me("端口 ",-1)),qe(I("input",{"onUpdate:modelValue":x[4]||(x[4]=$=>gt(r)?r.value=$:null),type:"number"},null,512),[[sn,i(r),void 0,{number:!0}]])]),I("label",null,[x[21]||(x[21]=Me("令牌 ",-1)),qe(I("input",{"onUpdate:modelValue":x[5]||(x[5]=$=>gt(u)?u.value=$:null)},null,512),[[sn,i(u)]])]),I("label",null,[x[22]||(x[22]=Me("URL ",-1)),qe(I("input",{"onUpdate:modelValue":x[6]||(x[6]=$=>gt(c)?c.value=$:null)},null,512),[[sn,i(c)]])])]),I("div",Eie,[I("button",{class:"adv-toggle",onClick:x[7]||(x[7]=Ge($=>S.value=!S.value,["stop"]))},ye(S.value?"▾ 收起高级":"▸ 高级"),1),S.value?(E(),z("div",$ie,[I("label",null,[x[24]||(x[24]=Me("传输协议 ",-1)),qe(I("select",{"onUpdate:modelValue":x[8]||(x[8]=$=>gt(f)?f.value=$:null)},[...x[23]||(x[23]=[I("option",{value:""},"tcp(默认)",-1),I("option",{value:"quic"},"quic",-1),I("option",{value:"kcp"},"kcp",-1),I("option",{value:"websocket"},"websocket",-1)])],512),[[ih,i(f)]])]),I("label",Tie,[qe(I("input",{"onUpdate:modelValue":x[9]||(x[9]=$=>gt(v)?v.value=$:null),type:"checkbox"},null,512),[[zs,i(v)]]),x[25]||(x[25]=Me(" TLS 传输 ",-1))]),I("label",null,[x[26]||(x[26]=Me("TLS SNI ",-1)),qe(I("input",{"onUpdate:modelValue":x[10]||(x[10]=$=>gt(h)?h.value=$:null),placeholder:"frps.local"},null,512),[[sn,i(h)]])]),I("label",null,[x[27]||(x[27]=Me("连接池 ",-1)),qe(I("input",{"onUpdate:modelValue":x[11]||(x[11]=$=>gt(g)?g.value=$:null),type:"number",min:"0"},null,512),[[sn,i(g),void 0,{number:!0}]])]),x[33]||(x[33]=I("label",{class:"adv-sep"},"HTTP 访问端口 (frps vhostHTTPPort)",-1)),I("label",null,[x[28]||(x[28]=Me("vhostHTTPPort ",-1)),qe(I("input",{"onUpdate:modelValue":x[12]||(x[12]=$=>gt(p)?p.value=$:null),type:"number",min:"0"},null,512),[[sn,i(p),void 0,{number:!0}]])]),x[34]||(x[34]=I("label",{class:"adv-sep"},"本地 frpc 管理 API (M3)",-1)),x[35]||(x[35]=I("label",{class:"adv-check"},[Me("启用后状态页按真实代理状态展示 "),I("span",{class:"hint-txt"},"(adminPort > 0)")],-1)),I("label",null,[x[29]||(x[29]=Me("地址 ",-1)),qe(I("input",{"onUpdate:modelValue":x[13]||(x[13]=$=>gt(m)?m.value=$:null),placeholder:"127.0.0.1"},null,512),[[sn,i(m)]])]),I("label",null,[x[30]||(x[30]=Me("端口 ",-1)),qe(I("input",{"onUpdate:modelValue":x[14]||(x[14]=$=>gt(y)?y.value=$:null),type:"number",min:"0",placeholder:"如 7400"},null,512),[[sn,i(y),void 0,{number:!0}]])]),I("label",null,[x[31]||(x[31]=Me("用户 ",-1)),qe(I("input",{"onUpdate:modelValue":x[15]||(x[15]=$=>gt(b)?b.value=$:null),placeholder:"admin"},null,512),[[sn,i(b)]])]),I("label",null,[x[32]||(x[32]=Me("密码 ",-1)),qe(I("input",{"onUpdate:modelValue":x[16]||(x[16]=$=>gt(w)?w.value=$:null),type:"password",placeholder:"可选"},null,512),[[sn,i(w)]])])])):ae("",!0)])],2))}}),Nie=Ll(_ie,[["__scopeId","data-v-b77096cd"]]),Iie=["d","stroke-width"],Oie={class:"port-num"},DS=2,Mie=ge({__name:"PortEdge",props:{id:{},sourceNode:{},targetNode:{},source:{},target:{},type:{},label:{},style:{},selected:{type:Boolean,default:!1},sourcePosition:{},targetPosition:{},sourceHandleId:{},targetHandleId:{},animated:{type:Boolean},updatable:{type:Boolean},markerStart:{},markerEnd:{},curvature:{},interactionWidth:{},data:{},events:{},labelStyle:{},labelShowBg:{type:Boolean},labelBgStyle:{},labelBgPadding:{},labelBgBorderRadius:{},sourceX:{},sourceY:{},targetX:{},targetY:{},conflicted:{type:Boolean,default:!1}},emits:["label-click","label-drag","toggle-disabled","edit-group","delete-edge"],setup(e,{emit:t}){const n=e,o=t,a=F({x:Number(n.data?.offsetX??0),y:Number(n.data?.offsetY??0)}),l=F(null);let s=!1,r=0,u=0,c={x:0,y:0},d=!1;const f=D=>{if(D.stopPropagation(),d=!0,s=!1,r=D.clientX,u=D.clientY,c={...a.value},l.value)try{l.value.setPointerCapture(D.pointerId)}catch{}D.preventDefault()},v=D=>{if(!d)return;const _=D.clientX-r,W=D.clientY-u;(Math.abs(_)>DS||Math.abs(W)>DS)&&(s=!0);const V=g();a.value={x:c.x+_/V,y:c.y+W/V},o("label-drag",{edgeId:n.id,offset:{...a.value}})},h=D=>{D.stopPropagation();const _=d;if(d=!1,l.value&&D.pointerId!=null)try{l.value.releasePointerCapture?.(D.pointerId)}catch{}_&&(s||o("label-click",{edgeId:n.id}))};function g(){const D=document.querySelector(".vue-flow__viewport");if(!D)return 1;const _=/scale\(([0-9.]+)\)/.exec(D.style.transform||"");if(!_)return 1;const W=Number(_[1]);return W>0?W:1}const p=C(()=>Number(n.data?.layer??0)),m=C(()=>!!n.data?.disabled),y=C(()=>String(n.data?.group??"")),b=C(()=>String(n.label??"")||"?"),w=C(()=>{const D=p.value,_=D%2===0?1:-1,W=(Math.floor(D/2)+1)*16;return _*W}),S=C(()=>w.value+a.value.y),k=C(()=>{const{sourceX:D,sourceY:_,sourcePosition:W,targetX:V,targetY:H,targetPosition:P}=n;return N(D,_,W,V,H,P,S.value)}),x=C(()=>A(k.value)),$=C(()=>({position:"absolute",transform:`translate(${x.value.x+a.value.x}px, ${x.value.y}px) translate(-50%, -50%)`,pointerEvents:"all",cursor:"grab",zIndex:10})),T=C(()=>{if(m.value)return"var(--el-color-info-light-5)";if(n.conflicted)return"var(--w4f-danger)";const D=p.value,_=["var(--el-color-primary)","var(--el-color-success)","var(--el-color-warning)","var(--el-color-danger)","var(--el-color-info)","var(--el-color-primary)"];return _[D%_.length]});function N(D,_,W,V,H,P,O){const M=Math.abs(V-D),B=Math.max(M*.45,40);let L=D,K=_,q=V,X=H;W==="Right"?L=D:W==="Left"?L=D-B:W==="Top"?(L=D,K=_):L=D,P==="Left"?q=V:P==="Right"?q=V+B:P==="Top"&&(X=H);const ee=L+(q-L)*.5,le=K+O,Z=q-(q-L)*.5,ve=X+O;return`M ${L} ${K} C ${ee} ${le}, ${Z} ${ve}, ${q} ${X}`}function A(D){const _=D.replace("M","").replace("C","").split(/[ ,]+/).filter(le=>le.length>0).map(Number);if(_.length<8)return{x:0,y:0};const W=_[0]??0,V=_[1]??0,H=_[2]??0,P=_[3]??0,O=_[4]??0,M=_[5]??0,B=_[6]??0,L=_[7]??0,K=.5,q=1-K,X=q*q*q*W+3*q*q*K*H+3*q*K*K*O+K*K*K*B,ee=q*q*q*V+3*q*q*K*P+3*q*K*K*M+K*K*K*L;return{x:X,y:ee}}return(D,_)=>(E(),z("g",{class:R(["port-edge",{selected:e.selected}])},[I("path",{d:k.value,class:R(["port-edge-path",{selected:e.selected,conflicted:e.conflicted}]),fill:"none",style:Be({stroke:T.value}),"stroke-width":e.selected?3.5:2.5},null,14,Iie),G(i(Ure),null,{default:ne(()=>[I("div",{ref_key:"labelEl",ref:l,class:R(["port-label",{dragging:i(d)}]),style:Be($.value),onPointerdown:Ge(f,["stop","prevent"]),onPointermove:v,onPointerup:h,onPointercancel:h},[I("span",{class:R(["port-toggle",{off:m.value}]),onPointerdown:_[0]||(_[0]=Ge(()=>{},["stop"])),onClick:_[1]||(_[1]=Ge(W=>o("toggle-disabled",{edgeId:n.id}),["stop"]))},ye(m.value?"禁":"通"),35),I("span",Oie,ye(b.value),1),y.value?(E(),z("span",{key:0,class:"port-group",onPointerdown:_[2]||(_[2]=Ge(()=>{},["stop"])),onClick:_[3]||(_[3]=Ge(W=>o("edit-group",{edgeId:n.id}),["stop"]))},ye(y.value),33)):ae("",!0),I("span",{class:"port-delete",onPointerdown:_[4]||(_[4]=Ge(()=>{},["stop"])),onClick:_[5]||(_[5]=Ge(W=>o("delete-edge",{edgeId:n.id}),["stop"])),title:"删除连线"},"×",32)],38)]),_:1})],2))}}),Pie=Ll(Mie,[["__scopeId","data-v-cecf0202"]]);class Rie extends Error{status;constructor(t,n){super(n),this.status=t}}async function Qt(e,t={}){const n=await fetch(e,{credentials:"same-origin",...t});if(!n.ok)throw new Rie(n.status,`HTTP ${n.status}`);return(n.headers.get("content-type")||"").includes("application/json")?n.json():n.text()}const Xv=e=>({method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),un={status:()=>Qt("/api/manager/status"),canvas:()=>Qt("/api/manager/canvas"),saveCanvas:e=>Qt("/api/manager/canvas",Xv(e)),settings:()=>Qt("/api/manager/settings"),saveSettings:e=>Qt("/api/manager/settings",Xv(e)),binaryStatus:()=>Qt("/api/manager/binary/status"),installBinary:e=>Qt("/api/manager/binary/install",{method:"POST",headers:{"Content-Type":"application/json"},body:e?JSON.stringify({version:e}):void 0}),saveRemote:e=>Qt("/api/manager/remotes",Xv(e)),deleteRemote:e=>Qt(`/api/manager/remotes/${encodeURIComponent(e)}`,{method:"DELETE"}),addLink:e=>Qt("/api/manager/links",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),deleteLink:e=>Qt(`/api/manager/links/${e}`,{method:"DELETE"}),forwardStart:(e,t,n)=>Qt("/api/manager/forwards/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({local:e,remote:t,remotePort:n})}),forwardStop:(e,t,n)=>Qt("/api/manager/forwards/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({local:e,remote:t,remotePort:n})}),groupStart:e=>Qt("/api/manager/forwards/group/start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:e})}),groupStop:e=>Qt("/api/manager/forwards/group/stop",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:e})}),assignGroup:(e,t,n,o)=>Qt("/api/manager/forwards/assign",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({local:e,remote:t,remotePort:n,group:o})}),deleteGroup:e=>Qt("/api/manager/forwards/group/delete",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({group:e})}),profileStart:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/start`,{method:"POST"}),profileStop:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/stop`,{method:"POST"}),profileRestart:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/restart`,{method:"POST"}),profileConfig:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/config`),profileLogs:e=>Qt(`/api/manager/profiles/${encodeURIComponent(e)}/logs`),clusterNodes:()=>Qt("/api/manager/cluster/nodes"),clusterCache:()=>Qt("/api/manager/cluster/cache"),pruneCache:e=>Qt("/api/manager/cluster/cache",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({keep:e})}),ring:()=>Qt("/api/manager/cluster/ring"),clusterCreate:()=>Qt("/api/manager/cluster/create",{method:"POST"}),clusterJoinRing:(e,t)=>Qt("/api/manager/cluster/join-ring",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({addr:e,joinKey:t})}),clusterRemoveNode:e=>Qt("/api/manager/cluster/node-remove",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e})}),me:()=>Qt("/api/manager/me"),listUsers:()=>Qt("/api/manager/users"),createUser:(e,t,n)=>Qt("/api/manager/users",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({username:e,password:t,role:n})}),updateUser:(e,t)=>Qt(`/api/manager/users/${encodeURIComponent(e)}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),deleteUser:e=>Qt(`/api/manager/users/${encodeURIComponent(e)}`,{method:"DELETE"}),listApiKeys:()=>Qt("/api/manager/apikeys"),createApiKey:(e,t,n)=>Qt("/api/manager/apikeys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({userId:e,label:t,scope:n})}),deleteApiKey:e=>Qt(`/api/manager/apikeys/${e}`,{method:"DELETE"}),exportCanvas:()=>Qt("/api/manager/canvas/export"),importCanvas:e=>Qt("/api/manager/canvas/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),exportWorkerLogs:()=>Qt("/api/manager/cluster/logs/export")},Gs=F("read"),Nm=F(""),Im=F(!1),LS={read:1,write:2,admin:3},VS=C(()=>LS[Gs.value]>=LS.write),Aie=C(()=>Gs.value==="admin");async function Die(){try{const e=await un.me();Gs.value=e.level,Nm.value=e.name}catch{Gs.value="read",Nm.value=""}finally{Im.value=!0}}const Lie={class:"canvas-editor"},Vie={class:"toolbar"},Bie={class:"toolbar-right"},Fie={class:"save-hint"},zie=["disabled"],Hie=["disabled"],Kie={class:"flow-wrap"},Wie={class:"dlg-row"},jie={class:"dlg-value"},Uie={class:"dlg-row"},Yie={class:"dlg-row"},qie=ge({__name:"CanvasView",setup(e){const t=F([]),n=F([]),o=F(!1),a=F("rgba(120,130,150,0.22)");let l=null;const s=()=>{const ue=getComputedStyle(document.documentElement).getPropertyValue("--w4f-line-strong").trim();a.value=ue||"rgba(120,130,150,0.22)"},r=F([]),u=C(()=>{const ue=new Set;for(const ie of r.value)for(const se of ie.edgeIds)ue.add(se);return ue}),c=F(!1),d=F(!1),f=F({visible:!1,isNew:!1,local:"",remote:"",remotePort:0,group:"",pendingEdge:null}),v=F(""),h=F(""),g=(ue,ie,se,he,de,Ce="")=>{f.value={visible:!0,isNew:he,local:ue,remote:ie,remotePort:se,group:Ce,pendingEdge:de??null},v.value=String(se),h.value=Ce},p={localX:60,remoteX:760,startY:90,gap:24,estLocal:210,estRemote:200},m=ue=>{const ie=document.querySelector(`.vue-flow__node[data-id="${ue}"]`);return ie?ie.offsetHeight:0},y=ue=>{let ie=p.startY,se=p.startY;for(const he of t.value)if(he.type==="local"){const de=ue&&m(he.id)||p.estLocal;he.position={x:p.localX,y:ie},ie+=de+p.gap}else{const de=ue&&m(he.id)||p.estRemote;he.position={x:p.remoteX,y:se},se+=de+p.gap}},b=ue=>t.value.find(ie=>ie.type==="local"&&ie.data?.name===ue)?.data,w=()=>{const ue=[],ie=new Map;for(const se of n.value){const he=se.source.startsWith("local::")?se.source.slice(7):"",de=se.target.startsWith("remote::")?se.target.slice(8):"";if(!he||!de)continue;const Ce=b(he),$e=Number(se.label);!Ce||isNaN($e)||$e<=0||(ie.has(de)||ie.set(de,[]),ie.get(de).push({edgeId:se.id,local:he,remotePort:$e,type:Ce.protocol}))}for(const[se,he]of ie){const de=new Map;for(const $e of he)$e.type!=="tcp"&&$e.type!=="udp"||(de.has($e.remotePort)||de.set($e.remotePort,[]),de.get($e.remotePort).push({local:$e.local,edgeId:$e.edgeId}));for(const[$e,Ue]of de)Ue.length<2||ue.push({type:"port",remote:se,remotePort:$e,locals:Ue.map(Qe=>Qe.local),edgeIds:Ue.map(Qe=>Qe.edgeId)});const Ce=new Map;for(const $e of he){if($e.type!=="http"&&$e.type!=="https")continue;const Ue=$e.local+".local";Ce.has(Ue)||Ce.set(Ue,[]),Ce.get(Ue).push({local:$e.local,edgeId:$e.edgeId})}for(const[$e,Ue]of Ce)Ue.length<2||ue.push({type:"domain",remote:se,domain:$e,locals:Ue.map(Qe=>Qe.local),edgeIds:Ue.map(Qe=>Qe.edgeId)})}return r.value=ue,ue},S=ue=>r.value.some(ie=>ie.remote===ue),k=ue=>r.value.some(ie=>ie.locals.includes(ue)),x=ue=>u.value.has(ue),$=(ue,ie)=>`${ue}::${ie}`,T=()=>{const ue=`local-${t.value.filter(se=>se.type==="local").length+1}`,ie={name:ue,ip:"127.0.0.1",port:8080,protocol:"tcp"};t.value.push({id:$("local",ue),type:"local",position:{x:p.localX,y:p.startY+t.value.filter(se=>se.type==="local").length*(p.estLocal+p.gap)},data:ie}),d.value=!0},N=()=>{const ue=`remote-${t.value.filter(se=>se.type==="remote").length+1}`,ie={name:ue,ip:"127.0.0.1",port:7e3,token:"",url:"",enabled:!0};t.value.push({id:$("remote",ue),type:"remote",position:{x:p.remoteX,y:p.startY+t.value.filter(se=>se.type==="remote").length*(p.estRemote+p.gap)},data:ie}),d.value=!0},A=ue=>{t.value=t.value.filter(ie=>!(ie.type==="local"&&ie.data?.name===ue)),n.value=n.value.filter(ie=>ie.source!==$("local",ue)),d.value=!0,w()},D=ue=>{t.value=t.value.filter(ie=>!(ie.type==="remote"&&ie.data?.name===ue)),n.value=n.value.filter(ie=>ie.target!==$("remote",ue)),d.value=!0,w()},_=(ue,ie,se)=>`${ue}-->${ie}@${se}`,W=ue=>{const ie=ue.source.startsWith("local::")?ue.source.slice(7):"",se=ue.target.startsWith("remote::")?ue.target.slice(8):"";if(!ie||!se)return;const he=b(ie);he&&g(ie,se,he.port,!0,{id:_(ue.source,ue.target,he.port),source:ue.source,target:ue.target})},V=()=>{const ue=f.value,ie=Number(v.value);if(!Number.isInteger(ie)||ie<1||ie>65535){Ht.warning("请输入 1-65535 的整数端口");return}if(ue.remotePort=ie,ue.group=h.value.trim(),ue.isNew&&ue.pendingEdge){const se=_(ue.pendingEdge.source,ue.pendingEdge.target,ue.remotePort),he=n.value.find(de=>de.id===se);he?(he.label=String(ue.remotePort),he.data={...he.data,group:ue.group}):(n.value.push({id:se,source:ue.pendingEdge.source,target:ue.pendingEdge.target,label:String(ue.remotePort),type:"portedge",animated:!1,data:{group:ue.group}}),X())}else if(ue.pendingEdge){const se=ue.pendingEdge,he=_(se.source,se.target,ue.remotePort);if(n.value.find(Ce=>Ce.id===he&&Ce!==se)){Ht.warning("该端口已被同一条连线占用");return}se.id!==he&&(se.id=he),se.label=String(ue.remotePort),se.data={...se.data,group:ue.group}}f.value.visible=!1,d.value=!0},H=ue=>{const ie=ue.source.startsWith("local::")?ue.source.slice(7):"",se=ue.target.startsWith("remote::")?ue.target.slice(8):"",he=b(ie);g(ie,se,Number(ue.label)||(he?he.port:0),!1,ue,ue.data?.group??"")},P=async({edgeId:ue})=>{if(n.value.find(se=>se.id===ue)){try{await pl.confirm("确认删除该连线?删除后需点击「保存配置」生效。","删除连线",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}M([ue])}},O=async ue=>{if(ue.key!=="Delete"&&ue.key!=="Backspace")return;const ie=ue.target?.tagName;if(ie==="INPUT"||ie==="TEXTAREA"||ie==="SELECT"||!VS.value)return;const se=n.value.filter(he=>!!he.selected).map(he=>he.id);if(se.length!==0){ue.preventDefault();try{await pl.confirm(`确认删除选中的 ${se.length} 条连线?删除后需点击「保存配置」生效。`,"删除连线",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}M(se)}},M=ue=>{const ie=new Set(ue);n.value=n.value.filter(se=>!ie.has(se.id)),X(),d.value=!0},B=({edgeId:ue})=>{const ie=n.value.find(se=>se.id===ue);ie&&H(ie)},L=({edgeId:ue,offset:ie})=>{const se=n.value.find(he=>he.id===ue);se&&(se.data={...se.data,offsetX:ie.x,offsetY:ie.y},d.value=!0)},K=({edgeId:ue})=>{const ie=n.value.find(se=>se.id===ue);ie&&(ie.data={...ie.data,disabled:!ie.data?.disabled},d.value=!0)},q=async({edgeId:ue})=>{const ie=n.value.find(Ce=>Ce.id===ue);if(!ie)return;const se=new Set;for(const Ce of n.value){const $e=Ce.data?.group??"";$e&&se.add($e)}const he=se.size?`现有分组:${[...se].join("、")}(留空=移出分组)`:"输入分组名称(留空=移出分组)",de=ie.data?.group??"";try{const{value:Ce}=await pl.prompt(he,"编辑分组",{inputValue:de,inputPlaceholder:"分组名称",confirmButtonText:"确定",cancelButtonText:"取消"}),$e=(Ce||"").trim();ie.data={...ie.data,group:$e},d.value=!0}catch{}},X=()=>{const ue=new Map;for(const ie of n.value){const se=`${ie.source}||${ie.target}`,he=ue.get(se)??0;ue.set(se,he+1),ie.data={...ie.data,layer:he}}w()},ee=ue=>{const ie=t.value.find(se=>se.type==="local"&&se.data?.name===ue.name);ie&&(ie.data={...ue}),d.value=!0},le=ue=>{const ie=t.value.find(se=>se.type==="remote"&&se.data?.name===ue.name);ie&&(ie.data={...ue}),d.value=!0},Z=({edge:ue})=>{H(ue)},ve=()=>{const ue=w();if(ue.length===0)return!0;const ie=ue.map(se=>{const he=se.locals.join("、");return se.type==="port"?`· 本地服务「${he}」→ 远程节点「${se.remote}」:远程端口 ${se.remotePort} 重复`:`· 本地服务「${he}」→ 远程节点「${se.remote}」:域名 ${se.domain} 重复(一个域名只能绑定一个 http/https 服务)`});return pl.alert(`
${ie.join("
")}
`,"发现连接冲突,请检查标红的节点与连线",{confirmButtonText:"知道了",dangerouslyUseHTMLString:!0,type:"warning"}),!1},we=()=>{w(),t.value.forEach(ue=>{ue.selected=!1})},Se=C(()=>t.value.filter(ue=>ue.type==="local")),oe=C(()=>t.value.filter(ue=>ue.type==="remote")),ce=()=>y(!0),j=async()=>{o.value=!0;try{const ue=await un.canvas();t.value=[],n.value=[];for(const ie of ue.locals||[])t.value.push({id:$("local",ie.name),type:"local",position:{x:p.localX,y:p.startY},data:{...ie}});for(const ie of ue.remotes||[])t.value.push({id:$("remote",ie.name),type:"remote",position:{x:p.remoteX,y:p.startY},data:{...ie}});y(!1);for(const ie of ue.links||[]){const se=$("local",ie.local),he=$("remote",ie.remote);if(!t.value.some(Ce=>Ce.id===se)||!t.value.some(Ce=>Ce.id===he))continue;const de=ie.remotePort||b(ie.local)?.port||0;n.value.push({id:_(se,he,de),source:se,target:he,label:String(de),type:"portedge",animated:!1,data:{offsetX:ie.offsetX??0,offsetY:ie.offsetY??0,group:ie.group??"",disabled:ie.disabled??!1}})}X(),d.value=!1}finally{o.value=!1}},Q=()=>{const ue=Se.value.map(he=>({...he.data})),ie=oe.value.map(he=>({...he.data})),se=[];for(const he of n.value){const de=he.source.startsWith("local::")?he.source.slice(7):"",Ce=he.target.startsWith("remote::")?he.target.slice(8):"",$e=Number(he.label);se.push({local:de,remote:Ce,remotePort:isNaN($e)||$e<=0?0:$e,offsetX:he.data?.offsetX??0,offsetY:he.data?.offsetY??0,group:he.data?.group??"",disabled:he.data?.disabled??!1})}return{locals:ue,remotes:ie,links:se}},U=async()=>{if(ve()){c.value=!0;try{const ue=await un.saveCanvas(Q()),ie=new Map(t.value.map(de=>[de.id,de.position]));t.value=[];let se=0,he=0;for(const de of ue.locals||[]){const Ce=$("local",de.name);t.value.push({id:Ce,type:"local",position:ie.get(Ce)||{x:p.localX,y:p.startY+se*(p.estLocal+p.gap)},data:{...de}}),se++}for(const de of ue.remotes||[]){const Ce=$("remote",de.name);t.value.push({id:Ce,type:"remote",position:ie.get(Ce)||{x:p.remoteX,y:p.startY+he*(p.estRemote+p.gap)},data:{...de}}),he++}n.value=[];for(const de of ue.links||[]){const Ce=$("local",de.local),$e=$("remote",de.remote),Ue=de.remotePort||b(de.local)?.port||0;n.value.push({id:_(Ce,$e,Ue),source:Ce,target:$e,label:String(Ue),type:"portedge",data:{offsetX:de.offsetX??0,offsetY:de.offsetY??0,group:de.group??"",disabled:de.disabled??!1}})}X(),d.value=!1,Ht.success("配置已保存")}catch(ue){Ht.error("保存失败: "+(ue.message||ue))}finally{c.value=!1}}},Y=F(null),J=async()=>{try{const ue=await un.exportCanvas(),ie=new Blob([JSON.stringify(ue,null,2)],{type:"application/json"}),se=URL.createObjectURL(ie),he=document.createElement("a");he.href=se,he.download=`webui4frpc-canvas-${new Date().toISOString().slice(0,19).replace(/[:T]/g,"")}.json`,document.body.appendChild(he),he.click(),document.body.removeChild(he),URL.revokeObjectURL(se),Ht.success("已导出转发表")}catch(ue){Ht.error("导出失败: "+(ue.message||ue))}},re=()=>{Y.value?.click()},pe=async ue=>{const ie=ue.target,se=ie.files?.[0];if(se)try{const he=await se.text(),de=JSON.parse(he),Ce=de?._type==="webui4frpc-canvas"?de.canvas:de?.locals?de:void 0;if(!Ce){Ht.warning("文件格式不符:需为导出的信封或裸画布 JSON");return}await pl.confirm(`导入将覆盖当前连接配置(${Ce.locals?.length??0} 本地 / ${Ce.remotes?.length??0} 远程 / ${Ce.links?.length??0} 连线)。继续?`,"导入转发表",{type:"warning"}),await un.importCanvas(de),await j(),Ht.success("已导入并应用")}catch(he){if(he==="cancel"||he?.action==="cancel")return;Ht.error("导入失败: "+(he.message||he))}finally{ie&&(ie.value="")}};return at(()=>{j(),s(),l=new MutationObserver(s),l.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),window.addEventListener("keydown",O)}),Ft(()=>{window.removeEventListener("keydown",O),l?.disconnect(),l=null}),(ue,ie)=>{const se=yt("el-input"),he=yt("el-dialog");return E(),z("div",Lie,[I("div",Vie,[I("div",{class:"toolbar-left"},[ie[6]||(ie[6]=I("span",{class:"toolbar-title"},"连接配置",-1)),I("button",{class:"btn local-add",onClick:T},"+ 本地转发项"),I("button",{class:"btn remote-add",onClick:N},"+ 远程节点"),I("button",{class:"btn warn",onClick:ce},"自动排列")]),I("div",Bie,[I("span",Fie,ye(d.value?"● 未保存":"已保存"),1),I("button",{class:"btn ghost",onClick:J},"导出"),I("button",{class:"btn ghost",disabled:!i(VS),onClick:re,title:"导入转发表(覆盖当前)"}," 导入 ",8,zie),I("input",{ref_key:"importInput",ref:Y,type:"file",accept:".json,application/json",class:"hidden-input",onChange:pe},null,544),I("button",{class:"btn save",disabled:c.value,onClick:U}," 保存配置 ",8,Hie)])]),I("div",Kie,[G(i(eie),{nodes:t.value,"onUpdate:nodes":ie[0]||(ie[0]=de=>t.value=de),edges:n.value,"onUpdate:edges":ie[1]||(ie[1]=de=>n.value=de),"default-viewport":{zoom:.85},"min-zoom":.3,"max-zoom":2,"fit-view-on-init":"","delete-key-code":null,"edges-updatable":!1,"edges-reconnectable":!1,class:"flow-canvas",onConnect:W,onPaneClick:we,onEdgeClick:Z},{"node-local":ne(de=>[G(Sie,{data:de.data,selected:!!de.selected,conflicted:k(de.data?.name),onRemove:A,"onUpdate:data":ee},null,8,["data","selected","conflicted"])]),"node-remote":ne(de=>[G(Nie,{data:de.data,selected:!!de.selected,conflicted:S(de.data?.name),onRemove:D,"onUpdate:data":le},null,8,["data","selected","conflicted"])]),"edge-portedge":ne(de=>[G(Pie,pt(de,{conflicted:x(de.id),onLabelClick:B,onLabelDrag:L,onToggleDisabled:K,onEditGroup:q,onDeleteEdge:P}),null,16,["conflicted"])]),default:ne(()=>[G(i(rie),{"pattern-color":a.value,gap:20},null,8,["pattern-color"])]),_:1},8,["nodes","edges"])]),G(he,{modelValue:f.value.visible,"onUpdate:modelValue":ie[5]||(ie[5]=de=>f.value.visible=de),title:f.value.isNew?"新建连线":"编辑远程端口",width:"400px"},{footer:ne(()=>[I("button",{class:"btn",onClick:ie[4]||(ie[4]=de=>f.value.visible=!1)},"取消"),I("button",{class:"btn save",onClick:V},"确定")]),default:ne(()=>[I("div",Wie,[ie[7]||(ie[7]=I("label",null,"连接",-1)),I("span",jie,ye(f.value.local)+" → "+ye(f.value.remote),1)]),I("div",Uie,[ie[8]||(ie[8]=I("label",null,"远程端口",-1)),G(se,{modelValue:v.value,"onUpdate:modelValue":ie[2]||(ie[2]=de=>v.value=de),type:"number",min:"1",max:"65535",placeholder:"默认 = 本地端口",class:"port-input",onKeyup:rn(V,["enter"])},null,8,["modelValue"])]),I("div",Yie,[ie[9]||(ie[9]=I("label",null,"分组",-1)),G(se,{modelValue:h.value,"onUpdate:modelValue":ie[3]||(ie[3]=de=>h.value=de),placeholder:"可选,用于转发页一键启停整组",onKeyup:rn(V,["enter"])},null,8,["modelValue"])])]),_:1},8,["modelValue","title"])])}}}),Gie=Ll(qie,[["__scopeId","data-v-f91ed7cb"]]),Xie={class:"settings-page"},Zie={class:"page-content"},Jie={class:"panel"},Qie={class:"binary-row"},eue=["disabled"],tue={key:0,class:"binary-info"},nue={class:"info-value"},oue={key:0,class:"info-version"},aue={class:"panel"},lue={class:"setting-row"},sue={class:"setting-row"},rue={class:"setting-row"},iue=ge({__name:"SettingsView",setup(e){const t=F(!1),n=F(!1),o=F(""),a=F(null),l=F({autoStartProfiles:!0,restartOnExit:!0,restartIntervalSeconds:5}),s=async()=>{t.value=!0;try{l.value=await un.settings(),o.value=l.value.binaryPath||"";try{a.value=await un.binaryStatus()}catch{a.value=null}}finally{t.value=!1}},r=async()=>{try{const d=await un.settings();d.binaryPath=o.value.trim(),await un.saveSettings(d),l.value=d;const f=o.value.trim();Ht.success(f?`worker 将使用 ${f}`:"worker 将使用管理器自身(默认)"),await s()}catch(d){Ht.error("保存 frpc 路径失败: "+(d.message||d))}},u=async()=>{n.value=!0;try{const d=await un.installBinary();o.value=d.path,Ht.success(`已安装 frpc ${d.version}`),await s()}catch(d){Ht.error("安装失败: "+(d.message||d))}finally{n.value=!1}},c=async()=>{try{await un.saveSettings(l.value),Ht.success("运行策略已保存")}catch(d){Ht.error("保存失败: "+(d.message||d))}};return at(s),(d,f)=>{const v=yt("el-input"),h=yt("el-icon"),g=yt("el-switch"),p=yt("el-input-number"),m=jm("loading");return E(),z("div",Xie,[f[11]||(f[11]=I("div",{class:"page-top"},[I("div",{class:"page-header"},[I("h2",{class:"page-title"},"运行时设置"),I("p",{class:"page-subtitle"},"worker 二进制与运行策略")])],-1)),qe((E(),z("div",Zie,[I("section",Jie,[f[5]||(f[5]=I("h3",{class:"panel-title"},"frpc 可执行文件",-1)),f[6]||(f[6]=I("p",{class:"panel-desc"}," 用于拉起各 remote profile 的 frpc worker 进程。留空则使用管理器自身进程。 ",-1)),I("div",Qie,[G(v,{modelValue:o.value,"onUpdate:modelValue":f[0]||(f[0]=y=>o.value=y),placeholder:"如 /usr/local/bin/frpc,留空用当前进程",clearable:"",size:"large",class:"binary-input",onBlur:r,onKeyup:rn(r,["enter"])},null,8,["modelValue"]),I("button",{class:"btn install-btn",disabled:n.value,onClick:u},[n.value?(E(),me(h,{key:0,class:"spin"},{default:ne(()=>[G(i(sa))]),_:1})):ae("",!0),Me(" "+ye(n.value?"安装中…":"一键安装 frpc"),1)],8,eue)]),a.value?(E(),z("div",tue,[f[4]||(f[4]=I("span",{class:"info-label"},"当前路径",-1)),I("code",nue,ye(a.value.binaryPath),1),a.value.version?(E(),z("span",oue,ye(a.value.version),1)):ae("",!0)])):ae("",!0)]),I("section",aue,[f[10]||(f[10]=I("h3",{class:"panel-title"},"运行策略",-1)),I("div",lue,[f[7]||(f[7]=I("div",{class:"setting-text"},[I("span",{class:"setting-label"},"自动启动 profile"),I("span",{class:"setting-hint"},"管理器启动时自动拉起所有已启用的 remote")],-1)),G(g,{modelValue:l.value.autoStartProfiles,"onUpdate:modelValue":f[1]||(f[1]=y=>l.value.autoStartProfiles=y),onChange:c},null,8,["modelValue"])]),I("div",sue,[f[8]||(f[8]=I("div",{class:"setting-text"},[I("span",{class:"setting-label"},"异常退出自动重启"),I("span",{class:"setting-hint"},"worker 崩溃后带退避重启")],-1)),G(g,{modelValue:l.value.restartOnExit,"onUpdate:modelValue":f[2]||(f[2]=y=>l.value.restartOnExit=y),onChange:c},null,8,["modelValue"])]),I("div",rue,[f[9]||(f[9]=I("div",{class:"setting-text"},[I("span",{class:"setting-label"},"重启间隔(秒)"),I("span",{class:"setting-hint"},"崩溃重启的指数退避基数")],-1)),G(p,{modelValue:l.value.restartIntervalSeconds,"onUpdate:modelValue":f[3]||(f[3]=y=>l.value.restartIntervalSeconds=y),min:1,max:3600,onChange:c},null,8,["modelValue"])])])])),[[m,t.value]])])}}}),uue=Ll(iue,[["__scopeId","data-v-8b757323"]]),cue={class:"status-page"},due={key:0,class:"kpis"},fue={class:"w4f-kpi"},pue={class:"k-hdr"},vue={class:"k-lab"},hue={class:"k-val"},mue={class:"k-sub"},gue={class:"w4f-kpi"},yue={class:"k-hdr"},bue={class:"k-lab"},wue={class:"k-val"},Sue={class:"w4f-kpi"},Cue={class:"k-val"},kue={class:"w4f-kpi"},xue={class:"k-hdr"},Eue={class:"k-lab"},$ue={class:"k-val"},Tue={key:1,class:"status-body"},_ue={class:"section-title"},Nue={class:"grp-count"},Iue={class:"grp-actions"},Oue=["onClick"],Mue=["onClick"],Pue=["onClick"],Rue={class:"card-grid"},Aue={class:"fwd-head"},Due=["title"],Lue={class:"fwd-route"},Vue={key:0,class:"fwd-ip"},Bue={class:"fwd-port"},Fue={key:0,class:"w4f-tag w4f-tag-primary"},zue=["onClick","title"],Hue=["title"],Kue={class:"fwd-actions"},Wue=["onClick"],jue=["onClick"],Uue={key:0,class:"empty"},Yue={key:0,class:"empty"},que={class:"section"},Gue={class:"card-grid"},Xue={class:"nc-head"},Zue={class:"nc-name"},Jue={class:"nc-actions"},Que=["onClick"],ece=["onClick"],tce={class:"nc-meta"},nce={key:0,class:"meta-pill"},oce={key:1,class:"meta-pill warn"},ace=["title"],lce={key:3,class:"meta-pill info"},sce={key:0,class:"nc-forwards"},rce={key:1,class:"nc-groups"},ice={class:"w4f-tag w4f-tag-info"},uce={key:2,class:"nc-proxies"},cce={class:"np-name"},dce={class:"np-status"},fce={key:0,class:"np-addr"},pce=["title"],vce={key:3,class:"nc-proxies-empty"},hce={key:0,class:"empty"},mce={class:"section"},gce={class:"card-grid"},yce={class:"lc-head"},bce={class:"lc-name"},wce={class:"lc-addr"},Sce={class:"w4f-tag w4f-tag-primary"},Cce={key:0,class:"w4f-tag w4f-tag-ok"},kce={class:"lc-targets"},xce={class:"lc-remote"},Ece={class:"lc-port"},$ce={key:0,class:"lc-none"},Tce={key:0,class:"empty"},_ce={class:"form-row"},Nce={class:"form-row"},Ice={class:"form-row"},Oce={class:"form-row"},Mce={class:"form-row"},Pce={class:"form-row"},Rce=ge({__name:"StatusView",setup(e){const t=F(null);let n=null,o=null;const a=()=>({name:"",ip:"",port:7e3,token:"",url:"",enabled:!0}),l=Kt({visible:!1,isNew:!0,remote:a()}),s=()=>{l.isNew=!0,l.remote=a(),l.visible=!0},r=O=>{const M=t.value?.remotes.find(B=>B.name===O.name);l.isNew=!1,l.remote=M?{...M}:{name:O.name,ip:"",port:7e3,token:"",url:"",enabled:!0},l.visible=!0},u=async()=>{const O=l.remote;if(!O.name||!O.ip||O.port<=0){Ht.warning("请填写名称、IP、端口");return}try{await un.saveRemote(O),l.visible=!1,Ht.success(l.isNew?"节点已添加":"节点已更新"),await y()}catch(M){Ht.error("保存失败: "+(M.message||M))}},c=async O=>{try{await un.forwardStart(O.local,O.remote,O.remotePort),await y()}catch(M){Ht.error("启动转发失败: "+(M.message||M))}},d=async O=>{try{await un.forwardStop(O.local,O.remote,O.remotePort),await y()}catch(M){Ht.error("停止转发失败: "+(M.message||M))}},f=async O=>{try{await un.groupStart(O),await y()}catch(M){Ht.error("启动分组失败: "+(M.message||M))}},v=async O=>{try{await un.groupStop(O),await y()}catch(M){Ht.error("停止分组失败: "+(M.message||M))}},h=async O=>{const M=new Set;for(const L of t.value?.forwards??[])L.group&&M.add(L.group);const B=M.size?`现有分组:${[...M].join("、")}(留空=移出分组)`:"输入分组名称(留空=移出分组)";try{const{value:L}=await pl.prompt(B,"修改分组",{inputValue:O.group||"",inputPlaceholder:"分组名称",confirmButtonText:"确定",cancelButtonText:"取消"}),K=(L||"").trim();await un.assignGroup(O.local,O.remote,O.remotePort,K),await y()}catch(L){L!=="cancel"&&L?.message&&Ht.error("修改分组失败: "+(L.message||L))}},g=async O=>{if(window.confirm(`删除分组「${O}」?组内所有转发将移至未分组(转发本身不受影响)。`))try{await un.deleteGroup(O),await y(),Ht.success(`已删除分组「${O}」`)}catch(M){Ht.error("删除分组失败: "+(M.message||M))}},p=O=>O.kind!=="remote"?"":O.ownerId?O.ownerId===t.value?.selfId?"本机持有":"持有 "+O.ownerId:"待分配",m=async O=>{if(window.confirm(`删除远程节点 ${O}?`))try{await un.deleteRemote(O),await y()}catch(M){Ht.error("删除失败: "+(M.message||M))}},y=async()=>{try{t.value=await un.status()}catch{}},b=O=>O==="running",w=C(()=>t.value?.profiles.filter(O=>O.process.state==="running").length??0),S=C(()=>t.value?.profiles.filter(O=>O.connState==="connected").length??0),k=C(()=>(t.value?.profiles.length??0)>0&&S.value===t.value?.profiles.length),x=C(()=>t.value?.forwards.filter(O=>O.active).length??0),$=C(()=>{const O=new Map;for(const M of t.value?.forwards??[]){const B=M.group||"";let L=O.get(B);L||(L=[],O.set(B,L)),L.push(M)}return[...O.entries()].map(([M,B])=>({key:M,label:M||"未分组",items:B})).sort((M,B)=>M.key?B.key?M.label.localeCompare(B.label,"zh"):-1:1)}),T=O=>{switch(O){case"connected":return"已连接";case"connecting":return"连接中";case"failed":return"连接失败";case"disabled":return"已停用";default:return"未启动"}},N=O=>{switch(O){case"connected":return"w4f-tag-ok";case"connecting":return"w4f-tag-info";case"failed":return"w4f-tag-danger";default:return"w4f-tag-warn"}},A=O=>{switch(O){case"connected":return"";case"connecting":return"pending";case"failed":return"err";default:return""}},D=O=>{switch(O){case"running":return"运行中";case"wait start":return"等待启动";case"start error":return"启动错误";case"check failed":return"健康检查失败";case"closed":return"已关闭";default:return"新建"}},_=O=>{switch(O){case"running":return"ok";case"check failed":case"start error":return"err";case"wait start":return"pending";default:return""}},W=O=>O==="running"?"ok":O==="check failed"||O==="start error"?"err":"",V=O=>O==="running"?"100%":O==="wait start"?"45%":O==="new"?"15%":"30%",H=O=>{switch(O){case"running":return"运行中";case"starting":return"启动中";case"restarting":return"重启中";case"crashed":return"异常";default:return"未启动"}},P=O=>t.value?.remotes.find(M=>M.name===O)?.vhostHttpPort||0;return at(()=>{y(),n=window.setInterval(y,2500),o=()=>{document.hidden||y()},document.addEventListener("visibilitychange",o)}),Ft(()=>{n!==null&&(window.clearInterval(n),n=null),o&&(document.removeEventListener("visibilitychange",o),o=null)}),(O,M)=>{const B=yt("el-input"),L=yt("el-input-number"),K=yt("el-switch"),q=yt("el-dialog");return E(),z("div",cue,[I("div",{class:"topbar w4f-card"},[M[8]||(M[8]=I("div",{class:"tb-left"},[I("h2",{class:"page-title"},"状态总览"),I("span",{class:"page-sub"},"每 2.5 秒自动刷新")],-1)),I("div",{class:"tb-right"},[I("button",{class:"w4f-btn ghost small",onClick:y},"⟳ 刷新"),I("button",{class:"w4f-btn small",onClick:s},"+ 添加远程节点")])]),t.value?(E(),z("div",due,[I("div",fue,[I("div",pue,[I("span",vue,[I("span",{class:R(["w4f-dot",{err:!k.value}])},null,2),M[9]||(M[9]=Me("远程节点",-1))]),M[10]||(M[10]=I("span",{class:"k-ic"},"⊕︎",-1))]),I("div",hue,ye(t.value.profiles.length),1),I("div",mue,"在线 "+ye(S.value)+" · 离线 "+ye(t.value.profiles.length-S.value),1)]),I("div",gue,[I("div",yue,[I("span",bue,[I("span",{class:R(["w4f-dot",{err:w.value===0&&t.value.profiles.length>0}])},null,2),M[11]||(M[11]=Me("worker 进程",-1))]),M[12]||(M[12]=I("span",{class:"k-ic"},"⚙︎",-1))]),I("div",wue,ye(w.value),1),M[13]||(M[13]=I("div",{class:"k-sub"},"运行中 frpc 进程数",-1))]),I("div",Sue,[M[14]||(M[14]=I("div",{class:"k-hdr"},[I("span",{class:"k-lab"},[I("span",{class:"w4f-dot"}),Me("本地服务")]),I("span",{class:"k-ic"},"◳")],-1)),I("div",Cue,ye(t.value.localStatus.length),1),M[15]||(M[15]=I("div",{class:"k-sub"},"已配置本地服务",-1))]),I("div",kue,[I("div",xue,[I("span",Eue,[I("span",{class:R(["w4f-dot",{pending:x.value>0}])},null,2),M[16]||(M[16]=Me("活跃转发",-1))]),M[17]||(M[17]=I("span",{class:"k-ic"},"→",-1))]),I("div",$ue,ye(x.value),1),M[18]||(M[18]=I("div",{class:"k-sub"},"已编排转发链路",-1))])])):ae("",!0),t.value?(E(),z("div",Tue,[(E(!0),z(Pe,null,dt($.value,X=>(E(),z("section",{key:X.key||"__none__",class:"section"},[I("h3",_ue,[M[19]||(M[19]=I("span",{class:"k-ic"},"→",-1)),Me(ye(X.label)+" ",1),I("span",Nue,ye(X.items.length)+" 条",1),I("span",Iue,[I("button",{class:"w4f-btn small",onClick:ee=>f(X.key)},"一键启动整组",8,Oue),I("button",{class:"w4f-btn ghost small",onClick:ee=>v(X.key)},"一键停止整组",8,Mue),X.key?(E(),z("button",{key:0,class:"w4f-btn ghost small danger",onClick:ee=>g(X.key)},"删除分组",8,Pue)):ae("",!0)])]),I("div",Rue,[(E(!0),z(Pe,null,dt(X.items,ee=>(E(),z("div",{key:ee.local+":"+ee.remote+":"+ee.remotePort,class:R(["fwd-card w4f-card",{active:ee.active,stopped:ee.disabled}])},[I("div",Aue,[I("span",{class:R(["fwd-kind",ee.kind])},ye(ee.kind==="local"?"本地":"远程"),3),I("span",{class:R(["fwd-dot",{on:ee.active}]),title:ee.active?"运行中":ee.disabled?"已停止":"未运行"},null,10,Due),I("span",Lue,[I("b",null,ye(ee.local),1),ee.localIp?(E(),z("span",Vue,ye(ee.localIp)+":"+ye(ee.localPort),1)):ae("",!0),M[20]||(M[20]=I("span",{class:"fwd-arrow"},"→",-1)),I("b",null,ye(ee.remote),1),M[21]||(M[21]=Me(":",-1)),I("span",Bue,ye(ee.remotePort),1)]),ee.localProto?(E(),z("span",Fue,ye(ee.localProto),1)):ae("",!0),I("span",{class:"w4f-tag w4f-tag-info group-chip",onClick:le=>h(ee),title:"点击修改分组(当前:"+(ee.group||"未分组")+")"},ye(ee.group||"未分组"),9,zue),ee.kind==="remote"?(E(),z("span",{key:1,class:"fwd-owner",title:ee.ownerId||""},ye(p(ee)),9,Hue)):ae("",!0),I("span",Kue,[ee.active?(E(),z("button",{key:1,class:"w4f-btn ghost small",onClick:le=>d(ee)},"停止转发",8,jue)):(E(),z("button",{key:0,class:"w4f-btn small",onClick:le=>c(ee)},"启动转发",8,Wue))])])],2))),128)),X.items.length?ae("",!0):(E(),z("div",Uue,"该组暂无转发"))])]))),128)),t.value.forwards.length?ae("",!0):(E(),z("div",Yue,"尚未配置转发 — 前往「连接配置」画布编排 local→remote 连线")),I("section",que,[M[22]||(M[22]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"⊕"),Me("远程节点状态")],-1)),I("div",Gue,[(E(!0),z(Pe,null,dt(t.value.profiles,X=>(E(),z("div",{key:X.name,class:R(["node-card w4f-card",{healthy:b(X.process.state)}])},[I("div",Xue,[I("span",Zue,ye(X.name),1),I("span",{class:R(["w4f-tag",N(X.connState)])},[I("span",{class:R(["w4f-dot",A(X.connState)])},null,2),Me(ye(T(X.connState)),1)],2),I("span",Jue,[I("button",{class:"w4f-btn ghost small",onClick:ee=>r(X)},"编辑",8,Que),I("button",{class:"w4f-btn danger small",onClick:ee=>m(X.name)},"删除",8,ece)])]),I("div",tce,[X.process.pid?(E(),z("span",nce,"pid "+ye(X.process.pid),1)):ae("",!0),X.process.restartCount?(E(),z("span",oce,"重启 "+ye(X.process.restartCount),1)):ae("",!0),X.process.err?(E(),z("span",{key:2,class:"meta-pill err",title:X.process.err},ye(X.process.err),9,ace)):ae("",!0),P(X.name)?(E(),z("span",lce,"HTTP :"+ye(P(X.name)),1)):ae("",!0)]),X.forwards.length?(E(),z("div",sce,[(E(!0),z(Pe,null,dt(X.forwards,ee=>(E(),z("span",{key:ee.service,class:"w4f-tag w4f-tag-primary"},ye(ee.service)+" → :"+ye(ee.remotePort),1))),128))])):ae("",!0),X.groupCount?(E(),z("div",rce,[I("span",ice,"LB ×"+ye(X.groupCount),1)])):ae("",!0),X.proxyStates?.length?(E(),z("div",uce,[(E(!0),z(Pe,null,dt(X.proxyStates,ee=>(E(),z("div",{key:ee.name,class:R(["nc-proxy",_(ee.status)])},[I("span",cce,ye(ee.name),1),I("span",dce,ye(D(ee.status)),1),I("div",{class:R(["w4f-bar",W(ee.status)])},[I("i",{style:Be({width:V(ee.status)})},null,4)],2),ee.remote_addr?(E(),z("span",fce,ye(ee.remote_addr),1)):ae("",!0),ee.err?(E(),z("span",{key:1,class:"np-err",title:ee.err},ye(ee.err),9,pce)):ae("",!0)],2))),128))])):X.adminEnabled?(E(),z("div",vce," 管理 API 未返回状态(frpc 未连上远程 frps 或无代理) ")):ae("",!0)],2))),128)),t.value.profiles.length?ae("",!0):(E(),z("div",hce,"尚未配置远程节点 — 点击右上「+ 添加远程节点」"))])]),I("section",mce,[M[24]||(M[24]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"◳"),Me("本地服务")],-1)),I("div",gce,[(E(!0),z(Pe,null,dt(t.value.localStatus,X=>(E(),z("div",{key:X.local.name,class:"local-card w4f-card"},[I("div",yce,[I("span",bce,ye(X.local.name),1),I("span",wce,ye(X.local.ip)+":"+ye(X.local.port),1),I("span",Sce,ye(X.local.protocol),1),X.local.localOnly?(E(),z("span",Cce,"本地")):ae("",!0)]),I("div",kce,[(E(!0),z(Pe,null,dt(X.targets,ee=>(E(),z("div",{key:ee.remote+":"+ee.remotePort,class:"lc-target"},[M[23]||(M[23]=I("span",{class:"lc-arrow"},"→",-1)),I("span",xce,ye(ee.remote),1),I("span",Ece,":"+ye(ee.remotePort),1),I("span",{class:R(["w4f-tag",b(ee.workerState)?"w4f-tag-ok":"w4f-tag-danger"])},ye(H(ee.workerState)),3)]))),128)),X.targets.length?ae("",!0):(E(),z("div",$ce,"未转发"))])]))),128)),t.value.localStatus.length?ae("",!0):(E(),z("div",Tce,"尚未配置本地服务 — 前往「连接配置」画布编排"))])])])):ae("",!0),G(q,{modelValue:l.visible,"onUpdate:modelValue":M[7]||(M[7]=X=>l.visible=X),title:l.isNew?"添加远程节点":"编辑远程节点",width:"440px"},{footer:ne(()=>[I("button",{class:"w4f-btn ghost small",onClick:M[6]||(M[6]=X=>l.visible=!1)},"取消"),I("button",{class:"w4f-btn small",onClick:u},"保存")]),default:ne(()=>[I("div",_ce,[M[25]||(M[25]=I("label",null,"名称",-1)),G(B,{modelValue:l.remote.name,"onUpdate:modelValue":M[0]||(M[0]=X=>l.remote.name=X),disabled:!l.isNew,placeholder:"如 aliyun-hz"},null,8,["modelValue","disabled"])]),I("div",Nce,[M[26]||(M[26]=I("label",null,"服务器 IP",-1)),G(B,{modelValue:l.remote.ip,"onUpdate:modelValue":M[1]||(M[1]=X=>l.remote.ip=X),placeholder:"frps 地址"},null,8,["modelValue"])]),I("div",Ice,[M[27]||(M[27]=I("label",null,"端口",-1)),G(L,{modelValue:l.remote.port,"onUpdate:modelValue":M[2]||(M[2]=X=>l.remote.port=X),min:1,max:65535},null,8,["modelValue"])]),I("div",Oce,[M[28]||(M[28]=I("label",null,"Token",-1)),G(B,{modelValue:l.remote.token,"onUpdate:modelValue":M[3]||(M[3]=X=>l.remote.token=X),placeholder:"可选"},null,8,["modelValue"])]),I("div",Mce,[M[29]||(M[29]=I("label",null,"URL",-1)),G(B,{modelValue:l.remote.url,"onUpdate:modelValue":M[4]||(M[4]=X=>l.remote.url=X),placeholder:"可选"},null,8,["modelValue"])]),I("div",Pce,[M[30]||(M[30]=I("label",null,"启用",-1)),G(K,{modelValue:l.remote.enabled,"onUpdate:modelValue":M[5]||(M[5]=X=>l.remote.enabled=X)},null,8,["modelValue"])])]),_:1},8,["modelValue","title"])])}}}),Ace=Ll(Rce,[["__scopeId","data-v-936b1b43"]]),Dce={class:"cluster-page"},Lce={class:"hero w4f-card"},Vce={key:0,class:"hero-stats"},Bce={class:"w4f-tag w4f-tag-info"},Fce=["title"],zce={key:0,class:"w4f-tag w4f-tag-primary"},Hce={key:1,class:"nodekey-bar"},Kce={class:"nk-value"},Wce={key:0,class:"kpis"},jce={class:"w4f-kpi"},Uce={class:"k-hdr"},Yce={class:"k-lab"},qce={class:"k-val"},Gce={class:"k-sub"},Xce={class:"w4f-kpi"},Zce={class:"k-val"},Jce={class:"w4f-kpi"},Qce={class:"k-hdr"},ede={class:"k-lab"},tde={class:"k-val"},nde={class:"w4f-kpi"},ode={class:"k-hdr"},ade={class:"k-lab"},lde={class:"k-val"},sde={class:"toolbar w4f-card"},rde=["disabled"],ide=["disabled"],ude={key:0,class:"act-hint"},cde={key:1,class:"act-hint"},dde=["disabled"],fde=["disabled"],pde={key:1,class:"cluster-body"},vde={class:"section w4f-card"},hde={class:"ring-line"},mde={class:"rn-top"},gde={class:"rn-id"},yde={key:0,class:"w4f-tag w4f-tag-primary"},bde={key:1,class:"w4f-tag w4f-tag-info"},wde={key:2,class:"w4f-tag w4f-tag-danger"},Sde={class:"rn-load-row"},Cde={class:"rn-load-label"},kde={class:"w4f-bar"},xde={class:"rn-addr"},Ede=["disabled","onClick"],$de={key:0,class:"ring-arrow"},Tde={key:0,class:"empty"},_de={key:0,class:"section w4f-card"},Nde={class:"task-list"},Ide={class:"tk-id"},Ode={class:"tk-name"},Mde={class:"tk-name"},Pde={class:"tk-name"},Rde={class:"tk-port"},Ade={class:"section w4f-card"},Dde={class:"topo-list"},Lde={class:"tp-id"},Vde={class:"tp-name"},Bde={class:"tp-name"},Fde={class:"tp-port"},zde={key:0,class:"empty"},Hde={class:"section w4f-card"},Kde={class:"section-title"},Wde={key:0,class:"log-count"},jde={class:"title-actions"},Ude=["disabled"],Yde=["disabled"],qde={class:"log-list"},Gde={class:"lg-seq"},Xde={class:"lg-time"},Zde={class:"lg-kind"},Jde={class:"lg-detail"},Qde={key:0,class:"empty"},efe={key:2,class:"empty-page w4f-card"},tfe={class:"form-row"},nfe={class:"form-row"},ofe=["disabled"],afe=ge({__name:"ClusterView",setup(e){const t=F(null),n=F(!1);let o=null,a=null;const l=Kt({visible:!1,addr:"",key:""}),s=async()=>{try{t.value=await un.ring()}catch{}},r=B=>B.length>22?"…"+B.slice(-20):B,u=async()=>{const B=t.value?.nodeKey;if(B)try{await navigator.clipboard.writeText(B),Ht.success("已复制加入密钥")}catch{Ht.error("复制失败,请手动选中复制")}},c=C(()=>!!t.value?.nodes.some(B=>B.id===t.value?.selfId)),d=C(()=>t.value?.nodes.filter(B=>B.alive).length??0),f=C(()=>d.value<=1||!c.value),v=C(()=>!!t.value&&t.value.nodes.length>1&&c.value),h=C(()=>!!t.value&&t.value.selfId===t.value.leaderId),g=C(()=>t.value?c.value?v.value?"运行中":"待加入":"已脱离":"未启动"),p=C(()=>t.value?c.value?v.value?"w4f-tag-ok":"w4f-tag-info":"w4f-tag-danger":"w4f-tag-warn"),m=C(()=>t.value?c.value?v.value?"":"pending":"err":""),y=F(Date.now());let b=null;const w=C(()=>{const B=t.value?.lastSync??0;if(!B)return"—";const L=Math.max(0,Math.floor(y.value/1e3)-B);return L<2?"刚刚":L<60?L+" 秒前":L<3600?Math.floor(L/60)+" 分钟前":Math.floor(L/3600)+" 小时前"}),S=C(()=>{const B=t.value?.lastSync??0;return B?Math.floor(y.value/1e3)-B>15:!1}),k=B=>{switch(B){case"forward.add":return"新增转发";case"forward.remove":return"撤销转发";case"node.join":return"节点加入";case"node.leave":return"节点离开";case"leader.change":return"leader 变更";default:return B}},x=B=>{switch(B){case"forward.add":return"add";case"forward.remove":return"remove";case"node.join":return"join";case"node.leave":return"leave";case"leader.change":return"leader";default:return""}},$=C(()=>[...t.value?.log??[]].reverse()),T=B=>{if(!B)return"--:--:--";const L=new Date(B*1e3),K=q=>String(q).padStart(2,"0");return`${K(L.getHours())}:${K(L.getMinutes())}:${K(L.getSeconds())}`},N=B=>{const L=B.data||{};switch(B.kind){case"forward.add":case"forward.remove":return`${L.local||"?"} → ${L.remote||"?"}${L.taskId?" · "+String(L.taskId).slice(-8):""}`;case"node.join":return`${L.node||"?"} @ ${L.addr||"?"}`;case"node.leave":return`${L.node||"?"}`;case"leader.change":return`→ ${L.leader||"?"}`;default:return L&&Object.keys(L).length?JSON.stringify(L):""}},A=B=>{const L=[...t.value?.log??[]].sort((ve,we)=>ve.seq-we.seq);if(!L.length)return;let K="",q="text/plain",X="log";if(B==="json")K=JSON.stringify(L,null,2),q="application/json",X="json";else{const ve="#seq time node kind detail",we=L.map(Se=>`#${Se.seq} ${T(Se.at)} ${r(Se.node)} ${Se.kind} ${N(Se)}`);K=[ve,...we].join(` +`)}const ee=new Blob([K],{type:q}),le=URL.createObjectURL(ee),Z=document.createElement("a");Z.href=le,Z.download=`cluster-log-${new Date().toISOString().slice(0,19).replace(/[:T]/g,"")}.${X}`,document.body.appendChild(Z),Z.click(),document.body.removeChild(Z),URL.revokeObjectURL(le)},D=F(!1),_=async()=>{D.value=!0;try{const B=await un.exportWorkerLogs(),L=new Blob([JSON.stringify(B,null,2)],{type:"application/json"}),K=URL.createObjectURL(L),q=document.createElement("a");q.href=K,q.download=`worker-logs-${new Date().toISOString().slice(0,19).replace(/[:T]/g,"")}.json`,document.body.appendChild(q),q.click(),document.body.removeChild(q),URL.revokeObjectURL(K);const X=(B.nodes||[]).filter(ee=>ee.ok).length;Ht.success(`已导出 worker 日志(${X}/${B.nodes?.length??0} 节点)`)}catch(B){Ht.error("导出失败: "+(B.message||B))}finally{D.value=!1}},W=B=>B.removeNode?"remove":B.revoke?"revoke":"pending",V=B=>B.removeNode?"移除节点":B.revoke?"撤销":"新增",H=async()=>{n.value=!0;try{t.value=await un.clusterCreate(),Ht.success("已创建集群(本节点为初始 leader)")}catch(B){Ht.error("创建失败: "+(B.message||B))}finally{n.value=!1,await s()}},P=async()=>{const B=l.addr.trim(),L=l.key.trim();if(!(!B||!L)){n.value=!0;try{t.value=await un.clusterJoinRing(B,L),l.visible=!1,l.addr="",l.key="",Ht.success(`已加入 ${B}`)}catch(K){Ht.error("加入失败: "+(K.message||K))}finally{n.value=!1,await s()}}},O=async()=>{if(t.value&&window.confirm("退出集群?本节点将取消一切集群远程转发并脱离环。")){n.value=!0;try{await un.clusterRemoveNode(t.value.selfId),Ht.success("退出指令已发布")}catch(B){Ht.error("退出失败: "+(B.message||B))}finally{n.value=!1,await s()}}},M=async B=>{if(window.confirm(`移除节点 ${r(B)} 出集群?`)){n.value=!0;try{await un.clusterRemoveNode(B),Ht.success("移除指令已发布")}catch(L){Ht.error("移除失败: "+(L.message||L))}finally{n.value=!1,await s()}}};return at(()=>{s(),o=window.setInterval(s,2e3),b=window.setInterval(()=>{y.value=Date.now()},1e3),a=()=>{document.hidden||s()},document.addEventListener("visibilitychange",a)}),Ft(()=>{o!==null&&(clearInterval(o),o=null),b!==null&&(clearInterval(b),b=null),a&&(document.removeEventListener("visibilitychange",a),a=null)}),(B,L)=>{const K=yt("el-dropdown-item"),q=yt("el-dropdown-menu"),X=yt("el-dropdown"),ee=yt("el-input"),le=yt("el-dialog");return E(),z("div",Dce,[I("div",Lce,[L[10]||(L[10]=I("div",{class:"hero-left"},[I("h2",{class:"page-title"},"集群令牌环"),I("span",{class:"page-sub"},"令牌环网 · 转发编排")],-1)),t.value?(E(),z("div",Vce,[I("span",{class:R(["w4f-tag",p.value])},[I("span",{class:R(["w4f-dot",m.value])},null,2),Me(ye(g.value),1)],2),I("span",Bce,[I("b",null,ye(d.value),1),L[5]||(L[5]=Me(" 成员",-1))]),I("span",{class:"w4f-tag w4f-tag-primary",title:"cycle "+t.value.cycle},[L[6]||(L[6]=Me("上次同步 ",-1)),I("b",null,ye(w.value),1)],8,Fce),h.value?(E(),z("span",zce,[...L[7]||(L[7]=[I("span",{class:"crown"},"♔",-1),Me(" 本机 leader",-1)])])):ae("",!0)])):ae("",!0),t.value?.nodeKey?(E(),z("div",Hce,[L[8]||(L[8]=I("span",{class:"nk-label"},"本节点加入密钥",-1)),I("code",Kce,ye(t.value.nodeKey),1),I("button",{class:"w4f-btn ghost small",onClick:u},"复制"),L[9]||(L[9]=I("span",{class:"nk-hint"},"其他节点通过本节点加入集群时需提供此密钥",-1))])):ae("",!0)]),t.value?(E(),z("div",Wce,[I("div",jce,[I("div",Uce,[I("span",Yce,[I("span",{class:R(["w4f-dot",{err:d.value===0}])},null,2),L[11]||(L[11]=Me("环节点",-1))]),L[12]||(L[12]=I("span",{class:"k-ic"},"○",-1))]),I("div",qce,ye(t.value.nodes.length),1),I("div",Gce,"活跃 "+ye(d.value)+" · 离线 "+ye(t.value.nodes.length-d.value),1)]),I("div",Xce,[L[13]||(L[13]=I("div",{class:"k-hdr"},[I("span",{class:"k-lab"},[I("span",{class:"w4f-dot"}),Me("活跃转发")]),I("span",{class:"k-ic"},"→")],-1)),I("div",Zce,ye(t.value.topology.length),1)]),I("div",Jce,[I("div",Qce,[I("span",ede,[I("span",{class:R(["w4f-dot",{pending:t.value.pending.length>0}])},null,2),L[14]||(L[14]=Me("待办命令",-1))]),L[15]||(L[15]=I("span",{class:"k-ic"},"⚙︎",-1))]),I("div",tde,ye(t.value.pending.length),1)]),I("div",nde,[I("div",ode,[I("span",ade,[I("span",{class:R(["w4f-dot",{err:S.value}])},null,2),L[16]||(L[16]=Me("上次同步",-1))]),L[17]||(L[17]=I("span",{class:"k-ic"},"⟳",-1))]),I("div",lde,ye(w.value),1)])])):ae("",!0),I("div",sde,[v.value?(E(),z(Pe,{key:1},[I("button",{class:"w4f-btn danger",disabled:n.value,onClick:O},"⏏ 退出集群",8,dde),L[18]||(L[18]=I("span",{class:"act-hint"},"退出后本节点仅保留 localOnly 转发;可重新创建/加入",-1))],64)):(E(),z(Pe,{key:0},[I("button",{class:"w4f-btn",disabled:n.value,onClick:H},"⊕ 创建集群",8,rde),I("button",{class:"w4f-btn ghost",disabled:n.value,onClick:L[0]||(L[0]=Z=>l.visible=!0)},"↪ 加入集群…",8,ide),f.value&&h.value?(E(),z("span",ude,"本节点为初始 leader,已就绪;可直接创建,或输入对端地址加入既有集群")):c.value?ae("",!0):(E(),z("span",cde,"本节点已脱离集群,可创建新集群或加入既有集群"))],64)),I("button",{class:"w4f-btn ghost small",style:{"margin-left":"auto"},disabled:n.value,onClick:s},"⟳ 刷新",8,fde)]),t.value?(E(),z("div",pde,[I("section",vde,[L[19]||(L[19]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"○"),Me("环拓扑")],-1)),I("div",hde,[(E(!0),z(Pe,null,dt(t.value.nodes,(Z,ve)=>(E(),z(Pe,{key:Z.id},[I("div",{class:R(["ring-node",{leader:Z.id===t.value.leaderId,dead:!Z.alive,self:Z.id===t.value.selfId}])},[I("div",mde,[I("span",gde,ye(r(Z.id)),1),Z.id===t.value.selfId?(E(),z("span",yde,"本机")):ae("",!0),Z.id===t.value.leaderId?(E(),z("span",bde,"LEADER")):ae("",!0),Z.alive?ae("",!0):(E(),z("span",wde,"离线"))]),I("div",Sde,[I("span",Cde,"负载 "+ye(Math.round(Z.load.memPct+Z.load.netPct)),1),I("div",kde,[I("i",{style:Be({width:Math.min(100,Z.load.memPct+Z.load.netPct)+"%"})},null,4)])]),I("div",xde,ye(Z.addr),1),Z.id!==t.value.selfId&&Z.alive?(E(),z("button",{key:0,class:"w4f-btn danger small rn-remove",disabled:n.value,onClick:we=>M(Z.id)},"移除节点",8,Ede)):ae("",!0)],2),ve(E(),z("div",{key:Z.id,class:R(["task-row",W(Z)])},[I("span",Ide,ye(Z.id),1),I("span",{class:R(["w4f-tag",Z.removeNode||Z.revoke?"w4f-tag-danger":"w4f-tag-primary"])},ye(V(Z)),3),Z.removeNode?(E(),z(Pe,{key:0},[L[20]||(L[20]=I("span",{class:"tk-arrow"},"→",-1)),I("span",Ode,"移除节点 "+ye(r(Z.removeNode)),1)],64)):(E(),z(Pe,{key:1},[I("span",Mde,ye(Z.local.name),1),L[21]||(L[21]=I("span",{class:"tk-arrow"},"→",-1)),I("span",Pde,ye(Z.remote.name),1),I("span",Rde,":"+ye(Z.link?.remotePort),1)],64))],2))),128))])])):ae("",!0),I("section",Ade,[L[24]||(L[24]=I("h3",{class:"section-title"},[I("span",{class:"k-ic"},"→"),Me("活跃转发拓扑")],-1)),I("div",Dde,[(E(!0),z(Pe,null,dt(t.value.topology,Z=>(E(),z("div",{key:Z.taskId,class:"topo-row"},[I("span",Lde,ye(Z.taskId),1),I("span",Vde,ye(Z.local.name),1),L[23]||(L[23]=I("span",{class:"tk-arrow"},"→",-1)),I("span",Bde,ye(Z.remote.name),1),I("span",Fde,":"+ye(Z.link?.remotePort),1),I("span",{class:R(["tp-owner",{self:Z.ownerId===t.value.selfId}])},"owner: "+ye(r(Z.ownerId)),3),I("span",{class:R(["w4f-tag",Z.active?"w4f-tag-ok":"w4f-tag-danger"])},ye(Z.active?"运行中":"已停"),3)]))),128)),t.value.topology.length?ae("",!0):(E(),z("div",zde,"暂无活跃转发(画布编辑后将经令牌分发)"))])]),I("section",Hde,[I("h3",Kde,[L[27]||(L[27]=I("span",{class:"k-ic"},"≣",-1)),L[28]||(L[28]=Me("集群日志 ",-1)),t.value.log.length?(E(),z("span",Wde,ye(t.value.log.length)+" 条",1)):ae("",!0),I("div",jde,[G(X,{trigger:"click",onCommand:A,disabled:!t.value.log.length},{dropdown:ne(()=>[G(q,null,{default:ne(()=>[G(K,{command:"json"},{default:ne(()=>[...L[25]||(L[25]=[Me("JSON(完整结构)",-1)])]),_:1}),G(K,{command:"txt"},{default:ne(()=>[...L[26]||(L[26]=[Me("文本(可读 TSV)",-1)])]),_:1})]),_:1})]),default:ne(()=>[I("button",{class:"w4f-btn ghost small",disabled:!t.value.log.length},"⤓ 导出",8,Ude)]),_:1},8,["disabled"]),I("button",{class:"w4f-btn ghost small",disabled:D.value,onClick:_}," ⤓ 导出 worker 日志 ",8,Yde)])]),I("div",qde,[(E(!0),z(Pe,null,dt($.value,Z=>(E(),z("div",{key:Z.seq,class:R(["log-row",x(Z.kind)])},[I("span",Gde,"#"+ye(Z.seq),1),I("span",Xde,ye(T(Z.at)),1),I("span",{class:R(["lg-node",{self:Z.node===t.value.selfId}])},ye(r(Z.node)),3),I("span",Zde,ye(k(Z.kind)),1),I("span",Jde,ye(N(Z)),1)],2))),128)),$.value.length?ae("",!0):(E(),z("div",Qde,"日志为空"))])])])):(E(),z("div",efe,"集群未启动(无环节点)")),G(le,{modelValue:l.visible,"onUpdate:modelValue":L[4]||(L[4]=Z=>l.visible=Z),title:"加入集群",width:"420px"},{footer:ne(()=>[I("button",{class:"w4f-btn ghost small",onClick:L[3]||(L[3]=Z=>l.visible=!1)},"取消"),I("button",{class:"w4f-btn small",disabled:n.value||!l.addr.trim()||!l.key.trim(),onClick:P},"加入",8,ofe)]),default:ne(()=>[I("div",tfe,[L[29]||(L[29]=I("label",null,"对端地址",-1)),G(ee,{modelValue:l.addr,"onUpdate:modelValue":L[1]||(L[1]=Z=>l.addr=Z),placeholder:"对端 IP:port(如 192.168.1.10:7500)",onKeyup:rn(P,["enter"])},null,8,["modelValue"])]),I("div",nfe,[L[30]||(L[30]=I("label",null,"加入密钥",-1)),G(ee,{modelValue:l.key,"onUpdate:modelValue":L[2]||(L[2]=Z=>l.key=Z),placeholder:"对端节点的加入密钥(nodeKey)",onKeyup:rn(P,["enter"])},null,8,["modelValue"])]),L[31]||(L[31]=I("div",{class:"form-hint"},"填入对端节点可被本机路由到达的真实 IP:port(或域名:port),本节点将向对端请求加入并采纳其环状态,令牌到达即并入环。需提供对端节点的加入密钥以通过验证。",-1))]),_:1},8,["modelValue"])])}}}),lfe=Ll(afe,[["__scopeId","data-v-d22f401e"]]),sfe={class:"users-view"},rfe={class:"card"},ife={class:"card-h"},ufe={key:1,class:"muted"},cfe={class:"card"},dfe={class:"card-h"},ffe={class:"muted"},pfe={key:1,class:"key-result"},vfe=ge({__name:"UsersView",setup(e){const t=F([]),n=F([]),o=async()=>{const T=await un.listUsers();t.value=T.users},a=async()=>{const T=await un.listApiKeys();n.value=T.apiKeys};at(async()=>{await Promise.all([o(),a()])});const l=T=>T?new Date(T*1e3).toLocaleString("zh-CN",{hour12:!1}):"—",s=T=>t.value.find(N=>N.id===T)?.username??`#${T}`,r=T=>T==="admin"?"danger":T==="write"?"warning":"info",u=F(!1),c=F(null),d=F(!1),f=F({username:"",password:"",role:"viewer",enabled:!0}),v=()=>{c.value=null,f.value={username:"",password:"",role:"viewer",enabled:!0},u.value=!0},h=T=>{c.value=T,f.value={username:T.username,password:"",role:T.role,enabled:T.enabled},u.value=!0},g=async()=>{d.value=!0;try{if(c.value){const T={role:f.value.role,enabled:f.value.enabled};f.value.password&&(T.password=f.value.password),await un.updateUser(c.value.username,T),Ht.success("已更新")}else{if(!f.value.username||!f.value.password){Ht.warning("用户名和密码必填"),d.value=!1;return}await un.createUser(f.value.username,f.value.password,f.value.role),Ht.success("已创建")}u.value=!1,await o()}catch(T){Ht.error("失败: "+(T.message||T))}finally{d.value=!1}},p=async T=>{try{await pl.confirm(`确认删除账号 ${T.username}?`,"删除账号",{type:"warning"})}catch{return}try{await un.deleteUser(T.username),Ht.success("已删除"),await o()}catch(N){Ht.error("删除失败: "+(N.message||N))}},m=F(!1),y=F(!1),b=F(""),w=F({userId:0,label:"",scope:"read"}),S=()=>{w.value={userId:t.value.find(T=>!T.system)?.id??t.value[0]?.id??0,label:"",scope:"read"},b.value="",m.value=!0},k=async()=>{if(!w.value.userId){Ht.warning("请选择归属用户");return}y.value=!0;try{const T=await un.createApiKey(w.value.userId,w.value.label,w.value.scope);b.value=T.key,await a()}catch(T){Ht.error("创建失败: "+(T.message||T))}finally{y.value=!1}},x=async()=>{try{await navigator.clipboard.writeText(b.value),Ht.success("已复制")}catch{Ht.warning("复制失败,请手动选择")}},$=async T=>{try{await pl.confirm(`确认吊销密钥 ${T.label} (${T.prefix}…)?`,"吊销密钥",{type:"warning"})}catch{return}try{await un.deleteApiKey(T.id),Ht.success("已吊销"),await a()}catch(N){Ht.error("吊销失败: "+(N.message||N))}};return(T,N)=>{const A=yt("el-button"),D=yt("el-table-column"),_=yt("el-tag"),W=yt("el-table"),V=yt("el-input"),H=yt("el-form-item"),P=yt("el-option"),O=yt("el-select"),M=yt("el-switch"),B=yt("el-form"),L=yt("el-dialog");return E(),z("div",sfe,[I("section",rfe,[I("header",ife,[N[15]||(N[15]=I("h3",null,"账号",-1)),G(A,{type:"primary",size:"small",onClick:v},{default:ne(()=>[...N[14]||(N[14]=[Me("+ 新建账号",-1)])]),_:1})]),G(W,{data:t.value,size:"small",stripe:"","empty-text":"暂无账号"},{default:ne(()=>[G(D,{prop:"username",label:"用户名","min-width":"140"}),G(D,{label:"角色",width:"110"},{default:ne(({row:K})=>[G(_,{size:"small",type:K.role==="admin"?"danger":"info"},{default:ne(()=>[Me(ye(K.role==="admin"?"管理员":"审计(viewer)"),1)]),_:2},1032,["type"])]),_:1}),G(D,{label:"状态",width:"90"},{default:ne(({row:K})=>[G(_,{size:"small",type:K.enabled?"success":"warning"},{default:ne(()=>[Me(ye(K.enabled?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),G(D,{label:"来源",width:"110"},{default:ne(({row:K})=>[K.system?(E(),me(_,{key:0,size:"small",type:"warning"},{default:ne(()=>[...N[16]||(N[16]=[Me("内置(flag)",-1)])]),_:1})):(E(),z("span",ufe,"手动"))]),_:1}),G(D,{label:"创建时间",width:"170"},{default:ne(({row:K})=>[Me(ye(l(K.createdAt)),1)]),_:1}),G(D,{label:"最后登录",width:"170"},{default:ne(({row:K})=>[Me(ye(K.lastLoginAt?l(K.lastLoginAt):"—"),1)]),_:1}),G(D,{label:"操作",width:"180",fixed:"right"},{default:ne(({row:K})=>[G(A,{size:"small",onClick:q=>h(K),disabled:K.system},{default:ne(()=>[...N[17]||(N[17]=[Me("编辑",-1)])]),_:1},8,["onClick","disabled"]),G(A,{size:"small",type:"danger",plain:"",onClick:q=>p(K),disabled:K.system},{default:ne(()=>[...N[18]||(N[18]=[Me(" 删除 ",-1)])]),_:1},8,["onClick","disabled"])]),_:1})]),_:1},8,["data"])]),I("section",cfe,[I("header",dfe,[N[20]||(N[20]=I("h3",null,"API 密钥",-1)),G(A,{type:"primary",size:"small",onClick:S},{default:ne(()=>[...N[19]||(N[19]=[Me("+ 新建密钥",-1)])]),_:1})]),G(W,{data:n.value,size:"small",stripe:"","empty-text":"暂无密钥"},{default:ne(()=>[G(D,{prop:"label",label:"标签","min-width":"140"}),G(D,{label:"作用域",width:"100"},{default:ne(({row:K})=>[G(_,{size:"small",type:r(K.scope)},{default:ne(()=>[Me(ye(K.scope),1)]),_:2},1032,["type"])]),_:1}),G(D,{label:"归属用户",width:"140"},{default:ne(({row:K})=>[Me(ye(s(K.userId)),1)]),_:1}),G(D,{prop:"prefix",label:"前缀",width:"120"}),G(D,{label:"创建时间",width:"170"},{default:ne(({row:K})=>[Me(ye(l(K.createdAt)),1)]),_:1}),G(D,{label:"最近使用",width:"170"},{default:ne(({row:K})=>[Me(ye(K.lastUsedAt?l(K.lastUsedAt):"—"),1)]),_:1}),G(D,{label:"操作",width:"110",fixed:"right"},{default:ne(({row:K})=>[G(A,{size:"small",type:"danger",plain:"",onClick:q=>$(K)},{default:ne(()=>[...N[21]||(N[21]=[Me("吊销",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])]),G(L,{modelValue:u.value,"onUpdate:modelValue":N[6]||(N[6]=K=>u.value=K),title:c.value?"编辑账号":"新建账号",width:"420px"},{footer:ne(()=>[G(A,{onClick:N[5]||(N[5]=K=>u.value=!1)},{default:ne(()=>[...N[22]||(N[22]=[Me("取消",-1)])]),_:1}),G(A,{type:"primary",onClick:g,loading:d.value},{default:ne(()=>[...N[23]||(N[23]=[Me("保存",-1)])]),_:1},8,["loading"])]),default:ne(()=>[G(B,{"label-width":"86px",onSubmit:N[4]||(N[4]=Ge(()=>{},["prevent"]))},{default:ne(()=>[c.value?(E(),me(H,{key:1,label:"用户名"},{default:ne(()=>[I("span",ffe,ye(f.value.username),1)]),_:1})):(E(),me(H,{key:0,label:"用户名"},{default:ne(()=>[G(V,{modelValue:f.value.username,"onUpdate:modelValue":N[0]||(N[0]=K=>f.value.username=K),autocomplete:"off"},null,8,["modelValue"])]),_:1})),G(H,{label:c.value?"新密码":"密码"},{default:ne(()=>[G(V,{modelValue:f.value.password,"onUpdate:modelValue":N[1]||(N[1]=K=>f.value.password=K),type:"password","show-password":"",placeholder:c.value?"留空则不改":"",autocomplete:"new-password"},null,8,["modelValue","placeholder"])]),_:1},8,["label"]),G(H,{label:"角色"},{default:ne(()=>[G(O,{modelValue:f.value.role,"onUpdate:modelValue":N[2]||(N[2]=K=>f.value.role=K),disabled:c.value&&c.value?.system},{default:ne(()=>[G(P,{label:"管理员 (admin)",value:"admin"}),G(P,{label:"审计 (viewer)",value:"viewer"})]),_:1},8,["modelValue","disabled"])]),_:1}),c.value?(E(),me(H,{key:2,label:"启用"},{default:ne(()=>[G(M,{modelValue:f.value.enabled,"onUpdate:modelValue":N[3]||(N[3]=K=>f.value.enabled=K),disabled:c.value?.system},null,8,["modelValue","disabled"])]),_:1})):ae("",!0)]),_:1})]),_:1},8,["modelValue","title"]),G(L,{modelValue:m.value,"onUpdate:modelValue":N[13]||(N[13]=K=>m.value=K),title:"新建 API 密钥",width:"440px"},{footer:ne(()=>[G(A,{onClick:N[12]||(N[12]=K=>m.value=!1)},{default:ne(()=>[Me(ye(b.value?"关闭":"取消"),1)]),_:1}),b.value?ae("",!0):(E(),me(A,{key:0,type:"primary",onClick:k,loading:y.value},{default:ne(()=>[...N[27]||(N[27]=[Me("生成",-1)])]),_:1},8,["loading"]))]),default:ne(()=>[b.value?(E(),z("div",pfe,[N[25]||(N[25]=I("p",{class:"warn"},"密钥仅显示一次,请立即复制保存:",-1)),G(V,{modelValue:b.value,"onUpdate:modelValue":N[11]||(N[11]=K=>b.value=K),readonly:""},{append:ne(()=>[G(A,{onClick:x},{default:ne(()=>[...N[24]||(N[24]=[Me("复制",-1)])]),_:1})]),_:1},8,["modelValue"]),N[26]||(N[26]=I("p",{class:"hint"},[Me("使用方式:请求头 "),I("code",null,"Authorization: Bearer ")],-1))])):(E(),me(B,{key:0,"label-width":"86px",onSubmit:N[10]||(N[10]=Ge(()=>{},["prevent"]))},{default:ne(()=>[G(H,{label:"归属用户"},{default:ne(()=>[G(O,{modelValue:w.value.userId,"onUpdate:modelValue":N[7]||(N[7]=K=>w.value.userId=K),placeholder:"选择用户"},{default:ne(()=>[(E(!0),z(Pe,null,dt(t.value,K=>(E(),me(P,{key:K.id,label:K.username,value:K.id},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),G(H,{label:"标签"},{default:ne(()=>[G(V,{modelValue:w.value.label,"onUpdate:modelValue":N[8]||(N[8]=K=>w.value.label=K),placeholder:"如 ci-deploy"},null,8,["modelValue"])]),_:1}),G(H,{label:"作用域"},{default:ne(()=>[G(O,{modelValue:w.value.scope,"onUpdate:modelValue":N[9]||(N[9]=K=>w.value.scope=K)},{default:ne(()=>[G(P,{label:"read — 只读 + 导出",value:"read"}),G(P,{label:"write — 改转发/worker/设置",value:"write"}),G(P,{label:"admin — 全量 (含账号管理)",value:"admin"})]),_:1},8,["modelValue"])]),_:1})]),_:1}))]),_:1},8,["modelValue"])])}}}),hfe=Ll(vfe,[["__scopeId","data-v-35347cd7"]]),mfe={class:"app-shell"},gfe={class:"sidebar"},yfe={class:"sb-nav"},bfe=["onClick"],wfe=["innerHTML"],Sfe={class:"label"},Cfe={class:"sb-foot"},kfe={key:0,class:"sb-identity"},xfe={class:"id-name"},Efe={class:"sb-theme",role:"group","aria-label":"主题"},$fe={class:"main"},Tfe={class:"breadcrumb"},_fe={class:"crumb"},Nfe={class:"content"},Ife=ge({__name:"App",setup(e){const t=F("status");at(()=>{Die()});const n=C(()=>Gs.value==="admin"?"管理员":Gs.value==="write"?"写":"只读"),a=F(["white","blue","pink"].includes(document.documentElement.getAttribute("data-theme")||"")?document.documentElement.getAttribute("data-theme"):"white"),l=c=>{a.value=c,document.documentElement.setAttribute("data-theme",c),localStorage.setItem("w4f-theme",c)},s=[{key:"status",label:"状态",icon:''},{key:"canvas",label:"连接配置",icon:''},{key:"settings",label:"设置",icon:''},{key:"cluster",label:"集群",icon:''},{key:"users",label:"账号与密钥",adminOnly:!0,icon:''}],r=C(()=>s.filter(c=>!c.adminOnly||Im.value&&Aie.value)),u=C(()=>r.value.find(c=>c.key===t.value)?.label??"");return(c,d)=>(E(),z(Pe,null,[d[4]||(d[4]=I("div",{id:"bgfx","aria-hidden":"true"},[I("i",{class:"blob b1"}),I("i",{class:"blob b2"}),I("i",{class:"blob b3"})],-1)),I("div",mfe,[I("aside",gfe,[d[3]||(d[3]=I("div",{class:"sb-brand"},[I("img",{class:"sb-logo",src:Wte,alt:"webui4frpc"}),I("span",{class:"sb-brand-text"},[I("b",null,"webui4frpc"),I("small",null,"令牌环 · 转发编排")])],-1)),I("nav",yfe,[(E(!0),z(Pe,null,dt(r.value,f=>(E(),z("button",{key:f.key,class:R(["sb-i",{active:t.value===f.key}]),onClick:v=>t.value=f.key},[I("span",{class:"ic",innerHTML:f.icon},null,8,wfe),I("span",Sfe,ye(f.label),1)],10,bfe))),128))]),I("div",Cfe,[i(Im)?(E(),z("div",kfe,[I("span",xfe,ye(i(Nm)||"匿名"),1),I("span",{class:R(["id-level",i(Gs)])},ye(n.value),3)])):ae("",!0),I("div",Efe,[I("button",{class:R(["sw white",{on:a.value==="white"}]),title:"白色",onClick:d[0]||(d[0]=f=>l("white"))},null,2),I("button",{class:R(["sw blue",{on:a.value==="blue"}]),title:"蓝色",onClick:d[1]||(d[1]=f=>l("blue"))},null,2),I("button",{class:R(["sw pink",{on:a.value==="pink"}]),title:"粉色",onClick:d[2]||(d[2]=f=>l("pink"))},null,2)])])]),I("div",$fe,[I("div",Tfe,[I("span",_fe,ye(u.value),1)]),I("main",Nfe,[t.value==="canvas"?(E(),me(Gie,{key:0})):t.value==="settings"?(E(),me(uue,{key:1})):t.value==="cluster"?(E(),me(lfe,{key:2})):t.value==="users"?(E(),me(hfe,{key:3})):(E(),me(Ace,{key:4}))])])])],64))}}),Ofe=Ll(Ife,[["__scopeId","data-v-48c4803f"]]);(function(){try{const t=localStorage.getItem("w4f-theme");(t==="blue"||t==="pink")&&document.documentElement.setAttribute("data-theme",t)}catch{}})();const Qy=ik(Ofe);Qy.use(aO());Qy.use(Kte);Qy.mount("#app")});export default Mfe(); diff --git a/internal/httpapi/dist/assets/index-D67FPIKJ.css b/internal/httpapi/dist/assets/index-DQV0nqgE.css similarity index 97% rename from internal/httpapi/dist/assets/index-D67FPIKJ.css rename to internal/httpapi/dist/assets/index-DQV0nqgE.css index 68b798b..592a088 100644 --- a/internal/httpapi/dist/assets/index-D67FPIKJ.css +++ b/internal/httpapi/dist/assets/index-DQV0nqgE.css @@ -1 +1 @@ -@charset "UTF-8";:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);background-color:var(--el-color-white);opacity:1;transition:opacity var(--el-transition-duration-fast);align-items:center;margin:0;display:flex;position:relative;overflow:hidden}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-primary)}.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{flex-direction:column;gap:4px;display:flex}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size);margin-right:8px}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size);margin-right:12px}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;cursor:pointer;position:absolute;top:12px;right:16px}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{box-sizing:border-box;width:var(--el-aside-width,300px);flex-shrink:0;overflow:auto}.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;width:var(--el-input-width);display:inline-block;position:relative}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__header{border-bottom:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__footer{border-top:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{cursor:pointer;color:var(--el-text-color-regular);line-height:34px;font-size:var(--el-font-size-base);text-align:left;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:0 20px;list-style:none;overflow:hidden}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{cursor:default;height:100px;color:var(--el-text-color-secondary);justify-content:center;align-items:center;font-size:20px;display:flex}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size:40px;--el-avatar-size-small:24px;box-sizing:border-box;text-align:center;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size);outline:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.el-avatar>img{width:100%;height:100%;display:block}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-avatar-group{--el-avatar-group-item-gap:-8px;--el-avatar-group-collapse-item-gap:4px;display:inline-flex}.el-avatar-group .el-avatar{border:1px solid var(--el-border-color-extra-light)}.el-avatar-group .el-avatar:not(:first-child){margin-left:var(--el-avatar-group-item-gap)}.el-avatar-group__collapse-avatars{--el-avatar-group-item-gap:-8px;--el-avatar-group-collapse-item-gap:4px}.el-avatar-group__collapse-avatars .el-avatar:not(:first-child){margin-left:var(--el-avatar-group-collapse-item-gap)}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);background-color:var(--el-backtop-bg-color);width:40px;height:40px;color:var(--el-backtop-text-color);box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;vertical-align:middle;width:-moz-fit-content;width:fit-content;display:inline-block;position:relative}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color);justify-content:center;align-items:center;display:inline-flex}.el-badge__content.is-fixed{top:0;right:calc(1px + var(--el-badge-size) / 2);z-index:var(--el-index-normal);position:absolute;transform:translateY(-50%)translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;width:8px;height:8px;padding:0;right:0}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);margin:0 9px;font-weight:700}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;align-items:center;display:inline-flex}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{transition:var(--el-transition-color);color:var(--el-text-color-primary);font-weight:700;text-decoration:none}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:before,.el-breadcrumb:after{content:"";display:table}.el-breadcrumb:after{clear:both}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:hover,.el-button-group>.el-button:focus,.el-button-group>.el-button:active,.el-button-group>.el-button.is-active{z-index:1}.el-button-group--horizontal{vertical-align:middle;display:inline-block}.el-button-group--horizontal:before,.el-button-group--horizontal:after{content:"";display:table}.el-button-group--horizontal:after{clear:both}.el-button-group--horizontal>.el-button{float:left;position:relative}.el-button-group--horizontal>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group--horizontal>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group--horizontal>.el-button:not(:last-child){margin-right:-1px}.el-button-group--horizontal .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group--vertical{flex-direction:column;align-items:stretch;display:inline-flex}.el-button-group--vertical>.el-button{margin-top:-1px}.el-button-group--vertical>.el-button:first-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.el-button-group--vertical>.el-button:last-child{border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical>.el-dropdown{margin-top:-1px}.el-button-group--vertical>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical .el-button--primary:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);white-space:nowrap;cursor:pointer;height:32px;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;line-height:1;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);outline:none;justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:8px 15px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";border-radius:inherit;background-color:var(--el-mask-color-extra-light);position:absolute;inset:-1px}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-dashed{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary);border-style:dashed}.el-button.is-circle{border-radius:50%;width:32px;padding:8px}.el-button.is-text{color:var(--el-button-text-color);background-color:#0000;border:0 solid #0000}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{color:var(--el-button-text-color);background:0 0;border-color:#0000;height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button.is-link:not(.is-disabled):hover{background-color:#0000;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);background-color:#0000;border-color:#0000}.el-button--text{color:var(--el-color-primary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);background-color:#0000;border-color:#0000}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);background-color:#0000;border-color:#0000}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--primary.is-dashed{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-text-color:var(--el-color-primary-dark-2);--el-button-active-bg-color:var(--el-color-primary-light-9);--el-button-active-border-color:var(--el-color-primary-dark-2)}.el-button--primary.is-dashed.is-disabled,.el-button--primary.is-dashed.is-disabled:hover,.el-button--primary.is-dashed.is-disabled:focus,.el-button--primary.is-dashed.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--success.is-dashed{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-success);--el-button-hover-bg-color:var(--el-color-success-light-9);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-text-color:var(--el-color-success-dark-2);--el-button-active-bg-color:var(--el-color-success-light-9);--el-button-active-border-color:var(--el-color-success-dark-2)}.el-button--success.is-dashed.is-disabled,.el-button--success.is-dashed.is-disabled:hover,.el-button--success.is-dashed.is-disabled:focus,.el-button--success.is-dashed.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--warning.is-dashed{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-warning);--el-button-hover-bg-color:var(--el-color-warning-light-9);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-text-color:var(--el-color-warning-dark-2);--el-button-active-bg-color:var(--el-color-warning-light-9);--el-button-active-border-color:var(--el-color-warning-dark-2)}.el-button--warning.is-dashed.is-disabled,.el-button--warning.is-dashed.is-disabled:hover,.el-button--warning.is-dashed.is-disabled:focus,.el-button--warning.is-dashed.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--danger.is-dashed{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-danger);--el-button-hover-bg-color:var(--el-color-danger-light-9);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-text-color:var(--el-color-danger-dark-2);--el-button-active-bg-color:var(--el-color-danger-light-9);--el-button-active-border-color:var(--el-color-danger-dark-2)}.el-button--danger.is-dashed.is-disabled,.el-button--danger.is-dashed.is-disabled:hover,.el-button--danger.is-dashed.is-disabled:focus,.el-button--danger.is-dashed.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--info.is-dashed{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-info);--el-button-hover-bg-color:var(--el-color-info-light-9);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-text-color:var(--el-color-info-dark-2);--el-button-active-bg-color:var(--el-color-info-light-9);--el-button-active-border-color:var(--el-color-info-dark-2)}.el-button--info.is-dashed.is-disabled,.el-button--info.is-dashed.is-disabled:hover,.el-button--info.is-dashed.is-disabled:focus,.el-button--info.is-dashed.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:5px 11px;font-size:12px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-calendar{--el-calendar-border:var(--el-table-border,1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{border-bottom:var(--el-calendar-header-border-bottom);justify-content:space-between;padding:12px 20px;display:flex}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar__select-controller .el-select{margin-right:8px}.el-calendar__select-controller .el-calendar-select__year{width:120px}.el-calendar__select-controller .el-calendar-select__month{width:60px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:var(--el-text-color-regular);padding:12px 0;font-weight:400}.el-calendar-table:not(.is-range) td.prev,.el-calendar-table:not(.is-range) td.next{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:var(--el-calendar-cell-width);padding:8px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);color:var(--el-text-color-primary);transition:var(--el-transition-duration);flex-direction:column;display:flex;overflow:hidden}.el-card.is-always-shadow,.el-card.is-hover-shadow:hover,.el-card.is-hover-shadow:focus{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding);flex-grow:1;overflow:auto}.el-card__footer{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-top:1px solid var(--el-card-border-color);box-sizing:border-box}.el-carousel__item{width:100%;height:100%;z-index:calc(var(--el-index-normal) - 1);display:inline-block;position:absolute;top:0;left:0;overflow:hidden}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage:hover .el-carousel__mask,.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{width:100%;height:50%}.el-carousel__mask{background-color:var(--el-color-white);opacity:.24;width:100%;height:100%;transition:var(--el-transition-duration-fast);position:absolute;top:0;left:0}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:#1f2d3d1c;--el-carousel-arrow-hover-background:#1f2d3d3b;--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel.is-vertical-outside{flex-direction:row;align-items:center;display:flex}.el-carousel.is-vertical-outside .el-carousel__container{flex:1}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);background-color:var(--el-carousel-arrow-background);color:#fff;z-index:10;text-align:center;font-size:var(--el-carousel-arrow-font-size);border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{z-index:calc(var(--el-index-normal) + 1);margin:0;padding:0;list-style:none;position:absolute}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{top:50%;right:0;transform:translateY(-50%)}.el-carousel__indicators--outside{text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels .el-carousel__button{color:#000;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{cursor:pointer;background-color:#0000}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal);display:inline-block}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width) / 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);cursor:pointer;transition:var(--el-transition-duration);background-color:#fff;border:none;outline:none;margin:0;padding:0;display:block}.el-carousel__indicators--labels .el-carousel__button{width:auto;height:auto}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%)translate(-10px)}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%)translate(10px)}.el-transitioning{filter:url(#elCarouselHorizontal)}.el-transitioning-vertical{filter:url(#elCarouselVertical)}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);width:-moz-fit-content;width:fit-content;font-size:var(--el-cascader-menu-font-size);display:flex}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{box-sizing:border-box;min-width:180px;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;min-height:100%;margin:0;padding:6px 0;list-style:none;position:relative}.el-cascader-menu__list.el-vl__window{margin:6px 0;padding:0}.el-cascader-menu__list.el-vl__window ul{margin:0;padding:0}.el-cascader-menu__hover-zone{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.el-cascader-menu__empty-text{color:var(--el-cascader-color-empty);align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{box-sizing:border-box;outline:none;align-items:center;height:34px;padding:0 30px 0 20px;line-height:34px;display:flex;position:relative}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-selectable.in-checked-path,.el-cascader-node.is-active{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):hover,.el-cascader-node:not(.is-disabled):focus{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;padding:0 8px;overflow:hidden}.el-cascader-node>.el-checkbox,.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);vertical-align:middle;font-size:var(--el-font-size-base);outline:none;line-height:32px;display:inline-block;position:relative}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{cursor:pointer;display:flex}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:read-only{cursor:pointer}.el-cascader .el-input .el-input__inner:disabled{cursor:not-allowed}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--large .el-cascader__tags{gap:6px;padding:8px}.el-cascader--large .el-cascader__search-input{height:24px;margin-left:7px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader--small .el-cascader__tags{gap:4px;padding:2px}.el-cascader--small .el-cascader__search-input{height:20px;margin-left:5px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-cascader__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-cascader__tags{text-align:left;box-sizing:border-box;flex-wrap:wrap;gap:6px;padding:4px;line-height:normal;display:flex;position:absolute;top:50%;left:0;right:30px;transform:translateY(-50%)}.el-cascader__tags .el-tag{text-overflow:ellipsis;background:var(--el-cascader-tag-background);align-items:center;max-width:100%;display:inline-flex}.el-cascader__tags .el-tag.el-tag--dark,.el-cascader__tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__tags .el-tag:not(.is-hit){border-color:#0000}.el-cascader__tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__tags .el-tag>span{text-overflow:ellipsis;flex:1;line-height:normal;overflow:hidden}.el-cascader__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__tags .el-tag+input{margin-left:0}.el-cascader__tags.is-validate{right:55px}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{text-overflow:ellipsis;background:var(--el-fill-color);align-items:center;max-width:100%;display:inline-flex}.el-cascader__collapse-tags .el-tag.el-tag--dark,.el-cascader__collapse-tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:#0000}.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__collapse-tags .el-tag>span{text-overflow:ellipsis;flex:1;line-height:normal;overflow:hidden}.el-cascader__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags .el-tag+input{margin-left:0}.el-cascader__collapse-tags .el-tag{margin:2px 0}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-wrap{max-height:204px}.el-cascader__suggestion-list{font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center;margin:0;padding:6px 0;list-style:none}.el-cascader__suggestion-list.el-vl__window{margin:6px 0;padding:0}.el-cascader__suggestion-list.el-vl__window ul{margin:0;padding:0}.el-cascader__suggestion-item{text-align:left;cursor:pointer;box-sizing:border-box;outline:none;justify-content:space-between;align-items:center;height:34px;padding:0 15px;display:flex}.el-cascader__suggestion-item:hover,.el-cascader__suggestion-item:focus{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>:not(.el-icon){white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__suggestion-item .el-icon{flex-shrink:0}.el-cascader__empty-text{color:var(--el-cascader-color-empty);margin:10px 0}.el-cascader__search-input{min-width:60px;height:24px;color:var(--el-cascader-menu-text-color);box-sizing:border-box;background:0 0;border:none;outline:none;flex:1;margin-left:7px;padding:0}.el-cascader__search-input::placeholder{color:#0000}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);transition:var(--el-transition-all);padding:7px 15px;font-weight:700;display:inline-block}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--primary.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.el-check-tag--primary.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-check-tag.el-check-tag--primary.is-checked.is-disabled{background-color:var(--el-color-primary-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-checked.is-disabled:hover{background-color:var(--el-color-primary-light-8)}.el-check-tag.el-check-tag--primary.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-check-tag.el-check-tag--success.is-checked{background-color:var(--el-color-success-light-8);color:var(--el-color-success)}.el-check-tag.el-check-tag--success.is-checked:hover{background-color:var(--el-color-success-light-7)}.el-check-tag.el-check-tag--success.is-checked.is-disabled{background-color:var(--el-color-success-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-checked.is-disabled:hover{background-color:var(--el-color-success-light-8)}.el-check-tag.el-check-tag--success.is-disabled{background-color:var(--el-color-success-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-disabled:hover{background-color:var(--el-color-success-light-9)}.el-check-tag.el-check-tag--warning.is-checked{background-color:var(--el-color-warning-light-8);color:var(--el-color-warning)}.el-check-tag.el-check-tag--warning.is-checked:hover{background-color:var(--el-color-warning-light-7)}.el-check-tag.el-check-tag--warning.is-checked.is-disabled{background-color:var(--el-color-warning-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-checked.is-disabled:hover{background-color:var(--el-color-warning-light-8)}.el-check-tag.el-check-tag--warning.is-disabled{background-color:var(--el-color-warning-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-disabled:hover{background-color:var(--el-color-warning-light-9)}.el-check-tag.el-check-tag--danger.is-checked{background-color:var(--el-color-danger-light-8);color:var(--el-color-danger)}.el-check-tag.el-check-tag--danger.is-checked:hover{background-color:var(--el-color-danger-light-7)}.el-check-tag.el-check-tag--danger.is-checked.is-disabled{background-color:var(--el-color-danger-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-checked.is-disabled:hover{background-color:var(--el-color-danger-light-8)}.el-check-tag.el-check-tag--danger.is-disabled{background-color:var(--el-color-danger-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-disabled:hover{background-color:var(--el-color-danger-light-9)}.el-check-tag.el-check-tag--error.is-checked{background-color:var(--el-color-error-light-8);color:var(--el-color-error)}.el-check-tag.el-check-tag--error.is-checked:hover{background-color:var(--el-color-error-light-7)}.el-check-tag.el-check-tag--error.is-checked.is-disabled{background-color:var(--el-color-error-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-checked.is-disabled:hover{background-color:var(--el-color-error-light-8)}.el-check-tag.el-check-tag--error.is-disabled{background-color:var(--el-color-error-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-disabled:hover{background-color:var(--el-color-error-light-9)}.el-check-tag.el-check-tag--info.is-checked{background-color:var(--el-color-info-light-8);color:var(--el-color-info)}.el-check-tag.el-check-tag--info.is-checked:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--info.is-checked.is-disabled{background-color:var(--el-color-info-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-checked.is-disabled:hover{background-color:var(--el-color-info-light-8)}.el-check-tag.el-check-tag--info.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);--el-checkbox-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;position:relative}.el-checkbox-button__inner{line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));outline:var(--el-border);color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;font-size:var(--el-font-size-base);border-radius:0;margin:0;padding:8px 15px;display:inline-block;position:relative}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;z-index:-1;outline:none;margin:0;position:absolute}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button.is-disabled.is-checked .el-checkbox-button__inner{background-color:var(--el-checkbox-button-disabled-checked-fill)}.el-checkbox-button:first-child .el-checkbox-button__inner{border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{font-size:var(--el-font-size-base);border-radius:0;padding:12px 19px}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;padding:5px 11px;font-size:12px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;height:var(--el-checkbox-height,32px);align-items:center;margin-right:30px;display:inline-flex;position:relative}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color);will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%)rotate(45deg)scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";background-color:var(--el-checkbox-checked-icon-color);height:2px;display:block;position:absolute;top:5px;left:0;right:0;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);display:inline-block;position:relative}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";transform-origin:50%;border:1px solid #0000;border-top:0;border-left:0;width:3px;height:7px;transition:transform .15s ease-in 50ms;position:absolute;top:50%;left:50%;transform:translate(-45%,-60%)rotate(45deg)scaleY(0)}.el-checkbox__original{opacity:0;z-index:-1;outline:none;width:0;height:0;margin:0;position:absolute}.el-checkbox__label{line-height:1;font-size:var(--el-checkbox-font-size);padding-left:8px;display:inline-block}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{min-height:1px;display:block}.el-col-0{flex:0 0;max-width:0%;display:none}.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0%}.el-col-pull-0{position:relative;right:0%}.el-col-push-0{position:relative;left:0%}.el-col-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{position:relative;right:4.16667%}.el-col-push-1{position:relative;left:4.16667%}.el-col-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{position:relative;right:8.33333%}.el-col-push-2{position:relative;left:8.33333%}.el-col-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6667%}.el-col-pull-4{position:relative;right:16.6667%}.el-col-push-4{position:relative;left:16.6667%}.el-col-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333%}.el-col-pull-5{position:relative;right:20.8333%}.el-col-push-5{position:relative;left:20.8333%}.el-col-6{flex:0 0 25%;max-width:25%;display:block}.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1667%}.el-col-pull-7{position:relative;right:29.1667%}.el-col-push-7{position:relative;left:29.1667%}.el-col-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333%}.el-col-pull-8{position:relative;right:33.3333%}.el-col-push-8{position:relative;left:33.3333%}.el-col-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6667%}.el-col-pull-10{position:relative;right:41.6667%}.el-col-push-10{position:relative;left:41.6667%}.el-col-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333%}.el-col-pull-11{position:relative;right:45.8333%}.el-col-push-11{position:relative;left:45.8333%}.el-col-12{flex:0 0 50%;max-width:50%;display:block}.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1667%}.el-col-pull-13{position:relative;right:54.1667%}.el-col-push-13{position:relative;left:54.1667%}.el-col-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333%}.el-col-pull-14{position:relative;right:58.3333%}.el-col-push-14{position:relative;left:58.3333%}.el-col-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6667%}.el-col-pull-16{position:relative;right:66.6667%}.el-col-push-16{position:relative;left:66.6667%}.el-col-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333%}.el-col-pull-17{position:relative;right:70.8333%}.el-col-push-17{position:relative;left:70.8333%}.el-col-18{flex:0 0 75%;max-width:75%;display:block}.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1667%}.el-col-pull-19{position:relative;right:79.1667%}.el-col-push-19{position:relative;left:79.1667%}.el-col-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333%}.el-col-pull-20{position:relative;right:83.3333%}.el-col-push-20{position:relative;left:83.3333%}.el-col-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6667%}.el-col-pull-22{position:relative;right:91.6667%}.el-col-push-22{position:relative;left:91.6667%}.el-col-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333%}.el-col-pull-23{position:relative;right:95.8333%}.el-col-push-23{position:relative;left:95.8333%}.el-col-24{flex:0 0 100%;max-width:100%;display:block}.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0{flex:0 0;max-width:0%;display:none}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0%}.el-col-xs-pull-0{position:relative;right:0%}.el-col-xs-push-0{position:relative;left:0%}.el-col-xs-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6667%}.el-col-xs-pull-4{position:relative;right:16.6667%}.el-col-xs-push-4{position:relative;left:16.6667%}.el-col-xs-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333%}.el-col-xs-pull-5{position:relative;right:20.8333%}.el-col-xs-push-5{position:relative;left:20.8333%}.el-col-xs-6{flex:0 0 25%;max-width:25%;display:block}.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1667%}.el-col-xs-pull-7{position:relative;right:29.1667%}.el-col-xs-push-7{position:relative;left:29.1667%}.el-col-xs-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333%}.el-col-xs-pull-8{position:relative;right:33.3333%}.el-col-xs-push-8{position:relative;left:33.3333%}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6667%}.el-col-xs-pull-10{position:relative;right:41.6667%}.el-col-xs-push-10{position:relative;left:41.6667%}.el-col-xs-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333%}.el-col-xs-pull-11{position:relative;right:45.8333%}.el-col-xs-push-11{position:relative;left:45.8333%}.el-col-xs-12{flex:0 0 50%;max-width:50%;display:block}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1667%}.el-col-xs-pull-13{position:relative;right:54.1667%}.el-col-xs-push-13{position:relative;left:54.1667%}.el-col-xs-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333%}.el-col-xs-pull-14{position:relative;right:58.3333%}.el-col-xs-push-14{position:relative;left:58.3333%}.el-col-xs-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6667%}.el-col-xs-pull-16{position:relative;right:66.6667%}.el-col-xs-push-16{position:relative;left:66.6667%}.el-col-xs-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333%}.el-col-xs-pull-17{position:relative;right:70.8333%}.el-col-xs-push-17{position:relative;left:70.8333%}.el-col-xs-18{flex:0 0 75%;max-width:75%;display:block}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1667%}.el-col-xs-pull-19{position:relative;right:79.1667%}.el-col-xs-push-19{position:relative;left:79.1667%}.el-col-xs-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333%}.el-col-xs-pull-20{position:relative;right:83.3333%}.el-col-xs-push-20{position:relative;left:83.3333%}.el-col-xs-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6667%}.el-col-xs-pull-22{position:relative;right:91.6667%}.el-col-xs-push-22{position:relative;left:91.6667%}.el-col-xs-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333%}.el-col-xs-pull-23{position:relative;right:95.8333%}.el-col-xs-push-23{position:relative;left:95.8333%}.el-col-xs-24{flex:0 0 100%;max-width:100%;display:block}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{flex:0 0;max-width:0%;display:none}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0%}.el-col-sm-pull-0{position:relative;right:0%}.el-col-sm-push-0{position:relative;left:0%}.el-col-sm-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6667%}.el-col-sm-pull-4{position:relative;right:16.6667%}.el-col-sm-push-4{position:relative;left:16.6667%}.el-col-sm-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333%}.el-col-sm-pull-5{position:relative;right:20.8333%}.el-col-sm-push-5{position:relative;left:20.8333%}.el-col-sm-6{flex:0 0 25%;max-width:25%;display:block}.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1667%}.el-col-sm-pull-7{position:relative;right:29.1667%}.el-col-sm-push-7{position:relative;left:29.1667%}.el-col-sm-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333%}.el-col-sm-pull-8{position:relative;right:33.3333%}.el-col-sm-push-8{position:relative;left:33.3333%}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6667%}.el-col-sm-pull-10{position:relative;right:41.6667%}.el-col-sm-push-10{position:relative;left:41.6667%}.el-col-sm-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333%}.el-col-sm-pull-11{position:relative;right:45.8333%}.el-col-sm-push-11{position:relative;left:45.8333%}.el-col-sm-12{flex:0 0 50%;max-width:50%;display:block}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1667%}.el-col-sm-pull-13{position:relative;right:54.1667%}.el-col-sm-push-13{position:relative;left:54.1667%}.el-col-sm-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333%}.el-col-sm-pull-14{position:relative;right:58.3333%}.el-col-sm-push-14{position:relative;left:58.3333%}.el-col-sm-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6667%}.el-col-sm-pull-16{position:relative;right:66.6667%}.el-col-sm-push-16{position:relative;left:66.6667%}.el-col-sm-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333%}.el-col-sm-pull-17{position:relative;right:70.8333%}.el-col-sm-push-17{position:relative;left:70.8333%}.el-col-sm-18{flex:0 0 75%;max-width:75%;display:block}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1667%}.el-col-sm-pull-19{position:relative;right:79.1667%}.el-col-sm-push-19{position:relative;left:79.1667%}.el-col-sm-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333%}.el-col-sm-pull-20{position:relative;right:83.3333%}.el-col-sm-push-20{position:relative;left:83.3333%}.el-col-sm-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6667%}.el-col-sm-pull-22{position:relative;right:91.6667%}.el-col-sm-push-22{position:relative;left:91.6667%}.el-col-sm-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333%}.el-col-sm-pull-23{position:relative;right:95.8333%}.el-col-sm-push-23{position:relative;left:95.8333%}.el-col-sm-24{flex:0 0 100%;max-width:100%;display:block}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{flex:0 0;max-width:0%;display:none}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0%}.el-col-md-pull-0{position:relative;right:0%}.el-col-md-push-0{position:relative;left:0%}.el-col-md-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6667%}.el-col-md-pull-4{position:relative;right:16.6667%}.el-col-md-push-4{position:relative;left:16.6667%}.el-col-md-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333%}.el-col-md-pull-5{position:relative;right:20.8333%}.el-col-md-push-5{position:relative;left:20.8333%}.el-col-md-6{flex:0 0 25%;max-width:25%;display:block}.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1667%}.el-col-md-pull-7{position:relative;right:29.1667%}.el-col-md-push-7{position:relative;left:29.1667%}.el-col-md-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333%}.el-col-md-pull-8{position:relative;right:33.3333%}.el-col-md-push-8{position:relative;left:33.3333%}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6667%}.el-col-md-pull-10{position:relative;right:41.6667%}.el-col-md-push-10{position:relative;left:41.6667%}.el-col-md-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333%}.el-col-md-pull-11{position:relative;right:45.8333%}.el-col-md-push-11{position:relative;left:45.8333%}.el-col-md-12{flex:0 0 50%;max-width:50%;display:block}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1667%}.el-col-md-pull-13{position:relative;right:54.1667%}.el-col-md-push-13{position:relative;left:54.1667%}.el-col-md-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333%}.el-col-md-pull-14{position:relative;right:58.3333%}.el-col-md-push-14{position:relative;left:58.3333%}.el-col-md-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6667%}.el-col-md-pull-16{position:relative;right:66.6667%}.el-col-md-push-16{position:relative;left:66.6667%}.el-col-md-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333%}.el-col-md-pull-17{position:relative;right:70.8333%}.el-col-md-push-17{position:relative;left:70.8333%}.el-col-md-18{flex:0 0 75%;max-width:75%;display:block}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1667%}.el-col-md-pull-19{position:relative;right:79.1667%}.el-col-md-push-19{position:relative;left:79.1667%}.el-col-md-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333%}.el-col-md-pull-20{position:relative;right:83.3333%}.el-col-md-push-20{position:relative;left:83.3333%}.el-col-md-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6667%}.el-col-md-pull-22{position:relative;right:91.6667%}.el-col-md-push-22{position:relative;left:91.6667%}.el-col-md-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333%}.el-col-md-pull-23{position:relative;right:95.8333%}.el-col-md-push-23{position:relative;left:95.8333%}.el-col-md-24{flex:0 0 100%;max-width:100%;display:block}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{flex:0 0;max-width:0%;display:none}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0%}.el-col-lg-pull-0{position:relative;right:0%}.el-col-lg-push-0{position:relative;left:0%}.el-col-lg-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6667%}.el-col-lg-pull-4{position:relative;right:16.6667%}.el-col-lg-push-4{position:relative;left:16.6667%}.el-col-lg-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333%}.el-col-lg-pull-5{position:relative;right:20.8333%}.el-col-lg-push-5{position:relative;left:20.8333%}.el-col-lg-6{flex:0 0 25%;max-width:25%;display:block}.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1667%}.el-col-lg-pull-7{position:relative;right:29.1667%}.el-col-lg-push-7{position:relative;left:29.1667%}.el-col-lg-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333%}.el-col-lg-pull-8{position:relative;right:33.3333%}.el-col-lg-push-8{position:relative;left:33.3333%}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6667%}.el-col-lg-pull-10{position:relative;right:41.6667%}.el-col-lg-push-10{position:relative;left:41.6667%}.el-col-lg-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333%}.el-col-lg-pull-11{position:relative;right:45.8333%}.el-col-lg-push-11{position:relative;left:45.8333%}.el-col-lg-12{flex:0 0 50%;max-width:50%;display:block}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1667%}.el-col-lg-pull-13{position:relative;right:54.1667%}.el-col-lg-push-13{position:relative;left:54.1667%}.el-col-lg-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333%}.el-col-lg-pull-14{position:relative;right:58.3333%}.el-col-lg-push-14{position:relative;left:58.3333%}.el-col-lg-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6667%}.el-col-lg-pull-16{position:relative;right:66.6667%}.el-col-lg-push-16{position:relative;left:66.6667%}.el-col-lg-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333%}.el-col-lg-pull-17{position:relative;right:70.8333%}.el-col-lg-push-17{position:relative;left:70.8333%}.el-col-lg-18{flex:0 0 75%;max-width:75%;display:block}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1667%}.el-col-lg-pull-19{position:relative;right:79.1667%}.el-col-lg-push-19{position:relative;left:79.1667%}.el-col-lg-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333%}.el-col-lg-pull-20{position:relative;right:83.3333%}.el-col-lg-push-20{position:relative;left:83.3333%}.el-col-lg-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6667%}.el-col-lg-pull-22{position:relative;right:91.6667%}.el-col-lg-push-22{position:relative;left:91.6667%}.el-col-lg-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333%}.el-col-lg-pull-23{position:relative;right:95.8333%}.el-col-lg-push-23{position:relative;left:95.8333%}.el-col-lg-24{flex:0 0 100%;max-width:100%;display:block}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{flex:0 0;max-width:0%;display:none}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0%}.el-col-xl-pull-0{position:relative;right:0%}.el-col-xl-push-0{position:relative;left:0%}.el-col-xl-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6667%}.el-col-xl-pull-4{position:relative;right:16.6667%}.el-col-xl-push-4{position:relative;left:16.6667%}.el-col-xl-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333%}.el-col-xl-pull-5{position:relative;right:20.8333%}.el-col-xl-push-5{position:relative;left:20.8333%}.el-col-xl-6{flex:0 0 25%;max-width:25%;display:block}.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1667%}.el-col-xl-pull-7{position:relative;right:29.1667%}.el-col-xl-push-7{position:relative;left:29.1667%}.el-col-xl-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333%}.el-col-xl-pull-8{position:relative;right:33.3333%}.el-col-xl-push-8{position:relative;left:33.3333%}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6667%}.el-col-xl-pull-10{position:relative;right:41.6667%}.el-col-xl-push-10{position:relative;left:41.6667%}.el-col-xl-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333%}.el-col-xl-pull-11{position:relative;right:45.8333%}.el-col-xl-push-11{position:relative;left:45.8333%}.el-col-xl-12{flex:0 0 50%;max-width:50%;display:block}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1667%}.el-col-xl-pull-13{position:relative;right:54.1667%}.el-col-xl-push-13{position:relative;left:54.1667%}.el-col-xl-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333%}.el-col-xl-pull-14{position:relative;right:58.3333%}.el-col-xl-push-14{position:relative;left:58.3333%}.el-col-xl-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6667%}.el-col-xl-pull-16{position:relative;right:66.6667%}.el-col-xl-push-16{position:relative;left:66.6667%}.el-col-xl-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333%}.el-col-xl-pull-17{position:relative;right:70.8333%}.el-col-xl-push-17{position:relative;left:70.8333%}.el-col-xl-18{flex:0 0 75%;max-width:75%;display:block}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1667%}.el-col-xl-pull-19{position:relative;right:79.1667%}.el-col-xl-push-19{position:relative;left:79.1667%}.el-col-xl-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333%}.el-col-xl-pull-20{position:relative;right:83.3333%}.el-col-xl-push-20{position:relative;left:83.3333%}.el-col-xl-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6667%}.el-col-xl-pull-22{position:relative;right:91.6667%}.el-col-xl-push-22{position:relative;left:91.6667%}.el-col-xl-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333%}.el-col-xl-pull-23{position:relative;right:95.8333%}.el-col-xl-push-23{position:relative;left:95.8333%}.el-col-xl-24{flex:0 0 100%;max-width:100%;display:block}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;min-height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border:none;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);transition:border-bottom-color var(--el-transition-duration);box-sizing:border-box;outline:none;align-items:center;padding:0;font-weight:500;display:flex}.el-collapse-item__arrow{transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__title{text-align:left;flex:auto}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:#0000}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color);overflow:hidden}.el-collapse-item__content{font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);padding-bottom:25px;line-height:1.76923}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-icon-position-left .el-collapse-item__header{gap:8px}.el-collapse-icon-position-left .el-collapse-item__title{order:1}.el-collapse-icon-position-right .el-collapse-item__header{padding-right:8px}.el-color-picker-panel{--el-colorpicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-colorpicker-bg-color);box-sizing:content-box;background:var(--el-colorpicker-bg-color);width:300px;padding:12px}.el-color-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter);border-radius:4px}.el-color-picker-panel__wrapper{margin-bottom:6px}.el-color-picker-panel__footer{text-align:right;justify-content:space-between;margin-top:12px;display:flex}.el-color-picker-panel__footer .el-input{color:#000;width:160px;font-size:12px;line-height:26px}.el-color-picker-panel.is-disabled .el-color-svpanel,.el-color-picker-panel.is-disabled .el-color-hue-slider{cursor:not-allowed;opacity:.3}.el-color-picker-panel.is-disabled .el-color-hue-slider__thumb{cursor:not-allowed}.el-color-picker-panel.is-disabled .el-color-alpha-slider,.el-color-picker-panel.is-disabled .el-color-predefine .el-color-predefine__color-selector{cursor:not-allowed;opacity:.3}.el-color-predefine{width:280px;margin-top:8px;font-size:12px;display:flex}.el-color-predefine__colors{flex-wrap:wrap;flex:1;gap:8px;display:flex}.el-color-predefine__color-selector{border-radius:var(--el-border-radius-base);cursor:pointer;border:none;outline:none;width:20px;height:20px;padding:0;overflow:hidden}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-predefine__color-selector>div{height:100%;display:flex}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{box-sizing:border-box;float:right;background-color:red;width:280px;height:12px;padding:0 2px;position:relative}.el-color-hue-slider__bar{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{cursor:pointer;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);z-index:1;background:#fff;border-radius:1px;width:4px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0009}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{width:100%;height:4px;top:0;left:0}.el-color-svpanel{background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#fff0);width:280px;height:180px;position:relative}.el-color-svpanel__cursor{cursor:pointer;border-radius:50%;width:4px;height:4px;position:absolute;transform:translate(-2px,-2px);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006}.el-color-svpanel__cursor:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-alpha-slider{box-sizing:border-box;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;width:280px;height:12px;position:relative}.el-color-alpha-slider.is-disabled .el-color-alpha-slider__thumb{cursor:not-allowed}.el-color-alpha-slider__bar{background:linear-gradient(to right,#fff0 0%,var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{cursor:pointer;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);z-index:1;background:#fff;border-radius:1px;width:4px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0009}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(#fff0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{width:100%;height:4px;top:0;left:0}.el-color-picker-panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker-panel{--el-color-picker-alpha-bg-a:#333}.el-color-picker{outline:none;width:32px;height:32px;line-height:normal;display:inline-block;position:relative}.el-color-picker:hover:not(:-webkit-any(.is-disabled,.is-focused)) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:hover:not(:is(.is-disabled,.is-focused)) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed;background-color:var(--el-fill-color-light)}.el-color-picker.is-disabled .el-color-picker__color{opacity:.3}.el-color-picker--large{width:40px;height:40px}.el-color-picker--small{width:24px;height:24px}.el-color-picker--small .el-color-picker__icon,.el-color-picker--small .el-color-picker__empty{transform:scale(.8)}.el-color-picker__trigger{box-sizing:border-box;border:1px solid var(--el-border-color);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;padding:4px;font-size:0;display:inline-flex;position:relative}.el-color-picker__color{box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);text-align:center;width:100%;height:100%;display:block;position:relative}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{color:#fff;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.el-color-picker__panel{border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light);background-color:#fff}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333}.el-container{box-sizing:border-box;flex-direction:row;flex:auto;min-width:0;display:flex}.el-container.is-vertical{flex-direction:column}.el-date-table{-webkit-user-select:none;user-select:none;font-size:12px}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;text-align:center;cursor:pointer;width:32px;height:30px;padding:4px 0;position:relative}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;width:24px;height:24px;margin:0 auto;line-height:24px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.start-date .el-date-table-cell__text,.el-date-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.start-date .el-date-table-cell,.el-date-table td.end-date .el-date-table-cell{color:#fff}.el-date-table td.start-date .el-date-table-cell__text,.el-date-table td.end-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{color:var(--el-datepicker-header-text-color);border-bottom:solid 1px var(--el-border-color-lighter);padding:5px;font-weight:400}.el-date-table th.el-date-table__week-header{width:24px;padding:0}.el-month-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-month-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.start-date .el-date-table-cell__text,.el-month-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{width:54px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.start-date .el-date-table-cell,.el-month-table td.end-date .el-date-table-cell{color:#fff}.el-month-table td.start-date .el-date-table-cell__text,.el-month-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.start-date .el-date-table-cell__text,.el-year-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{width:60px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.start-date .el-date-table-cell,.el-year-table td.end-date .el-date-table-cell{color:#fff}.el-year-table td.start-date .el-date-table-cell__text,.el-year-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{vertical-align:top;width:50%;max-height:192px;display:inline-block;position:relative;overflow:auto}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);width:100%;z-index:var(--el-index-normal);text-align:center;cursor:pointer;height:30px;font-size:12px;line-height:30px;position:absolute;left:0}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{text-align:center;padding:0}.el-time-spinner__list{text-align:center;margin:0;padding:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";width:100%;height:80px;display:block}.el-time-spinner__item{height:32px;color:var(--el-text-color-regular);font-size:12px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;text-align:left;vertical-align:middle;position:relative}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{height:inherit;color:var(--el-text-color-placeholder);float:left;font-size:14px}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;width:39%;height:30px;line-height:30px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:#0000;border:none;outline:none;margin:0;padding:0;display:inline-block}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{overflow-wrap:break-word;height:100%;color:var(--el-text-color-primary);flex:1;justify-content:center;align-items:center;margin:0;padding:0 5px;font-size:14px;display:inline-flex}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer;font-size:14px}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{vertical-align:middle;align-items:center;padding:0 10px;display:inline-flex}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{height:38px;font-size:14px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{height:22px;font-size:12px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:hover,.el-range-editor.is-disabled:focus{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-datepicker-bg-color);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));line-height:30px}.el-picker-panel .el-time-panel{border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-datepicker-bg-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body:after,.el-picker-panel__body-wrapper:after{content:"";clear:both;display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);text-align:right;background-color:var(--el-datepicker-bg-color);padding:4px 12px;font-size:0;position:relative}.el-picker-panel__shortcut{width:100%;color:var(--el-datepicker-text-color);text-align:left;cursor:pointer;background-color:#0000;border:0;outline:none;padding-left:12px;font-size:14px;line-height:28px;display:block}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{color:var(--el-datepicker-active-color);background-color:#e6f1fe}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);cursor:pointer;background-color:#0000;border-radius:2px;outline:none;padding:0 20px;font-size:12px;line-height:24px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{color:var(--el-datepicker-icon-color);cursor:pointer;background:0 0;border:0;outline:none;margin-top:8px;padding:1px 6px;font-size:12px;line-height:1}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn.is-disabled .el-icon{cursor:inherit}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel.is-disabled .el-picker-panel__prev-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__prev-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__prev-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__next-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__next-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__next-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__icon-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__icon-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__icon-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__shortcut{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__shortcut:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__shortcut .el-icon{cursor:inherit}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;padding-top:6px;position:absolute;top:0;bottom:0;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-datepicker-bg-color);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-picker__header{text-align:center;padding:12px 12px 0}.el-date-picker__header--bordered{border-bottom:solid 1px var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{text-align:center;padding:10px}.el-date-picker__time-label{float:left;cursor:pointer;margin-left:10px;line-height:30px}.el-date-picker .el-time-panel{position:absolute}.el-date-picker.is-disabled .el-date-picker__header-label{color:var(--el-text-color-disabled)}.el-date-picker.is-disabled .el-date-picker__header-label:hover{cursor:not-allowed}.el-date-picker.is-disabled .el-date-picker__header-label .el-icon{cursor:inherit}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker.single-panel{width:322px}.el-date-range-picker.single-panel .el-picker-panel__body{min-width:322px}.el-date-range-picker.single-panel.has-sidebar.has-time{width:434px}.el-date-range-picker.single-panel.has-sidebar{width:438px}.el-date-range-picker.single-panel .el-picker-panel__content{width:292px;margin:15px;padding:0;display:block;position:relative}.el-date-range-picker__header{text-align:center;height:28px;position:relative}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{margin-right:50px;font-size:16px;font-weight:500}.el-date-range-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;width:50%;margin:0;padding:16px;display:table-cell}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-range-picker__time-header>.el-icon-arrow-right{vertical-align:middle;color:var(--el-datepicker-icon-color);font-size:20px;display:table-cell}.el-date-range-picker__time-picker-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{z-index:1;background:#fff;position:absolute;top:13px;right:0}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-range-picker.is-disabled .el-date-range-picker__header-label{color:var(--el-text-color-disabled)}.el-date-range-picker.is-disabled .el-date-range-picker__header-label:hover{cursor:not-allowed}.el-date-range-picker.is-disabled .el-date-range-picker__header-label .el-icon{cursor:inherit}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{text-align:center;z-index:1;padding:10px;position:relative}.el-time-range-picker__cell{box-sizing:border-box;width:50%;margin:0;padding:4px 7px 7px;display:inline-block}.el-time-range-picker__header{text-align:center;margin-bottom:5px;font-size:14px}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{width:180px;z-index:var(--el-index-top);-webkit-user-select:none;user-select:none;box-sizing:content-box;border-radius:2px;position:relative;left:0}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";z-index:-1;box-sizing:border-box;text-align:left;height:32px;margin-top:-16px;padding-top:6px;position:absolute;top:50%;left:0;right:0}.el-time-panel__content:after{margin-left:12%;margin-right:12%;left:50%}.el-time-panel__content:before{border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));text-align:right;box-sizing:border-box;height:36px;padding:4px;line-height:25px}.el-time-panel__btn{cursor:pointer;color:var(--el-text-color-primary);background-color:#0000;border:none;outline:none;margin:0 5px;padding:0 5px;font-size:12px;line-height:28px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter)}.el-picker-panel.is-border .el-picker-panel__body-wrapper{position:relative}.el-picker-panel.is-border.el-picker-panel [slot=sidebar],.el-picker-panel.is-border.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;height:100%;padding-top:6px;position:absolute;top:0;overflow:auto}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-size:14px;line-height:23px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color);position:fixed;top:0;left:0}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;padding:var(--el-dialog-padding-primary);width:var(--el-dialog-width,50%);overflow-wrap:break-word;position:relative}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{margin:0;position:fixed;inset:0;overflow:auto}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size,16px))}.el-dialog__headerbtn{cursor:pointer;width:48px;height:48px;font-size:var(--el-message-close-size,16px);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding-top:var(--el-dialog-padding-primary);text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{position:fixed;inset:0;overflow:auto}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);width:100%;height:1px;margin:24px 0;display:block}.el-divider--vertical{vertical-align:middle;border-left:1px var(--el-border-color) var(--el-border-style);width:1px;height:1em;margin:0 8px;display:inline-block;position:relative}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);padding:0 20px;font-size:14px;font-weight:500;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%)translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-overlay.is-drawer{overflow:hidden}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color,var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary,20px);--el-drawer-dragger-size:8px;box-sizing:border-box;background-color:var(--el-drawer-bg-color);box-shadow:var(--el-box-shadow-dark);transition:all var(--el-transition-duration);flex-direction:column;display:flex;position:absolute}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{color:var(--el-text-color-primary);padding:var(--el-drawer-padding-primary);align-items:center;margin-bottom:32px;padding-bottom:0;display:flex;overflow:hidden}.el-drawer__header>:first-child{flex:1}.el-drawer__title{line-height:inherit;flex:1;margin:0;font-size:16px}.el-drawer__footer{padding:var(--el-drawer-padding-primary);text-align:right;padding-top:10px;overflow:hidden}.el-drawer__close-btn{cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:#0000;border:none;outline:none;display:inline-flex}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{padding:var(--el-drawer-padding-primary);flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.is-dragging{transition:none}.el-drawer__dragger{-webkit-user-select:none;user-select:none;background-color:#0000;transition:all .2s;position:absolute}.el-drawer__dragger:before{content:"";background-color:#0000;transition:all .2s;position:absolute}.el-drawer__dragger:hover:before{background-color:var(--el-color-primary)}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.ltr>.el-drawer__dragger,.el-drawer.rtl>.el-drawer__dragger{height:100%;width:var(--el-drawer-dragger-size);cursor:ew-resize;top:0;bottom:0}.el-drawer.ltr>.el-drawer__dragger:before,.el-drawer.rtl>.el-drawer__dragger:before{width:3px;top:0;bottom:0}.el-drawer.ttb,.el-drawer.btt{width:100%;left:0;right:0}.el-drawer.ttb>.el-drawer__dragger,.el-drawer.btt>.el-drawer__dragger{width:100%;height:var(--el-drawer-dragger-size);cursor:ns-resize;left:0;right:0}.el-drawer.ttb>.el-drawer__dragger:before,.el-drawer.btt>.el-drawer__dragger:before{height:3px;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.ltr>.el-drawer__dragger{right:0}.el-drawer.ltr>.el-drawer__dragger:before{right:-2px}.el-drawer.rtl{right:0}.el-drawer.rtl>.el-drawer__dragger{left:0}.el-drawer.rtl>.el-drawer__dragger:before{left:-2px}.el-drawer.ttb{top:0}.el-drawer.ttb>.el-drawer__dragger{bottom:0}.el-drawer.ttb>.el-drawer__dragger:before{bottom:-2px}.el-drawer.btt{bottom:0}.el-drawer.btt>.el-drawer__dragger{top:0}.el-drawer.btt>.el-drawer__dragger:before{top:-2px}.el-modal-drawer.is-penetrable{pointer-events:none}.el-modal-drawer.is-penetrable .el-drawer{pointer-events:auto}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-from,.el-drawer-fade-enter-active,.el-drawer-fade-enter-to,.el-drawer-fade-leave-from,.el-drawer-fade-leave-active,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{background-color:#0000!important}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);vertical-align:top;line-height:1;display:inline-flex;position:relative}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;margin:0;padding:0;list-style:none}.el-dropdown .el-dropdown__caret-button{border-left:none;justify-content:center;align-items:center;width:32px;padding-left:0;padding-right:0;display:inline-flex}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";background:var(--el-overlay-color-lighter);width:1px;display:block;position:absolute;top:-1px;bottom:-1px;left:0}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{z-index:var(--el-dropdown-menu-index);background-color:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);box-shadow:none;border:none;margin:0;padding:5px 0;list-style:none;position:relative;top:0;left:0}.el-dropdown-menu__item{white-space:nowrap;line-height:22px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:none;align-items:center;margin:0;padding:5px 16px;list-style:none;display:flex}.el-dropdown-menu__item:not(.is-disabled):hover,.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;font-size:14px;line-height:22px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;font-size:12px;line-height:20px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;user-select:none;vertical-align:top;object-fit:contain;width:100%;height:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;vertical-align:top;width:100%;height:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{font-size:var(--el-font-size-base);color:var(--el-text-color-secondary);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;height:var(--el-footer-height);flex-shrink:0}.el-form-item{--font-size:14px;margin-bottom:18px;display:flex}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{text-align:left;justify-content:flex-start}.el-form-item--label-right .el-form-item__label{text-align:right;justify-content:flex-end}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{text-align:left;width:-moz-fit-content;width:fit-content;height:auto;margin-bottom:8px;padding-right:0;line-height:22px;display:block}.el-form-item__label-wrap{display:flex}.el-form-item__label{font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);box-sizing:border-box;flex:none;align-items:flex-start;height:32px;padding:0 12px 0 0;line-height:32px;display:inline-flex}.el-form-item__content{line-height:32px;font-size:var(--font-size);flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);padding-top:2px;font-size:12px;line-height:1;position:absolute;top:100%;left:0}.el-form-item__error--inline{margin-left:10px;display:inline-block;position:relative;top:auto;left:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field:hover,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field:focus,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field.is-focus,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:hover:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:focus:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field.is-focus:after{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px #0000}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{vertical-align:middle;margin-right:32px;display:inline-flex}.el-form--inline .el-form-item:last-child{margin-right:0}.el-form--inline.el-form--label-top{flex-wrap:wrap;display:flex}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;height:var(--el-header-height);flex-shrink:0}.el-image-viewer__wrapper{position:fixed;inset:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{z-index:1;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{width:40px;height:40px;font-size:40px;top:40px;right:40px}.el-image-viewer__canvas{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:static}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;height:44px;padding:0 23px;bottom:30px;left:50%;transform:translate(-50%)}.el-image-viewer__actions__inner{cursor:default;color:#fff;justify-content:space-around;align-items:center;gap:22px;width:100%;height:100%;padding:0 6px;font-size:23px;display:flex}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{cursor:default;color:#fff;bottom:90px;left:50%;transform:translate(-50%)}.el-image-viewer__prev{color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px;top:50%;left:40px;transform:translateY(-50%)}.el-image-viewer__next{text-indent:2px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px;top:50%;right:40px;transform:translateY(-50%)}.el-image-viewer__close{color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px}.el-image-viewer__mask{opacity:.5;background:#000;width:100%;height:100%;position:absolute;top:0;left:0}.el-image-viewer-parent--hidden{overflow:hidden}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-20px)}}.el-image__error,.el-image__placeholder,.el-image__wrapper,.el-image__inner{width:100%;height:100%}.el-image{display:inline-block;position:relative;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle;justify-content:center;align-items:center;font-size:14px;display:flex}.el-image__preview{cursor:pointer}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;vertical-align:bottom;width:100%;font-size:var(--el-font-size-base);display:inline-block;position:relative}.el-textarea__inner{cursor:auto;resize:vertical;box-sizing:border-box;width:100%;line-height:1.5;font-size:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);background-image:none;border:none;padding:5px 11px;font-family:inherit;display:block;position:relative}.el-textarea__inner.is-clearable{padding:5px 26px 5px 11px}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea__clear{color:var(--el-input-icon-color);cursor:pointer;font-size:14px;position:absolute;top:15px;right:11px;transform:translateY(-50%)}.el-textarea__clear:hover{color:var(--el-input-clear-hover-color)}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);font-size:12px;line-height:14px;position:absolute;bottom:5px;right:10px}.el-textarea .el-input__count.is-outside{top:100%;right:0;bottom:unset;background:0 0;padding-top:2px;line-height:1;position:absolute}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);font-size:var(--el-font-size-base);width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle;display:inline-flex;position:relative}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;color:var(--el-color-info);align-items:center;font-size:12px;display:inline-flex}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;padding-left:8px;display:inline-block}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;top:100%;right:0}.el-input .el-input__count.is-outside .el-input__count-inner{background:0 0;padding-left:0;line-height:1}.el-input__wrapper{background-color:var(--el-input-bg-color,var(--el-fill-color-blank));border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;background-image:none;flex-grow:1;justify-content:center;align-items:center;padding:1px 11px;display:inline-flex;transform:translateZ(0)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height,32px) - 2px)}.el-input__inner{-webkit-appearance:none;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);box-sizing:border-box;background:0 0;border:none;outline:none;flex-grow:1;padding:0}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__prefix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__suffix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;transition:all var(--el-transition-duration);justify-content:center;align-items:center;margin-left:8px;display:flex}.el-input .el-input__clear{transition:color var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);cursor:not-allowed;box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height,40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height,24px) - 2px)}.el-input-group{align-items:stretch;width:100%;display:inline-flex}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);border-radius:var(--el-input-border-radius);white-space:nowrap;justify-content:center;align-items:center;min-height:100%;padding:0 20px;display:inline-flex;position:relative}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-select,.el-input-group__append .el-button,.el-input-group__prepend .el-select,.el-input-group__prepend .el-button{flex:1;margin:0 -20px;display:inline-block}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{color:inherit;background-color:#0000;border-color:#0000}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-hidden{display:none!important}.el-input-number{vertical-align:middle;width:150px;line-height:30px;display:inline-flex;position:relative}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__increase,.el-input-number__decrease{z-index:1;background:var(--el-fill-color-light);width:32px;height:auto;color:var(--el-text-color-regular);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:1px;bottom:1px}.el-input-number__increase:hover,.el-input-number__decrease:hover{color:var(--el-color-primary)}.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__increase.is-disabled,.el-input-number__decrease.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border);right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__increase,.el-input-number.is-disabled .el-input-number__decrease{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__increase:hover,.el-input-number.is-disabled .el-input-number__decrease:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__increase,.el-input-number--large .el-input-number__decrease{width:40px;font-size:14px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__increase,.el-input-number--small .el-input-number__decrease{width:24px;font-size:12px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__increase [class*=el-icon],.el-input-number--small .el-input-number__decrease [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__increase,.el-input-number.is-controls-right .el-input-number__decrease{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon],.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border);bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;top:auto;left:auto;right:1px}.el-input-number.is-controls-right[class*=large] [class*=increase],.el-input-number.is-controls-right[class*=large] [class*=decrease]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=increase],.el-input-number.is-controls-right[class*=small] [class*=decrease]{--el-input-number-controls-height:11px}.el-input-tag{--el-input-tag-border-color-hover:var(--el-border-color-hover);--el-input-tag-placeholder-color:var(--el-text-color-placeholder);--el-input-tag-disabled-color:var(--el-disabled-text-color);--el-input-tag-disabled-border:var(--el-disabled-border-color);--el-input-tag-font-size:var(--el-font-size-base);--el-input-tag-close-hover-color:var(--el-text-color-secondary);--el-input-tag-text-color:var(--el-text-color-regular);--el-input-tag-input-focus-border-color:var(--el-color-primary);--el-input-tag-width:100%;--el-input-tag-mini-height:var(--el-component-size);--el-input-tag-gap:6px;--el-input-tag-padding:4px;--el-input-tag-inner-padding:8px;--el-input-tag-line-height:24px;box-sizing:border-box;cursor:pointer;font-size:var(--el-input-tag-font-size);padding:var(--el-input-tag-padding);width:var(--el-input-tag-width);min-height:var(--el-input-tag-mini-height);line-height:var(--el-input-tag-line-height);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset;align-items:center;display:flex;transform:translate(0)}.el-input-tag.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-tag.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-input-tag.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled:hover{box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input-tag.is-disabled .el-input-tag__inner .el-input-tag__input,.el-input-tag.is-disabled .el-input-tag__inner .el-tag{cursor:not-allowed}.el-input-tag__prefix{padding:0 var(--el-input-tag-inner-padding);color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;display:flex}.el-input-tag__suffix{padding:0 var(--el-input-tag-inner-padding);color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;gap:8px;display:flex}.el-input-tag__collapse-tag{line-height:1}.el-input-tag__input-tag-list{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.el-input-tag__input-tag-list.is-near{margin-left:-8px}.el-input-tag__input-tag-list .el-tag{cursor:pointer;border-color:#0000}.el-input-tag__input-tag-list .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__input-tag-list .el-tag .el-tag__content{min-width:0}.el-input-tag__inner{align-items:center;gap:var(--el-input-tag-gap);flex-wrap:wrap;flex:1;min-width:0;max-width:100%;display:flex;position:relative}.el-input-tag__inner.is-left-space{margin-left:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-right-space{margin-right:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-draggable .el-tag{cursor:move;-webkit-user-select:none;user-select:none}.el-input-tag__drop-indicator{width:1px;height:var(--el-input-tag-line-height);background-color:var(--el-color-primary);position:absolute;top:0}.el-input-tag__inner .el-tag{cursor:pointer;border-color:#0000;max-width:100%}.el-input-tag__inner .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__inner .el-tag .el-tag__content{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:normal;overflow:hidden}.el-input-tag__input-wrapper{flex:1}.el-input-tag__input{color:var(--el-input-tag-text-color);font-size:inherit;font-family:inherit;line-height:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;outline:none;width:100%;padding:0}.el-input-tag__input::placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input-calculator{visibility:hidden;white-space:pre;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.el-input-tag--large{--el-input-tag-gap:6px;--el-input-tag-padding:8px;--el-input-tag-padding-left:8px;--el-input-tag-font-size:14px}.el-input-tag--small{--el-input-tag-gap:4px;--el-input-tag-padding:2px;--el-input-tag-padding-left:6px;--el-input-tag-font-size:12px;--el-input-tag-line-height:20px;--el-input-tag-mini-height:var(--el-component-size-small)}.el-input-otp{--el-input-otp-text-color:var(--el-text-color-regular);--el-input-otp-field-width:calc(var(--el-input-otp-size) - 4px);--el-input-otp-gap:8px;--el-input-otp-font-size:14px;--el-input-otp-size:32px}.el-input-otp--large{--el-input-otp-gap:12px;--el-input-otp-font-size:14px;--el-input-otp-size:40px}.el-input-otp--small{--el-input-otp-gap:6px;--el-input-otp-font-size:12px;--el-input-otp-size:24px}.el-input-otp{align-items:center;column-gap:var(--el-input-otp-gap);font-size:var(--el-input-otp-font-size);height:var(--el-input-otp-size);flex-wrap:nowrap;display:inline-flex}.el-input-otp.is-disabled,.el-input-otp.is-disabled .el-input-otp__input{cursor:not-allowed}.el-input-otp__input-field{width:var(--el-input-otp-field-width,calc(var(--el-input-otp-size) - 4px));border-radius:var(--el-border-radius-base);height:100%;line-height:1;position:relative}.el-input-otp__input{text-align:center;width:100%;height:100%;line-height:1;font-size:inherit;color:var(--el-input-otp-text-color,var(--el-text-color-regular));background-color:#0000;border:none;outline:none;padding:0}.el-input-otp.is-disabled .el-input-otp__input{color:var(--el-text-color-disabled)}.el-input-otp--outlined .el-input-otp__input-field{box-shadow:0 0 0 1px var(--el-border-color) inset}@media(hover:hover){.el-input-otp--outlined .el-input-otp__input-field:hover{box-shadow:0 0 0 1px var(--el-color-primary-light-5) inset}}.el-input-otp--outlined .el-input-otp__input-field:focus-within{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-otp--outlined.is-disabled .el-input-otp__input-field{background-color:var(--el-fill-color-light)}@media(hover:hover){.el-input-otp--outlined.is-disabled .el-input-otp__input-field:hover{box-shadow:0 0 0 1px var(--el-border-color) inset}}.el-input-otp--filled .el-input-otp__input-field{background-color:var(--el-fill-color)}@media(hover:hover){.el-input-otp--filled .el-input-otp__input-field:hover{background-color:var(--el-fill-color-dark)}}.el-input-otp--filled .el-input-otp__input-field:focus-within{background-color:var(--el-fill-color-blank);box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-otp--filled.is-disabled .el-input-otp__input-field{background-color:var(--el-fill-color-light)}@media(hover:hover){.el-input-otp--filled.is-disabled .el-input-otp__input-field:hover{background-color:var(--el-fill-color-light)}}.el-input-otp--underlined .el-input-otp__input-field:after{content:"";background-color:var(--el-border-color);width:100%;height:1px;display:block;position:absolute;bottom:0;left:0}@media(hover:hover){.el-input-otp--underlined .el-input-otp__input-field:hover:after{background-color:var(--el-color-primary-light-5)}}.el-input-otp--underlined .el-input-otp__input-field:focus-within:after{background-color:var(--el-color-primary)}@media(hover:hover){.el-input-otp--underlined.is-disabled .el-input-otp__input-field:hover:after{background-color:var(--el-border-color)}}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);vertical-align:middle;cursor:pointer;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color);outline:none;flex-direction:row;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex;position:relative}.el-link.is-hover-underline:hover:after{content:"";border-bottom:1px solid var(--el-link-hover-text-color);height:0;position:absolute;bottom:0;left:0;right:0}.el-link.is-underline:after{content:"";border-bottom:1px solid var(--el-link-text-color);height:0;position:absolute;bottom:0;left:0;right:0}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link:hover:after{border-color:var(--el-link-hover-text-color)}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link__inner{justify-content:center;align-items:center;display:inline-flex}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link.is-disabled:after{border-color:var(--el-link-disabled-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{z-index:2000;background-color:var(--el-mask-color);transition:opacity var(--el-transition-duration);margin:0;position:absolute;inset:0}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size)) / 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size)) / 2);text-align:center;width:100%;position:absolute;top:50%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);animation:2s linear infinite loading-rotate;display:inline}.el-loading-spinner .path{stroke-dasharray:90 150;stroke-dashoffset:0;stroke-width:2px;stroke:var(--el-color-primary);stroke-linecap:round;animation:1.5s ease-in-out infinite loading-dash}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-40px}to{stroke-dasharray:90 150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;box-sizing:border-box;padding:var(--el-main-padding);flex:auto;display:block;overflow:auto}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);background-color:var(--el-menu-bg-color);box-sizing:border-box;margin:0;padding-left:0;list-style:none;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{height:var(--el-menu-horizontal-height);border-right:none;flex-wrap:nowrap;display:flex}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000;justify-content:center;align-items:center;margin:0;display:inline-flex}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);color:var(--el-menu-text-color);align-items:center;padding:0 10px;display:flex}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):hover,.el-menu--horizontal .el-menu-item:not(.is-disabled):focus{color:var(--el-menu-active-color,var(--el-menu-hover-text-color));background-color:var(--el-menu-hover-bg-color);outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin:0}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span{visibility:hidden;width:0;height:0;display:inline-block;overflow:hidden}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;border-radius:var(--el-border-radius-small);min-width:200px;box-shadow:var(--el-box-shadow-light);border:none;padding:5px 0}.el-menu .el-icon{flex-shrink:0}.el-menu-item{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:hover,.el-menu-item:focus{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{width:var(--el-menu-icon-width);text-align:center;vertical-align:middle;margin-right:5px;font-size:18px}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{box-sizing:border-box;width:100%;height:100%;padding:0 var(--el-menu-base-level-padding);align-items:center;display:inline-flex;position:absolute;top:0;left:0}.el-sub-menu{margin:0;padding-left:0;list-style:none}.el-sub-menu__title{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:hover,.el-sub-menu__title:focus{outline:none}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-sub-menu__title,.el-sub-menu.is-disabled .el-menu-item{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin-right:5px;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{top:50%;right:var(--el-menu-base-level-padding);transition:transform var(--el-transition-duration);width:inherit;margin-top:-6px;margin-right:0;font-size:12px;position:absolute}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);color:var(--el-text-color-secondary);font-size:12px;line-height:normal}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper,.el-menu--popup-container,.el-menu{outline:none}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);max-width:var(--el-messagebox-width);width:100%;padding:var(--el-messagebox-padding-primary);vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-messagebox-box-shadow);text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;overflow-wrap:break-word;display:inline-block;position:relative;overflow:hidden}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{text-align:center;padding:16px;position:fixed;inset:0;overflow:auto}.is-message-box .el-overlay-message-box:after{content:"";vertical-align:middle;width:0;height:100%;display:inline-block}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size,16px))}.el-message-box__title{font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height);color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{width:40px;height:40px;font-size:var(--el-message-close-size,16px);cursor:pointer;background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;gap:12px;display:flex}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{min-width:0;margin:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{padding-top:var(--el-messagebox-padding-primary);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.el-message-box--center .el-message-box__title{justify-content:center;align-items:center;gap:6px;display:flex}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.el-message-box-parent--hidden{overflow:hidden}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);background-color:var(--el-message-bg-color);width:max-content;max-width:calc(100% - 32px);transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;padding:var(--el-message-padding);align-items:center;gap:8px;display:flex;position:fixed}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:50%;transform:translate(-50%)}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0}.el-message-fade-enter-from.is-left,.el-message-fade-enter-from.is-right,.el-message-fade-leave-to.is-left,.el-message-fade-leave-to.is-right{transform:translateY(-100%)}.el-message-fade-enter-from.is-left.is-bottom,.el-message-fade-enter-from.is-right.is-bottom,.el-message-fade-leave-to.is-left.is-bottom,.el-message-fade-leave-to.is-right.is-bottom{transform:translateY(100%)}.el-message-fade-enter-from.is-center,.el-message-fade-leave-to.is-center{transform:translate(-50%,-100%)}.el-message-fade-enter-from.is-center.is-bottom,.el-message-fade-leave-to.is-center.is-bottom{transform:translate(-50%,100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:break-word;z-index:9999;display:flex;position:fixed;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{min-width:0;margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right);flex:1}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);color:var(--el-notification-content-color);margin:6px 0 0;line-height:24px}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size);flex-shrink:0}.el-notification .el-notification__closeBtn{cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size);position:absolute;top:18px;right:15px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--primary{--el-notification-icon-color:var(--el-color-primary);color:var(--el-notification-icon-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification__progress{position:absolute;bottom:0;left:0;right:0}.el-notification__progress .el-progress-bar__inner{transition:width .1s linear}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{z-index:2000;background-color:var(--el-overlay-color-lighter);height:100%;position:fixed;inset:0;overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{justify-content:space-between;align-items:center;line-height:24px;display:flex}.el-page-header__left{align-items:center;margin-right:40px;display:flex;position:relative}.el-page-header__back{cursor:pointer;align-items:center;display:flex}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{align-items:center;margin-right:10px;font-size:16px;display:flex}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:var(--el-text-color-primary);font-size:18px}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);align-items:center;font-weight:400;display:flex}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select{width:128px}.el-pagination .btn-prev,.el-pagination .btn-next{font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box;border:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.el-pagination .btn-prev *,.el-pagination .btn-next *{pointer-events:none}.el-pagination .btn-prev:focus,.el-pagination .btn-next:focus{outline:none}.el-pagination .btn-prev:hover,.el-pagination .btn-next:hover{color:var(--el-pagination-hover-color)}.el-pagination .btn-prev.is-active,.el-pagination .btn-next.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination .btn-prev.is-active.is-disabled,.el-pagination .btn-next.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination .btn-prev:disabled,.el-pagination .btn-prev.is-disabled,.el-pagination .btn-next:disabled,.el-pagination .btn-next.is-disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-prev .el-icon,.el-pagination .btn-next .el-icon{width:inherit;font-size:12px;font-weight:700;display:block}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);color:var(--el-text-color-regular);font-weight:400}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{margin-left:var(--el-pagination-item-gap);color:var(--el-text-color-regular);align-items:center;font-weight:400;display:flex}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;justify-content:flex-end;align-items:center;display:flex}.el-pagination.is-background .btn-prev,.el-pagination.is-background .btn-next,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .el-pager li:disabled,.el-pagination.is-background .el-pager li.is-disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-prev,.el-pagination--small .btn-next,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small span:not([class*=suffix]),.el-pagination--small button{font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-prev,.el-pagination--large .btn-next,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{-webkit-user-select:none;user-select:none;align-items:center;margin:0;padding:0;font-size:0;list-style:none;display:flex}.el-pager li{font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box;border:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li:disabled,.el-pager li.is-disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);min-width:150px;padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);overflow-wrap:break-word;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);margin-bottom:12px;line-height:1}.el-popover__reference:focus:not(.focusing),.el-popover__reference:focus:hover{outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus:active,.el-popover.el-popper:focus{outline-width:0}.el-progress{align-items:center;line-height:1;display:flex;position:relative}.el-progress__text{color:var(--el-text-color-regular);min-width:50px;margin-left:5px;font-size:14px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{text-align:center;width:100%;margin:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{margin-right:0;padding-right:0;display:block}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);vertical-align:middle;border-radius:100px;height:6px;position:relative;overflow:hidden}.el-progress-bar__inner{background-color:var(--el-color-primary);text-align:right;white-space:nowrap;border-radius:100px;height:100%;line-height:1;transition:width .6s;position:absolute;top:0;left:0}.el-progress-bar__inner:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-progress-bar__inner--indeterminate{animation:3s infinite indeterminate;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,#0000001a 25%,#0000 25% 50%,#0000001a 50% 75%,#0000 75%,#0000);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:3s linear infinite striped-flow}.el-progress-bar__innerText{vertical-align:middle;color:#fff;margin:0 5px;font-size:12px;display:inline-block}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);outline:none;display:inline-block;position:relative}.el-radio-button__inner{white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));outline:var(--el-border);line-height:1;font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;font-size:var(--el-font-size-base);border-radius:0;margin:0;padding:8px 15px;display:inline-block;position:relative}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio{opacity:0;z-index:-1;outline:none;position:absolute}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{font-size:var(--el-font-size-base);border-radius:0;padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;padding:5px 11px;font-size:12px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{flex-wrap:wrap;align-items:center;font-size:0;display:inline-flex}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);cursor:pointer;white-space:nowrap;font-size:var(--el-font-size-base);-webkit-user-select:none;user-select:none;outline:none;align-items:center;height:32px;margin-right:30px;display:inline-flex;position:relative}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{width:12px;height:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;vertical-align:middle;outline:none;display:inline-flex;position:relative}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%)scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);cursor:pointer;box-sizing:border-box;transition:all .3s;display:inline-block;position:relative}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";width:4px;height:4px;transition:transform .15s ease-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.el-radio__original{opacity:0;z-index:-1;outline:none;margin:0;position:absolute;inset:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);--el-rate-outline-color:var(--el-color-primary-light-5);align-items:center;height:32px;display:inline-flex}.el-rate:focus,.el-rate:active{outline:none}.el-rate:focus-visible .el-rate__item .el-rate__icon.is-focus-visible{outline:2px solid var(--el-rate-outline-color);transition:outline-offset,outline}.el-rate__item{cursor:pointer;vertical-align:middle;color:var(--el-rate-void-color);font-size:0;line-height:normal;display:inline-block;position:relative}.el-rate .el-rate__icon{font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration);display:inline-block;position:relative}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{color:var(--el-rate-fill-color);display:inline-block;position:absolute;top:0;left:0;overflow:hidden}.el-rate__decimal--box{position:absolute;top:0;left:0}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:not-allowed;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;text-align:center;box-sizing:border-box;padding:var(--el-result-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);margin:0;line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{font-size:var(--el-font-size-base);color:var(--el-text-color-regular);margin:0;line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{box-sizing:border-box;flex-wrap:wrap;display:flex;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;position:relative;overflow:hidden}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));width:0;height:0;transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3);display:block;position:relative}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{z-index:1;border-radius:4px;position:absolute;bottom:2px;right:2px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__loading,.el-select-dropdown__empty{text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;margin:0;padding:6px 0;list-style:none}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{font-size:var(--el-font-size-base);white-space:nowrap;text-overflow:ellipsis;color:var(--el-text-color-regular);box-sizing:border-box;cursor:pointer;height:34px;padding:0 32px 0 20px;line-height:34px;position:relative;overflow:hidden}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed;background-color:unset}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{content:"";background-position:50%;background-repeat:no-repeat;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat;border-top:none;border-right:none;width:12px;height:12px;position:absolute;top:50%;right:20px;transform:translateY(-50%);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{margin:0;padding:0;list-style:none;position:relative}.el-select-group__title{box-sizing:border-box;color:var(--el-color-info);text-overflow:ellipsis;white-space:nowrap;padding:0 20px;font-size:12px;line-height:34px;overflow:hidden}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;vertical-align:middle;width:var(--el-select-width);display:inline-block;position:relative}.el-select__wrapper{box-sizing:border-box;cursor:pointer;text-align:left;border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);min-height:32px;transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset;align-items:center;gap:6px;padding:4px 12px;font-size:14px;line-height:24px;display:flex;position:relative;transform:translateZ(0)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag,.el-select__wrapper.is-disabled input{cursor:not-allowed}.el-select__wrapper.is-disabled .el-select__prefix,.el-select__wrapper.is-disabled .el-select__suffix{pointer-events:none}.el-select__prefix,.el-select__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;gap:6px;display:flex}.el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);cursor:pointer;transform:rotate(0)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__clear{cursor:pointer}.el-select__clear:hover{color:var(--el-select-close-hover-color)}.el-select__selection{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{cursor:pointer;border-color:#0000}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{-webkit-user-select:none;user-select:none;flex-wrap:wrap;display:flex}.el-select__tags-text{text-overflow:ellipsis;white-space:nowrap;line-height:normal;display:block;overflow:hidden}.el-select__placeholder{z-index:-1;text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.el-select__placeholder.is-transparent{-webkit-user-select:none;user-select:none;color:var(--el-text-color-placeholder)}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-select__input-wrapper{flex:1}.el-select__input-wrapper.is-hidden{opacity:0;z-index:-1;position:absolute}.el-select__input{color:var(--el-select-multiple-input-color);font-size:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;outline:none;width:100%;height:24px;padding:0;font-family:inherit}.el-select__input-calculator{visibility:hidden;white-space:pre;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.el-select--large .el-select__wrapper{gap:6px;min-height:40px;padding:8px 16px;font-size:14px;line-height:24px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{gap:4px;min-height:24px;padding:2px 8px;font-size:12px;line-height:20px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);border-radius:var(--el-border-radius-base);width:100%;height:16px;display:inline-block}.el-skeleton__circle{width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size);border-radius:50%}.el-skeleton__button{border-radius:4px;width:64px;height:40px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;border-radius:0;justify-content:center;align-items:center;display:flex}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100%}to{background-position:0}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:var(--el-skeleton-color);height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;animation:1.4s infinite el-skeleton-loading}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;width:100%;height:32px;display:flex}.el-slider__runway{height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;position:relative}.el-slider__runway.show-input{width:auto;margin-right:30px}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed;transform:scale(1)}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);z-index:1;top:var(--el-slider-button-wrapper-offset);text-align:center;-webkit-user-select:none;user-select:none;background-color:#0000;outline:none;line-height:normal;position:absolute;transform:translate(-50%)}.el-slider__button-wrapper:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-slider__button-wrapper:hover,.el-slider__button-wrapper.hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;border-radius:50%;display:inline-block}.el-slider__button:hover,.el-slider__button.hover,.el-slider__button.dragging{transform:scale(1.2)}.el-slider__button:hover,.el-slider__button.hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);position:absolute;transform:translate(-50%)}.el-slider__marks{width:18px;height:100%;top:0;left:12px}.el-slider__marks-text{color:var(--el-color-info);white-space:pre;margin-top:15px;font-size:14px;position:absolute;transform:translate(-50%)}.el-slider.is-vertical{flex:0;width:auto;height:100%;display:inline-flex;position:relative}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);border-radius:0 0 3px 3px;height:auto}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{vertical-align:top;display:inline-flex}.el-space__item{flex-wrap:wrap;display:flex}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{vertical-align:middle;display:inline-block}.el-spinner-inner{width:50px;height:50px;animation:2s linear infinite rotate}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:1.5s ease-in-out infinite dash}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-35px}to{stroke-dasharray:90 150;stroke-dashoffset:-124px}}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-grow:0;flex-shrink:0;flex-basis:auto!important}.el-step:last-of-type .el-step__main,.el-step:last-of-type .el-step__description{padding-right:0}.el-step__head{width:100%;position:relative}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{z-index:1;box-sizing:border-box;background:var(--el-bg-color);justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:all .15s ease-out;display:inline-flex;position:relative}.el-step__icon.is-text{border:2px solid;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{-webkit-user-select:none;user-select:none;text-align:center;color:inherit;font-weight:700;line-height:1;display:inline-block}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:var(--el-text-color-placeholder);border-color:currentColor;position:absolute}.el-step__line-inner{box-sizing:border-box;border:1px solid;width:0;height:0;transition:all .15s ease-out;display:block}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:var(--el-text-color-primary);font-weight:700}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{margin-top:-5px;padding-right:10%;font-size:12px;font-weight:400;line-height:20px}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{padding-bottom:8px;line-height:24px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-vertical .el-step__description{padding-right:0}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{width:auto;padding-right:10px;font-size:0}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8)translateY(1px)}.el-step.is-simple .el-step__main{flex-grow:1;align-items:stretch;display:flex;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{overflow-wrap:break-word;max-width:50%}.el-step.is-simple .el-step__arrow{flex-grow:1;justify-content:center;align-items:center;display:flex}.el-step.is-simple .el-step__arrow:before,.el-step.is-simple .el-step__arrow:after{content:"";background:var(--el-text-color-placeholder);width:1px;height:15px;display:inline-block;position:absolute}.el-step.is-simple .el-step__arrow:before{transform-origin:0 0;transform:rotate(-45deg)translateY(-4px)}.el-step.is-simple .el-step__arrow:after{transform-origin:100% 100%;transform:rotate(45deg)translateY(4px)}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{line-height:normal;display:flex}.el-steps--simple{background:var(--el-fill-color-light);border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);vertical-align:middle;align-items:center;height:32px;font-size:14px;line-height:20px;display:inline-flex;position:relative}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);cursor:pointer;vertical-align:middle;height:20px;color:var(--el-text-color-primary);font-size:14px;font-weight:500;display:inline-block}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{font-size:14px;line-height:1;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{opacity:0;width:0;height:0;margin:0;position:absolute}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;min-width:40px;height:20px;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration);border-radius:10px;outline:none;align-items:center;display:inline-flex;position:relative}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);justify-content:center;align-items:center;height:16px;padding:0 4px 0 18px;display:flex;overflow:hidden}.el-switch__core .el-switch__inner-wrapper{color:var(--el-color-white);-webkit-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:12px;display:flex;overflow:hidden}.el-switch__core .el-switch__action{border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);background-color:var(--el-color-white);width:16px;height:16px;color:var(--el-switch-off-color);justify-content:center;align-items:center;display:flex;position:absolute;left:1px}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{height:40px;font-size:14px;line-height:24px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;min-width:50px;height:24px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{height:24px;font-size:12px;line-height:16px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;min-width:30px;height:16px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;background-color:#fff;border-radius:2px}.el-table-filter__list{outline:none;min-width:100px;margin:0;padding:5px 0;list-style:none}.el-table-filter__list-item{cursor:pointer;line-height:36px;font-size:var(--el-font-size-base);outline:none;padding:0 10px}.el-table-filter__list-item:hover,.el-table-filter__list-item:focus{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{height:unset;align-items:center;margin-bottom:12px;margin-left:5px;margin-right:5px;display:flex}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-fill-color-blank);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px #00000026;--el-table-fixed-right-column:inset -10px 0 10px -10px #00000026;--el-table-index:var(--el-index-normal);box-sizing:border-box;background-color:var(--el-table-bg-color);width:100%;max-width:100%;height:-moz-fit-content;height:fit-content;font-size:var(--el-font-size-base);color:var(--el-table-text-color);position:relative;overflow:hidden}.el-table__inner-wrapper{flex-direction:column;height:100%;display:flex;position:relative}.el-table__inner-wrapper:before{height:1px;bottom:0;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell,.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell{border-bottom-color:#0000}.el-table__empty-block{text-align:center;justify-content:center;align-items:center;width:100%;min-height:60px;display:flex;position:sticky;left:0}.el-table__empty-text{width:50%;color:var(--el-text-color-secondary);line-height:60px}.el-table__expand-column .cell{text-align:center;-webkit-user-select:none;user-select:none;padding:0}.el-table__expand-icon{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);width:min(23px,100%);height:23px;font-size:12px;line-height:12px}.el-table__expand-icon.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:#0000!important}.el-table__placeholder{width:20px;display:inline-block}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;text-align:left;min-width:0;z-index:var(--el-table-index);padding:8px 0;position:relative}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;width:15px;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;text-overflow:ellipsis;white-space:normal;overflow-wrap:break-word;padding:0 12px;line-height:23px;overflow:hidden}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table th.el-table__cell.is-leaf,.el-table td.el-table__cell{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{content:"";vertical-align:middle;background:#ff4d51;border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border:after,.el-table--border:before,.el-table--border .el-table__inner-wrapper:after,.el-table__inner-wrapper:before{content:"";background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2);position:absolute}.el-table--border .el-table__inner-wrapper:after{width:100%;height:1px;z-index:calc(var(--el-table-index) + 2);top:0;left:0}.el-table--border:before{width:1px;height:100%;top:-1px;left:0}.el-table--border:after{width:1px;height:100%;top:-1px;right:0}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper{width:100%}.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right,.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right{background:inherit;z-index:calc(var(--el-table-index) + 1);position:sticky!important}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{content:"";width:10px;box-shadow:none;touch-action:none;pointer-events:none;position:absolute;top:0;bottom:0;overflow:hidden}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch,.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch{z-index:calc(var(--el-table-index) + 1);background:#fff;right:0;position:sticky!important}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__header,.el-table__body,.el-table__footer{table-layout:fixed;border-collapse:separate}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__header-wrapper .el-table-column--selection>.cell,.el-table__body-wrapper .el-table-column--selection>.cell{align-items:center;height:23px;display:inline-flex}.el-table__header-wrapper .el-table-column--selection .el-checkbox,.el-table__body-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;position:relative;overflow:hidden}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{vertical-align:middle;width:24px;height:14px;overflow:initial;flex-direction:column;align-items:center;display:inline-flex;position:relative}.el-table .sort-caret{border:5px solid #0000;width:0;height:0;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;z-index:-1;position:absolute}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{z-index:calc(var(--el-table-index) + 2);position:sticky;top:0}.el-table.el-table--scrollable-y .el-table__body-footer{z-index:calc(var(--el-table-index) + 2);position:sticky;bottom:0}.el-table__column-resize-proxy{border-left:var(--el-table-border);width:0;z-index:calc(var(--el-table-index) + 9);position:absolute;top:0;bottom:0;left:200px}.el-table__column-filter-trigger{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);vertical-align:middle;font-size:14px}.el-table__border-left-patch{width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;top:0;left:0}.el-table__border-bottom-patch{height:1px;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;left:0}.el-table__border-right-patch{width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;top:0}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s 1ms}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{text-align:center;width:20px;display:inline-block}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-fill-color-blank);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px #00000026;--el-table-fixed-right-column:inset -10px 0 10px -10px #00000026;--el-table-index:var(--el-index-normal);font-size:var(--el-font-size-base)}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;left:0;overflow:hidden}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__vertical,.el-table-v2__left .el-vl__horizontal{z-index:-1}.el-table-v2__right{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;right:0;overflow:hidden;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__vertical,.el-table-v2__right .el-vl__horizontal{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__header .el-checkbox{z-index:0}.el-table-v2__footer{position:absolute;bottom:0;left:0;right:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{z-index:9999;position:absolute;inset:0}.el-table-v2__header-row{border-bottom:var(--el-table-border);display:flex}.el-table-v2__header-cell{-webkit-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color);height:100%;color:var(--el-table-header-text-color);align-items:center;padding:0 8px;font-weight:700;display:flex;overflow:hidden}.el-table-v2__header-cell.is-align-center{text-align:center;justify-content:center}.el-table-v2__header-cell.is-align-right{text-align:right;justify-content:flex-end}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-v2__sort-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{opacity:1;display:flex}.el-table-v2__row{border-bottom:var(--el-table-border);transition:background-color var(--el-transition-duration);align-items:center;display:flex}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{align-items:center;height:100%;padding:0 8px;display:flex;overflow:hidden}.el-table-v2__row-cell.is-align-center{text-align:center;justify-content:center}.el-table-v2__row-cell.is-align-right{text-align:right;justify-content:flex-end}.el-table-v2__expand-icon{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-v2__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-v2__expand-icon{-webkit-user-select:none;user-select:none;margin:0 4px}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row{align-items:stretch;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{justify-content:space-between;align-items:center;margin:0 0 15px;padding:0;display:flex;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);z-index:1;height:2px;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none;position:absolute;bottom:0;left:0}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{border:1px solid var(--el-border-color);text-align:center;width:20px;height:20px;color:var(--el-text-color-primary);cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin:10px 0 10px 10px;font-size:12px;line-height:20px;transition:all .15s;display:flex}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:auto;margin-bottom:-1px;position:relative;overflow:hidden}.el-tabs__nav-wrap:after{content:"";background-color:var(--el-border-color-light);width:100%;height:2px;z-index:var(--el-index-normal);position:absolute;bottom:0;left:0}.el-tabs__nav-wrap.is-bottom:after{top:0;bottom:auto}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{cursor:pointer;color:var(--el-text-color-secondary);text-align:center;width:20px;font-size:12px;line-height:44px;position:absolute}.el-tabs__nav-next.is-disabled,.el-tabs__nav-prev.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1);display:flex;position:relative}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{text-align:center;flex:1}.el-tabs__item{height:var(--el-tabs-header-height);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary);justify-content:center;align-items:center;padding:0 20px;font-weight:500;list-style:none;display:flex;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border-radius:50%;margin-left:5px}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;position:relative;overflow:hidden}.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--top>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height);box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);box-sizing:border-box;border-bottom:none;border-radius:4px 4px 0 0}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{transform-origin:100%;width:0;height:14px;font-size:12px;position:relative;right:-2px;overflow:hidden}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid #0000;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-top:-1px}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);color:var(--el-text-color-secondary);border:1px solid #0000;margin-top:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child,.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-top:10px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid #0000}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--card>.el-tabs__header.is-left,.el-tabs--card>.el-tabs__header.is-right,.el-tabs--border-card>.el-tabs__header.is-left,.el-tabs--border-card>.el-tabs__header.is-right{border-bottom:none}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-scroll{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{width:2px;height:auto;top:0;bottom:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{text-align:center;cursor:pointer;width:100%;height:30px;line-height:30px}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next.is-disabled{cursor:not-allowed}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{top:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{width:2px;height:100%;top:0;bottom:auto}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__active-bar.is-left{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right-color:#fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-right:none;border-radius:4px 0 0 4px}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid #0000;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 #0000}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left-color:#fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid #0000;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 #0000}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInRight-transition,.slideInLeft-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);position:absolute;left:0;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);position:absolute;left:0;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;opacity:1;transform:translate(0)}to{transform-origin:0 0;opacity:0;transform:translate(100%)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;opacity:1;transform:translate(0)}to{transform-origin:0 0;opacity:0;transform:translate(-100%)}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);vertical-align:middle;height:24px;font-size:var(--el-tag-font-size);border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px;--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);border-style:solid;border-width:1px;justify-content:center;align-items:center;padding:0 9px;line-height:1;display:inline-flex}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size);border-radius:50%}.el-tag .el-tag__close{background-color:#0000;border:none;border-radius:50%;outline:none;margin-left:6px;padding:0;overflow:hidden}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag .el-tag__close .el-icon{display:flex}.el-tag--dark{--el-tag-text-color:var(--el-color-white);--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{--el-icon-size:16px;height:32px;padding:0 11px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{--el-icon-size:12px;height:20px;padding:0 7px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);font-size:var(--el-text-font-size);color:var(--el-text-color);overflow-wrap:break-word;align-self:center;margin:0;padding:0}.el-text.is-truncated{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.el-text.is-line-clamp{-webkit-box-orient:vertical;display:-webkit-inline-box;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{min-width:0;margin:5px 0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);cursor:pointer;font-weight:700}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{box-sizing:content-box;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid var(--el-timeline-node-color);height:100%;position:absolute}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);box-sizing:border-box;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.el-timeline-item__node--normal{width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{justify-content:center;align-items:center;display:flex;position:absolute}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline-item.is-start .el-timeline-item__wrapper{padding-left:28px}.el-timeline-item.is-start .el-timeline-item__tail{left:4px}.el-timeline-item.is-start .el-timeline-item__node--normal{left:-1px}.el-timeline-item.is-start .el-timeline-item__node--large{left:-2px}.el-timeline-item.is-end .el-timeline-item__wrapper{text-align:right;padding-right:28px}.el-timeline-item.is-end .el-timeline-item__tail{right:4px}.el-timeline-item.is-end .el-timeline-item__node--normal{right:-1px}.el-timeline-item.is-end .el-timeline-item__node--large{right:-2px}.el-timeline-item.is-alternate .el-timeline-item__tail,.el-timeline-item.is-alternate .el-timeline-item__node,.el-timeline-item.is-alternate-reverse .el-timeline-item__tail,.el-timeline-item.is-alternate-reverse .el-timeline-item__node{left:50%;transform:translate(-50%)}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);font-size:var(--el-font-size-base);margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{align-items:center;display:flex}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{height:calc(50% - 10px);display:block}.el-timeline.is-start{padding-left:40px;padding-right:0}.el-timeline.is-end{padding-left:0;padding-right:40px}.el-timeline.is-alternate{padding-left:20px;padding-right:20px}.el-timeline.is-alternate .el-timeline-item:nth-child(odd) .el-timeline-item__wrapper{width:calc(50% - 28px);left:calc(50% - var(--el-timeline-node-size-large) / 2);padding-left:28px}.el-timeline.is-alternate .el-timeline-item:nth-child(2n) .el-timeline-item__wrapper{width:calc(50% - 28px + var(--el-timeline-node-size-large) / 2);text-align:right;padding-right:28px}.el-timeline.is-alternate-reverse{padding-left:20px;padding-right:20px}.el-timeline.is-alternate-reverse .el-timeline-item:nth-child(odd) .el-timeline-item__wrapper{width:calc(50% - 28px + var(--el-timeline-node-size-large) / 2);text-align:right;padding-right:28px}.el-timeline.is-alternate-reverse .el-timeline-item:nth-child(2n) .el-timeline-item__wrapper{width:calc(50% - 28px);left:calc(50% - var(--el-timeline-node-size-large) / 2);padding-left:28px}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{vertical-align:middle;padding:0 30px;display:inline-block}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{background:var(--el-bg-color-overlay);text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);box-sizing:border-box;max-height:100%;display:inline-block;position:relative;overflow:hidden}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0}.el-transfer-panel__list{height:var(--el-transfer-panel-body-height);box-sizing:border-box;margin:0;padding:6px 0;list-style:none;overflow:auto}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular);margin-right:30px}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;width:100%;line-height:var(--el-transfer-item-height);padding-left:22px;display:block;overflow:hidden}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;box-sizing:border-box;padding:15px}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);box-sizing:border-box;width:100%;font-size:12px;display:inline-block}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black);align-items:center;margin:0;padding-left:15px;display:flex}.el-transfer-panel .el-transfer-panel__header .el-checkbox{align-items:center;width:100%;display:flex;position:relative}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{min-width:0;color:var(--el-text-color-primary);flex:1;align-items:center;font-size:16px;font-weight:400;display:flex}.el-transfer-panel .el-transfer-panel__header-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.el-transfer-panel .el-transfer-panel__header-count{color:var(--el-text-color-secondary);flex-shrink:0;margin-left:8px;margin-right:15px;font-size:12px}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);margin:0;padding:0}.el-transfer-panel .el-transfer-panel__footer:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:var(--el-text-color-regular);padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);color:var(--el-text-color-secondary);text-align:center;margin:0;padding:6px 15px 0}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base);position:relative}.el-tree__empty-block{text-align:center;width:100%;height:100%;min-height:60px;position:relative}.el-tree__empty-text{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:var(--el-color-primary);height:1px;position:absolute;left:0;right:0}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);height:var(--el-tree-node-content-height);cursor:pointer;align-items:center;display:flex}.el-tree-node__content>.el-tree-node__expand-icon{box-sizing:content-box;padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);transition:transform var(--el-transition-duration) ease-in-out;font-size:12px;transform:rotate(0)}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:#0000;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color);margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:#0000;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__list>.el-select-dropdown__item{padding-left:32px}.el-tree-select__popper .el-select-dropdown__item{flex:1;height:20px;padding-left:0;line-height:20px;background:0 0!important}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;cursor:pointer;outline:none;justify-content:center;align-items:center;display:inline-flex}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{border-color:var(--el-border-color-darker);color:inherit}.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);margin-top:7px;font-size:12px}.el-upload iframe{z-index:-1;opacity:0;filter:alpha(opacity=0);position:absolute;top:0;left:0}.el-upload--picture-card{background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);box-sizing:border-box;text-align:center;cursor:pointer;border-radius:6px;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);margin-bottom:16px;font-size:67px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);text-align:center;font-size:14px}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{color:var(--el-text-color-regular);box-sizing:border-box;border-radius:4px;width:100%;margin-bottom:5px;font-size:14px;transition:all .5s cubic-bezier(.55,0,.1,1);position:relative}.el-upload-list__item .el-progress{width:100%;position:absolute;top:20px}.el-upload-list__item .el-progress__text{position:absolute;top:-13px;right:0}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);display:none;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{cursor:pointer;opacity:1;color:var(--el-color-primary);font-size:12px;font-style:normal;display:none;position:absolute;top:1px;right:5px}.el-upload-list__item:hover,.el-upload-list__item:focus-within{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close,.el-upload-list__item:focus-within .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-icon--close-tip,.el-upload-list__item:focus-within .el-icon--close-tip{right:24px}.el-upload-list__item:hover .el-progress__text,.el-upload-list__item:focus-within .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{flex-direction:column;justify-content:center;width:calc(100% - 30px);margin-left:4px;display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:hover,.el-upload-list__item.is-success .el-upload-list__item-name:focus{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:not(.focusing):focus,.el-upload-list__item.is-success:active{outline-width:0}.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip,.el-upload-list__item.is-success:active .el-icon--close-tip{display:none}.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus-within .el-upload-list__item-status-label{opacity:0;display:none}.el-upload-list__item-name{color:var(--el-text-color-regular);text-align:center;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base);align-items:center;padding:0 4px;display:inline-flex}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-upload-list__item-status-label{line-height:inherit;height:100%;transition:opacity var(--el-transition-duration);justify-content:center;align-items:center;display:none;position:absolute;top:0;right:5px}.el-upload-list__item-delete{color:var(--el-text-color-regular);font-size:12px;display:none;position:absolute;top:0;right:10px}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{flex-wrap:wrap;margin:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);border-radius:6px;margin:0 8px 8px 0;padding:0;display:inline-flex;overflow:hidden}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{object-fit:contain;width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);text-align:center;width:40px;height:24px;top:-6px;right:-15px;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{margin-top:11px;font-size:12px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{cursor:default;color:#fff;opacity:0;background-color:var(--el-overlay-color-lighter);width:100%;height:100%;transition:opacity var(--el-transition-duration);justify-content:center;align-items:center;font-size:20px;display:inline-flex;position:absolute;top:0;left:0}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{font-size:inherit;color:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{width:126px;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);box-sizing:border-box;border-radius:6px;align-items:center;margin-top:10px;padding:10px;display:flex;overflow:hidden}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{object-fit:contain;z-index:1;background-color:var(--el-color-white);justify-content:center;align-items:center;width:70px;height:70px;display:inline-flex;position:relative}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);text-align:center;width:46px;height:26px;position:absolute;top:-7px;right:-17px;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{margin-top:12px;font-size:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{z-index:10;cursor:default;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.el-upload-cover:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-upload-cover img{width:100%;height:100%;display:block}.el-upload-cover__label{background:var(--el-color-success);text-align:center;width:40px;height:24px;top:-6px;right:-15px;transform:rotate(45deg)}.el-upload-cover__label i{color:#fff;margin-top:11px;font-size:12px;transform:rotate(-45deg)}.el-upload-cover__progress{vertical-align:middle;width:243px;display:inline-block;position:static}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{width:100%;height:100%;position:absolute;top:0;left:0}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);text-align:center;width:100%;height:100%;position:absolute;bottom:0;left:0}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px;font-size:14px;display:inline-block}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;font-size:24px;line-height:inherit;margin:0 auto 5px;display:block}.el-upload-cover__title{text-overflow:ellipsis;white-space:nowrap;text-align:left;width:100%;height:36px;color:var(--el-text-color-primary);background-color:#fff;margin:0;padding:0 10px;font-size:14px;font-weight:400;line-height:36px;position:absolute;bottom:0;left:0;overflow:hidden}.el-upload-cover+.el-upload__inner{opacity:0;z-index:1;position:relative}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);--el-popper-bg-color-light:var(--el-bg-color-overlay);--el-popper-bg-color-dark:var(--el-text-color-primary);border-radius:var(--el-popper-border-radius);z-index:2000;overflow-wrap:break-word;word-break:normal;visibility:visible;min-width:10px;padding:5px 11px;font-size:12px;line-height:20px;position:absolute}.el-popper.is-dark{--el-fill-color-blank:var(--el-popper-bg-color-dark);color:var(--el-bg-color);background:var(--el-popper-bg-color-dark);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-popper-bg-color-dark);right:0}.el-popper.is-light{--el-fill-color-blank:var(--el-popper-bg-color-light);background:var(--el-popper-bg-color-light);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-popper-bg-color-light);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{z-index:-1;width:10px;height:10px;position:absolute}.el-popper__arrow:before{z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-top-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-right-color:#0000!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-top-color:#0000!important;border-right-color:#0000!important}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);margin-bottom:4px;line-height:20px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:12px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-close-color:var(--el-color-info);--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{border-radius:var(--el-tour-border-radius);width:var(--el-tour-width);padding:var(--el-tour-padding-primary);background:var(--el-tour-bg-color);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;overflow-wrap:break-word;outline:none}.el-tour__arrow{background:var(--el-tour-bg-color);pointer-events:none;box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-tour__content[data-side^=top] .el-tour__arrow{border-top-color:#0000;border-left-color:#0000}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:#0000;border-right-color:#0000}.el-tour__content[data-side^=left] .el-tour__arrow{border-bottom-color:#0000;border-left-color:#0000}.el-tour__content[data-side^=right] .el-tour__arrow{border-top-color:#0000;border-right-color:#0000}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{cursor:pointer;width:40px;height:40px;font-size:var(--el-message-close-size,16px);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-tour__closebtn .el-tour__close{color:var(--el-tour-close-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding-bottom:var(--el-tour-padding-primary)}.el-tour__header.show-close{padding-right:calc(var(--el-tour-padding-primary) + var(--el-message-close-size,16px))}.el-tour__title{line-height:var(--el-tour-font-line-height);font-size:var(--el-tour-title-font-size);color:var(--el-tour-title-text-color);font-weight:var(--el-tour-title-font-weight)}.el-tour__body{color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{padding-top:var(--el-tour-padding-primary);box-sizing:border-box;justify-content:space-between;display:flex}.el-tour__content .el-tour-indicators{flex:1;display:inline-block}.el-tour__content .el-tour-indicator{background:var(--el-color-info-light-9);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary);--el-tour-close-color:#fff}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{color:var(--el-color-primary);border-color:var(--el-color-primary);background:#fff}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:#ffffff26}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}.el-anchor{--el-anchor-bg-color:var(--el-bg-color);--el-anchor-padding-indent:14px;--el-anchor-line-height:22px;--el-anchor-font-size:12px;--el-anchor-color:var(--el-text-color-secondary);--el-anchor-active-color:var(--el-color-primary);--el-anchor-hover-color:var(--el-text-color-regular);--el-anchor-marker-bg-color:var(--el-color-primary);background-color:var(--el-anchor-bg-color);position:relative}.el-anchor__marker{background-color:var(--el-anchor-marker-bg-color);opacity:0;z-index:0;border-radius:4px;position:absolute}.el-anchor.el-anchor--vertical .el-anchor__marker{width:4px;height:14px;transition:top .25s ease-in-out,opacity .25s;top:8px;left:0}.el-anchor.el-anchor--vertical .el-anchor__list{padding-left:var(--el-anchor-padding-indent)}.el-anchor.el-anchor--vertical.el-anchor--underline:before{content:"";background-color:#0505050f;width:2px;height:100%;position:absolute;left:0}.el-anchor.el-anchor--vertical.el-anchor--underline .el-anchor__marker{border-radius:unset;width:2px}.el-anchor.el-anchor--horizontal .el-anchor__marker{width:20px;height:2px;transition:left .25s ease-in-out,opacity .25s,width .25s;bottom:0}.el-anchor.el-anchor--horizontal .el-anchor__list{padding-bottom:4px;display:flex}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item{padding-left:16px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item:first-child{padding-left:0}.el-anchor.el-anchor--horizontal.el-anchor--underline:before{content:"";background-color:#0505050f;width:100%;height:2px;position:absolute;bottom:0}.el-anchor.el-anchor--horizontal.el-anchor--underline .el-anchor__marker{border-radius:unset;height:2px}.el-anchor__item{flex-direction:column;display:flex}.el-anchor__link{font-size:var(--el-anchor-font-size);line-height:var(--el-anchor-line-height);color:var(--el-anchor-color);transition:color var(--el-transition-duration);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;outline:none;max-width:100%;padding:4px 0;text-decoration:none;overflow:hidden}.el-anchor__link:hover,.el-anchor__link:focus{color:var(--el-hover-color)}.el-anchor__link:focus-visible{border-radius:var(--el-border-radius-base);outline:2px solid var(--el-color-primary)}.el-anchor__link.is-active{color:var(--el-anchor-active-color)}.el-anchor .el-anchor__list .el-anchor__item a{display:inline-block}.el-segmented--vertical{flex-direction:column}.el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented{--el-segmented-color:var(--el-text-color-regular);--el-segmented-bg-color:var(--el-fill-color-light);--el-segmented-padding:2px;--el-segmented-item-selected-color:var(--el-color-white);--el-segmented-item-selected-bg-color:var(--el-color-primary);--el-segmented-item-selected-disabled-bg-color:var(--el-color-primary-light-5);--el-segmented-item-hover-color:var(--el-text-color-primary);--el-segmented-item-hover-bg-color:var(--el-fill-color-dark);--el-segmented-item-active-bg-color:var(--el-fill-color-darker);--el-segmented-item-disabled-color:var(--el-text-color-placeholder);background:var(--el-segmented-bg-color);min-height:32px;padding:var(--el-segmented-padding);border-radius:var(--el-border-radius-base);color:var(--el-segmented-color);box-sizing:border-box;align-items:stretch;font-size:14px;display:inline-flex}.el-segmented__group{align-items:stretch;width:100%;display:flex;position:relative}.el-segmented__item-selected{background:var(--el-segmented-item-selected-bg-color);border-radius:calc(var(--el-border-radius-base) - 2px);pointer-events:none;width:10px;height:100%;transition:all .3s;position:absolute;top:0;left:0}.el-segmented__item-selected.is-disabled{background:var(--el-segmented-item-selected-disabled-bg-color)}.el-segmented__item-selected.is-focus-visible:before{content:"";border-radius:inherit;outline:2px solid var(--el-segmented-item-selected-bg-color);outline-offset:1px;position:absolute;inset:0}.el-segmented__item{cursor:pointer;border-radius:calc(var(--el-border-radius-base) - 2px);flex:1;align-items:center;padding:0 11px;display:flex}.el-segmented__item:not(.is-disabled):not(.is-selected):hover{color:var(--el-segmented-item-hover-color);background:var(--el-segmented-item-hover-bg-color)}.el-segmented__item:not(.is-disabled):not(.is-selected):active{background:var(--el-segmented-item-active-bg-color)}.el-segmented__item.is-selected,.el-segmented__item.is-selected.is-disabled{color:var(--el-segmented-item-selected-color)}.el-segmented__item.is-disabled{cursor:not-allowed;color:var(--el-segmented-item-disabled-color)}.el-segmented__item-input{opacity:0;pointer-events:none;width:0;height:0;margin:0;position:absolute}.el-segmented__item-label{text-align:center;text-overflow:ellipsis;white-space:nowrap;z-index:1;flex:1;line-height:normal;transition:color .3s;overflow:hidden}.el-segmented.is-block{display:flex}.el-segmented.is-block .el-segmented__item{min-width:0}.el-segmented--large{border-radius:var(--el-border-radius-base);min-height:40px;font-size:16px}.el-segmented--large .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 2px)}.el-segmented--large .el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented--large .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 2px);padding:0 11px}.el-segmented--small{border-radius:calc(var(--el-border-radius-base) - 1px);min-height:24px;font-size:14px}.el-segmented--small .el-segmented__item-selected{border-radius:calc(calc(var(--el-border-radius-base) - 1px) - 2px)}.el-segmented--small .el-segmented--vertical .el-segmented__item{padding:7px}.el-segmented--small .el-segmented__item{border-radius:calc(calc(var(--el-border-radius-base) - 1px) - 2px);padding:0 7px}.el-mention{width:100%;position:relative}.el-mention__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-mention__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-mention__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-mention-dropdown{--el-mention-font-size:var(--el-font-size-base);--el-mention-bg-color:var(--el-bg-color-overlay);--el-mention-shadow:var(--el-box-shadow-light);--el-mention-border:1px solid var(--el-border-color-light);--el-mention-option-color:var(--el-text-color-regular);--el-mention-option-height:34px;--el-mention-option-min-width:100px;--el-mention-option-hover-background:var(--el-fill-color-light);--el-mention-option-selected-color:var(--el-color-primary);--el-mention-option-disabled-color:var(--el-text-color-placeholder);--el-mention-option-loading-color:var(--el-text-color-secondary);--el-mention-option-loading-padding:10px 0;--el-mention-max-height:174px;--el-mention-padding:6px 0;--el-mention-header-padding:10px;--el-mention-footer-padding:10px}.el-mention-dropdown__item{font-size:var(--el-mention-font-size);white-space:nowrap;text-overflow:ellipsis;color:var(--el-mention-option-color);height:var(--el-mention-option-height);line-height:var(--el-mention-option-height);box-sizing:border-box;min-width:var(--el-mention-option-min-width);cursor:pointer;padding:0 20px;position:relative;overflow:hidden}.el-mention-dropdown__item.is-hovering{background-color:var(--el-mention-option-hover-background)}.el-mention-dropdown__item.is-selected{color:var(--el-mention-option-selected-color);font-weight:700}.el-mention-dropdown__item.is-disabled{color:var(--el-mention-option-disabled-color);cursor:not-allowed;background-color:unset}.el-mention-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-mention-dropdown__loading{text-align:center;color:var(--el-mention-option-loading-color);min-width:var(--el-mention-option-min-width);margin:0;padding:10px 0;font-size:12px}.el-mention-dropdown__wrap{max-height:var(--el-mention-max-height)}.el-mention-dropdown__list{padding:var(--el-mention-padding);box-sizing:border-box;margin:0;list-style:none}.el-mention-dropdown__header{padding:var(--el-mention-header-padding);border-bottom:var(--el-mention-border)}.el-mention-dropdown__footer{padding:var(--el-mention-footer-padding);border-top:var(--el-mention-border)}.el-splitter{width:100%;height:100%;margin:0;padding:0;display:flex;position:relative}.el-splitter__mask{z-index:999;position:absolute;inset:0}.el-splitter__mask-horizontal{cursor:ew-resize}.el-splitter__mask-vertical{cursor:ns-resize}.el-splitter__horizontal{flex-direction:row}.el-splitter__vertical{flex-direction:column}.el-splitter-bar{-webkit-user-select:none;user-select:none;flex:none;position:relative}.el-splitter-bar__dragger{z-index:1;background:0 0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:before,.el-splitter-bar__dragger:after{content:"";background-color:var(--el-border-color-light);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:not(.is-lazy):after{display:none}.el-splitter-bar__dragger:after{opacity:.4}.el-splitter-bar__dragger:hover:not(.is-disabled):before{background-color:var(--el-color-primary-light-5)}.el-splitter-bar__dragger-horizontal:before,.el-splitter-bar__dragger-horizontal:after{width:2px;height:100%}.el-splitter-bar__dragger-vertical:before,.el-splitter-bar__dragger-vertical:after{width:100%;height:2px}.el-splitter-bar__dragger-active:before,.el-splitter-bar__dragger-active:after{background-color:var(--el-color-primary-light-3)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-horizontal:after{transform:translate(calc(-50% + var(--el-splitter-bar-offset)),-50%)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-vertical:after{transform:translate(-50%,calc(-50% + var(--el-splitter-bar-offset)))}.el-splitter-bar:hover .el-splitter-bar__collapse-icon{opacity:1}.el-splitter-bar__collapse-icon{background:var(--el-border-color-light);cursor:pointer;opacity:0;z-index:9;border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute}.el-splitter-bar__collapse-icon:hover{opacity:1;background-color:var(--el-color-primary-light-5)}.el-splitter-bar__horizontal-collapse-icon-start{width:16px;height:24px;top:50%;left:-12px;transform:translate(-50%,-50%)}.el-splitter-bar__horizontal-collapse-icon-end{width:16px;height:24px;top:50%;left:12px;transform:translate(-50%,-50%)}.el-splitter-bar__vertical-collapse-icon-start{width:24px;height:16px;top:-12px;right:50%;transform:translate(50%,-50%)}.el-splitter-bar__vertical-collapse-icon-end{width:24px;height:16px;top:12px;right:50%;transform:translate(50%,-50%)}.el-splitter-panel{scrollbar-width:thin;box-sizing:border-box;flex-grow:0;overflow:auto}:root{--w4f-primary: #5b6478;--w4f-primary-h: #3f4654;--w4f-primary-50: #f1f3f7;--w4f-primary-100: #e3e7ef;--w4f-primary-200: #cdd4e0;--w4f-primary-300: #a7b1c3;--w4f-secondary: #8a93a8;--w4f-secondary-h: #5b6478;--w4f-secondary-50: #f4f6f9;--w4f-secondary-200: #c8ced9;--w4f-danger: #d6495f;--w4f-danger-50: #fdecef;--w4f-warning: #b7791f;--w4f-warning-50: #fdf3e3;--w4f-info: #3f6ef5;--w4f-ok: #17a964;--w4f-bg-1: #f4f5f7;--w4f-bg-2: #ffffff;--w4f-bg-3: #eef0f3;--w4f-bg-soft: #f8f9fb;--w4f-bg-muted: #f4f5f7;--w4f-bg-hover: #eef0f3;--w4f-bg-active: #e3e7ef;--w4f-fg: #2b2f3a;--w4f-fg-2: #5a6072;--w4f-muted: #6b7280;--w4f-faint: #9ca3af;--w4f-card: rgba(255, 255, 255, .66);--w4f-card-solid: #ffffff;--w4f-card-2: rgba(255, 255, 255, .46);--w4f-line: rgba(91, 100, 120, .16);--w4f-line-2: rgba(91, 100, 120, .1);--w4f-line-3: rgba(91, 100, 120, .06);--w4f-line-strong: rgba(60, 70, 90, .22);--w4f-blob1: rgba(160, 170, 190, .3);--w4f-blob2: rgba(200, 210, 225, .28);--w4f-blob3: rgba(150, 160, 180, .22);--w4f-sh-sm: 0 1px 2px rgba(40, 50, 70, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--w4f-sh-md: 0 6px 20px rgba(40, 50, 70, .12);--w4f-sh-lg: 0 18px 46px rgba(40, 50, 70, .2);--w4f-glass: 18px;--w4f-radius: 16px;--w4f-radius-sm: 12px;--w4f-radius-xs: 10px;--w4f-radius-pill: 99px;--w4f-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--w4f-ease: cubic-bezier(.4, 0, .2, 1);--w4f-font: "Quicksand", "Nunito", "Inter", "Noto Sans SC", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--w4f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--w4f-glow: rgba(91, 100, 120, .3);--w4f-danger-glow: rgba(214, 73, 95, .3);--w4f-glow-soft: rgba(91, 100, 120, .18);--w4f-thumb: rgba(120, 130, 150, .4);--w4f-thumb-hover: rgba(91, 100, 120, .6);--w4f-selection: #cdd4e0;--el-color-primary: #5b6478;--el-color-primary-light-3: #a7b1c3;--el-color-primary-light-5: #b9c1cf;--el-color-primary-light-7: #cdd4e0;--el-color-primary-light-8: #e3e7ef;--el-color-primary-light-9: #f1f3f7;--el-color-primary-dark-2: #3f4654;--el-color-success: #17a964;--el-color-warning: #b7791f;--el-color-danger: #d6495f;--el-color-info: #6b7280;--el-border-radius-base: 12px;--el-border-radius-small: 8px;--el-font-family: var(--w4f-font);--w4f-ok-50: color-mix(in srgb, var(--w4f-ok) 7%, var(--w4f-card-solid));--w4f-ok-100: color-mix(in srgb, var(--w4f-ok) 13%, var(--w4f-card-solid));--w4f-ok-border: color-mix(in srgb, var(--w4f-ok) 40%, transparent);--w4f-ok-glow: color-mix(in srgb, var(--w4f-ok) 20%, transparent);--w4f-ok-text: color-mix(in srgb, var(--w4f-ok) 48%, var(--w4f-fg));--w4f-warn-50: color-mix(in srgb, var(--w4f-warning) 9%, var(--w4f-card-solid));--w4f-warn-100: color-mix(in srgb, var(--w4f-warning) 15%, var(--w4f-card-solid));--w4f-warn-border: color-mix(in srgb, var(--w4f-warning) 42%, transparent);--w4f-warn-glow: color-mix(in srgb, var(--w4f-warning) 20%, transparent);--w4f-warn-text: color-mix(in srgb, var(--w4f-warning) 52%, var(--w4f-fg))}[data-theme=blue]{--w4f-primary: #3b82f6;--w4f-primary-h: #2563eb;--w4f-primary-50: #eff6ff;--w4f-primary-100: #dbeafe;--w4f-primary-200: #bfdbfe;--w4f-primary-300: #93c5fd;--w4f-secondary: #06b6d4;--w4f-secondary-h: #0891b2;--w4f-secondary-50: #ecfeff;--w4f-secondary-200: #a5f3fc;--w4f-danger: #ef4444;--w4f-danger-50: #fee2e2;--w4f-warning: #b7791f;--w4f-warning-50: #fdf3e3;--w4f-info: #3f6ef5;--w4f-ok: #17a964;--w4f-bg-1: #eff6ff;--w4f-bg-2: #ffffff;--w4f-bg-3: #dbeafe;--w4f-bg-soft: #f5f9ff;--w4f-bg-muted: #eff6ff;--w4f-bg-hover: #e0ebfd;--w4f-bg-active: #dbeafe;--w4f-fg: #1e293b;--w4f-fg-2: #475569;--w4f-muted: #64748b;--w4f-faint: #94a3b8;--w4f-card: rgba(255, 255, 255, .66);--w4f-card-solid: #ffffff;--w4f-card-2: rgba(255, 255, 255, .46);--w4f-line: rgba(59, 130, 246, .16);--w4f-line-2: rgba(59, 130, 246, .1);--w4f-line-3: rgba(59, 130, 246, .06);--w4f-line-strong: rgba(30, 64, 175, .22);--w4f-blob1: rgba(59, 130, 246, .4);--w4f-blob2: rgba(6, 182, 212, .36);--w4f-blob3: rgba(99, 102, 241, .26);--w4f-sh-sm: 0 1px 2px rgba(30, 58, 138, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--w4f-sh-md: 0 6px 20px rgba(30, 58, 138, .13);--w4f-sh-lg: 0 18px 46px rgba(30, 58, 138, .22);--w4f-glow: rgba(59, 130, 246, .32);--w4f-danger-glow: rgba(239, 68, 68, .3);--w4f-glow-soft: rgba(59, 130, 246, .18);--w4f-thumb: rgba(59, 130, 246, .4);--w4f-thumb-hover: rgba(37, 99, 235, .6);--w4f-selection: #bfdbfe;--el-color-primary: #3b82f6;--el-color-primary-light-3: #93c5fd;--el-color-primary-light-5: #a5c8fb;--el-color-primary-light-7: #bfdbfe;--el-color-primary-light-8: #d6e8fd;--el-color-primary-light-9: #eff6ff;--el-color-primary-dark-2: #2563eb;--el-color-success: #17a964;--el-color-warning: #b7791f;--el-color-danger: #ef4444;--el-color-info: #64748b}[data-theme=pink]{--w4f-primary: #FF7FAC;--w4f-primary-h: #F33B7C;--w4f-primary-50: #FFF0F5;--w4f-primary-100: #FFE4E9;--w4f-primary-200: #FFCDD9;--w4f-primary-300: #FF9EB5;--w4f-secondary: #88C0D0;--w4f-secondary-h: #4C8DAE;--w4f-secondary-50: #F0F9FC;--w4f-secondary-200: #AEE1F2;--w4f-danger: #DB3694;--w4f-danger-50: #FEEAF6;--w4f-warning: #b7791f;--w4f-warning-50: #fdf3e3;--w4f-info: #3f6ef5;--w4f-ok: #17a964;--w4f-bg-1: #eef2ff;--w4f-bg-2: #ffffff;--w4f-bg-3: #ffe9f0;--w4f-bg-soft: #f8f6fb;--w4f-bg-muted: #f4f1f7;--w4f-bg-hover: #f5eef3;--w4f-bg-active: #ffe4e9;--w4f-fg: #3b3350;--w4f-fg-2: #5a5470;--w4f-muted: #7c7a95;--w4f-faint: #9c98b0;--w4f-card: rgba(255, 255, 255, .6);--w4f-card-solid: #ffffff;--w4f-card-2: rgba(255, 255, 255, .42);--w4f-line: rgba(255, 127, 172, .18);--w4f-line-2: rgba(255, 127, 172, .12);--w4f-line-3: rgba(255, 127, 172, .06);--w4f-line-strong: rgba(120, 90, 150, .22);--w4f-blob1: rgba(255, 127, 172, .45);--w4f-blob2: rgba(136, 192, 208, .42);--w4f-blob3: rgba(244, 114, 182, .3);--w4f-sh-sm: 0 1px 2px rgba(70, 50, 110, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--w4f-sh-md: 0 6px 20px rgba(120, 90, 160, .13);--w4f-sh-lg: 0 18px 46px rgba(120, 90, 160, .22);--w4f-glow: rgba(255, 127, 172, .35);--w4f-danger-glow: rgba(219, 54, 148, .3);--w4f-glow-soft: rgba(255, 127, 172, .18);--w4f-thumb: rgba(255, 182, 193, .45);--w4f-thumb-hover: rgba(255, 127, 172, .7);--w4f-selection: #ffcdba;--el-color-primary: #FF7FAC;--el-color-primary-light-3: #FF9EB5;--el-color-primary-light-5: #ffb3c4;--el-color-primary-light-7: #ffcdd9;--el-color-primary-light-8: #ffe4e9;--el-color-primary-light-9: #fff0f5;--el-color-primary-dark-2: #f33b7c;--el-color-success: #17a964;--el-color-warning: #b7791f;--el-color-danger: #db3694;--el-color-info: #7c7a95}html,body,#app{margin:0;height:100%}html,body{overflow:hidden}body{font:14px/1.55 var(--w4f-font);color:var(--w4f-fg);letter-spacing:.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:var(--w4f-selection);color:#fff}a{color:var(--w4f-primary-h)}#bgfx{position:fixed;inset:0;z-index:-10;overflow:hidden;background:linear-gradient(135deg,var(--w4f-bg-1),var(--w4f-bg-2) 45%,var(--w4f-bg-3))}#bgfx .blob{position:absolute;border-radius:50%;filter:blur(64px);will-change:transform;opacity:.6}#bgfx .b1{top:-10%;left:-8%;width:560px;height:560px;background:var(--w4f-blob1);animation:drift1 30s ease-in-out infinite alternate}#bgfx .b2{top:16%;right:-10%;width:440px;height:440px;background:var(--w4f-blob2);animation:drift2 36s ease-in-out infinite alternate}#bgfx .b3{bottom:-12%;left:24%;width:620px;height:620px;background:var(--w4f-blob3);animation:drift3 42s ease-in-out infinite alternate}@keyframes drift1{0%{transform:translate(0) scale(1)}to{transform:translate(30px,-20px) scale(1.05)}}@keyframes drift2{0%{transform:translate(0) scale(1)}to{transform:translate(-25px,18px) scale(1.03)}}@keyframes drift3{0%{transform:translate(0) scale(1)}to{transform:translate(18px,25px) scale(1.04)}}@media(prefers-reduced-motion:reduce){#bgfx .blob{animation:none;opacity:.35}}.w4f-card{position:relative;background:var(--w4f-card);border:1px solid var(--w4f-line);border-radius:var(--w4f-radius);box-shadow:var(--w4f-sh-md);backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);animation:cardIn .32s var(--w4f-ease-spring) both}@media(prefers-reduced-motion:reduce){.w4f-card{backdrop-filter:none;-webkit-backdrop-filter:none}}@keyframes cardIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.w4f-kpi{background:var(--w4f-card);border:1px solid var(--w4f-line);border-radius:var(--w4f-radius);padding:16px 18px;display:flex;flex-direction:column;box-shadow:var(--w4f-sh-md);backdrop-filter:blur(var(--w4f-glass)) saturate(1.6);-webkit-backdrop-filter:blur(var(--w4f-glass)) saturate(1.6);transition:transform .25s var(--w4f-ease-spring),box-shadow .25s var(--w4f-ease-spring),border-color .25s var(--w4f-ease-spring);animation:cardIn .32s var(--w4f-ease-spring) both}.w4f-kpi:hover{transform:translateY(-2px);box-shadow:var(--w4f-sh-lg);border-color:var(--w4f-primary-200)}.w4f-kpi .k-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.w4f-kpi .k-lab{font-size:12px;color:var(--w4f-muted);font-weight:700;display:flex;align-items:center;gap:6px;white-space:nowrap}.w4f-kpi .k-val{font-size:27px;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:.3px}.w4f-kpi .k-sub{font-size:11.5px;color:var(--w4f-muted);margin-top:4px}.w4f-kpi .k-ic{width:26px;height:26px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h)}.w4f-dot{width:7px;height:7px;border-radius:50%;background:var(--w4f-ok);display:inline-block;animation:blink 1.6s infinite}.w4f-dot.err{background:var(--w4f-danger)}.w4f-dot.pending{background:var(--w4f-secondary)}@keyframes blink{50%{opacity:.25}}.w4f-bar{height:5px;border-radius:3px;background:var(--w4f-card-2);overflow:hidden;min-width:60px}.w4f-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--w4f-primary),var(--w4f-secondary));border-radius:3px}.w4f-bar.ok i{background:var(--w4f-ok)}.w4f-bar.err i{background:var(--w4f-danger)}.w4f-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--w4f-radius-pill);font-size:12px;font-weight:600;margin:2px 3px 2px 0}.w4f-tag-ok{background:#17a9641f;color:var(--w4f-ok)}.w4f-tag-danger{background:var(--w4f-danger-50);color:var(--w4f-danger)}.w4f-tag-info{background:var(--w4f-secondary-50);color:var(--w4f-secondary-h)}.w4f-tag-warn{background:#b7791f24;color:var(--w4f-warning)}.w4f-tag-primary{background:var(--w4f-primary-50);color:var(--w4f-primary-h)}.w4f-btn{background:linear-gradient(135deg,var(--w4f-primary),var(--w4f-danger));color:#fff;border:0;border-radius:11px;padding:8px 16px;cursor:pointer;font:inherit;font-weight:600;transition:all .18s var(--w4f-ease-spring)}.w4f-btn:hover{background:linear-gradient(135deg,var(--w4f-primary-h),var(--w4f-danger));transform:translateY(-1px);box-shadow:0 8px 20px var(--w4f-glow)}.w4f-btn:active{transform:translateY(0)}.w4f-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.w4f-btn.ghost{background:transparent;border:1px solid var(--w4f-line-strong);color:var(--w4f-muted)}.w4f-btn.ghost:hover{border-color:var(--w4f-primary);color:var(--w4f-primary-h);box-shadow:var(--w4f-sh-sm);transform:none;background:transparent}.w4f-btn.danger{background:transparent;border:1px solid var(--w4f-danger);color:var(--w4f-danger)}.w4f-btn.danger:hover{background:var(--w4f-danger);color:#fff;box-shadow:0 8px 20px var(--w4f-danger-glow);transform:translateY(-1px)}.w4f-btn.small{padding:5px 12px;font-size:12px;border-radius:var(--w4f-radius-pill)}*{scrollbar-width:thin;scrollbar-color:var(--w4f-line-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--w4f-thumb);border-radius:4px;transition:background .3s}*::-webkit-scrollbar-thumb:hover{background:var(--w4f-thumb-hover)}.el-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.el-dialog{border-radius:var(--w4f-radius)!important;box-shadow:var(--w4f-sh-lg)!important}.el-message{border-radius:var(--w4f-radius-sm)!important;box-shadow:var(--w4f-sh-lg)!important}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.local-node[data-v-2cf42f62]{min-width:240px;border-radius:14px 14px 14px 4px;background:var(--w4f-ok-50);border:2px solid var(--w4f-ok);box-shadow:0 2px 8px var(--w4f-ok-glow);padding:8px 10px}.local-node.selected[data-v-2cf42f62]{border-color:var(--w4f-warning);box-shadow:0 0 0 3px var(--w4f-warn-glow)}.local-node.conflicted[data-v-2cf42f62]{border-color:var(--w4f-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent);animation:conflict-pulse-2cf42f62 1.2s ease-in-out infinite}@keyframes conflict-pulse-2cf42f62{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--w4f-danger) 70%,transparent)}}.node-head[data-v-2cf42f62]{display:flex;align-items:center;gap:6px}.node-head .node-icon[data-v-2cf42f62]{color:var(--w4f-ok);font-size:16px}.name-input[data-v-2cf42f62]{flex:1;min-width:0;border:none;background:transparent;font-weight:600;font-size:14px;color:var(--w4f-ok-text)}.name-input[data-v-2cf42f62]:focus{outline:1px solid var(--w4f-ok)}.del-btn[data-v-2cf42f62]{border:none;background:transparent;color:var(--w4f-faint);font-size:16px;cursor:pointer;line-height:1}.del-btn[data-v-2cf42f62]:hover{color:var(--w4f-danger)}.adv .adv-body label input[data-v-2cf42f62],.adv .adv-body label select[data-v-2cf42f62],.fields label input[data-v-2cf42f62],.fields label select[data-v-2cf42f62]{flex:1;min-width:0;border:1px solid var(--w4f-ok-border);border-radius:6px;padding:2px 6px;font-size:12px;background:var(--w4f-card-solid);color:var(--w4f-fg)}.adv .adv-body label input[data-v-2cf42f62]:focus,.adv .adv-body label select[data-v-2cf42f62]:focus,.fields label input[data-v-2cf42f62]:focus,.fields label select[data-v-2cf42f62]:focus{outline:none;border-color:var(--w4f-ok)}.fields[data-v-2cf42f62]{display:flex;flex-direction:column;gap:4px;margin-top:6px}.fields label[data-v-2cf42f62]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--w4f-ok-text)}.fields label input[type=number][data-v-2cf42f62]{width:64px;flex:0 0 64px}.adv[data-v-2cf42f62]{margin-top:6px}.adv .adv-toggle[data-v-2cf42f62]{border:1px dashed var(--w4f-ok-border);background:transparent;color:var(--w4f-ok-text);font-size:11px;border-radius:6px;padding:2px 8px;cursor:pointer}.adv .adv-body[data-v-2cf42f62]{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;padding:8px;background:var(--w4f-ok-100);border-radius:8px}.adv .adv-body label[data-v-2cf42f62]{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--w4f-ok-text)}.adv .adv-body .adv-check[data-v-2cf42f62]{flex-direction:row;align-items:center;gap:4px}.adv .adv-body .adv-sep[data-v-2cf42f62],.adv .adv-body .adv-wide[data-v-2cf42f62]{grid-column:1/-1}.adv .adv-body .adv-sep[data-v-2cf42f62]{margin:4px 0 2px;font-size:11px;font-weight:600;color:var(--w4f-ok-text);border-top:1px dashed var(--w4f-ok-border);padding-top:4px}.remote-node[data-v-b77096cd]{min-width:200px;border-radius:14px 14px 4px;background:var(--w4f-warn-50);border:2px solid var(--w4f-warning);box-shadow:0 2px 8px var(--w4f-warn-glow);padding:8px 10px}.remote-node.selected[data-v-b77096cd]{border-color:var(--w4f-warning);box-shadow:0 0 0 3px var(--w4f-warn-glow)}.remote-node.conflicted[data-v-b77096cd]{border-color:var(--w4f-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent);animation:conflict-pulse-b77096cd 1.2s ease-in-out infinite}@keyframes conflict-pulse-b77096cd{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--w4f-danger) 70%,transparent)}}.node-head[data-v-b77096cd]{display:flex;align-items:center;gap:6px}.node-head .node-icon[data-v-b77096cd]{color:var(--w4f-warning);font-size:16px}.name-input[data-v-b77096cd]{flex:1;min-width:0;border:none;background:transparent;font-weight:600;font-size:14px;color:var(--w4f-warn-text)}.name-input[data-v-b77096cd]:focus{outline:1px solid var(--w4f-warning)}.enabled[data-v-b77096cd]{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:var(--w4f-warn-text)}.del-btn[data-v-b77096cd]{border:none;background:transparent;color:var(--w4f-faint);font-size:16px;cursor:pointer;line-height:1}.del-btn[data-v-b77096cd]:hover{color:var(--w4f-danger)}.fields[data-v-b77096cd]{display:flex;flex-direction:column;gap:4px;margin-top:6px}.fields label[data-v-b77096cd]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--w4f-warn-text)}.fields label input[data-v-b77096cd]{flex:1;min-width:0;border:1px solid var(--w4f-warn-border);border-radius:6px;padding:2px 6px;font-size:12px;background:var(--w4f-card-solid);color:var(--w4f-fg)}.fields label input[data-v-b77096cd]:focus{outline:none;border-color:var(--w4f-warning)}.fields label input[type=number][data-v-b77096cd]{width:64px;flex:0 0 64px}.fields .adv[data-v-b77096cd]{margin-top:6px}.fields .adv .adv-toggle[data-v-b77096cd]{border:1px dashed var(--w4f-warn-border);background:transparent;color:var(--w4f-warn-text);font-size:11px;border-radius:6px;padding:2px 8px;cursor:pointer}.fields .adv .adv-body[data-v-b77096cd]{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:6px;background:var(--w4f-warn-100);border-radius:8px}.fields .adv .adv-body label[data-v-b77096cd]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--w4f-warn-text)}.fields .adv .adv-body label input[data-v-b77096cd],.fields .adv .adv-body label select[data-v-b77096cd]{flex:1;min-width:0;border:1px solid var(--w4f-warn-border);border-radius:6px;padding:2px 6px;font-size:12px;background:var(--w4f-card-solid);color:var(--w4f-fg)}.fields .adv .adv-body label input[data-v-b77096cd]:focus,.fields .adv .adv-body label select[data-v-b77096cd]:focus{outline:none;border-color:var(--w4f-warning)}.fields .adv .adv-body .adv-check[data-v-b77096cd]{font-size:11px}.port-edge-path.selected[data-v-cecf0202]{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--w4f-primary) 60%,transparent))}.port-edge-path.conflicted[data-v-cecf0202]{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--w4f-danger) 80%,transparent));animation:conflict-pulse-cecf0202 1.2s ease-in-out infinite}@keyframes conflict-pulse-cecf0202{0%,to{opacity:1}50%{opacity:.55}}.port-label[data-v-cecf0202]{position:relative;background:color-mix(in srgb,var(--w4f-card-solid) 90%,transparent);color:var(--w4f-fg);border:1px solid var(--w4f-line);border-radius:10px;padding:2px 10px;font-size:12px;font-weight:600;font-family:inherit;white-space:nowrap;box-shadow:var(--w4f-sh-sm);-webkit-user-select:none;user-select:none;transition:box-shadow .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1)),transform .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label.dragging[data-v-cecf0202]{cursor:grabbing;box-shadow:var(--w4f-sh-md)}.port-label .port-toggle[data-v-cecf0202]{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:6px;padding:0 4px;margin-right:6px;font-size:10px;font-weight:700;background:color-mix(in srgb,var(--el-color-success) 18%,transparent);color:var(--el-color-success);cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1)),color .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label .port-toggle.off[data-v-cecf0202]{background:color-mix(in srgb,var(--el-color-info) 18%,transparent);color:var(--el-color-info)}.port-label .port-group[data-v-cecf0202]{margin-left:6px;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:600;background:color-mix(in srgb,var(--w4f-secondary) 16%,transparent);color:var(--w4f-secondary-h);cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label .port-delete[data-v-cecf0202]{position:absolute;top:-10px;right:-10px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;margin-left:0;font-size:13px;font-weight:700;line-height:1;background:color-mix(in srgb,var(--el-color-danger) 16%,transparent);color:var(--el-color-danger);cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1)),color .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label .port-delete[data-v-cecf0202]:hover{background:var(--el-color-danger);color:#fff}.canvas-editor[data-v-f91ed7cb]{height:100%;display:flex;flex-direction:column;background:var(--w4f-bg-soft)}.toolbar[data-v-f91ed7cb]{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--w4f-bg-2);border-bottom:1px solid var(--w4f-line);z-index:20}.toolbar-left[data-v-f91ed7cb],.toolbar-right[data-v-f91ed7cb]{display:flex;align-items:center;gap:8px}.toolbar-title[data-v-f91ed7cb]{font-weight:600;font-size:16px;margin-right:8px}.btn[data-v-f91ed7cb]{border:none;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500;cursor:pointer;transition:all .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1));background:var(--w4f-bg-muted);color:var(--w4f-fg)}.btn[data-v-f91ed7cb]:hover{background:var(--w4f-bg-hover)}.btn[data-v-f91ed7cb]:disabled{opacity:.5;cursor:default}.btn.local-add[data-v-f91ed7cb]{background:var(--w4f-ok);color:#fff}.btn.local-add[data-v-f91ed7cb]:hover{background:color-mix(in srgb,var(--w4f-ok) 82%,var(--w4f-fg))}.btn.remote-add[data-v-f91ed7cb]{background:var(--w4f-warning);color:#fff}.btn.remote-add[data-v-f91ed7cb]:hover{background:color-mix(in srgb,var(--w4f-warning) 82%,var(--w4f-fg))}.btn.warn[data-v-f91ed7cb]{background:var(--w4f-secondary);color:#fff}.btn.warn[data-v-f91ed7cb]:hover{background:var(--w4f-secondary-h)}.btn.save[data-v-f91ed7cb]{background:var(--w4f-primary);color:#fff}.btn.save[data-v-f91ed7cb]:hover{background:var(--w4f-primary-h)}.btn.ghost[data-v-f91ed7cb]{background:transparent;color:var(--w4f-muted);border:1px solid var(--w4f-line-strong)}.btn.ghost[data-v-f91ed7cb]:hover:not(:disabled){background:var(--w4f-card-2);color:var(--w4f-fg)}.btn.ghost[data-v-f91ed7cb]:disabled{opacity:.5;cursor:not-allowed}.hidden-input[data-v-f91ed7cb]{position:absolute;width:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.save-hint[data-v-f91ed7cb]{font-size:13px;color:var(--w4f-muted)}.flow-wrap[data-v-f91ed7cb]{flex:1;position:relative;min-height:0}.flow-canvas[data-v-f91ed7cb]{width:100%;height:100%;background:var(--w4f-bg-muted)}.dlg-row[data-v-f91ed7cb]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.dlg-row label[data-v-f91ed7cb]{min-width:70px;font-size:14px;color:var(--w4f-fg-2)}.dlg-value[data-v-f91ed7cb]{font-weight:500}.dlg-hint[data-v-f91ed7cb]{font-size:13px;color:var(--w4f-muted)}[data-v-f91ed7cb] .vue-flow__edge-label{background:color-mix(in srgb,var(--w4f-fg) 75%,transparent);color:var(--w4f-bg-2);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;cursor:pointer}[data-v-f91ed7cb] .vue-flow__handle{width:12px;height:12px;border:2px solid var(--w4f-card-solid)}[data-v-f91ed7cb] .vue-flow__node{cursor:grab}[data-v-f91ed7cb] .vue-flow__node.dragging{cursor:grabbing}.settings-page[data-v-8b757323]{height:100%;display:flex;flex-direction:column;overflow-y:auto}.page-top[data-v-8b757323]{flex-shrink:0;padding:24px 32px;border-bottom:1px solid var(--w4f-line)}.page-header .page-title[data-v-8b757323]{margin:0}.page-header .page-subtitle[data-v-8b757323]{margin:4px 0 0;color:var(--w4f-muted);font-size:14px}.page-content[data-v-8b757323]{padding:24px 32px;display:flex;flex-direction:column;gap:24px;max-width:760px}.panel[data-v-8b757323]{border:1px solid var(--w4f-line);border-radius:16px;padding:24px}.panel-title[data-v-8b757323]{margin:0 0 4px;font-size:16px;font-weight:600}.panel-desc[data-v-8b757323]{margin:0 0 12px;color:var(--w4f-muted);font-size:13px}.binary-row[data-v-8b757323]{display:flex;gap:8px}.binary-input[data-v-8b757323]{flex:1}.btn[data-v-8b757323]{border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1));white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.install-btn[data-v-8b757323]{background:var(--w4f-primary);color:#fff}.install-btn[data-v-8b757323]:hover{background:var(--w4f-primary-h)}.install-btn[data-v-8b757323]:disabled{opacity:.6;cursor:default}.spin[data-v-8b757323]{animation:rotate-8b757323 1s linear infinite}@keyframes rotate-8b757323{to{transform:rotate(360deg)}}.binary-info[data-v-8b757323]{margin-top:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.binary-info .info-label[data-v-8b757323]{color:var(--w4f-muted);font-size:13px}.binary-info .info-value[data-v-8b757323]{background:var(--w4f-bg-muted);border-radius:6px;padding:2px 8px;font-size:13px;word-break:break-all}.binary-info .info-version[data-v-8b757323]{background:var(--w4f-primary-50);color:var(--w4f-primary-h);border-radius:10px;padding:2px 8px;font-size:13px}.setting-row[data-v-8b757323]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--w4f-line-2)}.setting-row[data-v-8b757323]:last-child{border-bottom:none}.setting-text[data-v-8b757323]{display:flex;flex-direction:column}.setting-label[data-v-8b757323]{font-size:14px;font-weight:500}.setting-hint[data-v-8b757323]{font-size:13px;color:var(--w4f-muted)}.status-page[data-v-3b790b1b]{height:100%;display:flex;flex-direction:column;overflow:hidden;gap:14px}.topbar[data-v-3b790b1b]{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px}.tb-left[data-v-3b790b1b]{display:flex;flex-direction:column;gap:3px}.page-title[data-v-3b790b1b]{margin:0;font-size:17px;font-weight:800}.page-sub[data-v-3b790b1b]{font-size:12px;color:var(--w4f-muted)}.tb-right[data-v-3b790b1b]{display:flex;gap:8px}.kpis[data-v-3b790b1b]{flex-shrink:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px}.status-body[data-v-3b790b1b]{flex:1;display:flex;flex-direction:column;gap:18px;overflow-y:auto;padding-right:4px}.section[data-v-3b790b1b]{display:flex;flex-direction:column}.section-title[data-v-3b790b1b]{margin:0 0 10px;font-size:13.5px;font-weight:700;color:var(--w4f-muted);letter-spacing:.02em;display:flex;align-items:center;gap:10px}.section-title .k-ic[data-v-3b790b1b]{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:13px;background:linear-gradient(135deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h)}.card-grid[data-v-3b790b1b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.node-card[data-v-3b790b1b]{padding:16px 18px;border-left:4px solid var(--w4f-danger)}.node-card.healthy[data-v-3b790b1b]{border-left-color:var(--w4f-ok)}.nc-head[data-v-3b790b1b]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nc-name[data-v-3b790b1b]{font-weight:800;font-size:15px;margin-right:auto}.nc-actions[data-v-3b790b1b]{display:flex;gap:6px;flex-wrap:wrap}.nc-cluster-note[data-v-3b790b1b]{font-size:11.5px;color:var(--w4f-muted);padding:3px 9px;border-radius:99px;background:var(--w4f-card-2);cursor:help;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nc-meta[data-v-3b790b1b]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.meta-pill[data-v-3b790b1b]{font-size:11.5px;padding:2px 9px;border-radius:99px;background:var(--w4f-card-2);color:var(--w4f-muted);font-family:var(--w4f-mono);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-pill.warn[data-v-3b790b1b]{background:var(--w4f-warning-50);color:var(--w4f-warning)}.meta-pill.err[data-v-3b790b1b]{background:var(--w4f-danger-50);color:var(--w4f-danger)}.meta-pill.info[data-v-3b790b1b]{background:var(--w4f-secondary-50);color:var(--w4f-secondary-h)}.nc-forwards[data-v-3b790b1b]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.nc-groups[data-v-3b790b1b]{margin-top:6px}.nc-proxies[data-v-3b790b1b]{display:flex;flex-direction:column;gap:6px;margin-top:10px}.nc-proxy[data-v-3b790b1b]{display:flex;align-items:center;gap:8px;font-size:12px;padding:6px 10px;border-radius:10px;background:var(--w4f-card-2);border:1px solid var(--w4f-line)}.nc-proxy.ok[data-v-3b790b1b]{border-left:3px solid var(--w4f-ok)}.nc-proxy.pending[data-v-3b790b1b]{border-left:3px solid var(--w4f-secondary)}.nc-proxy.err[data-v-3b790b1b]{border-left:3px solid var(--w4f-danger)}.nc-proxy .w4f-bar[data-v-3b790b1b]{width:60px}.np-name[data-v-3b790b1b]{font-weight:700}.np-status[data-v-3b790b1b]{font-size:11px;color:var(--w4f-fg-2)}.np-addr[data-v-3b790b1b]{margin-left:auto;font-size:11px;color:var(--w4f-muted);font-family:var(--w4f-mono)}.np-err[data-v-3b790b1b]{margin-left:auto;font-size:11px;color:var(--w4f-danger);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nc-proxies-empty[data-v-3b790b1b]{margin-top:8px;font-size:12px;color:var(--w4f-muted)}.fwd-card[data-v-3b790b1b]{padding:12px 14px;border-left:4px solid var(--w4f-muted);transition:border-color .18s var(--w4f-ease-spring)}.fwd-card.active[data-v-3b790b1b]{border-left-color:var(--w4f-ok)}.fwd-card.stopped[data-v-3b790b1b]{border-left-color:var(--w4f-danger);opacity:.78}.fwd-head[data-v-3b790b1b]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fwd-kind[data-v-3b790b1b]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;color:var(--w4f-muted);background:var(--w4f-card-2)}.fwd-kind.local[data-v-3b790b1b]{color:var(--w4f-ok-h, #fff);background:var(--w4f-ok-50, var(--w4f-primary-50))}.fwd-kind.remote[data-v-3b790b1b]{color:var(--w4f-secondary-h);background:var(--w4f-secondary-50)}.fwd-dot[data-v-3b790b1b]{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--w4f-muted);box-shadow:0 0 0 3px var(--w4f-card-2)}.fwd-dot.on[data-v-3b790b1b]{background:var(--w4f-ok);box-shadow:0 0 0 3px var(--w4f-ok-50, var(--w4f-primary-50))}.fwd-route[data-v-3b790b1b]{font-size:13.5px;display:flex;align-items:center;gap:5px;margin-right:auto}.fwd-ip[data-v-3b790b1b]{font-size:11.5px;color:var(--w4f-muted);font-family:var(--w4f-mono)}.fwd-arrow[data-v-3b790b1b]{color:var(--w4f-primary);font-weight:800}.fwd-port[data-v-3b790b1b]{font-family:var(--w4f-mono);color:var(--w4f-fg-2)}.fwd-owner[data-v-3b790b1b]{font-size:11.5px;color:var(--w4f-muted);padding:2px 8px;border-radius:99px;background:var(--w4f-card-2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fwd-actions[data-v-3b790b1b]{display:flex;gap:6px}.grp-count[data-v-3b790b1b]{font-size:12px;color:var(--w4f-muted);font-weight:600}.grp-actions[data-v-3b790b1b]{margin-left:auto;display:flex;gap:6px}.group-chip[data-v-3b790b1b]{cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.group-chip[data-v-3b790b1b]:hover{background:color-mix(in srgb,var(--w4f-info) 30%,transparent)}.local-card[data-v-3b790b1b]{padding:14px 16px}.lc-head[data-v-3b790b1b]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lc-name[data-v-3b790b1b]{font-weight:800;font-size:14px}.lc-addr[data-v-3b790b1b]{font-size:12px;color:var(--w4f-fg-2);font-family:var(--w4f-mono)}.lc-targets[data-v-3b790b1b]{margin-top:10px;display:flex;flex-direction:column;gap:6px}.lc-target[data-v-3b790b1b]{display:flex;align-items:center;gap:6px;font-size:13px}.lc-arrow[data-v-3b790b1b]{color:var(--w4f-primary);font-weight:700}.lc-remote[data-v-3b790b1b]{font-weight:600}.lc-port[data-v-3b790b1b]{color:var(--w4f-fg-2);font-family:var(--w4f-mono);margin-right:auto}.lc-none[data-v-3b790b1b]{font-size:12px;color:var(--w4f-faint)}.empty[data-v-3b790b1b]{grid-column:1/-1;color:var(--w4f-muted);font-size:13px;padding:18px;text-align:center}.form-row[data-v-3b790b1b]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.form-row label[data-v-3b790b1b]{width:72px;font-size:13px;color:var(--w4f-fg-2);flex-shrink:0}.cluster-page[data-v-522b4320]{height:100%;display:flex;flex-direction:column;overflow-y:auto;padding:4px 0 40px;gap:14px}.hero[data-v-522b4320]{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 20px}.hero-left[data-v-522b4320]{display:flex;flex-direction:column;gap:4px}.page-title[data-v-522b4320]{margin:0;font-size:18px;font-weight:800}.page-sub[data-v-522b4320]{color:var(--w4f-muted);font-size:12px}.hero-stats[data-v-522b4320]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.hero-stats .w4f-tag b[data-v-522b4320]{color:var(--w4f-fg);font-weight:800}.crown[data-v-522b4320]{color:var(--w4f-primary-h)}.nodekey-bar[data-v-522b4320]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--w4f-line);width:100%}.nk-label[data-v-522b4320]{font-size:12px;color:var(--w4f-muted);white-space:nowrap}.nk-value[data-v-522b4320]{font-family:var(--w4f-mono);font-size:12px;background:var(--w4f-card-2);border:1px solid var(--w4f-line);border-radius:10px;padding:3px 8px;-webkit-user-select:all;user-select:all;letter-spacing:.02em}.nk-hint[data-v-522b4320]{font-size:11px;color:var(--w4f-faint)}.kpis[data-v-522b4320]{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px}.toolbar[data-v-522b4320]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px}.act-hint[data-v-522b4320]{font-size:12px;color:var(--w4f-muted)}.cluster-body[data-v-522b4320]{display:flex;flex-direction:column;gap:14px}.section[data-v-522b4320]{padding:18px 20px}.section-title[data-v-522b4320]{margin:0 0 12px;font-size:13.5px;font-weight:700;color:var(--w4f-muted);letter-spacing:.02em;display:flex;align-items:center;gap:10px}.section-title .k-ic[data-v-522b4320]{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:13px;background:linear-gradient(135deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h)}.ring-line[data-v-522b4320]{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}.ring-node[data-v-522b4320]{position:relative;border:1px solid var(--w4f-line);border-radius:16px;padding:12px 14px;min-width:168px;background:var(--w4f-card-2);box-shadow:var(--w4f-sh-sm)}.ring-node.leader[data-v-522b4320]{border-color:var(--w4f-secondary);background:var(--w4f-secondary-50)}.ring-node.self[data-v-522b4320]{outline:2px solid rgba(255,127,172,.45);box-shadow:0 0 0 4px #ff7fac24;border-color:var(--w4f-primary)}.ring-node.dead[data-v-522b4320]{border-color:var(--w4f-danger);background:var(--w4f-danger-50);opacity:.72}.rn-top[data-v-522b4320]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rn-id[data-v-522b4320]{font-weight:800;font-size:13px;font-family:var(--w4f-mono)}.rn-load-row[data-v-522b4320]{display:flex;align-items:center;gap:8px;margin-top:8px}.rn-load-label[data-v-522b4320]{font-size:11px;color:var(--w4f-muted);white-space:nowrap}.rn-load-row .w4f-bar[data-v-522b4320]{flex:1;min-width:50px}.rn-addr[data-v-522b4320]{font-size:11px;color:var(--w4f-muted);font-family:var(--w4f-mono);margin-top:4px}.rn-remove[data-v-522b4320]{margin-top:8px}.ring-arrow[data-v-522b4320]{align-self:center;color:var(--w4f-primary);font-size:18px;font-weight:700}.task-list[data-v-522b4320],.topo-list[data-v-522b4320],.log-list[data-v-522b4320]{display:flex;flex-direction:column;gap:6px}.log-list[data-v-522b4320]{max-height:340px;overflow-y:auto;padding-right:2px}.task-row[data-v-522b4320],.topo-row[data-v-522b4320]{display:flex;align-items:center;gap:8px;border:1px solid var(--w4f-line);border-radius:10px;padding:8px 11px;font-size:13px;background:var(--w4f-card-2);box-shadow:var(--w4f-sh-sm)}.task-row.pending[data-v-522b4320]{background:var(--w4f-primary-50);border-color:#ff7fac40}.task-row.revoke[data-v-522b4320],.task-row.remove[data-v-522b4320]{background:var(--w4f-danger-50);border-color:#db369440}.tk-id[data-v-522b4320],.tp-id[data-v-522b4320]{font-weight:700;color:var(--w4f-fg-2);font-size:12px;font-family:var(--w4f-mono)}.tk-name[data-v-522b4320],.tp-name[data-v-522b4320]{font-weight:600}.tk-arrow[data-v-522b4320]{color:var(--w4f-primary);font-weight:700}.tk-port[data-v-522b4320],.tp-port[data-v-522b4320]{color:var(--w4f-muted);font-family:var(--w4f-mono)}.tp-owner[data-v-522b4320]{margin-left:auto;font-size:11px;color:var(--w4f-secondary-h)}.tp-owner.self[data-v-522b4320]{color:var(--w4f-primary-h);font-weight:700}.log-row[data-v-522b4320]{display:flex;align-items:center;gap:10px;font-size:12px;font-family:var(--w4f-mono);border-bottom:1px dashed var(--w4f-line);padding:4px 2px;flex-wrap:wrap}.log-row.add .lg-kind[data-v-522b4320]{color:var(--w4f-ok);font-weight:700}.log-row.remove .lg-kind[data-v-522b4320]{color:var(--w4f-danger);font-weight:700}.log-row.join .lg-kind[data-v-522b4320]{color:var(--w4f-info);font-weight:700}.log-row.leave .lg-kind[data-v-522b4320]{color:var(--w4f-warning);font-weight:700}.log-row.leader .lg-kind[data-v-522b4320]{color:var(--w4f-secondary-h);font-weight:700}.lg-seq[data-v-522b4320]{color:var(--w4f-muted);flex:0 0 auto}.lg-time[data-v-522b4320]{color:var(--w4f-faint);font-size:11.5px;flex:0 0 auto}.lg-node[data-v-522b4320]{color:var(--w4f-faint);flex:0 0 auto}.lg-node.self[data-v-522b4320]{color:var(--w4f-primary-h);font-weight:700}.lg-kind[data-v-522b4320]{color:var(--w4f-fg-2);flex:0 0 auto;font-weight:600}.lg-detail[data-v-522b4320]{margin-left:auto;color:var(--w4f-fg-2);font-size:11.5px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.log-count[data-v-522b4320]{font-size:11px;font-weight:600;color:var(--w4f-muted)}.title-actions[data-v-522b4320]{margin-left:auto;display:flex;align-items:center;gap:6px}.empty[data-v-522b4320]{color:var(--w4f-muted);font-size:13px;padding:10px}.empty-page[data-v-522b4320]{color:var(--w4f-muted);font-size:14px;padding:40px;text-align:center}.form-row[data-v-522b4320]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.form-row label[data-v-522b4320]{width:72px;font-size:13px;color:var(--w4f-fg-2);flex-shrink:0}.form-hint[data-v-522b4320]{font-size:12px;color:var(--w4f-muted)}.users-view[data-v-35347cd7]{display:flex;flex-direction:column;gap:20px}.card[data-v-35347cd7]{background:var(--w4f-card);border:1px solid var(--w4f-line);border-radius:16px;padding:16px 18px;box-shadow:var(--w4f-sh-sm)}.card-h[data-v-35347cd7]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-h h3[data-v-35347cd7]{margin:0;font-size:15px;font-weight:700}.muted[data-v-35347cd7]{color:var(--w4f-muted)}.key-result[data-v-35347cd7]{display:flex;flex-direction:column;gap:10px}.key-result .warn[data-v-35347cd7]{color:var(--w4f-primary-h, #d97706);font-weight:600;margin:0}.key-result .hint[data-v-35347cd7]{margin:0;font-size:12px;color:var(--w4f-muted)}.key-result code[data-v-35347cd7]{background:var(--w4f-card-2);padding:1px 5px;border-radius:4px;font-size:12px}.app-shell[data-v-48c4803f]{height:100%;display:flex;font-family:var(--w4f-font);color:var(--w4f-fg)}.sidebar[data-v-48c4803f]{flex:0 0 246px;width:246px;padding:18px 14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;background:var(--w4f-card);border-right:1px solid var(--w4f-line);backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);box-shadow:var(--w4f-sh-md);z-index:30}@media(prefers-reduced-motion:reduce){.sidebar[data-v-48c4803f]{backdrop-filter:none;-webkit-backdrop-filter:none}}.sb-brand[data-v-48c4803f]{display:flex;align-items:center;gap:11px;padding:6px 8px 18px}.sb-logo[data-v-48c4803f]{width:40px;height:40px;border-radius:13px;flex:0 0 auto;object-fit:contain;box-shadow:0 6px 18px var(--w4f-glow)}.sb-brand-text b[data-v-48c4803f]{font-size:16.5px;letter-spacing:.2px;display:block;line-height:1.1}.sb-brand-text small[data-v-48c4803f]{display:block;font-size:11px;color:var(--w4f-muted);margin-top:3px}.sb-nav[data-v-48c4803f]{display:flex;flex-direction:column;gap:3px;flex:1}.sb-i[data-v-48c4803f]{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 13px;border-radius:13px;cursor:pointer;color:var(--w4f-muted);font-weight:600;font-size:13.5px;font-family:inherit;background:transparent;border:1px solid transparent;transition:background .18s var(--w4f-ease-spring),color .18s var(--w4f-ease-spring),border-color .18s var(--w4f-ease-spring),box-shadow .18s var(--w4f-ease-spring)}.sb-i .ic[data-v-48c4803f]{display:grid;place-items:center;width:18px;height:18px;flex:0 0 auto;opacity:.85}.sb-i[data-v-48c4803f]:hover{background:var(--w4f-card-2);color:var(--w4f-fg)}.sb-i:hover .ic[data-v-48c4803f]{opacity:1}.sb-i.active[data-v-48c4803f]{background:linear-gradient(120deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h);border-color:var(--w4f-line);box-shadow:var(--w4f-sh-sm)}.sb-i.active .ic[data-v-48c4803f]{opacity:1}.sb-foot[data-v-48c4803f]{margin-top:auto;padding-top:16px}.sb-identity[data-v-48c4803f]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:12px;border-radius:10px;background:var(--w4f-card-2);border:1px solid var(--w4f-line);font-size:12.5px}.sb-identity .id-name[data-v-48c4803f]{font-weight:600;color:var(--w4f-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-identity .id-level[data-v-48c4803f]{flex:0 0 auto;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;color:var(--w4f-muted);background:var(--w4f-card)}.sb-identity .id-level.admin[data-v-48c4803f]{color:#fff;background:linear-gradient(135deg,var(--w4f-primary),var(--w4f-secondary))}.sb-identity .id-level.write[data-v-48c4803f]{color:var(--w4f-warning);background:var(--w4f-warning-50)}.sb-identity .id-level.read[data-v-48c4803f]{color:var(--w4f-muted)}.sb-theme[data-v-48c4803f]{display:flex;gap:6px;margin-bottom:12px}.sb-theme .sw[data-v-48c4803f]{width:26px;height:26px;border-radius:8px;border:2px solid var(--w4f-line);cursor:pointer;padding:0;transition:transform .15s var(--w4f-ease-spring),box-shadow .15s var(--w4f-ease-spring)}.sb-theme .sw[data-v-48c4803f]:hover{transform:translateY(-1px)}.sb-theme .sw.on[data-v-48c4803f]{border-color:var(--w4f-primary);box-shadow:0 0 0 3px var(--w4f-glow-soft)}.sb-theme .sw.white[data-v-48c4803f]{background:linear-gradient(135deg,#fff,#cdd4e0)}.sb-theme .sw.blue[data-v-48c4803f]{background:linear-gradient(135deg,#3b82f6,#06b6d4)}.sb-theme .sw.pink[data-v-48c4803f]{background:linear-gradient(135deg,#ff7fac,#f33b7c)}.main[data-v-48c4803f]{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}.breadcrumb[data-v-48c4803f]{display:flex;align-items:center;gap:8px;padding:16px 24px 6px;font-weight:700;font-size:15px}.breadcrumb .crumb[data-v-48c4803f]{opacity:1;color:var(--w4f-fg)}.content[data-v-48c4803f]{flex:1;overflow-y:auto;padding:8px 24px 40px}@media(max-width:900px){.sidebar[data-v-48c4803f]{flex:0 0 210px;width:210px}.breadcrumb[data-v-48c4803f]{padding:12px 16px 6px}.content[data-v-48c4803f]{padding:8px 14px 32px}} +@charset "UTF-8";:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out,var(--el-transition-duration) padding-top ease-in-out,var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out,var(--el-transition-duration) padding-left ease-in-out,var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55,0,.1,1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);background-color:var(--el-color-white);opacity:1;transition:opacity var(--el-transition-duration-fast);align-items:center;margin:0;display:flex;position:relative;overflow:hidden}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-primary)}.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{flex-direction:column;gap:4px;display:flex}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size);margin-right:8px}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size);margin-right:12px}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;cursor:pointer;position:absolute;top:12px;right:16px}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{box-sizing:border-box;width:var(--el-aside-width,300px);flex-shrink:0;overflow:auto}.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;width:var(--el-input-width);display:inline-block;position:relative}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__header{border-bottom:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__footer{border-top:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{cursor:pointer;color:var(--el-text-color-regular);line-height:34px;font-size:var(--el-font-size-base);text-align:left;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:0 20px;list-style:none;overflow:hidden}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{cursor:default;height:100px;color:var(--el-text-color-secondary);justify-content:center;align-items:center;font-size:20px;display:flex}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size:40px;--el-avatar-size-small:24px;box-sizing:border-box;text-align:center;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size);outline:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.el-avatar>img{width:100%;height:100%;display:block}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-avatar-group{--el-avatar-group-item-gap:-8px;--el-avatar-group-collapse-item-gap:4px;display:inline-flex}.el-avatar-group .el-avatar{border:1px solid var(--el-border-color-extra-light)}.el-avatar-group .el-avatar:not(:first-child){margin-left:var(--el-avatar-group-item-gap)}.el-avatar-group__collapse-avatars{--el-avatar-group-item-gap:-8px;--el-avatar-group-collapse-item-gap:4px}.el-avatar-group__collapse-avatars .el-avatar:not(:first-child){margin-left:var(--el-avatar-group-collapse-item-gap)}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);background-color:var(--el-backtop-bg-color);width:40px;height:40px;color:var(--el-backtop-text-color);box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;vertical-align:middle;width:-moz-fit-content;width:fit-content;display:inline-block;position:relative}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color);justify-content:center;align-items:center;display:inline-flex}.el-badge__content.is-fixed{top:0;right:calc(1px + var(--el-badge-size) / 2);z-index:var(--el-index-normal);position:absolute;transform:translateY(-50%)translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;width:8px;height:8px;padding:0;right:0}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);margin:0 9px;font-weight:700}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;align-items:center;display:inline-flex}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{transition:var(--el-transition-color);color:var(--el-text-color-primary);font-weight:700;text-decoration:none}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:before,.el-breadcrumb:after{content:"";display:table}.el-breadcrumb:after{clear:both}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:hover,.el-button-group>.el-button:focus,.el-button-group>.el-button:active,.el-button-group>.el-button.is-active{z-index:1}.el-button-group--horizontal{vertical-align:middle;display:inline-block}.el-button-group--horizontal:before,.el-button-group--horizontal:after{content:"";display:table}.el-button-group--horizontal:after{clear:both}.el-button-group--horizontal>.el-button{float:left;position:relative}.el-button-group--horizontal>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group--horizontal>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group--horizontal>.el-button:not(:last-child){margin-right:-1px}.el-button-group--horizontal .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group--vertical{flex-direction:column;align-items:stretch;display:inline-flex}.el-button-group--vertical>.el-button{margin-top:-1px}.el-button-group--vertical>.el-button:first-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.el-button-group--vertical>.el-button:last-child{border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical>.el-dropdown{margin-top:-1px}.el-button-group--vertical>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical .el-button--primary:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);white-space:nowrap;cursor:pointer;height:32px;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;line-height:1;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);outline:none;justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:8px 15px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";border-radius:inherit;background-color:var(--el-mask-color-extra-light);position:absolute;inset:-1px}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-dashed{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary);border-style:dashed}.el-button.is-circle{border-radius:50%;width:32px;padding:8px}.el-button.is-text{color:var(--el-button-text-color);background-color:#0000;border:0 solid #0000}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{color:var(--el-button-text-color);background:0 0;border-color:#0000;height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button.is-link:not(.is-disabled):hover{background-color:#0000;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);background-color:#0000;border-color:#0000}.el-button--text{color:var(--el-color-primary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);background-color:#0000;border-color:#0000}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);background-color:#0000;border-color:#0000}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--primary.is-dashed{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-text-color:var(--el-color-primary-dark-2);--el-button-active-bg-color:var(--el-color-primary-light-9);--el-button-active-border-color:var(--el-color-primary-dark-2)}.el-button--primary.is-dashed.is-disabled,.el-button--primary.is-dashed.is-disabled:hover,.el-button--primary.is-dashed.is-disabled:focus,.el-button--primary.is-dashed.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--success.is-dashed{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-success);--el-button-hover-bg-color:var(--el-color-success-light-9);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-text-color:var(--el-color-success-dark-2);--el-button-active-bg-color:var(--el-color-success-light-9);--el-button-active-border-color:var(--el-color-success-dark-2)}.el-button--success.is-dashed.is-disabled,.el-button--success.is-dashed.is-disabled:hover,.el-button--success.is-dashed.is-disabled:focus,.el-button--success.is-dashed.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--warning.is-dashed{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-warning);--el-button-hover-bg-color:var(--el-color-warning-light-9);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-text-color:var(--el-color-warning-dark-2);--el-button-active-bg-color:var(--el-color-warning-light-9);--el-button-active-border-color:var(--el-color-warning-dark-2)}.el-button--warning.is-dashed.is-disabled,.el-button--warning.is-dashed.is-disabled:hover,.el-button--warning.is-dashed.is-disabled:focus,.el-button--warning.is-dashed.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--danger.is-dashed{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-danger);--el-button-hover-bg-color:var(--el-color-danger-light-9);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-text-color:var(--el-color-danger-dark-2);--el-button-active-bg-color:var(--el-color-danger-light-9);--el-button-active-border-color:var(--el-color-danger-dark-2)}.el-button--danger.is-dashed.is-disabled,.el-button--danger.is-dashed.is-disabled:hover,.el-button--danger.is-dashed.is-disabled:focus,.el-button--danger.is-dashed.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--info.is-dashed{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-info);--el-button-hover-bg-color:var(--el-color-info-light-9);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-text-color:var(--el-color-info-dark-2);--el-button-active-bg-color:var(--el-color-info-light-9);--el-button-active-border-color:var(--el-color-info-dark-2)}.el-button--info.is-dashed.is-disabled,.el-button--info.is-dashed.is-disabled:hover,.el-button--info.is-dashed.is-disabled:focus,.el-button--info.is-dashed.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:5px 11px;font-size:12px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-calendar{--el-calendar-border:var(--el-table-border,1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{border-bottom:var(--el-calendar-header-border-bottom);justify-content:space-between;padding:12px 20px;display:flex}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar__select-controller .el-select{margin-right:8px}.el-calendar__select-controller .el-calendar-select__year{width:120px}.el-calendar__select-controller .el-calendar-select__month{width:60px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:var(--el-text-color-regular);padding:12px 0;font-weight:400}.el-calendar-table:not(.is-range) td.prev,.el-calendar-table:not(.is-range) td.next{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:var(--el-calendar-cell-width);padding:8px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);color:var(--el-text-color-primary);transition:var(--el-transition-duration);flex-direction:column;display:flex;overflow:hidden}.el-card.is-always-shadow,.el-card.is-hover-shadow:hover,.el-card.is-hover-shadow:focus{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding);flex-grow:1;overflow:auto}.el-card__footer{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-top:1px solid var(--el-card-border-color);box-sizing:border-box}.el-carousel__item{width:100%;height:100%;z-index:calc(var(--el-index-normal) - 1);display:inline-block;position:absolute;top:0;left:0;overflow:hidden}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage:hover .el-carousel__mask,.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{width:100%;height:50%}.el-carousel__mask{background-color:var(--el-color-white);opacity:.24;width:100%;height:100%;transition:var(--el-transition-duration-fast);position:absolute;top:0;left:0}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:#1f2d3d1c;--el-carousel-arrow-hover-background:#1f2d3d3b;--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel.is-vertical-outside{flex-direction:row;align-items:center;display:flex}.el-carousel.is-vertical-outside .el-carousel__container{flex:1}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);background-color:var(--el-carousel-arrow-background);color:#fff;z-index:10;text-align:center;font-size:var(--el-carousel-arrow-font-size);border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{z-index:calc(var(--el-index-normal) + 1);margin:0;padding:0;list-style:none;position:absolute}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{top:50%;right:0;transform:translateY(-50%)}.el-carousel__indicators--outside{text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels .el-carousel__button{color:#000;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{cursor:pointer;background-color:#0000}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal);display:inline-block}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width) / 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);cursor:pointer;transition:var(--el-transition-duration);background-color:#fff;border:none;outline:none;margin:0;padding:0;display:block}.el-carousel__indicators--labels .el-carousel__button{width:auto;height:auto}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%)translate(-10px)}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%)translate(10px)}.el-transitioning{filter:url(#elCarouselHorizontal)}.el-transitioning-vertical{filter:url(#elCarouselVertical)}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);width:-moz-fit-content;width:fit-content;font-size:var(--el-cascader-menu-font-size);display:flex}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{box-sizing:border-box;min-width:180px;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;min-height:100%;margin:0;padding:6px 0;list-style:none;position:relative}.el-cascader-menu__list.el-vl__window{margin:6px 0;padding:0}.el-cascader-menu__list.el-vl__window ul{margin:0;padding:0}.el-cascader-menu__hover-zone{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.el-cascader-menu__empty-text{color:var(--el-cascader-color-empty);align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{box-sizing:border-box;outline:none;align-items:center;height:34px;padding:0 30px 0 20px;line-height:34px;display:flex;position:relative}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-selectable.in-checked-path,.el-cascader-node.is-active{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):hover,.el-cascader-node:not(.is-disabled):focus{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;padding:0 8px;overflow:hidden}.el-cascader-node>.el-checkbox,.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);vertical-align:middle;font-size:var(--el-font-size-base);outline:none;line-height:32px;display:inline-block;position:relative}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{cursor:pointer;display:flex}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:read-only{cursor:pointer}.el-cascader .el-input .el-input__inner:disabled{cursor:not-allowed}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--large .el-cascader__tags{gap:6px;padding:8px}.el-cascader--large .el-cascader__search-input{height:24px;margin-left:7px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader--small .el-cascader__tags{gap:4px;padding:2px}.el-cascader--small .el-cascader__search-input{height:20px;margin-left:5px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-cascader__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-cascader__tags{text-align:left;box-sizing:border-box;flex-wrap:wrap;gap:6px;padding:4px;line-height:normal;display:flex;position:absolute;top:50%;left:0;right:30px;transform:translateY(-50%)}.el-cascader__tags .el-tag{text-overflow:ellipsis;background:var(--el-cascader-tag-background);align-items:center;max-width:100%;display:inline-flex}.el-cascader__tags .el-tag.el-tag--dark,.el-cascader__tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__tags .el-tag:not(.is-hit){border-color:#0000}.el-cascader__tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__tags .el-tag>span{text-overflow:ellipsis;flex:1;line-height:normal;overflow:hidden}.el-cascader__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__tags .el-tag+input{margin-left:0}.el-cascader__tags.is-validate{right:55px}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{text-overflow:ellipsis;background:var(--el-fill-color);align-items:center;max-width:100%;display:inline-flex}.el-cascader__collapse-tags .el-tag.el-tag--dark,.el-cascader__collapse-tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:#0000}.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__collapse-tags .el-tag>span{text-overflow:ellipsis;flex:1;line-height:normal;overflow:hidden}.el-cascader__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags .el-tag+input{margin-left:0}.el-cascader__collapse-tags .el-tag{margin:2px 0}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-wrap{max-height:204px}.el-cascader__suggestion-list{font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center;margin:0;padding:6px 0;list-style:none}.el-cascader__suggestion-list.el-vl__window{margin:6px 0;padding:0}.el-cascader__suggestion-list.el-vl__window ul{margin:0;padding:0}.el-cascader__suggestion-item{text-align:left;cursor:pointer;box-sizing:border-box;outline:none;justify-content:space-between;align-items:center;height:34px;padding:0 15px;display:flex}.el-cascader__suggestion-item:hover,.el-cascader__suggestion-item:focus{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>:not(.el-icon){white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__suggestion-item .el-icon{flex-shrink:0}.el-cascader__empty-text{color:var(--el-cascader-color-empty);margin:10px 0}.el-cascader__search-input{min-width:60px;height:24px;color:var(--el-cascader-menu-text-color);box-sizing:border-box;background:0 0;border:none;outline:none;flex:1;margin-left:7px;padding:0}.el-cascader__search-input::placeholder{color:#0000}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);transition:var(--el-transition-all);padding:7px 15px;font-weight:700;display:inline-block}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--primary.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.el-check-tag--primary.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-check-tag.el-check-tag--primary.is-checked.is-disabled{background-color:var(--el-color-primary-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-checked.is-disabled:hover{background-color:var(--el-color-primary-light-8)}.el-check-tag.el-check-tag--primary.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-check-tag.el-check-tag--success.is-checked{background-color:var(--el-color-success-light-8);color:var(--el-color-success)}.el-check-tag.el-check-tag--success.is-checked:hover{background-color:var(--el-color-success-light-7)}.el-check-tag.el-check-tag--success.is-checked.is-disabled{background-color:var(--el-color-success-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-checked.is-disabled:hover{background-color:var(--el-color-success-light-8)}.el-check-tag.el-check-tag--success.is-disabled{background-color:var(--el-color-success-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-disabled:hover{background-color:var(--el-color-success-light-9)}.el-check-tag.el-check-tag--warning.is-checked{background-color:var(--el-color-warning-light-8);color:var(--el-color-warning)}.el-check-tag.el-check-tag--warning.is-checked:hover{background-color:var(--el-color-warning-light-7)}.el-check-tag.el-check-tag--warning.is-checked.is-disabled{background-color:var(--el-color-warning-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-checked.is-disabled:hover{background-color:var(--el-color-warning-light-8)}.el-check-tag.el-check-tag--warning.is-disabled{background-color:var(--el-color-warning-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-disabled:hover{background-color:var(--el-color-warning-light-9)}.el-check-tag.el-check-tag--danger.is-checked{background-color:var(--el-color-danger-light-8);color:var(--el-color-danger)}.el-check-tag.el-check-tag--danger.is-checked:hover{background-color:var(--el-color-danger-light-7)}.el-check-tag.el-check-tag--danger.is-checked.is-disabled{background-color:var(--el-color-danger-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-checked.is-disabled:hover{background-color:var(--el-color-danger-light-8)}.el-check-tag.el-check-tag--danger.is-disabled{background-color:var(--el-color-danger-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-disabled:hover{background-color:var(--el-color-danger-light-9)}.el-check-tag.el-check-tag--error.is-checked{background-color:var(--el-color-error-light-8);color:var(--el-color-error)}.el-check-tag.el-check-tag--error.is-checked:hover{background-color:var(--el-color-error-light-7)}.el-check-tag.el-check-tag--error.is-checked.is-disabled{background-color:var(--el-color-error-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-checked.is-disabled:hover{background-color:var(--el-color-error-light-8)}.el-check-tag.el-check-tag--error.is-disabled{background-color:var(--el-color-error-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-disabled:hover{background-color:var(--el-color-error-light-9)}.el-check-tag.el-check-tag--info.is-checked{background-color:var(--el-color-info-light-8);color:var(--el-color-info)}.el-check-tag.el-check-tag--info.is-checked:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--info.is-checked.is-disabled{background-color:var(--el-color-info-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-checked.is-disabled:hover{background-color:var(--el-color-info-light-8)}.el-check-tag.el-check-tag--info.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);--el-checkbox-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;position:relative}.el-checkbox-button__inner{line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));outline:var(--el-border);color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;font-size:var(--el-font-size-base);border-radius:0;margin:0;padding:8px 15px;display:inline-block;position:relative}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;z-index:-1;outline:none;margin:0;position:absolute}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button.is-disabled.is-checked .el-checkbox-button__inner{background-color:var(--el-checkbox-button-disabled-checked-fill)}.el-checkbox-button:first-child .el-checkbox-button__inner{border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{font-size:var(--el-font-size-base);border-radius:0;padding:12px 19px}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;padding:5px 11px;font-size:12px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;height:var(--el-checkbox-height,32px);align-items:center;margin-right:30px;display:inline-flex;position:relative}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color);will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%)rotate(45deg)scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";background-color:var(--el-checkbox-checked-icon-color);height:2px;display:block;position:absolute;top:5px;left:0;right:0;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);display:inline-block;position:relative}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";transform-origin:50%;border:1px solid #0000;border-top:0;border-left:0;width:3px;height:7px;transition:transform .15s ease-in 50ms;position:absolute;top:50%;left:50%;transform:translate(-45%,-60%)rotate(45deg)scaleY(0)}.el-checkbox__original{opacity:0;z-index:-1;outline:none;width:0;height:0;margin:0;position:absolute}.el-checkbox__label{line-height:1;font-size:var(--el-checkbox-font-size);padding-left:8px;display:inline-block}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{min-height:1px;display:block}.el-col-0{flex:0 0;max-width:0%;display:none}.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0%}.el-col-pull-0{position:relative;right:0%}.el-col-push-0{position:relative;left:0%}.el-col-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{position:relative;right:4.16667%}.el-col-push-1{position:relative;left:4.16667%}.el-col-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{position:relative;right:8.33333%}.el-col-push-2{position:relative;left:8.33333%}.el-col-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6667%}.el-col-pull-4{position:relative;right:16.6667%}.el-col-push-4{position:relative;left:16.6667%}.el-col-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333%}.el-col-pull-5{position:relative;right:20.8333%}.el-col-push-5{position:relative;left:20.8333%}.el-col-6{flex:0 0 25%;max-width:25%;display:block}.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1667%}.el-col-pull-7{position:relative;right:29.1667%}.el-col-push-7{position:relative;left:29.1667%}.el-col-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333%}.el-col-pull-8{position:relative;right:33.3333%}.el-col-push-8{position:relative;left:33.3333%}.el-col-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6667%}.el-col-pull-10{position:relative;right:41.6667%}.el-col-push-10{position:relative;left:41.6667%}.el-col-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333%}.el-col-pull-11{position:relative;right:45.8333%}.el-col-push-11{position:relative;left:45.8333%}.el-col-12{flex:0 0 50%;max-width:50%;display:block}.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1667%}.el-col-pull-13{position:relative;right:54.1667%}.el-col-push-13{position:relative;left:54.1667%}.el-col-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333%}.el-col-pull-14{position:relative;right:58.3333%}.el-col-push-14{position:relative;left:58.3333%}.el-col-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6667%}.el-col-pull-16{position:relative;right:66.6667%}.el-col-push-16{position:relative;left:66.6667%}.el-col-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333%}.el-col-pull-17{position:relative;right:70.8333%}.el-col-push-17{position:relative;left:70.8333%}.el-col-18{flex:0 0 75%;max-width:75%;display:block}.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1667%}.el-col-pull-19{position:relative;right:79.1667%}.el-col-push-19{position:relative;left:79.1667%}.el-col-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333%}.el-col-pull-20{position:relative;right:83.3333%}.el-col-push-20{position:relative;left:83.3333%}.el-col-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6667%}.el-col-pull-22{position:relative;right:91.6667%}.el-col-push-22{position:relative;left:91.6667%}.el-col-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333%}.el-col-pull-23{position:relative;right:95.8333%}.el-col-push-23{position:relative;left:95.8333%}.el-col-24{flex:0 0 100%;max-width:100%;display:block}.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (max-width:767px){.el-col-xs-0{flex:0 0;max-width:0%;display:none}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0%}.el-col-xs-pull-0{position:relative;right:0%}.el-col-xs-push-0{position:relative;left:0%}.el-col-xs-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6667%}.el-col-xs-pull-4{position:relative;right:16.6667%}.el-col-xs-push-4{position:relative;left:16.6667%}.el-col-xs-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333%}.el-col-xs-pull-5{position:relative;right:20.8333%}.el-col-xs-push-5{position:relative;left:20.8333%}.el-col-xs-6{flex:0 0 25%;max-width:25%;display:block}.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1667%}.el-col-xs-pull-7{position:relative;right:29.1667%}.el-col-xs-push-7{position:relative;left:29.1667%}.el-col-xs-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333%}.el-col-xs-pull-8{position:relative;right:33.3333%}.el-col-xs-push-8{position:relative;left:33.3333%}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6667%}.el-col-xs-pull-10{position:relative;right:41.6667%}.el-col-xs-push-10{position:relative;left:41.6667%}.el-col-xs-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333%}.el-col-xs-pull-11{position:relative;right:45.8333%}.el-col-xs-push-11{position:relative;left:45.8333%}.el-col-xs-12{flex:0 0 50%;max-width:50%;display:block}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1667%}.el-col-xs-pull-13{position:relative;right:54.1667%}.el-col-xs-push-13{position:relative;left:54.1667%}.el-col-xs-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333%}.el-col-xs-pull-14{position:relative;right:58.3333%}.el-col-xs-push-14{position:relative;left:58.3333%}.el-col-xs-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6667%}.el-col-xs-pull-16{position:relative;right:66.6667%}.el-col-xs-push-16{position:relative;left:66.6667%}.el-col-xs-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333%}.el-col-xs-pull-17{position:relative;right:70.8333%}.el-col-xs-push-17{position:relative;left:70.8333%}.el-col-xs-18{flex:0 0 75%;max-width:75%;display:block}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1667%}.el-col-xs-pull-19{position:relative;right:79.1667%}.el-col-xs-push-19{position:relative;left:79.1667%}.el-col-xs-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333%}.el-col-xs-pull-20{position:relative;right:83.3333%}.el-col-xs-push-20{position:relative;left:83.3333%}.el-col-xs-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6667%}.el-col-xs-pull-22{position:relative;right:91.6667%}.el-col-xs-push-22{position:relative;left:91.6667%}.el-col-xs-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333%}.el-col-xs-pull-23{position:relative;right:95.8333%}.el-col-xs-push-23{position:relative;left:95.8333%}.el-col-xs-24{flex:0 0 100%;max-width:100%;display:block}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (min-width:768px){.el-col-sm-0{flex:0 0;max-width:0%;display:none}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0%}.el-col-sm-pull-0{position:relative;right:0%}.el-col-sm-push-0{position:relative;left:0%}.el-col-sm-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6667%}.el-col-sm-pull-4{position:relative;right:16.6667%}.el-col-sm-push-4{position:relative;left:16.6667%}.el-col-sm-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333%}.el-col-sm-pull-5{position:relative;right:20.8333%}.el-col-sm-push-5{position:relative;left:20.8333%}.el-col-sm-6{flex:0 0 25%;max-width:25%;display:block}.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1667%}.el-col-sm-pull-7{position:relative;right:29.1667%}.el-col-sm-push-7{position:relative;left:29.1667%}.el-col-sm-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333%}.el-col-sm-pull-8{position:relative;right:33.3333%}.el-col-sm-push-8{position:relative;left:33.3333%}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6667%}.el-col-sm-pull-10{position:relative;right:41.6667%}.el-col-sm-push-10{position:relative;left:41.6667%}.el-col-sm-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333%}.el-col-sm-pull-11{position:relative;right:45.8333%}.el-col-sm-push-11{position:relative;left:45.8333%}.el-col-sm-12{flex:0 0 50%;max-width:50%;display:block}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1667%}.el-col-sm-pull-13{position:relative;right:54.1667%}.el-col-sm-push-13{position:relative;left:54.1667%}.el-col-sm-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333%}.el-col-sm-pull-14{position:relative;right:58.3333%}.el-col-sm-push-14{position:relative;left:58.3333%}.el-col-sm-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6667%}.el-col-sm-pull-16{position:relative;right:66.6667%}.el-col-sm-push-16{position:relative;left:66.6667%}.el-col-sm-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333%}.el-col-sm-pull-17{position:relative;right:70.8333%}.el-col-sm-push-17{position:relative;left:70.8333%}.el-col-sm-18{flex:0 0 75%;max-width:75%;display:block}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1667%}.el-col-sm-pull-19{position:relative;right:79.1667%}.el-col-sm-push-19{position:relative;left:79.1667%}.el-col-sm-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333%}.el-col-sm-pull-20{position:relative;right:83.3333%}.el-col-sm-push-20{position:relative;left:83.3333%}.el-col-sm-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6667%}.el-col-sm-pull-22{position:relative;right:91.6667%}.el-col-sm-push-22{position:relative;left:91.6667%}.el-col-sm-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333%}.el-col-sm-pull-23{position:relative;right:95.8333%}.el-col-sm-push-23{position:relative;left:95.8333%}.el-col-sm-24{flex:0 0 100%;max-width:100%;display:block}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (min-width:992px){.el-col-md-0{flex:0 0;max-width:0%;display:none}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0%}.el-col-md-pull-0{position:relative;right:0%}.el-col-md-push-0{position:relative;left:0%}.el-col-md-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6667%}.el-col-md-pull-4{position:relative;right:16.6667%}.el-col-md-push-4{position:relative;left:16.6667%}.el-col-md-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333%}.el-col-md-pull-5{position:relative;right:20.8333%}.el-col-md-push-5{position:relative;left:20.8333%}.el-col-md-6{flex:0 0 25%;max-width:25%;display:block}.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1667%}.el-col-md-pull-7{position:relative;right:29.1667%}.el-col-md-push-7{position:relative;left:29.1667%}.el-col-md-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333%}.el-col-md-pull-8{position:relative;right:33.3333%}.el-col-md-push-8{position:relative;left:33.3333%}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6667%}.el-col-md-pull-10{position:relative;right:41.6667%}.el-col-md-push-10{position:relative;left:41.6667%}.el-col-md-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333%}.el-col-md-pull-11{position:relative;right:45.8333%}.el-col-md-push-11{position:relative;left:45.8333%}.el-col-md-12{flex:0 0 50%;max-width:50%;display:block}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1667%}.el-col-md-pull-13{position:relative;right:54.1667%}.el-col-md-push-13{position:relative;left:54.1667%}.el-col-md-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333%}.el-col-md-pull-14{position:relative;right:58.3333%}.el-col-md-push-14{position:relative;left:58.3333%}.el-col-md-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6667%}.el-col-md-pull-16{position:relative;right:66.6667%}.el-col-md-push-16{position:relative;left:66.6667%}.el-col-md-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333%}.el-col-md-pull-17{position:relative;right:70.8333%}.el-col-md-push-17{position:relative;left:70.8333%}.el-col-md-18{flex:0 0 75%;max-width:75%;display:block}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1667%}.el-col-md-pull-19{position:relative;right:79.1667%}.el-col-md-push-19{position:relative;left:79.1667%}.el-col-md-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333%}.el-col-md-pull-20{position:relative;right:83.3333%}.el-col-md-push-20{position:relative;left:83.3333%}.el-col-md-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6667%}.el-col-md-pull-22{position:relative;right:91.6667%}.el-col-md-push-22{position:relative;left:91.6667%}.el-col-md-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333%}.el-col-md-pull-23{position:relative;right:95.8333%}.el-col-md-push-23{position:relative;left:95.8333%}.el-col-md-24{flex:0 0 100%;max-width:100%;display:block}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (min-width:1200px){.el-col-lg-0{flex:0 0;max-width:0%;display:none}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0%}.el-col-lg-pull-0{position:relative;right:0%}.el-col-lg-push-0{position:relative;left:0%}.el-col-lg-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6667%}.el-col-lg-pull-4{position:relative;right:16.6667%}.el-col-lg-push-4{position:relative;left:16.6667%}.el-col-lg-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333%}.el-col-lg-pull-5{position:relative;right:20.8333%}.el-col-lg-push-5{position:relative;left:20.8333%}.el-col-lg-6{flex:0 0 25%;max-width:25%;display:block}.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1667%}.el-col-lg-pull-7{position:relative;right:29.1667%}.el-col-lg-push-7{position:relative;left:29.1667%}.el-col-lg-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333%}.el-col-lg-pull-8{position:relative;right:33.3333%}.el-col-lg-push-8{position:relative;left:33.3333%}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6667%}.el-col-lg-pull-10{position:relative;right:41.6667%}.el-col-lg-push-10{position:relative;left:41.6667%}.el-col-lg-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333%}.el-col-lg-pull-11{position:relative;right:45.8333%}.el-col-lg-push-11{position:relative;left:45.8333%}.el-col-lg-12{flex:0 0 50%;max-width:50%;display:block}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1667%}.el-col-lg-pull-13{position:relative;right:54.1667%}.el-col-lg-push-13{position:relative;left:54.1667%}.el-col-lg-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333%}.el-col-lg-pull-14{position:relative;right:58.3333%}.el-col-lg-push-14{position:relative;left:58.3333%}.el-col-lg-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6667%}.el-col-lg-pull-16{position:relative;right:66.6667%}.el-col-lg-push-16{position:relative;left:66.6667%}.el-col-lg-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333%}.el-col-lg-pull-17{position:relative;right:70.8333%}.el-col-lg-push-17{position:relative;left:70.8333%}.el-col-lg-18{flex:0 0 75%;max-width:75%;display:block}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1667%}.el-col-lg-pull-19{position:relative;right:79.1667%}.el-col-lg-push-19{position:relative;left:79.1667%}.el-col-lg-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333%}.el-col-lg-pull-20{position:relative;right:83.3333%}.el-col-lg-push-20{position:relative;left:83.3333%}.el-col-lg-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6667%}.el-col-lg-pull-22{position:relative;right:91.6667%}.el-col-lg-push-22{position:relative;left:91.6667%}.el-col-lg-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333%}.el-col-lg-pull-23{position:relative;right:95.8333%}.el-col-lg-push-23{position:relative;left:95.8333%}.el-col-lg-24{flex:0 0 100%;max-width:100%;display:block}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (min-width:1920px){.el-col-xl-0{flex:0 0;max-width:0%;display:none}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0%}.el-col-xl-pull-0{position:relative;right:0%}.el-col-xl-push-0{position:relative;left:0%}.el-col-xl-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6667%}.el-col-xl-pull-4{position:relative;right:16.6667%}.el-col-xl-push-4{position:relative;left:16.6667%}.el-col-xl-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333%}.el-col-xl-pull-5{position:relative;right:20.8333%}.el-col-xl-push-5{position:relative;left:20.8333%}.el-col-xl-6{flex:0 0 25%;max-width:25%;display:block}.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1667%}.el-col-xl-pull-7{position:relative;right:29.1667%}.el-col-xl-push-7{position:relative;left:29.1667%}.el-col-xl-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333%}.el-col-xl-pull-8{position:relative;right:33.3333%}.el-col-xl-push-8{position:relative;left:33.3333%}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6667%}.el-col-xl-pull-10{position:relative;right:41.6667%}.el-col-xl-push-10{position:relative;left:41.6667%}.el-col-xl-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333%}.el-col-xl-pull-11{position:relative;right:45.8333%}.el-col-xl-push-11{position:relative;left:45.8333%}.el-col-xl-12{flex:0 0 50%;max-width:50%;display:block}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1667%}.el-col-xl-pull-13{position:relative;right:54.1667%}.el-col-xl-push-13{position:relative;left:54.1667%}.el-col-xl-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333%}.el-col-xl-pull-14{position:relative;right:58.3333%}.el-col-xl-push-14{position:relative;left:58.3333%}.el-col-xl-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6667%}.el-col-xl-pull-16{position:relative;right:66.6667%}.el-col-xl-push-16{position:relative;left:66.6667%}.el-col-xl-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333%}.el-col-xl-pull-17{position:relative;right:70.8333%}.el-col-xl-push-17{position:relative;left:70.8333%}.el-col-xl-18{flex:0 0 75%;max-width:75%;display:block}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1667%}.el-col-xl-pull-19{position:relative;right:79.1667%}.el-col-xl-push-19{position:relative;left:79.1667%}.el-col-xl-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333%}.el-col-xl-pull-20{position:relative;right:83.3333%}.el-col-xl-push-20{position:relative;left:83.3333%}.el-col-xl-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6667%}.el-col-xl-pull-22{position:relative;right:91.6667%}.el-col-xl-push-22{position:relative;left:91.6667%}.el-col-xl-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333%}.el-col-xl-pull-23{position:relative;right:95.8333%}.el-col-xl-push-23{position:relative;left:95.8333%}.el-col-xl-24{flex:0 0 100%;max-width:100%;display:block}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;min-height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border:none;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);transition:border-bottom-color var(--el-transition-duration);box-sizing:border-box;outline:none;align-items:center;padding:0;font-weight:500;display:flex}.el-collapse-item__arrow{transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__title{text-align:left;flex:auto}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:#0000}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color);overflow:hidden}.el-collapse-item__content{font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);padding-bottom:25px;line-height:1.76923}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-icon-position-left .el-collapse-item__header{gap:8px}.el-collapse-icon-position-left .el-collapse-item__title{order:1}.el-collapse-icon-position-right .el-collapse-item__header{padding-right:8px}.el-color-picker-panel{--el-colorpicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-colorpicker-bg-color);box-sizing:content-box;background:var(--el-colorpicker-bg-color);width:300px;padding:12px}.el-color-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter);border-radius:4px}.el-color-picker-panel__wrapper{margin-bottom:6px}.el-color-picker-panel__footer{text-align:right;justify-content:space-between;margin-top:12px;display:flex}.el-color-picker-panel__footer .el-input{color:#000;width:160px;font-size:12px;line-height:26px}.el-color-picker-panel.is-disabled .el-color-svpanel,.el-color-picker-panel.is-disabled .el-color-hue-slider{cursor:not-allowed;opacity:.3}.el-color-picker-panel.is-disabled .el-color-hue-slider__thumb{cursor:not-allowed}.el-color-picker-panel.is-disabled .el-color-alpha-slider,.el-color-picker-panel.is-disabled .el-color-predefine .el-color-predefine__color-selector{cursor:not-allowed;opacity:.3}.el-color-predefine{width:280px;margin-top:8px;font-size:12px;display:flex}.el-color-predefine__colors{flex-wrap:wrap;flex:1;gap:8px;display:flex}.el-color-predefine__color-selector{border-radius:var(--el-border-radius-base);cursor:pointer;border:none;outline:none;width:20px;height:20px;padding:0;overflow:hidden}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-predefine__color-selector>div{height:100%;display:flex}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{box-sizing:border-box;float:right;background-color:red;width:280px;height:12px;padding:0 2px;position:relative}.el-color-hue-slider__bar{background:linear-gradient(90deg,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);height:100%;position:relative}.el-color-hue-slider__thumb{cursor:pointer;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);z-index:1;background:#fff;border-radius:1px;width:4px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0009}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{width:100%;height:4px;top:0;left:0}.el-color-svpanel{background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#fff0);width:280px;height:180px;position:relative}.el-color-svpanel__cursor{cursor:pointer;border-radius:50%;width:4px;height:4px;position:absolute;transform:translate(-2px,-2px);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006}.el-color-svpanel__cursor:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-alpha-slider{box-sizing:border-box;background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;width:280px;height:12px;position:relative}.el-color-alpha-slider.is-disabled .el-color-alpha-slider__thumb{cursor:not-allowed}.el-color-alpha-slider__bar{background:linear-gradient(to right,#fff0 0%,var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{cursor:pointer;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);z-index:1;background:#fff;border-radius:1px;width:4px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0009}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(#fff0,#fff)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{width:100%;height:4px;top:0;left:0}.el-color-picker-panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker-panel{--el-color-picker-alpha-bg-a:#333}.el-color-picker{outline:none;width:32px;height:32px;line-height:normal;display:inline-block;position:relative}.el-color-picker:hover:not(:-webkit-any(.is-disabled,.is-focused)) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:hover:not(:is(.is-disabled,.is-focused)) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed;background-color:var(--el-fill-color-light)}.el-color-picker.is-disabled .el-color-picker__color{opacity:.3}.el-color-picker--large{width:40px;height:40px}.el-color-picker--small{width:24px;height:24px}.el-color-picker--small .el-color-picker__icon,.el-color-picker--small .el-color-picker__empty{transform:scale(.8)}.el-color-picker__trigger{box-sizing:border-box;border:1px solid var(--el-border-color);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;padding:4px;font-size:0;display:inline-flex;position:relative}.el-color-picker__color{box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);text-align:center;width:100%;height:100%;display:block;position:relative}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-a) 25%,var(--el-color-picker-alpha-bg-b) 25%),linear-gradient(45deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%),linear-gradient(135deg,var(--el-color-picker-alpha-bg-b) 75%,var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{color:#fff;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.el-color-picker__panel{border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light);background-color:#fff}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333}.el-container{box-sizing:border-box;flex-direction:row;flex:auto;min-width:0;display:flex}.el-container.is-vertical{flex-direction:column}.el-date-table{-webkit-user-select:none;user-select:none;font-size:12px}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;text-align:center;cursor:pointer;width:32px;height:30px;padding:4px 0;position:relative}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;width:24px;height:24px;margin:0 auto;line-height:24px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.start-date .el-date-table-cell__text,.el-date-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.start-date .el-date-table-cell,.el-date-table td.end-date .el-date-table-cell{color:#fff}.el-date-table td.start-date .el-date-table-cell__text,.el-date-table td.end-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{color:var(--el-datepicker-header-text-color);border-bottom:solid 1px var(--el-border-color-lighter);padding:5px;font-weight:400}.el-date-table th.el-date-table__week-header{width:24px;padding:0}.el-month-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-month-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.start-date .el-date-table-cell__text,.el-month-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{width:54px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.start-date .el-date-table-cell,.el-month-table td.end-date .el-date-table-cell{color:#fff}.el-month-table td.start-date .el-date-table-cell__text,.el-month-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.start-date .el-date-table-cell__text,.el-year-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{width:60px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.start-date .el-date-table-cell,.el-year-table td.end-date .el-date-table-cell{color:#fff}.el-year-table td.start-date .el-date-table-cell__text,.el-year-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{vertical-align:top;width:50%;max-height:192px;display:inline-block;position:relative;overflow:auto}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);width:100%;z-index:var(--el-index-normal);text-align:center;cursor:pointer;height:30px;font-size:12px;line-height:30px;position:absolute;left:0}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{text-align:center;padding:0}.el-time-spinner__list{text-align:center;margin:0;padding:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";width:100%;height:80px;display:block}.el-time-spinner__item{height:32px;color:var(--el-text-color-regular);font-size:12px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;text-align:left;vertical-align:middle;position:relative}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{height:inherit;color:var(--el-text-color-placeholder);float:left;font-size:14px}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center;width:39%;height:30px;line-height:30px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:#0000;border:none;outline:none;margin:0;padding:0;display:inline-block}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{overflow-wrap:break-word;height:100%;color:var(--el-text-color-primary);flex:1;justify-content:center;align-items:center;margin:0;padding:0 5px;font-size:14px;display:inline-flex}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer;font-size:14px}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{vertical-align:middle;align-items:center;padding:0 10px;display:inline-flex}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{height:38px;font-size:14px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{height:22px;font-size:12px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:hover,.el-range-editor.is-disabled:focus{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-datepicker-bg-color);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));line-height:30px}.el-picker-panel .el-time-panel{border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-datepicker-bg-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body:after,.el-picker-panel__body-wrapper:after{content:"";clear:both;display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);text-align:right;background-color:var(--el-datepicker-bg-color);padding:4px 12px;font-size:0;position:relative}.el-picker-panel__shortcut{width:100%;color:var(--el-datepicker-text-color);text-align:left;cursor:pointer;background-color:#0000;border:0;outline:none;padding-left:12px;font-size:14px;line-height:28px;display:block}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{color:var(--el-datepicker-active-color);background-color:#e6f1fe}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);cursor:pointer;background-color:#0000;border-radius:2px;outline:none;padding:0 20px;font-size:12px;line-height:24px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{color:var(--el-datepicker-icon-color);cursor:pointer;background:0 0;border:0;outline:none;margin-top:8px;padding:1px 6px;font-size:12px;line-height:1}.el-picker-panel__icon-btn:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn.is-disabled .el-icon{cursor:inherit}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel.is-disabled .el-picker-panel__prev-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__prev-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__prev-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__next-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__next-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__next-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__icon-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__icon-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__icon-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__shortcut{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__shortcut:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__shortcut .el-icon{cursor:inherit}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;padding-top:6px;position:absolute;top:0;bottom:0;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-datepicker-bg-color);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-picker__header{text-align:center;padding:12px 12px 0}.el-date-picker__header--bordered{border-bottom:solid 1px var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{text-align:center;padding:10px}.el-date-picker__time-label{float:left;cursor:pointer;margin-left:10px;line-height:30px}.el-date-picker .el-time-panel{position:absolute}.el-date-picker.is-disabled .el-date-picker__header-label{color:var(--el-text-color-disabled)}.el-date-picker.is-disabled .el-date-picker__header-label:hover{cursor:not-allowed}.el-date-picker.is-disabled .el-date-picker__header-label .el-icon{cursor:inherit}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker.single-panel{width:322px}.el-date-range-picker.single-panel .el-picker-panel__body{min-width:322px}.el-date-range-picker.single-panel.has-sidebar.has-time{width:434px}.el-date-range-picker.single-panel.has-sidebar{width:438px}.el-date-range-picker.single-panel .el-picker-panel__content{width:292px;margin:15px;padding:0;display:block;position:relative}.el-date-range-picker__header{text-align:center;height:28px;position:relative}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{margin-right:50px;font-size:16px;font-weight:500}.el-date-range-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;width:50%;margin:0;padding:16px;display:table-cell}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-range-picker__time-header>.el-icon-arrow-right{vertical-align:middle;color:var(--el-datepicker-icon-color);font-size:20px;display:table-cell}.el-date-range-picker__time-picker-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{z-index:1;background:#fff;position:absolute;top:13px;right:0}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-range-picker.is-disabled .el-date-range-picker__header-label{color:var(--el-text-color-disabled)}.el-date-range-picker.is-disabled .el-date-range-picker__header-label:hover{cursor:not-allowed}.el-date-range-picker.is-disabled .el-date-range-picker__header-label .el-icon{cursor:inherit}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{text-align:center;z-index:1;padding:10px;position:relative}.el-time-range-picker__cell{box-sizing:border-box;width:50%;margin:0;padding:4px 7px 7px;display:inline-block}.el-time-range-picker__header{text-align:center;margin-bottom:5px;font-size:14px}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{width:180px;z-index:var(--el-index-top);-webkit-user-select:none;user-select:none;box-sizing:content-box;border-radius:2px;position:relative;left:0}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";z-index:-1;box-sizing:border-box;text-align:left;height:32px;margin-top:-16px;padding-top:6px;position:absolute;top:50%;left:0;right:0}.el-time-panel__content:after{margin-left:12%;margin-right:12%;left:50%}.el-time-panel__content:before{border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));text-align:right;box-sizing:border-box;height:36px;padding:4px;line-height:25px}.el-time-panel__btn{cursor:pointer;color:var(--el-text-color-primary);background-color:#0000;border:none;outline:none;margin:0 5px;padding:0 5px;font-size:12px;line-height:28px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter)}.el-picker-panel.is-border .el-picker-panel__body-wrapper{position:relative}.el-picker-panel.is-border.el-picker-panel [slot=sidebar],.el-picker-panel.is-border.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;height:100%;padding-top:6px;position:absolute;top:0;overflow:auto}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-size:14px;line-height:23px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color);position:fixed;top:0;left:0}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;padding:var(--el-dialog-padding-primary);width:var(--el-dialog-width,50%);overflow-wrap:break-word;position:relative}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{margin:0;position:fixed;inset:0;overflow:auto}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size,16px))}.el-dialog__headerbtn{cursor:pointer;width:48px;height:48px;font-size:var(--el-message-close-size,16px);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding-top:var(--el-dialog-padding-primary);text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{position:fixed;inset:0;overflow:auto}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);width:100%;height:1px;margin:24px 0;display:block}.el-divider--vertical{vertical-align:middle;border-left:1px var(--el-border-color) var(--el-border-style);width:1px;height:1em;margin:0 8px;display:inline-block;position:relative}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);padding:0 20px;font-size:14px;font-weight:500;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%)translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-overlay.is-drawer{overflow:hidden}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color,var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary,20px);--el-drawer-dragger-size:8px;box-sizing:border-box;background-color:var(--el-drawer-bg-color);box-shadow:var(--el-box-shadow-dark);transition:all var(--el-transition-duration);flex-direction:column;display:flex;position:absolute}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{color:var(--el-text-color-primary);padding:var(--el-drawer-padding-primary);align-items:center;margin-bottom:32px;padding-bottom:0;display:flex;overflow:hidden}.el-drawer__header>:first-child{flex:1}.el-drawer__title{line-height:inherit;flex:1;margin:0;font-size:16px}.el-drawer__footer{padding:var(--el-drawer-padding-primary);text-align:right;padding-top:10px;overflow:hidden}.el-drawer__close-btn{cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:#0000;border:none;outline:none;display:inline-flex}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{padding:var(--el-drawer-padding-primary);flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.is-dragging{transition:none}.el-drawer__dragger{-webkit-user-select:none;user-select:none;background-color:#0000;transition:all .2s;position:absolute}.el-drawer__dragger:before{content:"";background-color:#0000;transition:all .2s;position:absolute}.el-drawer__dragger:hover:before{background-color:var(--el-color-primary)}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.ltr>.el-drawer__dragger,.el-drawer.rtl>.el-drawer__dragger{height:100%;width:var(--el-drawer-dragger-size);cursor:ew-resize;top:0;bottom:0}.el-drawer.ltr>.el-drawer__dragger:before,.el-drawer.rtl>.el-drawer__dragger:before{width:3px;top:0;bottom:0}.el-drawer.ttb,.el-drawer.btt{width:100%;left:0;right:0}.el-drawer.ttb>.el-drawer__dragger,.el-drawer.btt>.el-drawer__dragger{width:100%;height:var(--el-drawer-dragger-size);cursor:ns-resize;left:0;right:0}.el-drawer.ttb>.el-drawer__dragger:before,.el-drawer.btt>.el-drawer__dragger:before{height:3px;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.ltr>.el-drawer__dragger{right:0}.el-drawer.ltr>.el-drawer__dragger:before{right:-2px}.el-drawer.rtl{right:0}.el-drawer.rtl>.el-drawer__dragger{left:0}.el-drawer.rtl>.el-drawer__dragger:before{left:-2px}.el-drawer.ttb{top:0}.el-drawer.ttb>.el-drawer__dragger{bottom:0}.el-drawer.ttb>.el-drawer__dragger:before{bottom:-2px}.el-drawer.btt{bottom:0}.el-drawer.btt>.el-drawer__dragger{top:0}.el-drawer.btt>.el-drawer__dragger:before{top:-2px}.el-modal-drawer.is-penetrable{pointer-events:none}.el-modal-drawer.is-penetrable .el-drawer{pointer-events:auto}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-from,.el-drawer-fade-enter-active,.el-drawer-fade-enter-to,.el-drawer-fade-leave-from,.el-drawer-fade-leave-active,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{background-color:#0000!important}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);vertical-align:top;line-height:1;display:inline-flex;position:relative}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;margin:0;padding:0;list-style:none}.el-dropdown .el-dropdown__caret-button{border-left:none;justify-content:center;align-items:center;width:32px;padding-left:0;padding-right:0;display:inline-flex}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";background:var(--el-overlay-color-lighter);width:1px;display:block;position:absolute;top:-1px;bottom:-1px;left:0}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{z-index:var(--el-dropdown-menu-index);background-color:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);box-shadow:none;border:none;margin:0;padding:5px 0;list-style:none;position:relative;top:0;left:0}.el-dropdown-menu__item{white-space:nowrap;line-height:22px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:none;align-items:center;margin:0;padding:5px 16px;list-style:none;display:flex}.el-dropdown-menu__item:not(.is-disabled):hover,.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;font-size:14px;line-height:22px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;font-size:12px;line-height:20px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;user-select:none;vertical-align:top;object-fit:contain;width:100%;height:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;vertical-align:top;width:100%;height:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{font-size:var(--el-font-size-base);color:var(--el-text-color-secondary);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;height:var(--el-footer-height);flex-shrink:0}.el-form-item{--font-size:14px;margin-bottom:18px;display:flex}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{text-align:left;justify-content:flex-start}.el-form-item--label-right .el-form-item__label{text-align:right;justify-content:flex-end}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{text-align:left;width:-moz-fit-content;width:fit-content;height:auto;margin-bottom:8px;padding-right:0;line-height:22px;display:block}.el-form-item__label-wrap{display:flex}.el-form-item__label{font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);box-sizing:border-box;flex:none;align-items:flex-start;height:32px;padding:0 12px 0 0;line-height:32px;display:inline-flex}.el-form-item__content{line-height:32px;font-size:var(--font-size);flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);padding-top:2px;font-size:12px;line-height:1;position:absolute;top:100%;left:0}.el-form-item__error--inline{margin-left:10px;display:inline-block;position:relative;top:auto;left:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field:hover,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field:focus,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field.is-focus,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:hover:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:focus:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field.is-focus:after{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px #0000}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{vertical-align:middle;margin-right:32px;display:inline-flex}.el-form--inline .el-form-item:last-child{margin-right:0}.el-form--inline.el-form--label-top{flex-wrap:wrap;display:flex}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;height:var(--el-header-height);flex-shrink:0}.el-image-viewer__wrapper{position:fixed;inset:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{z-index:1;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{width:40px;height:40px;font-size:40px;top:40px;right:40px}.el-image-viewer__canvas{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:static}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;height:44px;padding:0 23px;bottom:30px;left:50%;transform:translate(-50%)}.el-image-viewer__actions__inner{cursor:default;color:#fff;justify-content:space-around;align-items:center;gap:22px;width:100%;height:100%;padding:0 6px;font-size:23px;display:flex}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{cursor:default;color:#fff;bottom:90px;left:50%;transform:translate(-50%)}.el-image-viewer__prev{color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px;top:50%;left:40px;transform:translateY(-50%)}.el-image-viewer__next{text-indent:2px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px;top:50%;right:40px;transform:translateY(-50%)}.el-image-viewer__close{color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px}.el-image-viewer__mask{opacity:.5;background:#000;width:100%;height:100%;position:absolute;top:0;left:0}.el-image-viewer-parent--hidden{overflow:hidden}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-20px)}}.el-image__error,.el-image__placeholder,.el-image__wrapper,.el-image__inner{width:100%;height:100%}.el-image{display:inline-block;position:relative;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle;justify-content:center;align-items:center;font-size:14px;display:flex}.el-image__preview{cursor:pointer}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;vertical-align:bottom;width:100%;font-size:var(--el-font-size-base);display:inline-block;position:relative}.el-textarea__inner{cursor:auto;resize:vertical;box-sizing:border-box;width:100%;line-height:1.5;font-size:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);background-image:none;border:none;padding:5px 11px;font-family:inherit;display:block;position:relative}.el-textarea__inner.is-clearable{padding:5px 26px 5px 11px}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea__clear{color:var(--el-input-icon-color);cursor:pointer;font-size:14px;position:absolute;top:15px;right:11px;transform:translateY(-50%)}.el-textarea__clear:hover{color:var(--el-input-clear-hover-color)}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);font-size:12px;line-height:14px;position:absolute;bottom:5px;right:10px}.el-textarea .el-input__count.is-outside{top:100%;right:0;bottom:unset;background:0 0;padding-top:2px;line-height:1;position:absolute}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);font-size:var(--el-font-size-base);width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle;display:inline-flex;position:relative}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;color:var(--el-color-info);align-items:center;font-size:12px;display:inline-flex}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;padding-left:8px;display:inline-block}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;top:100%;right:0}.el-input .el-input__count.is-outside .el-input__count-inner{background:0 0;padding-left:0;line-height:1}.el-input__wrapper{background-color:var(--el-input-bg-color,var(--el-fill-color-blank));border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;background-image:none;flex-grow:1;justify-content:center;align-items:center;padding:1px 11px;display:inline-flex;transform:translateZ(0)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height,32px) - 2px)}.el-input__inner{-webkit-appearance:none;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);box-sizing:border-box;background:0 0;border:none;outline:none;flex-grow:1;padding:0}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__prefix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__suffix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;transition:all var(--el-transition-duration);justify-content:center;align-items:center;margin-left:8px;display:flex}.el-input .el-input__clear{transition:color var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);cursor:not-allowed;box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height,40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height,24px) - 2px)}.el-input-group{align-items:stretch;width:100%;display:inline-flex}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);border-radius:var(--el-input-border-radius);white-space:nowrap;justify-content:center;align-items:center;min-height:100%;padding:0 20px;display:inline-flex;position:relative}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-select,.el-input-group__append .el-button,.el-input-group__prepend .el-select,.el-input-group__prepend .el-button{flex:1;margin:0 -20px;display:inline-block}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{color:inherit;background-color:#0000;border-color:#0000}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{box-shadow:1px 0 0 0 var(--el-input-border-color) inset,0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{box-shadow:0 1px 0 0 var(--el-input-border-color) inset,0 -1px 0 0 var(--el-input-border-color) inset,-1px 0 0 0 var(--el-input-border-color) inset;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-hidden{display:none!important}.el-input-number{vertical-align:middle;width:150px;line-height:30px;display:inline-flex;position:relative}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__increase,.el-input-number__decrease{z-index:1;background:var(--el-fill-color-light);width:32px;height:auto;color:var(--el-text-color-regular);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:1px;bottom:1px}.el-input-number__increase:hover,.el-input-number__decrease:hover{color:var(--el-color-primary)}.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__increase.is-disabled,.el-input-number__decrease.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border);right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__increase,.el-input-number.is-disabled .el-input-number__decrease{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__increase:hover,.el-input-number.is-disabled .el-input-number__decrease:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__increase,.el-input-number--large .el-input-number__decrease{width:40px;font-size:14px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__increase,.el-input-number--small .el-input-number__decrease{width:24px;font-size:12px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__increase [class*=el-icon],.el-input-number--small .el-input-number__decrease [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__increase,.el-input-number.is-controls-right .el-input-number__decrease{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon],.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border);bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;top:auto;left:auto;right:1px}.el-input-number.is-controls-right[class*=large] [class*=increase],.el-input-number.is-controls-right[class*=large] [class*=decrease]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=increase],.el-input-number.is-controls-right[class*=small] [class*=decrease]{--el-input-number-controls-height:11px}.el-input-tag{--el-input-tag-border-color-hover:var(--el-border-color-hover);--el-input-tag-placeholder-color:var(--el-text-color-placeholder);--el-input-tag-disabled-color:var(--el-disabled-text-color);--el-input-tag-disabled-border:var(--el-disabled-border-color);--el-input-tag-font-size:var(--el-font-size-base);--el-input-tag-close-hover-color:var(--el-text-color-secondary);--el-input-tag-text-color:var(--el-text-color-regular);--el-input-tag-input-focus-border-color:var(--el-color-primary);--el-input-tag-width:100%;--el-input-tag-mini-height:var(--el-component-size);--el-input-tag-gap:6px;--el-input-tag-padding:4px;--el-input-tag-inner-padding:8px;--el-input-tag-line-height:24px;box-sizing:border-box;cursor:pointer;font-size:var(--el-input-tag-font-size);padding:var(--el-input-tag-padding);width:var(--el-input-tag-width);min-height:var(--el-input-tag-mini-height);line-height:var(--el-input-tag-line-height);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset;align-items:center;display:flex;transform:translate(0)}.el-input-tag.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-tag.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-input-tag.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled:hover{box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input-tag.is-disabled .el-input-tag__inner .el-input-tag__input,.el-input-tag.is-disabled .el-input-tag__inner .el-tag{cursor:not-allowed}.el-input-tag__prefix{padding:0 var(--el-input-tag-inner-padding);color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;display:flex}.el-input-tag__suffix{padding:0 var(--el-input-tag-inner-padding);color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;gap:8px;display:flex}.el-input-tag__collapse-tag{line-height:1}.el-input-tag__input-tag-list{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.el-input-tag__input-tag-list.is-near{margin-left:-8px}.el-input-tag__input-tag-list .el-tag{cursor:pointer;border-color:#0000}.el-input-tag__input-tag-list .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__input-tag-list .el-tag .el-tag__content{min-width:0}.el-input-tag__inner{align-items:center;gap:var(--el-input-tag-gap);flex-wrap:wrap;flex:1;min-width:0;max-width:100%;display:flex;position:relative}.el-input-tag__inner.is-left-space{margin-left:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-right-space{margin-right:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-draggable .el-tag{cursor:move;-webkit-user-select:none;user-select:none}.el-input-tag__drop-indicator{width:1px;height:var(--el-input-tag-line-height);background-color:var(--el-color-primary);position:absolute;top:0}.el-input-tag__inner .el-tag{cursor:pointer;border-color:#0000;max-width:100%}.el-input-tag__inner .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__inner .el-tag .el-tag__content{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:normal;overflow:hidden}.el-input-tag__input-wrapper{flex:1}.el-input-tag__input{color:var(--el-input-tag-text-color);font-size:inherit;font-family:inherit;line-height:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;outline:none;width:100%;padding:0}.el-input-tag__input::placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input-calculator{visibility:hidden;white-space:pre;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.el-input-tag--large{--el-input-tag-gap:6px;--el-input-tag-padding:8px;--el-input-tag-padding-left:8px;--el-input-tag-font-size:14px}.el-input-tag--small{--el-input-tag-gap:4px;--el-input-tag-padding:2px;--el-input-tag-padding-left:6px;--el-input-tag-font-size:12px;--el-input-tag-line-height:20px;--el-input-tag-mini-height:var(--el-component-size-small)}.el-input-otp{--el-input-otp-text-color:var(--el-text-color-regular);--el-input-otp-field-width:calc(var(--el-input-otp-size) - 4px);--el-input-otp-gap:8px;--el-input-otp-font-size:14px;--el-input-otp-size:32px}.el-input-otp--large{--el-input-otp-gap:12px;--el-input-otp-font-size:14px;--el-input-otp-size:40px}.el-input-otp--small{--el-input-otp-gap:6px;--el-input-otp-font-size:12px;--el-input-otp-size:24px}.el-input-otp{align-items:center;column-gap:var(--el-input-otp-gap);font-size:var(--el-input-otp-font-size);height:var(--el-input-otp-size);flex-wrap:nowrap;display:inline-flex}.el-input-otp.is-disabled,.el-input-otp.is-disabled .el-input-otp__input{cursor:not-allowed}.el-input-otp__input-field{width:var(--el-input-otp-field-width,calc(var(--el-input-otp-size) - 4px));border-radius:var(--el-border-radius-base);height:100%;line-height:1;position:relative}.el-input-otp__input{text-align:center;width:100%;height:100%;line-height:1;font-size:inherit;color:var(--el-input-otp-text-color,var(--el-text-color-regular));background-color:#0000;border:none;outline:none;padding:0}.el-input-otp.is-disabled .el-input-otp__input{color:var(--el-text-color-disabled)}.el-input-otp--outlined .el-input-otp__input-field{box-shadow:0 0 0 1px var(--el-border-color) inset}@media(hover:hover){.el-input-otp--outlined .el-input-otp__input-field:hover{box-shadow:0 0 0 1px var(--el-color-primary-light-5) inset}}.el-input-otp--outlined .el-input-otp__input-field:focus-within{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-otp--outlined.is-disabled .el-input-otp__input-field{background-color:var(--el-fill-color-light)}@media(hover:hover){.el-input-otp--outlined.is-disabled .el-input-otp__input-field:hover{box-shadow:0 0 0 1px var(--el-border-color) inset}}.el-input-otp--filled .el-input-otp__input-field{background-color:var(--el-fill-color)}@media(hover:hover){.el-input-otp--filled .el-input-otp__input-field:hover{background-color:var(--el-fill-color-dark)}}.el-input-otp--filled .el-input-otp__input-field:focus-within{background-color:var(--el-fill-color-blank);box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-otp--filled.is-disabled .el-input-otp__input-field{background-color:var(--el-fill-color-light)}@media(hover:hover){.el-input-otp--filled.is-disabled .el-input-otp__input-field:hover{background-color:var(--el-fill-color-light)}}.el-input-otp--underlined .el-input-otp__input-field:after{content:"";background-color:var(--el-border-color);width:100%;height:1px;display:block;position:absolute;bottom:0;left:0}@media(hover:hover){.el-input-otp--underlined .el-input-otp__input-field:hover:after{background-color:var(--el-color-primary-light-5)}}.el-input-otp--underlined .el-input-otp__input-field:focus-within:after{background-color:var(--el-color-primary)}@media(hover:hover){.el-input-otp--underlined.is-disabled .el-input-otp__input-field:hover:after{background-color:var(--el-border-color)}}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);vertical-align:middle;cursor:pointer;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color);outline:none;flex-direction:row;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex;position:relative}.el-link.is-hover-underline:hover:after{content:"";border-bottom:1px solid var(--el-link-hover-text-color);height:0;position:absolute;bottom:0;left:0;right:0}.el-link.is-underline:after{content:"";border-bottom:1px solid var(--el-link-text-color);height:0;position:absolute;bottom:0;left:0;right:0}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link:hover:after{border-color:var(--el-link-hover-text-color)}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link__inner{justify-content:center;align-items:center;display:inline-flex}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link.is-disabled:after{border-color:var(--el-link-disabled-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{z-index:2000;background-color:var(--el-mask-color);transition:opacity var(--el-transition-duration);margin:0;position:absolute;inset:0}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size)) / 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size)) / 2);text-align:center;width:100%;position:absolute;top:50%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);animation:2s linear infinite loading-rotate;display:inline}.el-loading-spinner .path{stroke-dasharray:90 150;stroke-dashoffset:0;stroke-width:2px;stroke:var(--el-color-primary);stroke-linecap:round;animation:1.5s ease-in-out infinite loading-dash}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-40px}to{stroke-dasharray:90 150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;box-sizing:border-box;padding:var(--el-main-padding);flex:auto;display:block;overflow:auto}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);background-color:var(--el-menu-bg-color);box-sizing:border-box;margin:0;padding-left:0;list-style:none;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{height:var(--el-menu-horizontal-height);border-right:none;flex-wrap:nowrap;display:flex}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000;justify-content:center;align-items:center;margin:0;display:inline-flex}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);color:var(--el-menu-text-color);align-items:center;padding:0 10px;display:flex}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):hover,.el-menu--horizontal .el-menu-item:not(.is-disabled):focus{color:var(--el-menu-active-color,var(--el-menu-hover-text-color));background-color:var(--el-menu-hover-bg-color);outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin:0}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span{visibility:hidden;width:0;height:0;display:inline-block;overflow:hidden}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;border-radius:var(--el-border-radius-small);min-width:200px;box-shadow:var(--el-box-shadow-light);border:none;padding:5px 0}.el-menu .el-icon{flex-shrink:0}.el-menu-item{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:hover,.el-menu-item:focus{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{width:var(--el-menu-icon-width);text-align:center;vertical-align:middle;margin-right:5px;font-size:18px}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{box-sizing:border-box;width:100%;height:100%;padding:0 var(--el-menu-base-level-padding);align-items:center;display:inline-flex;position:absolute;top:0;left:0}.el-sub-menu{margin:0;padding-left:0;list-style:none}.el-sub-menu__title{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration),color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:hover,.el-sub-menu__title:focus{outline:none}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-sub-menu__title,.el-sub-menu.is-disabled .el-menu-item{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin-right:5px;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{top:50%;right:var(--el-menu-base-level-padding);transition:transform var(--el-transition-duration);width:inherit;margin-top:-6px;margin-right:0;font-size:12px;position:absolute}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);color:var(--el-text-color-secondary);font-size:12px;line-height:normal}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper,.el-menu--popup-container,.el-menu{outline:none}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);max-width:var(--el-messagebox-width);width:100%;padding:var(--el-messagebox-padding-primary);vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-messagebox-box-shadow);text-align:left;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;overflow-wrap:break-word;display:inline-block;position:relative;overflow:hidden}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{text-align:center;padding:16px;position:fixed;inset:0;overflow:auto}.is-message-box .el-overlay-message-box:after{content:"";vertical-align:middle;width:0;height:100%;display:inline-block}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size,16px))}.el-message-box__title{font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height);color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{width:40px;height:40px;font-size:var(--el-message-close-size,16px);cursor:pointer;background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;gap:12px;display:flex}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{min-width:0;margin:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{padding-top:var(--el-messagebox-padding-primary);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.el-message-box--center .el-message-box__title{justify-content:center;align-items:center;gap:6px;display:flex}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.el-message-box-parent--hidden{overflow:hidden}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);background-color:var(--el-message-bg-color);width:max-content;max-width:calc(100% - 32px);transition:opacity var(--el-transition-duration),transform .4s,top .4s,bottom .4s;padding:var(--el-message-padding);align-items:center;gap:8px;display:flex;position:fixed}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:50%;transform:translate(-50%)}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0}.el-message-fade-enter-from.is-left,.el-message-fade-enter-from.is-right,.el-message-fade-leave-to.is-left,.el-message-fade-leave-to.is-right{transform:translateY(-100%)}.el-message-fade-enter-from.is-left.is-bottom,.el-message-fade-enter-from.is-right.is-bottom,.el-message-fade-leave-to.is-left.is-bottom,.el-message-fade-leave-to.is-right.is-bottom{transform:translateY(100%)}.el-message-fade-enter-from.is-center,.el-message-fade-leave-to.is-center{transform:translate(-50%,-100%)}.el-message-fade-enter-from.is-center.is-bottom,.el-message-fade-leave-to.is-center.is-bottom{transform:translate(-50%,100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration),transform var(--el-transition-duration),left var(--el-transition-duration),right var(--el-transition-duration),top .4s,bottom var(--el-transition-duration);overflow-wrap:break-word;z-index:9999;display:flex;position:fixed;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{min-width:0;margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right);flex:1}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);color:var(--el-notification-content-color);margin:6px 0 0;line-height:24px}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size);flex-shrink:0}.el-notification .el-notification__closeBtn{cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size);position:absolute;top:18px;right:15px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--primary{--el-notification-icon-color:var(--el-color-primary);color:var(--el-notification-icon-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification__progress{position:absolute;bottom:0;left:0;right:0}.el-notification__progress .el-progress-bar__inner{transition:width .1s linear}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{z-index:2000;background-color:var(--el-overlay-color-lighter);height:100%;position:fixed;inset:0;overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{justify-content:space-between;align-items:center;line-height:24px;display:flex}.el-page-header__left{align-items:center;margin-right:40px;display:flex;position:relative}.el-page-header__back{cursor:pointer;align-items:center;display:flex}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{align-items:center;margin-right:10px;font-size:16px;display:flex}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:var(--el-text-color-primary);font-size:18px}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);align-items:center;font-weight:400;display:flex}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select{width:128px}.el-pagination .btn-prev,.el-pagination .btn-next{font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box;border:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.el-pagination .btn-prev *,.el-pagination .btn-next *{pointer-events:none}.el-pagination .btn-prev:focus,.el-pagination .btn-next:focus{outline:none}.el-pagination .btn-prev:hover,.el-pagination .btn-next:hover{color:var(--el-pagination-hover-color)}.el-pagination .btn-prev.is-active,.el-pagination .btn-next.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination .btn-prev.is-active.is-disabled,.el-pagination .btn-next.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination .btn-prev:disabled,.el-pagination .btn-prev.is-disabled,.el-pagination .btn-next:disabled,.el-pagination .btn-next.is-disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination .btn-prev:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-next:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-prev .el-icon,.el-pagination .btn-next .el-icon{width:inherit;font-size:12px;font-weight:700;display:block}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);color:var(--el-text-color-regular);font-weight:400}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{margin-left:var(--el-pagination-item-gap);color:var(--el-text-color-regular);align-items:center;font-weight:400;display:flex}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;justify-content:flex-end;align-items:center;display:flex}.el-pagination.is-background .btn-prev,.el-pagination.is-background .btn-next,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .el-pager li:disabled,.el-pagination.is-background .el-pager li.is-disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-prev,.el-pagination--small .btn-next,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small span:not([class*=suffix]),.el-pagination--small button{font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-prev,.el-pagination--large .btn-next,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{-webkit-user-select:none;user-select:none;align-items:center;margin:0;padding:0;font-size:0;list-style:none;display:flex}.el-pager li{font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box;border:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li:disabled,.el-pager li.is-disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);min-width:150px;padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);overflow-wrap:break-word;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);margin-bottom:12px;line-height:1}.el-popover__reference:focus:not(.focusing),.el-popover__reference:focus:hover{outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus:active,.el-popover.el-popper:focus{outline-width:0}.el-progress{align-items:center;line-height:1;display:flex;position:relative}.el-progress__text{color:var(--el-text-color-regular);min-width:50px;margin-left:5px;font-size:14px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{text-align:center;width:100%;margin:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{margin-right:0;padding-right:0;display:block}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);vertical-align:middle;border-radius:100px;height:6px;position:relative;overflow:hidden}.el-progress-bar__inner{background-color:var(--el-color-primary);text-align:right;white-space:nowrap;border-radius:100px;height:100%;line-height:1;transition:width .6s;position:absolute;top:0;left:0}.el-progress-bar__inner:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-progress-bar__inner--indeterminate{animation:3s infinite indeterminate;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,#0000001a 25%,#0000 25% 50%,#0000001a 50% 75%,#0000 75%,#0000);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:3s linear infinite striped-flow}.el-progress-bar__innerText{vertical-align:middle;color:#fff;margin:0 5px;font-size:12px;display:inline-block}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);outline:none;display:inline-block;position:relative}.el-radio-button__inner{white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));outline:var(--el-border);line-height:1;font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;font-size:var(--el-font-size-base);border-radius:0;margin:0;padding:8px 15px;display:inline-block;position:relative}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio{opacity:0;z-index:-1;outline:none;position:absolute}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{font-size:var(--el-font-size-base);border-radius:0;padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;padding:5px 11px;font-size:12px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{flex-wrap:wrap;align-items:center;font-size:0;display:inline-flex}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);cursor:pointer;white-space:nowrap;font-size:var(--el-font-size-base);-webkit-user-select:none;user-select:none;outline:none;align-items:center;height:32px;margin-right:30px;display:inline-flex;position:relative}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{width:12px;height:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;vertical-align:middle;outline:none;display:inline-flex;position:relative}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%)scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);cursor:pointer;box-sizing:border-box;transition:all .3s;display:inline-block;position:relative}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";width:4px;height:4px;transition:transform .15s ease-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.el-radio__original{opacity:0;z-index:-1;outline:none;margin:0;position:absolute;inset:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);--el-rate-outline-color:var(--el-color-primary-light-5);align-items:center;height:32px;display:inline-flex}.el-rate:focus,.el-rate:active{outline:none}.el-rate:focus-visible .el-rate__item .el-rate__icon.is-focus-visible{outline:2px solid var(--el-rate-outline-color);transition:outline-offset,outline}.el-rate__item{cursor:pointer;vertical-align:middle;color:var(--el-rate-void-color);font-size:0;line-height:normal;display:inline-block;position:relative}.el-rate .el-rate__icon{font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration);display:inline-block;position:relative}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{color:var(--el-rate-fill-color);display:inline-block;position:absolute;top:0;left:0;overflow:hidden}.el-rate__decimal--box{position:absolute;top:0;left:0}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:not-allowed;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;text-align:center;box-sizing:border-box;padding:var(--el-result-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);margin:0;line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{font-size:var(--el-font-size-base);color:var(--el-text-color-regular);margin:0;line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{box-sizing:border-box;flex-wrap:wrap;display:flex;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;position:relative;overflow:hidden}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));width:0;height:0;transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3);display:block;position:relative}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{z-index:1;border-radius:4px;position:absolute;bottom:2px;right:2px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__loading,.el-select-dropdown__empty{text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;margin:0;padding:6px 0;list-style:none}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{font-size:var(--el-font-size-base);white-space:nowrap;text-overflow:ellipsis;color:var(--el-text-color-regular);box-sizing:border-box;cursor:pointer;height:34px;padding:0 32px 0 20px;line-height:34px;position:relative;overflow:hidden}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed;background-color:unset}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{content:"";background-position:50%;background-repeat:no-repeat;background-color:var(--el-color-primary);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat;border-top:none;border-right:none;width:12px;height:12px;position:absolute;top:50%;right:20px;transform:translateY(-50%);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{margin:0;padding:0;list-style:none;position:relative}.el-select-group__title{box-sizing:border-box;color:var(--el-color-info);text-overflow:ellipsis;white-space:nowrap;padding:0 20px;font-size:12px;line-height:34px;overflow:hidden}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;vertical-align:middle;width:var(--el-select-width);display:inline-block;position:relative}.el-select__wrapper{box-sizing:border-box;cursor:pointer;text-align:left;border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);min-height:32px;transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset;align-items:center;gap:6px;padding:4px 12px;font-size:14px;line-height:24px;display:flex;position:relative;transform:translateZ(0)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag,.el-select__wrapper.is-disabled input{cursor:not-allowed}.el-select__wrapper.is-disabled .el-select__prefix,.el-select__wrapper.is-disabled .el-select__suffix{pointer-events:none}.el-select__prefix,.el-select__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;gap:6px;display:flex}.el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);cursor:pointer;transform:rotate(0)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__clear{cursor:pointer}.el-select__clear:hover{color:var(--el-select-close-hover-color)}.el-select__selection{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{cursor:pointer;border-color:#0000}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{-webkit-user-select:none;user-select:none;flex-wrap:wrap;display:flex}.el-select__tags-text{text-overflow:ellipsis;white-space:nowrap;line-height:normal;display:block;overflow:hidden}.el-select__placeholder{z-index:-1;text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.el-select__placeholder.is-transparent{-webkit-user-select:none;user-select:none;color:var(--el-text-color-placeholder)}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-select__input-wrapper{flex:1}.el-select__input-wrapper.is-hidden{opacity:0;z-index:-1;position:absolute}.el-select__input{color:var(--el-select-multiple-input-color);font-size:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#0000;border:none;outline:none;width:100%;height:24px;padding:0;font-family:inherit}.el-select__input-calculator{visibility:hidden;white-space:pre;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.el-select--large .el-select__wrapper{gap:6px;min-height:40px;padding:8px 16px;font-size:14px;line-height:24px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{gap:4px;min-height:24px;padding:2px 8px;font-size:12px;line-height:20px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);border-radius:var(--el-border-radius-base);width:100%;height:16px;display:inline-block}.el-skeleton__circle{width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size);border-radius:50%}.el-skeleton__button{border-radius:4px;width:64px;height:40px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;border-radius:0;justify-content:center;align-items:center;display:flex}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100%}to{background-position:0}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:var(--el-skeleton-color);height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg,var(--el-skeleton-color) 25%,var(--el-skeleton-to-color) 37%,var(--el-skeleton-color) 63%);background-size:400% 100%;animation:1.4s infinite el-skeleton-loading}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;width:100%;height:32px;display:flex}.el-slider__runway{height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;position:relative}.el-slider__runway.show-input{width:auto;margin-right:30px}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed;transform:scale(1)}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);z-index:1;top:var(--el-slider-button-wrapper-offset);text-align:center;-webkit-user-select:none;user-select:none;background-color:#0000;outline:none;line-height:normal;position:absolute;transform:translate(-50%)}.el-slider__button-wrapper:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-slider__button-wrapper:hover,.el-slider__button-wrapper.hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;border-radius:50%;display:inline-block}.el-slider__button:hover,.el-slider__button.hover,.el-slider__button.dragging{transform:scale(1.2)}.el-slider__button:hover,.el-slider__button.hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);position:absolute;transform:translate(-50%)}.el-slider__marks{width:18px;height:100%;top:0;left:12px}.el-slider__marks-text{color:var(--el-color-info);white-space:pre;margin-top:15px;font-size:14px;position:absolute;transform:translate(-50%)}.el-slider.is-vertical{flex:0;width:auto;height:100%;display:inline-flex;position:relative}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);border-radius:0 0 3px 3px;height:auto}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{vertical-align:top;display:inline-flex}.el-space__item{flex-wrap:wrap;display:flex}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{vertical-align:middle;display:inline-block}.el-spinner-inner{width:50px;height:50px;animation:2s linear infinite rotate}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:1.5s ease-in-out infinite dash}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-35px}to{stroke-dasharray:90 150;stroke-dashoffset:-124px}}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-grow:0;flex-shrink:0;flex-basis:auto!important}.el-step:last-of-type .el-step__main,.el-step:last-of-type .el-step__description{padding-right:0}.el-step__head{width:100%;position:relative}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{z-index:1;box-sizing:border-box;background:var(--el-bg-color);justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:all .15s ease-out;display:inline-flex;position:relative}.el-step__icon.is-text{border:2px solid;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{-webkit-user-select:none;user-select:none;text-align:center;color:inherit;font-weight:700;line-height:1;display:inline-block}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:var(--el-text-color-placeholder);border-color:currentColor;position:absolute}.el-step__line-inner{box-sizing:border-box;border:1px solid;width:0;height:0;transition:all .15s ease-out;display:block}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:var(--el-text-color-primary);font-weight:700}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{margin-top:-5px;padding-right:10%;font-size:12px;font-weight:400;line-height:20px}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{padding-bottom:8px;line-height:24px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-vertical .el-step__description{padding-right:0}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{width:auto;padding-right:10px;font-size:0}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8)translateY(1px)}.el-step.is-simple .el-step__main{flex-grow:1;align-items:stretch;display:flex;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{overflow-wrap:break-word;max-width:50%}.el-step.is-simple .el-step__arrow{flex-grow:1;justify-content:center;align-items:center;display:flex}.el-step.is-simple .el-step__arrow:before,.el-step.is-simple .el-step__arrow:after{content:"";background:var(--el-text-color-placeholder);width:1px;height:15px;display:inline-block;position:absolute}.el-step.is-simple .el-step__arrow:before{transform-origin:0 0;transform:rotate(-45deg)translateY(-4px)}.el-step.is-simple .el-step__arrow:after{transform-origin:100% 100%;transform:rotate(45deg)translateY(4px)}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{line-height:normal;display:flex}.el-steps--simple{background:var(--el-fill-color-light);border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);vertical-align:middle;align-items:center;height:32px;font-size:14px;line-height:20px;display:inline-flex;position:relative}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);cursor:pointer;vertical-align:middle;height:20px;color:var(--el-text-color-primary);font-size:14px;font-weight:500;display:inline-block}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{font-size:14px;line-height:1;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{opacity:0;width:0;height:0;margin:0;position:absolute}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;min-width:40px;height:20px;transition:border-color var(--el-transition-duration),background-color var(--el-transition-duration);border-radius:10px;outline:none;align-items:center;display:inline-flex;position:relative}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);justify-content:center;align-items:center;height:16px;padding:0 4px 0 18px;display:flex;overflow:hidden}.el-switch__core .el-switch__inner-wrapper{color:var(--el-color-white);-webkit-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:12px;display:flex;overflow:hidden}.el-switch__core .el-switch__action{border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);background-color:var(--el-color-white);width:16px;height:16px;color:var(--el-switch-off-color);justify-content:center;align-items:center;display:flex;position:absolute;left:1px}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{height:40px;font-size:14px;line-height:24px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;min-width:50px;height:24px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{height:24px;font-size:12px;line-height:16px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;min-width:30px;height:16px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;background-color:#fff;border-radius:2px}.el-table-filter__list{outline:none;min-width:100px;margin:0;padding:5px 0;list-style:none}.el-table-filter__list-item{cursor:pointer;line-height:36px;font-size:var(--el-font-size-base);outline:none;padding:0 10px}.el-table-filter__list-item:hover,.el-table-filter__list-item:focus{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{height:unset;align-items:center;margin-bottom:12px;margin-left:5px;margin-right:5px;display:flex}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-fill-color-blank);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px #00000026;--el-table-fixed-right-column:inset -10px 0 10px -10px #00000026;--el-table-index:var(--el-index-normal);box-sizing:border-box;background-color:var(--el-table-bg-color);width:100%;max-width:100%;height:-moz-fit-content;height:fit-content;font-size:var(--el-font-size-base);color:var(--el-table-text-color);position:relative;overflow:hidden}.el-table__inner-wrapper{flex-direction:column;height:100%;display:flex;position:relative}.el-table__inner-wrapper:before{height:1px;bottom:0;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell,.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell{border-bottom-color:#0000}.el-table__empty-block{text-align:center;justify-content:center;align-items:center;width:100%;min-height:60px;display:flex;position:sticky;left:0}.el-table__empty-text{width:50%;color:var(--el-text-color-secondary);line-height:60px}.el-table__expand-column .cell{text-align:center;-webkit-user-select:none;user-select:none;padding:0}.el-table__expand-icon{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);width:min(23px,100%);height:23px;font-size:12px;line-height:12px}.el-table__expand-icon.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:#0000!important}.el-table__placeholder{width:20px;display:inline-block}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;text-align:left;min-width:0;z-index:var(--el-table-index);padding:8px 0;position:relative}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;width:15px;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;text-overflow:ellipsis;white-space:normal;overflow-wrap:break-word;padding:0 12px;line-height:23px;overflow:hidden}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table th.el-table__cell.is-leaf,.el-table td.el-table__cell{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{content:"";vertical-align:middle;background:#ff4d51;border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border:after,.el-table--border:before,.el-table--border .el-table__inner-wrapper:after,.el-table__inner-wrapper:before{content:"";background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2);position:absolute}.el-table--border .el-table__inner-wrapper:after{width:100%;height:1px;z-index:calc(var(--el-table-index) + 2);top:0;left:0}.el-table--border:before{width:1px;height:100%;top:-1px;left:0}.el-table--border:after{width:1px;height:100%;top:-1px;right:0}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper{width:100%}.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right,.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right{background:inherit;z-index:calc(var(--el-table-index) + 1);position:sticky!important}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{content:"";width:10px;box-shadow:none;touch-action:none;pointer-events:none;position:absolute;top:0;bottom:0;overflow:hidden}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch,.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch{z-index:calc(var(--el-table-index) + 1);background:#fff;right:0;position:sticky!important}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__header,.el-table__body,.el-table__footer{table-layout:fixed;border-collapse:separate}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__header-wrapper .el-table-column--selection>.cell,.el-table__body-wrapper .el-table-column--selection>.cell{align-items:center;height:23px;display:inline-flex}.el-table__header-wrapper .el-table-column--selection .el-checkbox,.el-table__body-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;position:relative;overflow:hidden}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{vertical-align:middle;width:24px;height:14px;overflow:initial;flex-direction:column;align-items:center;display:inline-flex;position:relative}.el-table .sort-caret{border:5px solid #0000;width:0;height:0;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;z-index:-1;position:absolute}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{z-index:calc(var(--el-table-index) + 2);position:sticky;top:0}.el-table.el-table--scrollable-y .el-table__body-footer{z-index:calc(var(--el-table-index) + 2);position:sticky;bottom:0}.el-table__column-resize-proxy{border-left:var(--el-table-border);width:0;z-index:calc(var(--el-table-index) + 9);position:absolute;top:0;bottom:0;left:200px}.el-table__column-filter-trigger{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);vertical-align:middle;font-size:14px}.el-table__border-left-patch{width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;top:0;left:0}.el-table__border-bottom-patch{height:1px;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;left:0}.el-table__border-right-patch{width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;top:0}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s 1ms}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{text-align:center;width:20px;display:inline-block}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-fill-color-blank);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px #00000026;--el-table-fixed-right-column:inset -10px 0 10px -10px #00000026;--el-table-index:var(--el-index-normal);font-size:var(--el-font-size-base)}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;left:0;overflow:hidden}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__vertical,.el-table-v2__left .el-vl__horizontal{z-index:-1}.el-table-v2__right{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;right:0;overflow:hidden;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__vertical,.el-table-v2__right .el-vl__horizontal{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__header .el-checkbox{z-index:0}.el-table-v2__footer{position:absolute;bottom:0;left:0;right:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{z-index:9999;position:absolute;inset:0}.el-table-v2__header-row{border-bottom:var(--el-table-border);display:flex}.el-table-v2__header-cell{-webkit-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color);height:100%;color:var(--el-table-header-text-color);align-items:center;padding:0 8px;font-weight:700;display:flex;overflow:hidden}.el-table-v2__header-cell.is-align-center{text-align:center;justify-content:center}.el-table-v2__header-cell.is-align-right{text-align:right;justify-content:flex-end}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-v2__sort-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-v2__sort-icon{transition:opacity,display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{opacity:1;display:flex}.el-table-v2__row{border-bottom:var(--el-table-border);transition:background-color var(--el-transition-duration);align-items:center;display:flex}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{align-items:center;height:100%;padding:0 8px;display:flex;overflow:hidden}.el-table-v2__row-cell.is-align-center{text-align:center;justify-content:center}.el-table-v2__row-cell.is-align-right{text-align:right;justify-content:flex-end}.el-table-v2__expand-icon{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-v2__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-v2__expand-icon{-webkit-user-select:none;user-select:none;margin:0 4px}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row{align-items:stretch;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{justify-content:space-between;align-items:center;margin:0 0 15px;padding:0;display:flex;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);z-index:1;height:2px;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none;position:absolute;bottom:0;left:0}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{border:1px solid var(--el-border-color);text-align:center;width:20px;height:20px;color:var(--el-text-color-primary);cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin:10px 0 10px 10px;font-size:12px;line-height:20px;transition:all .15s;display:flex}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:auto;margin-bottom:-1px;position:relative;overflow:hidden}.el-tabs__nav-wrap:after{content:"";background-color:var(--el-border-color-light);width:100%;height:2px;z-index:var(--el-index-normal);position:absolute;bottom:0;left:0}.el-tabs__nav-wrap.is-bottom:after{top:0;bottom:auto}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{cursor:pointer;color:var(--el-text-color-secondary);text-align:center;width:20px;font-size:12px;line-height:44px;position:absolute}.el-tabs__nav-next.is-disabled,.el-tabs__nav-prev.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1);display:flex;position:relative}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{text-align:center;flex:1}.el-tabs__item{height:var(--el-tabs-header-height);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary);justify-content:center;align-items:center;padding:0 20px;font-weight:500;list-style:none;display:flex;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border-radius:50%;margin-left:5px}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;position:relative;overflow:hidden}.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--top>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height);box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);box-sizing:border-box;border-bottom:none;border-radius:4px 4px 0 0}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{transform-origin:100%;width:0;height:14px;font-size:12px;position:relative;right:-2px;overflow:hidden}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid #0000;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier),padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-top:-1px}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);color:var(--el-text-color-secondary);border:1px solid #0000;margin-top:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child,.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-top:10px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid #0000}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--card>.el-tabs__header.is-left,.el-tabs--card>.el-tabs__header.is-right,.el-tabs--border-card>.el-tabs__header.is-left,.el-tabs--border-card>.el-tabs__header.is-right{border-bottom:none}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-scroll{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{width:2px;height:auto;top:0;bottom:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{text-align:center;cursor:pointer;width:100%;height:30px;line-height:30px}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next.is-disabled{cursor:not-allowed}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{top:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{width:2px;height:100%;top:0;bottom:auto}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__active-bar.is-left{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right-color:#fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-right:none;border-radius:4px 0 0 4px}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid #0000;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 #0000}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left-color:#fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid #0000;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 #0000}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInRight-transition,.slideInLeft-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);position:absolute;left:0;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);position:absolute;left:0;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;opacity:1;transform:translate(0)}to{transform-origin:0 0;opacity:0;transform:translate(100%)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;opacity:1;transform:translate(0)}to{transform-origin:0 0;opacity:0;transform:translate(-100%)}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);vertical-align:middle;height:24px;font-size:var(--el-tag-font-size);border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px;--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);border-style:solid;border-width:1px;justify-content:center;align-items:center;padding:0 9px;line-height:1;display:inline-flex}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size);border-radius:50%}.el-tag .el-tag__close{background-color:#0000;border:none;border-radius:50%;outline:none;margin-left:6px;padding:0;overflow:hidden}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag .el-tag__close .el-icon{display:flex}.el-tag--dark{--el-tag-text-color:var(--el-color-white);--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{--el-icon-size:16px;height:32px;padding:0 11px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{--el-icon-size:12px;height:20px;padding:0 7px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);font-size:var(--el-text-font-size);color:var(--el-text-color);overflow-wrap:break-word;align-self:center;margin:0;padding:0}.el-text.is-truncated{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.el-text.is-line-clamp{-webkit-box-orient:vertical;display:-webkit-inline-box;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{min-width:0;margin:5px 0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);cursor:pointer;font-weight:700}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{box-sizing:content-box;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid var(--el-timeline-node-color);height:100%;position:absolute}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);box-sizing:border-box;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.el-timeline-item__node--normal{width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{justify-content:center;align-items:center;display:flex;position:absolute}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline-item.is-start .el-timeline-item__wrapper{padding-left:28px}.el-timeline-item.is-start .el-timeline-item__tail{left:4px}.el-timeline-item.is-start .el-timeline-item__node--normal{left:-1px}.el-timeline-item.is-start .el-timeline-item__node--large{left:-2px}.el-timeline-item.is-end .el-timeline-item__wrapper{text-align:right;padding-right:28px}.el-timeline-item.is-end .el-timeline-item__tail{right:4px}.el-timeline-item.is-end .el-timeline-item__node--normal{right:-1px}.el-timeline-item.is-end .el-timeline-item__node--large{right:-2px}.el-timeline-item.is-alternate .el-timeline-item__tail,.el-timeline-item.is-alternate .el-timeline-item__node,.el-timeline-item.is-alternate-reverse .el-timeline-item__tail,.el-timeline-item.is-alternate-reverse .el-timeline-item__node{left:50%;transform:translate(-50%)}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);font-size:var(--el-font-size-base);margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{align-items:center;display:flex}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{height:calc(50% - 10px);display:block}.el-timeline.is-start{padding-left:40px;padding-right:0}.el-timeline.is-end{padding-left:0;padding-right:40px}.el-timeline.is-alternate{padding-left:20px;padding-right:20px}.el-timeline.is-alternate .el-timeline-item:nth-child(odd) .el-timeline-item__wrapper{width:calc(50% - 28px);left:calc(50% - var(--el-timeline-node-size-large) / 2);padding-left:28px}.el-timeline.is-alternate .el-timeline-item:nth-child(2n) .el-timeline-item__wrapper{width:calc(50% - 28px + var(--el-timeline-node-size-large) / 2);text-align:right;padding-right:28px}.el-timeline.is-alternate-reverse{padding-left:20px;padding-right:20px}.el-timeline.is-alternate-reverse .el-timeline-item:nth-child(odd) .el-timeline-item__wrapper{width:calc(50% - 28px + var(--el-timeline-node-size-large) / 2);text-align:right;padding-right:28px}.el-timeline.is-alternate-reverse .el-timeline-item:nth-child(2n) .el-timeline-item__wrapper{width:calc(50% - 28px);left:calc(50% - var(--el-timeline-node-size-large) / 2);padding-left:28px}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{vertical-align:middle;padding:0 30px;display:inline-block}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{background:var(--el-bg-color-overlay);text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);box-sizing:border-box;max-height:100%;display:inline-block;position:relative;overflow:hidden}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0}.el-transfer-panel__list{height:var(--el-transfer-panel-body-height);box-sizing:border-box;margin:0;padding:6px 0;list-style:none;overflow:auto}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular);margin-right:30px}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;width:100%;line-height:var(--el-transfer-item-height);padding-left:22px;display:block;overflow:hidden}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;box-sizing:border-box;padding:15px}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);box-sizing:border-box;width:100%;font-size:12px;display:inline-block}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black);align-items:center;margin:0;padding-left:15px;display:flex}.el-transfer-panel .el-transfer-panel__header .el-checkbox{align-items:center;width:100%;display:flex;position:relative}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{min-width:0;color:var(--el-text-color-primary);flex:1;align-items:center;font-size:16px;font-weight:400;display:flex}.el-transfer-panel .el-transfer-panel__header-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.el-transfer-panel .el-transfer-panel__header-count{color:var(--el-text-color-secondary);flex-shrink:0;margin-left:8px;margin-right:15px;font-size:12px}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);margin:0;padding:0}.el-transfer-panel .el-transfer-panel__footer:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:var(--el-text-color-regular);padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);color:var(--el-text-color-secondary);text-align:center;margin:0;padding:6px 15px 0}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base);position:relative}.el-tree__empty-block{text-align:center;width:100%;height:100%;min-height:60px;position:relative}.el-tree__empty-text{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:var(--el-color-primary);height:1px;position:absolute;left:0;right:0}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);height:var(--el-tree-node-content-height);cursor:pointer;align-items:center;display:flex}.el-tree-node__content>.el-tree-node__expand-icon{box-sizing:content-box;padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);transition:transform var(--el-transition-duration) ease-in-out;font-size:12px;transform:rotate(0)}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:#0000;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color);margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:#0000;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__list>.el-select-dropdown__item{padding-left:32px}.el-tree-select__popper .el-select-dropdown__item{flex:1;height:20px;padding-left:0;line-height:20px;background:0 0!important}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;cursor:pointer;outline:none;justify-content:center;align-items:center;display:inline-flex}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{border-color:var(--el-border-color-darker);color:inherit}.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);margin-top:7px;font-size:12px}.el-upload iframe{z-index:-1;opacity:0;filter:alpha(opacity=0);position:absolute;top:0;left:0}.el-upload--picture-card{background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);box-sizing:border-box;text-align:center;cursor:pointer;border-radius:6px;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);margin-bottom:16px;font-size:67px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);text-align:center;font-size:14px}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{color:var(--el-text-color-regular);box-sizing:border-box;border-radius:4px;width:100%;margin-bottom:5px;font-size:14px;transition:all .5s cubic-bezier(.55,0,.1,1);position:relative}.el-upload-list__item .el-progress{width:100%;position:absolute;top:20px}.el-upload-list__item .el-progress__text{position:absolute;top:-13px;right:0}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);display:none;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{cursor:pointer;opacity:1;color:var(--el-color-primary);font-size:12px;font-style:normal;display:none;position:absolute;top:1px;right:5px}.el-upload-list__item:hover,.el-upload-list__item:focus-within{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close,.el-upload-list__item:focus-within .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-icon--close-tip,.el-upload-list__item:focus-within .el-icon--close-tip{right:24px}.el-upload-list__item:hover .el-progress__text,.el-upload-list__item:focus-within .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{flex-direction:column;justify-content:center;width:calc(100% - 30px);margin-left:4px;display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:hover,.el-upload-list__item.is-success .el-upload-list__item-name:focus{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:not(.focusing):focus,.el-upload-list__item.is-success:active{outline-width:0}.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip,.el-upload-list__item.is-success:active .el-icon--close-tip{display:none}.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus-within .el-upload-list__item-status-label{opacity:0;display:none}.el-upload-list__item-name{color:var(--el-text-color-regular);text-align:center;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base);align-items:center;padding:0 4px;display:inline-flex}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-upload-list__item-status-label{line-height:inherit;height:100%;transition:opacity var(--el-transition-duration);justify-content:center;align-items:center;display:none;position:absolute;top:0;right:5px}.el-upload-list__item-delete{color:var(--el-text-color-regular);font-size:12px;display:none;position:absolute;top:0;right:10px}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{flex-wrap:wrap;margin:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);border-radius:6px;margin:0 8px 8px 0;padding:0;display:inline-flex;overflow:hidden}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{object-fit:contain;width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);text-align:center;width:40px;height:24px;top:-6px;right:-15px;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{margin-top:11px;font-size:12px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{cursor:default;color:#fff;opacity:0;background-color:var(--el-overlay-color-lighter);width:100%;height:100%;transition:opacity var(--el-transition-duration);justify-content:center;align-items:center;font-size:20px;display:inline-flex;position:absolute;top:0;left:0}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{font-size:inherit;color:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{width:126px;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);box-sizing:border-box;border-radius:6px;align-items:center;margin-top:10px;padding:10px;display:flex;overflow:hidden}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{object-fit:contain;z-index:1;background-color:var(--el-color-white);justify-content:center;align-items:center;width:70px;height:70px;display:inline-flex;position:relative}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);text-align:center;width:46px;height:26px;position:absolute;top:-7px;right:-17px;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{margin-top:12px;font-size:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{z-index:10;cursor:default;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.el-upload-cover:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-upload-cover img{width:100%;height:100%;display:block}.el-upload-cover__label{background:var(--el-color-success);text-align:center;width:40px;height:24px;top:-6px;right:-15px;transform:rotate(45deg)}.el-upload-cover__label i{color:#fff;margin-top:11px;font-size:12px;transform:rotate(-45deg)}.el-upload-cover__progress{vertical-align:middle;width:243px;display:inline-block;position:static}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{width:100%;height:100%;position:absolute;top:0;left:0}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);text-align:center;width:100%;height:100%;position:absolute;bottom:0;left:0}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px;font-size:14px;display:inline-block}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;font-size:24px;line-height:inherit;margin:0 auto 5px;display:block}.el-upload-cover__title{text-overflow:ellipsis;white-space:nowrap;text-align:left;width:100%;height:36px;color:var(--el-text-color-primary);background-color:#fff;margin:0;padding:0 10px;font-size:14px;font-weight:400;line-height:36px;position:absolute;bottom:0;left:0;overflow:hidden}.el-upload-cover+.el-upload__inner{opacity:0;z-index:1;position:relative}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);--el-popper-bg-color-light:var(--el-bg-color-overlay);--el-popper-bg-color-dark:var(--el-text-color-primary);border-radius:var(--el-popper-border-radius);z-index:2000;overflow-wrap:break-word;word-break:normal;visibility:visible;min-width:10px;padding:5px 11px;font-size:12px;line-height:20px;position:absolute}.el-popper.is-dark{--el-fill-color-blank:var(--el-popper-bg-color-dark);color:var(--el-bg-color);background:var(--el-popper-bg-color-dark);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-popper-bg-color-dark);right:0}.el-popper.is-light{--el-fill-color-blank:var(--el-popper-bg-color-light);background:var(--el-popper-bg-color-light);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-popper-bg-color-light);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{z-index:-1;width:10px;height:10px;position:absolute}.el-popper__arrow:before{z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-top-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-right-color:#0000!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-top-color:#0000!important;border-right-color:#0000!important}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);margin-bottom:4px;line-height:20px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:12px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-close-color:var(--el-color-info);--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{border-radius:var(--el-tour-border-radius);width:var(--el-tour-width);padding:var(--el-tour-padding-primary);background:var(--el-tour-bg-color);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;overflow-wrap:break-word;outline:none}.el-tour__arrow{background:var(--el-tour-bg-color);pointer-events:none;box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-tour__content[data-side^=top] .el-tour__arrow{border-top-color:#0000;border-left-color:#0000}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:#0000;border-right-color:#0000}.el-tour__content[data-side^=left] .el-tour__arrow{border-bottom-color:#0000;border-left-color:#0000}.el-tour__content[data-side^=right] .el-tour__arrow{border-top-color:#0000;border-right-color:#0000}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{cursor:pointer;width:40px;height:40px;font-size:var(--el-message-close-size,16px);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-tour__closebtn .el-tour__close{color:var(--el-tour-close-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding-bottom:var(--el-tour-padding-primary)}.el-tour__header.show-close{padding-right:calc(var(--el-tour-padding-primary) + var(--el-message-close-size,16px))}.el-tour__title{line-height:var(--el-tour-font-line-height);font-size:var(--el-tour-title-font-size);color:var(--el-tour-title-text-color);font-weight:var(--el-tour-title-font-weight)}.el-tour__body{color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{padding-top:var(--el-tour-padding-primary);box-sizing:border-box;justify-content:space-between;display:flex}.el-tour__content .el-tour-indicators{flex:1;display:inline-block}.el-tour__content .el-tour-indicator{background:var(--el-color-info-light-9);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary);--el-tour-close-color:#fff}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{color:var(--el-color-primary);border-color:var(--el-color-primary);background:#fff}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:#ffffff26}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}.el-anchor{--el-anchor-bg-color:var(--el-bg-color);--el-anchor-padding-indent:14px;--el-anchor-line-height:22px;--el-anchor-font-size:12px;--el-anchor-color:var(--el-text-color-secondary);--el-anchor-active-color:var(--el-color-primary);--el-anchor-hover-color:var(--el-text-color-regular);--el-anchor-marker-bg-color:var(--el-color-primary);background-color:var(--el-anchor-bg-color);position:relative}.el-anchor__marker{background-color:var(--el-anchor-marker-bg-color);opacity:0;z-index:0;border-radius:4px;position:absolute}.el-anchor.el-anchor--vertical .el-anchor__marker{width:4px;height:14px;transition:top .25s ease-in-out,opacity .25s;top:8px;left:0}.el-anchor.el-anchor--vertical .el-anchor__list{padding-left:var(--el-anchor-padding-indent)}.el-anchor.el-anchor--vertical.el-anchor--underline:before{content:"";background-color:#0505050f;width:2px;height:100%;position:absolute;left:0}.el-anchor.el-anchor--vertical.el-anchor--underline .el-anchor__marker{border-radius:unset;width:2px}.el-anchor.el-anchor--horizontal .el-anchor__marker{width:20px;height:2px;transition:left .25s ease-in-out,opacity .25s,width .25s;bottom:0}.el-anchor.el-anchor--horizontal .el-anchor__list{padding-bottom:4px;display:flex}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item{padding-left:16px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item:first-child{padding-left:0}.el-anchor.el-anchor--horizontal.el-anchor--underline:before{content:"";background-color:#0505050f;width:100%;height:2px;position:absolute;bottom:0}.el-anchor.el-anchor--horizontal.el-anchor--underline .el-anchor__marker{border-radius:unset;height:2px}.el-anchor__item{flex-direction:column;display:flex}.el-anchor__link{font-size:var(--el-anchor-font-size);line-height:var(--el-anchor-line-height);color:var(--el-anchor-color);transition:color var(--el-transition-duration);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;outline:none;max-width:100%;padding:4px 0;text-decoration:none;overflow:hidden}.el-anchor__link:hover,.el-anchor__link:focus{color:var(--el-hover-color)}.el-anchor__link:focus-visible{border-radius:var(--el-border-radius-base);outline:2px solid var(--el-color-primary)}.el-anchor__link.is-active{color:var(--el-anchor-active-color)}.el-anchor .el-anchor__list .el-anchor__item a{display:inline-block}.el-segmented--vertical{flex-direction:column}.el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented{--el-segmented-color:var(--el-text-color-regular);--el-segmented-bg-color:var(--el-fill-color-light);--el-segmented-padding:2px;--el-segmented-item-selected-color:var(--el-color-white);--el-segmented-item-selected-bg-color:var(--el-color-primary);--el-segmented-item-selected-disabled-bg-color:var(--el-color-primary-light-5);--el-segmented-item-hover-color:var(--el-text-color-primary);--el-segmented-item-hover-bg-color:var(--el-fill-color-dark);--el-segmented-item-active-bg-color:var(--el-fill-color-darker);--el-segmented-item-disabled-color:var(--el-text-color-placeholder);background:var(--el-segmented-bg-color);min-height:32px;padding:var(--el-segmented-padding);border-radius:var(--el-border-radius-base);color:var(--el-segmented-color);box-sizing:border-box;align-items:stretch;font-size:14px;display:inline-flex}.el-segmented__group{align-items:stretch;width:100%;display:flex;position:relative}.el-segmented__item-selected{background:var(--el-segmented-item-selected-bg-color);border-radius:calc(var(--el-border-radius-base) - 2px);pointer-events:none;width:10px;height:100%;transition:all .3s;position:absolute;top:0;left:0}.el-segmented__item-selected.is-disabled{background:var(--el-segmented-item-selected-disabled-bg-color)}.el-segmented__item-selected.is-focus-visible:before{content:"";border-radius:inherit;outline:2px solid var(--el-segmented-item-selected-bg-color);outline-offset:1px;position:absolute;inset:0}.el-segmented__item{cursor:pointer;border-radius:calc(var(--el-border-radius-base) - 2px);flex:1;align-items:center;padding:0 11px;display:flex}.el-segmented__item:not(.is-disabled):not(.is-selected):hover{color:var(--el-segmented-item-hover-color);background:var(--el-segmented-item-hover-bg-color)}.el-segmented__item:not(.is-disabled):not(.is-selected):active{background:var(--el-segmented-item-active-bg-color)}.el-segmented__item.is-selected,.el-segmented__item.is-selected.is-disabled{color:var(--el-segmented-item-selected-color)}.el-segmented__item.is-disabled{cursor:not-allowed;color:var(--el-segmented-item-disabled-color)}.el-segmented__item-input{opacity:0;pointer-events:none;width:0;height:0;margin:0;position:absolute}.el-segmented__item-label{text-align:center;text-overflow:ellipsis;white-space:nowrap;z-index:1;flex:1;line-height:normal;transition:color .3s;overflow:hidden}.el-segmented.is-block{display:flex}.el-segmented.is-block .el-segmented__item{min-width:0}.el-segmented--large{border-radius:var(--el-border-radius-base);min-height:40px;font-size:16px}.el-segmented--large .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 2px)}.el-segmented--large .el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented--large .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 2px);padding:0 11px}.el-segmented--small{border-radius:calc(var(--el-border-radius-base) - 1px);min-height:24px;font-size:14px}.el-segmented--small .el-segmented__item-selected{border-radius:calc(calc(var(--el-border-radius-base) - 1px) - 2px)}.el-segmented--small .el-segmented--vertical .el-segmented__item{padding:7px}.el-segmented--small .el-segmented__item{border-radius:calc(calc(var(--el-border-radius-base) - 1px) - 2px);padding:0 7px}.el-mention{width:100%;position:relative}.el-mention__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-mention__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-mention__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-mention-dropdown{--el-mention-font-size:var(--el-font-size-base);--el-mention-bg-color:var(--el-bg-color-overlay);--el-mention-shadow:var(--el-box-shadow-light);--el-mention-border:1px solid var(--el-border-color-light);--el-mention-option-color:var(--el-text-color-regular);--el-mention-option-height:34px;--el-mention-option-min-width:100px;--el-mention-option-hover-background:var(--el-fill-color-light);--el-mention-option-selected-color:var(--el-color-primary);--el-mention-option-disabled-color:var(--el-text-color-placeholder);--el-mention-option-loading-color:var(--el-text-color-secondary);--el-mention-option-loading-padding:10px 0;--el-mention-max-height:174px;--el-mention-padding:6px 0;--el-mention-header-padding:10px;--el-mention-footer-padding:10px}.el-mention-dropdown__item{font-size:var(--el-mention-font-size);white-space:nowrap;text-overflow:ellipsis;color:var(--el-mention-option-color);height:var(--el-mention-option-height);line-height:var(--el-mention-option-height);box-sizing:border-box;min-width:var(--el-mention-option-min-width);cursor:pointer;padding:0 20px;position:relative;overflow:hidden}.el-mention-dropdown__item.is-hovering{background-color:var(--el-mention-option-hover-background)}.el-mention-dropdown__item.is-selected{color:var(--el-mention-option-selected-color);font-weight:700}.el-mention-dropdown__item.is-disabled{color:var(--el-mention-option-disabled-color);cursor:not-allowed;background-color:unset}.el-mention-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-mention-dropdown__loading{text-align:center;color:var(--el-mention-option-loading-color);min-width:var(--el-mention-option-min-width);margin:0;padding:10px 0;font-size:12px}.el-mention-dropdown__wrap{max-height:var(--el-mention-max-height)}.el-mention-dropdown__list{padding:var(--el-mention-padding);box-sizing:border-box;margin:0;list-style:none}.el-mention-dropdown__header{padding:var(--el-mention-header-padding);border-bottom:var(--el-mention-border)}.el-mention-dropdown__footer{padding:var(--el-mention-footer-padding);border-top:var(--el-mention-border)}.el-splitter{width:100%;height:100%;margin:0;padding:0;display:flex;position:relative}.el-splitter__mask{z-index:999;position:absolute;inset:0}.el-splitter__mask-horizontal{cursor:ew-resize}.el-splitter__mask-vertical{cursor:ns-resize}.el-splitter__horizontal{flex-direction:row}.el-splitter__vertical{flex-direction:column}.el-splitter-bar{-webkit-user-select:none;user-select:none;flex:none;position:relative}.el-splitter-bar__dragger{z-index:1;background:0 0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:before,.el-splitter-bar__dragger:after{content:"";background-color:var(--el-border-color-light);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:not(.is-lazy):after{display:none}.el-splitter-bar__dragger:after{opacity:.4}.el-splitter-bar__dragger:hover:not(.is-disabled):before{background-color:var(--el-color-primary-light-5)}.el-splitter-bar__dragger-horizontal:before,.el-splitter-bar__dragger-horizontal:after{width:2px;height:100%}.el-splitter-bar__dragger-vertical:before,.el-splitter-bar__dragger-vertical:after{width:100%;height:2px}.el-splitter-bar__dragger-active:before,.el-splitter-bar__dragger-active:after{background-color:var(--el-color-primary-light-3)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-horizontal:after{transform:translate(calc(-50% + var(--el-splitter-bar-offset)),-50%)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-vertical:after{transform:translate(-50%,calc(-50% + var(--el-splitter-bar-offset)))}.el-splitter-bar:hover .el-splitter-bar__collapse-icon{opacity:1}.el-splitter-bar__collapse-icon{background:var(--el-border-color-light);cursor:pointer;opacity:0;z-index:9;border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute}.el-splitter-bar__collapse-icon:hover{opacity:1;background-color:var(--el-color-primary-light-5)}.el-splitter-bar__horizontal-collapse-icon-start{width:16px;height:24px;top:50%;left:-12px;transform:translate(-50%,-50%)}.el-splitter-bar__horizontal-collapse-icon-end{width:16px;height:24px;top:50%;left:12px;transform:translate(-50%,-50%)}.el-splitter-bar__vertical-collapse-icon-start{width:24px;height:16px;top:-12px;right:50%;transform:translate(50%,-50%)}.el-splitter-bar__vertical-collapse-icon-end{width:24px;height:16px;top:12px;right:50%;transform:translate(50%,-50%)}.el-splitter-panel{scrollbar-width:thin;box-sizing:border-box;flex-grow:0;overflow:auto}:root{--w4f-primary: #5b6478;--w4f-primary-h: #3f4654;--w4f-primary-50: #f1f3f7;--w4f-primary-100: #e3e7ef;--w4f-primary-200: #cdd4e0;--w4f-primary-300: #a7b1c3;--w4f-secondary: #8a93a8;--w4f-secondary-h: #5b6478;--w4f-secondary-50: #f4f6f9;--w4f-secondary-200: #c8ced9;--w4f-danger: #d6495f;--w4f-danger-50: #fdecef;--w4f-warning: #b7791f;--w4f-warning-50: #fdf3e3;--w4f-info: #3f6ef5;--w4f-ok: #17a964;--w4f-bg-1: #f4f5f7;--w4f-bg-2: #ffffff;--w4f-bg-3: #eef0f3;--w4f-bg-soft: #f8f9fb;--w4f-bg-muted: #f4f5f7;--w4f-bg-hover: #eef0f3;--w4f-bg-active: #e3e7ef;--w4f-fg: #2b2f3a;--w4f-fg-2: #5a6072;--w4f-muted: #6b7280;--w4f-faint: #9ca3af;--w4f-card: rgba(255, 255, 255, .66);--w4f-card-solid: #ffffff;--w4f-card-2: rgba(255, 255, 255, .46);--w4f-line: rgba(91, 100, 120, .16);--w4f-line-2: rgba(91, 100, 120, .1);--w4f-line-3: rgba(91, 100, 120, .06);--w4f-line-strong: rgba(60, 70, 90, .22);--w4f-blob1: rgba(160, 170, 190, .3);--w4f-blob2: rgba(200, 210, 225, .28);--w4f-blob3: rgba(150, 160, 180, .22);--w4f-sh-sm: 0 1px 2px rgba(40, 50, 70, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--w4f-sh-md: 0 6px 20px rgba(40, 50, 70, .12);--w4f-sh-lg: 0 18px 46px rgba(40, 50, 70, .2);--w4f-glass: 18px;--w4f-radius: 16px;--w4f-radius-sm: 12px;--w4f-radius-xs: 10px;--w4f-radius-pill: 99px;--w4f-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--w4f-ease: cubic-bezier(.4, 0, .2, 1);--w4f-font: "Quicksand", "Nunito", "Inter", "Noto Sans SC", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--w4f-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--w4f-glow: rgba(91, 100, 120, .3);--w4f-danger-glow: rgba(214, 73, 95, .3);--w4f-glow-soft: rgba(91, 100, 120, .18);--w4f-thumb: rgba(120, 130, 150, .4);--w4f-thumb-hover: rgba(91, 100, 120, .6);--w4f-selection: #cdd4e0;--el-color-primary: #5b6478;--el-color-primary-light-3: #a7b1c3;--el-color-primary-light-5: #b9c1cf;--el-color-primary-light-7: #cdd4e0;--el-color-primary-light-8: #e3e7ef;--el-color-primary-light-9: #f1f3f7;--el-color-primary-dark-2: #3f4654;--el-color-success: #17a964;--el-color-warning: #b7791f;--el-color-danger: #d6495f;--el-color-info: #6b7280;--el-border-radius-base: 12px;--el-border-radius-small: 8px;--el-font-family: var(--w4f-font);--w4f-ok-50: color-mix(in srgb, var(--w4f-ok) 7%, var(--w4f-card-solid));--w4f-ok-100: color-mix(in srgb, var(--w4f-ok) 13%, var(--w4f-card-solid));--w4f-ok-border: color-mix(in srgb, var(--w4f-ok) 40%, transparent);--w4f-ok-glow: color-mix(in srgb, var(--w4f-ok) 20%, transparent);--w4f-ok-text: color-mix(in srgb, var(--w4f-ok) 48%, var(--w4f-fg));--w4f-warn-50: color-mix(in srgb, var(--w4f-warning) 9%, var(--w4f-card-solid));--w4f-warn-100: color-mix(in srgb, var(--w4f-warning) 15%, var(--w4f-card-solid));--w4f-warn-border: color-mix(in srgb, var(--w4f-warning) 42%, transparent);--w4f-warn-glow: color-mix(in srgb, var(--w4f-warning) 20%, transparent);--w4f-warn-text: color-mix(in srgb, var(--w4f-warning) 52%, var(--w4f-fg))}[data-theme=blue]{--w4f-primary: #3b82f6;--w4f-primary-h: #2563eb;--w4f-primary-50: #eff6ff;--w4f-primary-100: #dbeafe;--w4f-primary-200: #bfdbfe;--w4f-primary-300: #93c5fd;--w4f-secondary: #06b6d4;--w4f-secondary-h: #0891b2;--w4f-secondary-50: #ecfeff;--w4f-secondary-200: #a5f3fc;--w4f-danger: #ef4444;--w4f-danger-50: #fee2e2;--w4f-warning: #b7791f;--w4f-warning-50: #fdf3e3;--w4f-info: #3f6ef5;--w4f-ok: #17a964;--w4f-bg-1: #eff6ff;--w4f-bg-2: #ffffff;--w4f-bg-3: #dbeafe;--w4f-bg-soft: #f5f9ff;--w4f-bg-muted: #eff6ff;--w4f-bg-hover: #e0ebfd;--w4f-bg-active: #dbeafe;--w4f-fg: #1e293b;--w4f-fg-2: #475569;--w4f-muted: #64748b;--w4f-faint: #94a3b8;--w4f-card: rgba(255, 255, 255, .66);--w4f-card-solid: #ffffff;--w4f-card-2: rgba(255, 255, 255, .46);--w4f-line: rgba(59, 130, 246, .16);--w4f-line-2: rgba(59, 130, 246, .1);--w4f-line-3: rgba(59, 130, 246, .06);--w4f-line-strong: rgba(30, 64, 175, .22);--w4f-blob1: rgba(59, 130, 246, .4);--w4f-blob2: rgba(6, 182, 212, .36);--w4f-blob3: rgba(99, 102, 241, .26);--w4f-sh-sm: 0 1px 2px rgba(30, 58, 138, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--w4f-sh-md: 0 6px 20px rgba(30, 58, 138, .13);--w4f-sh-lg: 0 18px 46px rgba(30, 58, 138, .22);--w4f-glow: rgba(59, 130, 246, .32);--w4f-danger-glow: rgba(239, 68, 68, .3);--w4f-glow-soft: rgba(59, 130, 246, .18);--w4f-thumb: rgba(59, 130, 246, .4);--w4f-thumb-hover: rgba(37, 99, 235, .6);--w4f-selection: #bfdbfe;--el-color-primary: #3b82f6;--el-color-primary-light-3: #93c5fd;--el-color-primary-light-5: #a5c8fb;--el-color-primary-light-7: #bfdbfe;--el-color-primary-light-8: #d6e8fd;--el-color-primary-light-9: #eff6ff;--el-color-primary-dark-2: #2563eb;--el-color-success: #17a964;--el-color-warning: #b7791f;--el-color-danger: #ef4444;--el-color-info: #64748b}[data-theme=pink]{--w4f-primary: #FF7FAC;--w4f-primary-h: #F33B7C;--w4f-primary-50: #FFF0F5;--w4f-primary-100: #FFE4E9;--w4f-primary-200: #FFCDD9;--w4f-primary-300: #FF9EB5;--w4f-secondary: #88C0D0;--w4f-secondary-h: #4C8DAE;--w4f-secondary-50: #F0F9FC;--w4f-secondary-200: #AEE1F2;--w4f-danger: #DB3694;--w4f-danger-50: #FEEAF6;--w4f-warning: #b7791f;--w4f-warning-50: #fdf3e3;--w4f-info: #3f6ef5;--w4f-ok: #17a964;--w4f-bg-1: #eef2ff;--w4f-bg-2: #ffffff;--w4f-bg-3: #ffe9f0;--w4f-bg-soft: #f8f6fb;--w4f-bg-muted: #f4f1f7;--w4f-bg-hover: #f5eef3;--w4f-bg-active: #ffe4e9;--w4f-fg: #3b3350;--w4f-fg-2: #5a5470;--w4f-muted: #7c7a95;--w4f-faint: #9c98b0;--w4f-card: rgba(255, 255, 255, .6);--w4f-card-solid: #ffffff;--w4f-card-2: rgba(255, 255, 255, .42);--w4f-line: rgba(255, 127, 172, .18);--w4f-line-2: rgba(255, 127, 172, .12);--w4f-line-3: rgba(255, 127, 172, .06);--w4f-line-strong: rgba(120, 90, 150, .22);--w4f-blob1: rgba(255, 127, 172, .45);--w4f-blob2: rgba(136, 192, 208, .42);--w4f-blob3: rgba(244, 114, 182, .3);--w4f-sh-sm: 0 1px 2px rgba(70, 50, 110, .06), inset 0 1px 0 rgba(255, 255, 255, .6);--w4f-sh-md: 0 6px 20px rgba(120, 90, 160, .13);--w4f-sh-lg: 0 18px 46px rgba(120, 90, 160, .22);--w4f-glow: rgba(255, 127, 172, .35);--w4f-danger-glow: rgba(219, 54, 148, .3);--w4f-glow-soft: rgba(255, 127, 172, .18);--w4f-thumb: rgba(255, 182, 193, .45);--w4f-thumb-hover: rgba(255, 127, 172, .7);--w4f-selection: #ffcdba;--el-color-primary: #FF7FAC;--el-color-primary-light-3: #FF9EB5;--el-color-primary-light-5: #ffb3c4;--el-color-primary-light-7: #ffcdd9;--el-color-primary-light-8: #ffe4e9;--el-color-primary-light-9: #fff0f5;--el-color-primary-dark-2: #f33b7c;--el-color-success: #17a964;--el-color-warning: #b7791f;--el-color-danger: #db3694;--el-color-info: #7c7a95}html,body,#app{margin:0;height:100%}html,body{overflow:hidden}body{font:14px/1.55 var(--w4f-font);color:var(--w4f-fg);letter-spacing:.02em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:var(--w4f-selection);color:#fff}a{color:var(--w4f-primary-h)}#bgfx{position:fixed;inset:0;z-index:-10;overflow:hidden;background:linear-gradient(135deg,var(--w4f-bg-1),var(--w4f-bg-2) 45%,var(--w4f-bg-3))}#bgfx .blob{position:absolute;border-radius:50%;filter:blur(64px);will-change:transform;opacity:.6}#bgfx .b1{top:-10%;left:-8%;width:560px;height:560px;background:var(--w4f-blob1);animation:drift1 30s ease-in-out infinite alternate}#bgfx .b2{top:16%;right:-10%;width:440px;height:440px;background:var(--w4f-blob2);animation:drift2 36s ease-in-out infinite alternate}#bgfx .b3{bottom:-12%;left:24%;width:620px;height:620px;background:var(--w4f-blob3);animation:drift3 42s ease-in-out infinite alternate}@keyframes drift1{0%{transform:translate(0) scale(1)}to{transform:translate(30px,-20px) scale(1.05)}}@keyframes drift2{0%{transform:translate(0) scale(1)}to{transform:translate(-25px,18px) scale(1.03)}}@keyframes drift3{0%{transform:translate(0) scale(1)}to{transform:translate(18px,25px) scale(1.04)}}@media(prefers-reduced-motion:reduce){#bgfx .blob{animation:none;opacity:.35}}.w4f-card{position:relative;background:var(--w4f-card);border:1px solid var(--w4f-line);border-radius:var(--w4f-radius);box-shadow:var(--w4f-sh-md);backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);animation:cardIn .32s var(--w4f-ease-spring) both}@media(prefers-reduced-motion:reduce){.w4f-card{backdrop-filter:none;-webkit-backdrop-filter:none}}@keyframes cardIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.w4f-kpi{background:var(--w4f-card);border:1px solid var(--w4f-line);border-radius:var(--w4f-radius);padding:16px 18px;display:flex;flex-direction:column;box-shadow:var(--w4f-sh-md);backdrop-filter:blur(var(--w4f-glass)) saturate(1.6);-webkit-backdrop-filter:blur(var(--w4f-glass)) saturate(1.6);transition:transform .25s var(--w4f-ease-spring),box-shadow .25s var(--w4f-ease-spring),border-color .25s var(--w4f-ease-spring);animation:cardIn .32s var(--w4f-ease-spring) both}.w4f-kpi:hover{transform:translateY(-2px);box-shadow:var(--w4f-sh-lg);border-color:var(--w4f-primary-200)}.w4f-kpi .k-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.w4f-kpi .k-lab{font-size:12px;color:var(--w4f-muted);font-weight:700;display:flex;align-items:center;gap:6px;white-space:nowrap}.w4f-kpi .k-val{font-size:27px;font-weight:800;margin-top:4px;font-variant-numeric:tabular-nums;letter-spacing:.3px}.w4f-kpi .k-sub{font-size:11.5px;color:var(--w4f-muted);margin-top:4px}.w4f-kpi .k-ic{width:26px;height:26px;border-radius:9px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h)}.w4f-dot{width:7px;height:7px;border-radius:50%;background:var(--w4f-ok);display:inline-block;animation:blink 1.6s infinite}.w4f-dot.err{background:var(--w4f-danger)}.w4f-dot.pending{background:var(--w4f-secondary)}@keyframes blink{50%{opacity:.25}}.w4f-bar{height:5px;border-radius:3px;background:var(--w4f-card-2);overflow:hidden;min-width:60px}.w4f-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--w4f-primary),var(--w4f-secondary));border-radius:3px}.w4f-bar.ok i{background:var(--w4f-ok)}.w4f-bar.err i{background:var(--w4f-danger)}.w4f-tag{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--w4f-radius-pill);font-size:12px;font-weight:600;margin:2px 3px 2px 0}.w4f-tag-ok{background:#17a9641f;color:var(--w4f-ok)}.w4f-tag-danger{background:var(--w4f-danger-50);color:var(--w4f-danger)}.w4f-tag-info{background:var(--w4f-secondary-50);color:var(--w4f-secondary-h)}.w4f-tag-warn{background:#b7791f24;color:var(--w4f-warning)}.w4f-tag-primary{background:var(--w4f-primary-50);color:var(--w4f-primary-h)}.w4f-btn{background:linear-gradient(135deg,var(--w4f-primary),var(--w4f-danger));color:#fff;border:0;border-radius:11px;padding:8px 16px;cursor:pointer;font:inherit;font-weight:600;transition:all .18s var(--w4f-ease-spring)}.w4f-btn:hover{background:linear-gradient(135deg,var(--w4f-primary-h),var(--w4f-danger));transform:translateY(-1px);box-shadow:0 8px 20px var(--w4f-glow)}.w4f-btn:active{transform:translateY(0)}.w4f-btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.w4f-btn.ghost{background:transparent;border:1px solid var(--w4f-line-strong);color:var(--w4f-muted)}.w4f-btn.ghost:hover{border-color:var(--w4f-primary);color:var(--w4f-primary-h);box-shadow:var(--w4f-sh-sm);transform:none;background:transparent}.w4f-btn.danger{background:transparent;border:1px solid var(--w4f-danger);color:var(--w4f-danger)}.w4f-btn.danger:hover{background:var(--w4f-danger);color:#fff;box-shadow:0 8px 20px var(--w4f-danger-glow);transform:translateY(-1px)}.w4f-btn.small{padding:5px 12px;font-size:12px;border-radius:var(--w4f-radius-pill)}*{scrollbar-width:thin;scrollbar-color:var(--w4f-line-strong) transparent}*::-webkit-scrollbar{width:8px;height:8px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--w4f-thumb);border-radius:4px;transition:background .3s}*::-webkit-scrollbar-thumb:hover{background:var(--w4f-thumb-hover)}.el-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.el-dialog{border-radius:var(--w4f-radius)!important;box-shadow:var(--w4f-sh-lg)!important}.el-message{border-radius:var(--w4f-radius-sm)!important;box-shadow:var(--w4f-sh-lg)!important}.vue-flow{position:relative;width:100%;height:100%;overflow:hidden;z-index:0;direction:ltr}.vue-flow__container{position:absolute;height:100%;width:100%;left:0;top:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.vue-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{left:50%;bottom:0;transform:translate(-50%,50%)}.vue-flow__handle-top{left:50%;top:0;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{position:absolute;z-index:5;margin:15px}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10}}:root{--vf-node-bg: #fff;--vf-node-text: #222;--vf-connection-path: #b1b1b7;--vf-handle: #555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{padding:10px;border-radius:3px;width:150px;font-size:12px;text-align:center;border-width:1px;border-style:solid;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-color:var(--vf-node-color)}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid #555}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color: var(--vf-node-color, #0041d0);--vf-handle: var(--vf-node-color, #0041d0);--vf-box-shadow: var(--vf-node-color, #0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color, #0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{outline:none;border:1px solid var(--vf-node-color, #0041d0)}.vue-flow__node-default{--vf-handle: var(--vf-node-color, #1a192b);--vf-box-shadow: var(--vf-node-color, #1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color, #1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{outline:none;border:1px solid var(--vf-node-color, #1a192b)}.vue-flow__node-output{--vf-handle: var(--vf-node-color, #ff0072);--vf-box-shadow: var(--vf-node-color, #ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color, #ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{outline:none;border:1px solid var(--vf-node-color, #ff0072)}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{width:6px;height:6px;background:var(--vf-handle);border:1px solid #fff;border-radius:100%}.local-node[data-v-2cf42f62]{min-width:240px;border-radius:14px 14px 14px 4px;background:var(--w4f-ok-50);border:2px solid var(--w4f-ok);box-shadow:0 2px 8px var(--w4f-ok-glow);padding:8px 10px}.local-node.selected[data-v-2cf42f62]{border-color:var(--w4f-warning);box-shadow:0 0 0 3px var(--w4f-warn-glow)}.local-node.conflicted[data-v-2cf42f62]{border-color:var(--w4f-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent);animation:conflict-pulse-2cf42f62 1.2s ease-in-out infinite}@keyframes conflict-pulse-2cf42f62{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--w4f-danger) 70%,transparent)}}.node-head[data-v-2cf42f62]{display:flex;align-items:center;gap:6px}.node-head .node-icon[data-v-2cf42f62]{color:var(--w4f-ok);font-size:16px}.name-input[data-v-2cf42f62]{flex:1;min-width:0;border:none;background:transparent;font-weight:600;font-size:14px;color:var(--w4f-ok-text)}.name-input[data-v-2cf42f62]:focus{outline:1px solid var(--w4f-ok)}.del-btn[data-v-2cf42f62]{border:none;background:transparent;color:var(--w4f-faint);font-size:16px;cursor:pointer;line-height:1}.del-btn[data-v-2cf42f62]:hover{color:var(--w4f-danger)}.adv .adv-body label input[data-v-2cf42f62],.adv .adv-body label select[data-v-2cf42f62],.fields label input[data-v-2cf42f62],.fields label select[data-v-2cf42f62]{flex:1;min-width:0;border:1px solid var(--w4f-ok-border);border-radius:6px;padding:2px 6px;font-size:12px;background:var(--w4f-card-solid);color:var(--w4f-fg)}.adv .adv-body label input[data-v-2cf42f62]:focus,.adv .adv-body label select[data-v-2cf42f62]:focus,.fields label input[data-v-2cf42f62]:focus,.fields label select[data-v-2cf42f62]:focus{outline:none;border-color:var(--w4f-ok)}.fields[data-v-2cf42f62]{display:flex;flex-direction:column;gap:4px;margin-top:6px}.fields label[data-v-2cf42f62]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--w4f-ok-text)}.fields label input[type=number][data-v-2cf42f62]{width:64px;flex:0 0 64px}.adv[data-v-2cf42f62]{margin-top:6px}.adv .adv-toggle[data-v-2cf42f62]{border:1px dashed var(--w4f-ok-border);background:transparent;color:var(--w4f-ok-text);font-size:11px;border-radius:6px;padding:2px 8px;cursor:pointer}.adv .adv-body[data-v-2cf42f62]{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;padding:8px;background:var(--w4f-ok-100);border-radius:8px}.adv .adv-body label[data-v-2cf42f62]{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--w4f-ok-text)}.adv .adv-body .adv-check[data-v-2cf42f62]{flex-direction:row;align-items:center;gap:4px}.adv .adv-body .adv-sep[data-v-2cf42f62],.adv .adv-body .adv-wide[data-v-2cf42f62]{grid-column:1/-1}.adv .adv-body .adv-sep[data-v-2cf42f62]{margin:4px 0 2px;font-size:11px;font-weight:600;color:var(--w4f-ok-text);border-top:1px dashed var(--w4f-ok-border);padding-top:4px}.remote-node[data-v-b77096cd]{min-width:200px;border-radius:14px 14px 4px;background:var(--w4f-warn-50);border:2px solid var(--w4f-warning);box-shadow:0 2px 8px var(--w4f-warn-glow);padding:8px 10px}.remote-node.selected[data-v-b77096cd]{border-color:var(--w4f-warning);box-shadow:0 0 0 3px var(--w4f-warn-glow)}.remote-node.conflicted[data-v-b77096cd]{border-color:var(--w4f-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent);animation:conflict-pulse-b77096cd 1.2s ease-in-out infinite}@keyframes conflict-pulse-b77096cd{0%,to{box-shadow:0 0 0 3px color-mix(in srgb,var(--w4f-danger) 40%,transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--w4f-danger) 70%,transparent)}}.node-head[data-v-b77096cd]{display:flex;align-items:center;gap:6px}.node-head .node-icon[data-v-b77096cd]{color:var(--w4f-warning);font-size:16px}.name-input[data-v-b77096cd]{flex:1;min-width:0;border:none;background:transparent;font-weight:600;font-size:14px;color:var(--w4f-warn-text)}.name-input[data-v-b77096cd]:focus{outline:1px solid var(--w4f-warning)}.enabled[data-v-b77096cd]{display:inline-flex;align-items:center;gap:2px;font-size:10px;color:var(--w4f-warn-text)}.del-btn[data-v-b77096cd]{border:none;background:transparent;color:var(--w4f-faint);font-size:16px;cursor:pointer;line-height:1}.del-btn[data-v-b77096cd]:hover{color:var(--w4f-danger)}.fields[data-v-b77096cd]{display:flex;flex-direction:column;gap:4px;margin-top:6px}.fields label[data-v-b77096cd]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--w4f-warn-text)}.fields label input[data-v-b77096cd]{flex:1;min-width:0;border:1px solid var(--w4f-warn-border);border-radius:6px;padding:2px 6px;font-size:12px;background:var(--w4f-card-solid);color:var(--w4f-fg)}.fields label input[data-v-b77096cd]:focus{outline:none;border-color:var(--w4f-warning)}.fields label input[type=number][data-v-b77096cd]{width:64px;flex:0 0 64px}.fields .adv[data-v-b77096cd]{margin-top:6px}.fields .adv .adv-toggle[data-v-b77096cd]{border:1px dashed var(--w4f-warn-border);background:transparent;color:var(--w4f-warn-text);font-size:11px;border-radius:6px;padding:2px 8px;cursor:pointer}.fields .adv .adv-body[data-v-b77096cd]{display:flex;flex-direction:column;gap:4px;margin-top:6px;padding:6px;background:var(--w4f-warn-100);border-radius:8px}.fields .adv .adv-body label[data-v-b77096cd]{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--w4f-warn-text)}.fields .adv .adv-body label input[data-v-b77096cd],.fields .adv .adv-body label select[data-v-b77096cd]{flex:1;min-width:0;border:1px solid var(--w4f-warn-border);border-radius:6px;padding:2px 6px;font-size:12px;background:var(--w4f-card-solid);color:var(--w4f-fg)}.fields .adv .adv-body label input[data-v-b77096cd]:focus,.fields .adv .adv-body label select[data-v-b77096cd]:focus{outline:none;border-color:var(--w4f-warning)}.fields .adv .adv-body .adv-check[data-v-b77096cd]{font-size:11px}.port-edge-path.selected[data-v-cecf0202]{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--w4f-primary) 60%,transparent))}.port-edge-path.conflicted[data-v-cecf0202]{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--w4f-danger) 80%,transparent));animation:conflict-pulse-cecf0202 1.2s ease-in-out infinite}@keyframes conflict-pulse-cecf0202{0%,to{opacity:1}50%{opacity:.55}}.port-label[data-v-cecf0202]{position:relative;background:color-mix(in srgb,var(--w4f-card-solid) 90%,transparent);color:var(--w4f-fg);border:1px solid var(--w4f-line);border-radius:10px;padding:2px 10px;font-size:12px;font-weight:600;font-family:inherit;white-space:nowrap;box-shadow:var(--w4f-sh-sm);-webkit-user-select:none;user-select:none;transition:box-shadow .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1)),transform .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label.dragging[data-v-cecf0202]{cursor:grabbing;box-shadow:var(--w4f-sh-md)}.port-label .port-toggle[data-v-cecf0202]{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:6px;padding:0 4px;margin-right:6px;font-size:10px;font-weight:700;background:color-mix(in srgb,var(--el-color-success) 18%,transparent);color:var(--el-color-success);cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1)),color .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label .port-toggle.off[data-v-cecf0202]{background:color-mix(in srgb,var(--el-color-info) 18%,transparent);color:var(--el-color-info)}.port-label .port-group[data-v-cecf0202]{margin-left:6px;padding:1px 6px;border-radius:6px;font-size:10px;font-weight:600;background:color-mix(in srgb,var(--w4f-secondary) 16%,transparent);color:var(--w4f-secondary-h);cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label .port-delete[data-v-cecf0202]{position:absolute;top:-10px;right:-10px;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;margin-left:0;font-size:13px;font-weight:700;line-height:1;background:color-mix(in srgb,var(--el-color-danger) 16%,transparent);color:var(--el-color-danger);cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1)),color .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.port-label .port-delete[data-v-cecf0202]:hover{background:var(--el-color-danger);color:#fff}.canvas-editor[data-v-f91ed7cb]{height:100%;display:flex;flex-direction:column;background:var(--w4f-bg-soft)}.toolbar[data-v-f91ed7cb]{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--w4f-bg-2);border-bottom:1px solid var(--w4f-line);z-index:20}.toolbar-left[data-v-f91ed7cb],.toolbar-right[data-v-f91ed7cb]{display:flex;align-items:center;gap:8px}.toolbar-title[data-v-f91ed7cb]{font-weight:600;font-size:16px;margin-right:8px}.btn[data-v-f91ed7cb]{border:none;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:500;cursor:pointer;transition:all .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1));background:var(--w4f-bg-muted);color:var(--w4f-fg)}.btn[data-v-f91ed7cb]:hover{background:var(--w4f-bg-hover)}.btn[data-v-f91ed7cb]:disabled{opacity:.5;cursor:default}.btn.local-add[data-v-f91ed7cb]{background:var(--w4f-ok);color:#fff}.btn.local-add[data-v-f91ed7cb]:hover{background:color-mix(in srgb,var(--w4f-ok) 82%,var(--w4f-fg))}.btn.remote-add[data-v-f91ed7cb]{background:var(--w4f-warning);color:#fff}.btn.remote-add[data-v-f91ed7cb]:hover{background:color-mix(in srgb,var(--w4f-warning) 82%,var(--w4f-fg))}.btn.warn[data-v-f91ed7cb]{background:var(--w4f-secondary);color:#fff}.btn.warn[data-v-f91ed7cb]:hover{background:var(--w4f-secondary-h)}.btn.save[data-v-f91ed7cb]{background:var(--w4f-primary);color:#fff}.btn.save[data-v-f91ed7cb]:hover{background:var(--w4f-primary-h)}.btn.ghost[data-v-f91ed7cb]{background:transparent;color:var(--w4f-muted);border:1px solid var(--w4f-line-strong)}.btn.ghost[data-v-f91ed7cb]:hover:not(:disabled){background:var(--w4f-card-2);color:var(--w4f-fg)}.btn.ghost[data-v-f91ed7cb]:disabled{opacity:.5;cursor:not-allowed}.hidden-input[data-v-f91ed7cb]{position:absolute;width:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.save-hint[data-v-f91ed7cb]{font-size:13px;color:var(--w4f-muted)}.flow-wrap[data-v-f91ed7cb]{flex:1;position:relative;min-height:0}.flow-canvas[data-v-f91ed7cb]{width:100%;height:100%;background:var(--w4f-bg-muted)}.dlg-row[data-v-f91ed7cb]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.dlg-row label[data-v-f91ed7cb]{min-width:70px;font-size:14px;color:var(--w4f-fg-2)}.dlg-value[data-v-f91ed7cb]{font-weight:500}.dlg-hint[data-v-f91ed7cb]{font-size:13px;color:var(--w4f-muted)}[data-v-f91ed7cb] .vue-flow__edge-label{background:color-mix(in srgb,var(--w4f-fg) 75%,transparent);color:var(--w4f-bg-2);border-radius:10px;padding:2px 8px;font-size:12px;font-weight:600;cursor:pointer}[data-v-f91ed7cb] .vue-flow__handle{width:12px;height:12px;border:2px solid var(--w4f-card-solid)}[data-v-f91ed7cb] .vue-flow__node{cursor:grab}[data-v-f91ed7cb] .vue-flow__node.dragging{cursor:grabbing}.settings-page[data-v-8b757323]{height:100%;display:flex;flex-direction:column;overflow-y:auto}.page-top[data-v-8b757323]{flex-shrink:0;padding:24px 32px;border-bottom:1px solid var(--w4f-line)}.page-header .page-title[data-v-8b757323]{margin:0}.page-header .page-subtitle[data-v-8b757323]{margin:4px 0 0;color:var(--w4f-muted);font-size:14px}.page-content[data-v-8b757323]{padding:24px 32px;display:flex;flex-direction:column;gap:24px;max-width:760px}.panel[data-v-8b757323]{border:1px solid var(--w4f-line);border-radius:16px;padding:24px}.panel-title[data-v-8b757323]{margin:0 0 4px;font-size:16px;font-weight:600}.panel-desc[data-v-8b757323]{margin:0 0 12px;color:var(--w4f-muted);font-size:13px}.binary-row[data-v-8b757323]{display:flex;gap:8px}.binary-input[data-v-8b757323]{flex:1}.btn[data-v-8b757323]{border:none;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1));white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.install-btn[data-v-8b757323]{background:var(--w4f-primary);color:#fff}.install-btn[data-v-8b757323]:hover{background:var(--w4f-primary-h)}.install-btn[data-v-8b757323]:disabled{opacity:.6;cursor:default}.spin[data-v-8b757323]{animation:rotate-8b757323 1s linear infinite}@keyframes rotate-8b757323{to{transform:rotate(360deg)}}.binary-info[data-v-8b757323]{margin-top:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.binary-info .info-label[data-v-8b757323]{color:var(--w4f-muted);font-size:13px}.binary-info .info-value[data-v-8b757323]{background:var(--w4f-bg-muted);border-radius:6px;padding:2px 8px;font-size:13px;word-break:break-all}.binary-info .info-version[data-v-8b757323]{background:var(--w4f-primary-50);color:var(--w4f-primary-h);border-radius:10px;padding:2px 8px;font-size:13px}.setting-row[data-v-8b757323]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--w4f-line-2)}.setting-row[data-v-8b757323]:last-child{border-bottom:none}.setting-text[data-v-8b757323]{display:flex;flex-direction:column}.setting-label[data-v-8b757323]{font-size:14px;font-weight:500}.setting-hint[data-v-8b757323]{font-size:13px;color:var(--w4f-muted)}.status-page[data-v-936b1b43]{height:100%;display:flex;flex-direction:column;overflow:hidden;gap:14px}.topbar[data-v-936b1b43]{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px}.tb-left[data-v-936b1b43]{display:flex;flex-direction:column;gap:3px}.page-title[data-v-936b1b43]{margin:0;font-size:17px;font-weight:800}.page-sub[data-v-936b1b43]{font-size:12px;color:var(--w4f-muted)}.tb-right[data-v-936b1b43]{display:flex;gap:8px}.kpis[data-v-936b1b43]{flex-shrink:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px}.status-body[data-v-936b1b43]{flex:1;display:flex;flex-direction:column;gap:18px;overflow-y:auto;padding-right:4px}.section[data-v-936b1b43]{display:flex;flex-direction:column}.section-title[data-v-936b1b43]{margin:0 0 10px;font-size:13.5px;font-weight:700;color:var(--w4f-muted);letter-spacing:.02em;display:flex;align-items:center;gap:10px}.section-title .k-ic[data-v-936b1b43]{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:13px;background:linear-gradient(135deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h)}.card-grid[data-v-936b1b43]{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.node-card[data-v-936b1b43]{padding:16px 18px;border-left:4px solid var(--w4f-danger)}.node-card.healthy[data-v-936b1b43]{border-left-color:var(--w4f-ok)}.nc-head[data-v-936b1b43]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nc-name[data-v-936b1b43]{font-weight:800;font-size:15px;margin-right:auto}.nc-actions[data-v-936b1b43]{display:flex;gap:6px;flex-wrap:wrap}.nc-cluster-note[data-v-936b1b43]{font-size:11.5px;color:var(--w4f-muted);padding:3px 9px;border-radius:99px;background:var(--w4f-card-2);cursor:help;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nc-meta[data-v-936b1b43]{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.meta-pill[data-v-936b1b43]{font-size:11.5px;padding:2px 9px;border-radius:99px;background:var(--w4f-card-2);color:var(--w4f-muted);font-family:var(--w4f-mono);max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta-pill.warn[data-v-936b1b43]{background:var(--w4f-warning-50);color:var(--w4f-warning)}.meta-pill.err[data-v-936b1b43]{background:var(--w4f-danger-50);color:var(--w4f-danger)}.meta-pill.info[data-v-936b1b43]{background:var(--w4f-secondary-50);color:var(--w4f-secondary-h)}.nc-forwards[data-v-936b1b43]{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.nc-groups[data-v-936b1b43]{margin-top:6px}.nc-proxies[data-v-936b1b43]{display:flex;flex-direction:column;gap:6px;margin-top:10px}.nc-proxy[data-v-936b1b43]{display:flex;align-items:center;gap:8px;font-size:12px;padding:6px 10px;border-radius:10px;background:var(--w4f-card-2);border:1px solid var(--w4f-line)}.nc-proxy.ok[data-v-936b1b43]{border-left:3px solid var(--w4f-ok)}.nc-proxy.pending[data-v-936b1b43]{border-left:3px solid var(--w4f-secondary)}.nc-proxy.err[data-v-936b1b43]{border-left:3px solid var(--w4f-danger)}.nc-proxy .w4f-bar[data-v-936b1b43]{width:60px}.np-name[data-v-936b1b43]{font-weight:700}.np-status[data-v-936b1b43]{font-size:11px;color:var(--w4f-fg-2)}.np-addr[data-v-936b1b43]{margin-left:auto;font-size:11px;color:var(--w4f-muted);font-family:var(--w4f-mono)}.np-err[data-v-936b1b43]{margin-left:auto;font-size:11px;color:var(--w4f-danger);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nc-proxies-empty[data-v-936b1b43]{margin-top:8px;font-size:12px;color:var(--w4f-muted)}.fwd-card[data-v-936b1b43]{padding:12px 14px;border-left:4px solid var(--w4f-muted);transition:border-color .18s var(--w4f-ease-spring)}.fwd-card.active[data-v-936b1b43]{border-left-color:var(--w4f-ok)}.fwd-card.stopped[data-v-936b1b43]{border-left-color:var(--w4f-danger);opacity:.78}.fwd-head[data-v-936b1b43]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fwd-kind[data-v-936b1b43]{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;color:var(--w4f-muted);background:var(--w4f-card-2)}.fwd-kind.local[data-v-936b1b43]{color:var(--w4f-ok-h, #fff);background:var(--w4f-ok-50, var(--w4f-primary-50))}.fwd-kind.remote[data-v-936b1b43]{color:var(--w4f-secondary-h);background:var(--w4f-secondary-50)}.fwd-dot[data-v-936b1b43]{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:var(--w4f-muted);box-shadow:0 0 0 3px var(--w4f-card-2)}.fwd-dot.on[data-v-936b1b43]{background:var(--w4f-ok);box-shadow:0 0 0 3px var(--w4f-ok-50, var(--w4f-primary-50))}.fwd-route[data-v-936b1b43]{font-size:13.5px;display:flex;align-items:center;gap:5px;margin-right:auto}.fwd-ip[data-v-936b1b43]{font-size:11.5px;color:var(--w4f-muted);font-family:var(--w4f-mono)}.fwd-arrow[data-v-936b1b43]{color:var(--w4f-primary);font-weight:800}.fwd-port[data-v-936b1b43]{font-family:var(--w4f-mono);color:var(--w4f-fg-2)}.fwd-owner[data-v-936b1b43]{font-size:11.5px;color:var(--w4f-muted);padding:2px 8px;border-radius:99px;background:var(--w4f-card-2);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fwd-actions[data-v-936b1b43]{display:flex;gap:6px}.grp-count[data-v-936b1b43]{font-size:12px;color:var(--w4f-muted);font-weight:600}.grp-actions[data-v-936b1b43]{margin-left:auto;display:flex;gap:6px}.group-chip[data-v-936b1b43]{cursor:pointer;transition:background .18s var(--w4f-ease-spring, cubic-bezier(.34, 1.56, .64, 1))}.group-chip[data-v-936b1b43]:hover{background:color-mix(in srgb,var(--w4f-info) 30%,transparent)}.local-card[data-v-936b1b43]{padding:14px 16px}.lc-head[data-v-936b1b43]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lc-name[data-v-936b1b43]{font-weight:800;font-size:14px}.lc-addr[data-v-936b1b43]{font-size:12px;color:var(--w4f-fg-2);font-family:var(--w4f-mono)}.lc-targets[data-v-936b1b43]{margin-top:10px;display:flex;flex-direction:column;gap:6px}.lc-target[data-v-936b1b43]{display:flex;align-items:center;gap:6px;font-size:13px}.lc-arrow[data-v-936b1b43]{color:var(--w4f-primary);font-weight:700}.lc-remote[data-v-936b1b43]{font-weight:600}.lc-port[data-v-936b1b43]{color:var(--w4f-fg-2);font-family:var(--w4f-mono);margin-right:auto}.lc-none[data-v-936b1b43]{font-size:12px;color:var(--w4f-faint)}.empty[data-v-936b1b43]{grid-column:1/-1;color:var(--w4f-muted);font-size:13px;padding:18px;text-align:center}.form-row[data-v-936b1b43]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.form-row label[data-v-936b1b43]{width:72px;font-size:13px;color:var(--w4f-fg-2);flex-shrink:0}.cluster-page[data-v-d22f401e]{height:100%;display:flex;flex-direction:column;overflow-y:auto;padding:4px 0 40px;gap:14px}.hero[data-v-d22f401e]{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:16px 20px}.hero-left[data-v-d22f401e]{display:flex;flex-direction:column;gap:4px}.page-title[data-v-d22f401e]{margin:0;font-size:18px;font-weight:800}.page-sub[data-v-d22f401e]{color:var(--w4f-muted);font-size:12px}.hero-stats[data-v-d22f401e]{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.hero-stats .w4f-tag b[data-v-d22f401e]{color:var(--w4f-fg);font-weight:800}.crown[data-v-d22f401e]{color:var(--w4f-primary-h)}.nodekey-bar[data-v-d22f401e]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px dashed var(--w4f-line);width:100%}.nk-label[data-v-d22f401e]{font-size:12px;color:var(--w4f-muted);white-space:nowrap}.nk-value[data-v-d22f401e]{font-family:var(--w4f-mono);font-size:12px;background:var(--w4f-card-2);border:1px solid var(--w4f-line);border-radius:10px;padding:3px 8px;-webkit-user-select:all;user-select:all;letter-spacing:.02em}.nk-hint[data-v-d22f401e]{font-size:11px;color:var(--w4f-faint)}.kpis[data-v-d22f401e]{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px}.toolbar[data-v-d22f401e]{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px}.act-hint[data-v-d22f401e]{font-size:12px;color:var(--w4f-muted)}.cluster-body[data-v-d22f401e]{display:flex;flex-direction:column;gap:14px}.section[data-v-d22f401e]{padding:18px 20px}.section-title[data-v-d22f401e]{margin:0 0 12px;font-size:13.5px;font-weight:700;color:var(--w4f-muted);letter-spacing:.02em;display:flex;align-items:center;gap:10px}.section-title .k-ic[data-v-d22f401e]{width:26px;height:26px;border-radius:9px;display:grid;place-items:center;font-size:13px;background:linear-gradient(135deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h)}.ring-line[data-v-d22f401e]{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap}.ring-node[data-v-d22f401e]{position:relative;border:1px solid var(--w4f-line);border-radius:16px;padding:12px 14px;min-width:168px;background:var(--w4f-card-2);box-shadow:var(--w4f-sh-sm)}.ring-node.leader[data-v-d22f401e]{border-color:var(--w4f-secondary);background:var(--w4f-secondary-50)}.ring-node.self[data-v-d22f401e]{outline:2px solid rgba(255,127,172,.45);box-shadow:0 0 0 4px #ff7fac24;border-color:var(--w4f-primary)}.ring-node.dead[data-v-d22f401e]{border-color:var(--w4f-danger);background:var(--w4f-danger-50);opacity:.72}.rn-top[data-v-d22f401e]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.rn-id[data-v-d22f401e]{font-weight:800;font-size:13px;font-family:var(--w4f-mono)}.rn-load-row[data-v-d22f401e]{display:flex;align-items:center;gap:8px;margin-top:8px}.rn-load-label[data-v-d22f401e]{font-size:11px;color:var(--w4f-muted);white-space:nowrap}.rn-load-row .w4f-bar[data-v-d22f401e]{flex:1;min-width:50px}.rn-addr[data-v-d22f401e]{font-size:11px;color:var(--w4f-muted);font-family:var(--w4f-mono);margin-top:4px}.rn-remove[data-v-d22f401e]{margin-top:8px}.ring-arrow[data-v-d22f401e]{align-self:center;color:var(--w4f-primary);font-size:18px;font-weight:700}.task-list[data-v-d22f401e],.topo-list[data-v-d22f401e],.log-list[data-v-d22f401e]{display:flex;flex-direction:column;gap:6px}.log-list[data-v-d22f401e]{max-height:340px;overflow-y:auto;padding-right:2px}.task-row[data-v-d22f401e],.topo-row[data-v-d22f401e]{display:flex;align-items:center;gap:8px;border:1px solid var(--w4f-line);border-radius:10px;padding:8px 11px;font-size:13px;background:var(--w4f-card-2);box-shadow:var(--w4f-sh-sm)}.task-row.pending[data-v-d22f401e]{background:var(--w4f-primary-50);border-color:#ff7fac40}.task-row.revoke[data-v-d22f401e],.task-row.remove[data-v-d22f401e]{background:var(--w4f-danger-50);border-color:#db369440}.tk-id[data-v-d22f401e],.tp-id[data-v-d22f401e]{font-weight:700;color:var(--w4f-fg-2);font-size:12px;font-family:var(--w4f-mono)}.tk-name[data-v-d22f401e],.tp-name[data-v-d22f401e]{font-weight:600}.tk-arrow[data-v-d22f401e]{color:var(--w4f-primary);font-weight:700}.tk-port[data-v-d22f401e],.tp-port[data-v-d22f401e]{color:var(--w4f-muted);font-family:var(--w4f-mono)}.tp-owner[data-v-d22f401e]{margin-left:auto;font-size:11px;color:var(--w4f-secondary-h)}.tp-owner.self[data-v-d22f401e]{color:var(--w4f-primary-h);font-weight:700}.log-row[data-v-d22f401e]{display:flex;align-items:center;gap:10px;font-size:12px;font-family:var(--w4f-mono);border-bottom:1px dashed var(--w4f-line);padding:4px 2px;flex-wrap:wrap}.log-row.add .lg-kind[data-v-d22f401e]{color:var(--w4f-ok);font-weight:700}.log-row.remove .lg-kind[data-v-d22f401e]{color:var(--w4f-danger);font-weight:700}.log-row.join .lg-kind[data-v-d22f401e]{color:var(--w4f-info);font-weight:700}.log-row.leave .lg-kind[data-v-d22f401e]{color:var(--w4f-warning);font-weight:700}.log-row.leader .lg-kind[data-v-d22f401e]{color:var(--w4f-secondary-h);font-weight:700}.lg-seq[data-v-d22f401e]{color:var(--w4f-muted);flex:0 0 auto}.lg-time[data-v-d22f401e]{color:var(--w4f-faint);font-size:11.5px;flex:0 0 auto}.lg-node[data-v-d22f401e]{color:var(--w4f-faint);flex:0 0 auto}.lg-node.self[data-v-d22f401e]{color:var(--w4f-primary-h);font-weight:700}.lg-kind[data-v-d22f401e]{color:var(--w4f-fg-2);flex:0 0 auto;font-weight:600}.lg-detail[data-v-d22f401e]{margin-left:auto;color:var(--w4f-fg-2);font-size:11.5px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.log-count[data-v-d22f401e]{font-size:11px;font-weight:600;color:var(--w4f-muted)}.title-actions[data-v-d22f401e]{margin-left:auto;display:flex;align-items:center;gap:6px}.empty[data-v-d22f401e]{color:var(--w4f-muted);font-size:13px;padding:10px}.empty-page[data-v-d22f401e]{color:var(--w4f-muted);font-size:14px;padding:40px;text-align:center}.form-row[data-v-d22f401e]{display:flex;align-items:center;gap:10px;margin-bottom:10px}.form-row label[data-v-d22f401e]{width:72px;font-size:13px;color:var(--w4f-fg-2);flex-shrink:0}.form-hint[data-v-d22f401e]{font-size:12px;color:var(--w4f-muted)}.users-view[data-v-35347cd7]{display:flex;flex-direction:column;gap:20px}.card[data-v-35347cd7]{background:var(--w4f-card);border:1px solid var(--w4f-line);border-radius:16px;padding:16px 18px;box-shadow:var(--w4f-sh-sm)}.card-h[data-v-35347cd7]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.card-h h3[data-v-35347cd7]{margin:0;font-size:15px;font-weight:700}.muted[data-v-35347cd7]{color:var(--w4f-muted)}.key-result[data-v-35347cd7]{display:flex;flex-direction:column;gap:10px}.key-result .warn[data-v-35347cd7]{color:var(--w4f-primary-h, #d97706);font-weight:600;margin:0}.key-result .hint[data-v-35347cd7]{margin:0;font-size:12px;color:var(--w4f-muted)}.key-result code[data-v-35347cd7]{background:var(--w4f-card-2);padding:1px 5px;border-radius:4px;font-size:12px}.app-shell[data-v-48c4803f]{height:100%;display:flex;font-family:var(--w4f-font);color:var(--w4f-fg)}.sidebar[data-v-48c4803f]{flex:0 0 246px;width:246px;padding:18px 14px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto;background:var(--w4f-card);border-right:1px solid var(--w4f-line);backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);-webkit-backdrop-filter:blur(calc(var(--w4f-glass) * .7)) saturate(1.3);box-shadow:var(--w4f-sh-md);z-index:30}@media(prefers-reduced-motion:reduce){.sidebar[data-v-48c4803f]{backdrop-filter:none;-webkit-backdrop-filter:none}}.sb-brand[data-v-48c4803f]{display:flex;align-items:center;gap:11px;padding:6px 8px 18px}.sb-logo[data-v-48c4803f]{width:40px;height:40px;border-radius:13px;flex:0 0 auto;object-fit:contain;box-shadow:0 6px 18px var(--w4f-glow)}.sb-brand-text b[data-v-48c4803f]{font-size:16.5px;letter-spacing:.2px;display:block;line-height:1.1}.sb-brand-text small[data-v-48c4803f]{display:block;font-size:11px;color:var(--w4f-muted);margin-top:3px}.sb-nav[data-v-48c4803f]{display:flex;flex-direction:column;gap:3px;flex:1}.sb-i[data-v-48c4803f]{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:10px 13px;border-radius:13px;cursor:pointer;color:var(--w4f-muted);font-weight:600;font-size:13.5px;font-family:inherit;background:transparent;border:1px solid transparent;transition:background .18s var(--w4f-ease-spring),color .18s var(--w4f-ease-spring),border-color .18s var(--w4f-ease-spring),box-shadow .18s var(--w4f-ease-spring)}.sb-i .ic[data-v-48c4803f]{display:grid;place-items:center;width:18px;height:18px;flex:0 0 auto;opacity:.85}.sb-i[data-v-48c4803f]:hover{background:var(--w4f-card-2);color:var(--w4f-fg)}.sb-i:hover .ic[data-v-48c4803f]{opacity:1}.sb-i.active[data-v-48c4803f]{background:linear-gradient(120deg,var(--w4f-primary-50),var(--w4f-secondary-50));color:var(--w4f-primary-h);border-color:var(--w4f-line);box-shadow:var(--w4f-sh-sm)}.sb-i.active .ic[data-v-48c4803f]{opacity:1}.sb-foot[data-v-48c4803f]{margin-top:auto;padding-top:16px}.sb-identity[data-v-48c4803f]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;margin-bottom:12px;border-radius:10px;background:var(--w4f-card-2);border:1px solid var(--w4f-line);font-size:12.5px}.sb-identity .id-name[data-v-48c4803f]{font-weight:600;color:var(--w4f-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-identity .id-level[data-v-48c4803f]{flex:0 0 auto;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;color:var(--w4f-muted);background:var(--w4f-card)}.sb-identity .id-level.admin[data-v-48c4803f]{color:#fff;background:linear-gradient(135deg,var(--w4f-primary),var(--w4f-secondary))}.sb-identity .id-level.write[data-v-48c4803f]{color:var(--w4f-warning);background:var(--w4f-warning-50)}.sb-identity .id-level.read[data-v-48c4803f]{color:var(--w4f-muted)}.sb-theme[data-v-48c4803f]{display:flex;gap:6px;margin-bottom:12px}.sb-theme .sw[data-v-48c4803f]{width:26px;height:26px;border-radius:8px;border:2px solid var(--w4f-line);cursor:pointer;padding:0;transition:transform .15s var(--w4f-ease-spring),box-shadow .15s var(--w4f-ease-spring)}.sb-theme .sw[data-v-48c4803f]:hover{transform:translateY(-1px)}.sb-theme .sw.on[data-v-48c4803f]{border-color:var(--w4f-primary);box-shadow:0 0 0 3px var(--w4f-glow-soft)}.sb-theme .sw.white[data-v-48c4803f]{background:linear-gradient(135deg,#fff,#cdd4e0)}.sb-theme .sw.blue[data-v-48c4803f]{background:linear-gradient(135deg,#3b82f6,#06b6d4)}.sb-theme .sw.pink[data-v-48c4803f]{background:linear-gradient(135deg,#ff7fac,#f33b7c)}.main[data-v-48c4803f]{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}.breadcrumb[data-v-48c4803f]{display:flex;align-items:center;gap:8px;padding:16px 24px 6px;font-weight:700;font-size:15px}.breadcrumb .crumb[data-v-48c4803f]{opacity:1;color:var(--w4f-fg)}.content[data-v-48c4803f]{flex:1;overflow-y:auto;padding:8px 24px 40px}@media(max-width:900px){.sidebar[data-v-48c4803f]{flex:0 0 210px;width:210px}.breadcrumb[data-v-48c4803f]{padding:12px 16px 6px}.content[data-v-48c4803f]{padding:8px 14px 32px}} diff --git a/internal/httpapi/dist/index.html b/internal/httpapi/dist/index.html index e039026..adf0a44 100644 --- a/internal/httpapi/dist/index.html +++ b/internal/httpapi/dist/index.html @@ -5,8 +5,8 @@ webui4frpc - - + +
diff --git a/internal/httpapi/server.go b/internal/httpapi/server.go index eb53264..7935207 100644 --- a/internal/httpapi/server.go +++ b/internal/httpapi/server.go @@ -138,7 +138,6 @@ func NewServeMux(h *Handler) (http.Handler, error) { return mux, nil } - // handleStatic serves the embedded web build. Paths map to dist files; / and // unknown paths serve index.html for SPA routing. The SPA uses hash-based // routing, so returning index.html for "/" is enough — a redirect here would @@ -235,7 +234,10 @@ func (h *Handler) handleStatus(w http.ResponseWriter, r *http.Request) { for _, l := range locals { localByName[l.Name] = l } - type topoKey struct{ local, remote string; port int } + type topoKey struct { + local, remote string + port int + } ownerOf := map[topoKey]string{} topoEntries := []*cluster.TopoEntry{} // full topology for canvas/status merge selfID := h.SelfAddr @@ -281,9 +283,12 @@ func (h *Handler) handleStatus(w http.ResponseWriter, r *http.Request) { profiles = append(profiles, p) } - // Local status: each local plus its forwarding targets and whether each - // target's worker is healthy (running). The per-forward owner/active detail - // lives in the forwards array below; this is the local-services overview. + // Local status: localOnly forwards that stay on THIS node — each one plus + // its forwarding target and whether the per-forward worker is healthy. + // Cluster (non-localOnly) forwards are NOT listed here: their lifecycle is + // managed by the ring and shown in the forwards card grid above. Listing + // cluster forwards here as "本地服务" was a leftover from the per-remote + // model and misled users into seeing cluster forwards as local ones. type localTargetStatus struct { Remote string `json:"remote"` RemotePort int `json:"remotePort"` @@ -296,6 +301,9 @@ func (h *Handler) handleStatus(w http.ResponseWriter, r *http.Request) { localStatuses := make([]localStatus, 0, len(locals)) for _, l := range locals { + if !l.LocalOnly { + continue + } targets, err := h.Store.LinksForLocal(l.Name) if err != nil { targets = nil diff --git a/web/src/views/ClusterView.vue b/web/src/views/ClusterView.vue index cd3cfd3..a839e9d 100644 --- a/web/src/views/ClusterView.vue +++ b/web/src/views/ClusterView.vue @@ -50,7 +50,7 @@
{{ ring.topology.length }}
-
待办命令
+
待办命令⚙︎
{{ ring.pending.length }}
@@ -102,7 +102,7 @@
-

令牌命令(待执行)

+

⚙︎令牌命令(待执行)

{{ t.id }} diff --git a/web/src/views/StatusView.vue b/web/src/views/StatusView.vue index 27ff1d9..41e4f84 100644 --- a/web/src/views/StatusView.vue +++ b/web/src/views/StatusView.vue @@ -15,12 +15,12 @@
-
远程节点
+
远程节点⊕︎
{{ status.profiles.length }}
在线 {{ onlineCount }} · 离线 {{ status.profiles.length - onlineCount }}
-
worker 进程
+
worker 进程⚙︎
{{ runningCount }}
运行中 frpc 进程数