@camstack/addon-admin-ui 1.2.358 → 1.2.359
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/Addons-CT8L2vyo.js +4 -0
- package/dist/assets/{AdminTabs-CjafoxvK.js → AdminTabs-DuLpA_8U.js} +1 -1
- package/dist/assets/AiProfiles-CTbojLmC.js +3 -0
- package/dist/assets/{BrokerForm-vK7o_-sd.js → BrokerForm-vR5vp9pG.js} +1 -1
- package/dist/assets/Build-T0bVOVm2.js +40 -0
- package/dist/assets/{Calendars-py7REb8I.js → Calendars-BAfITRKB.js} +1 -1
- package/dist/assets/{Capabilities-CTyuV2mU.js → Capabilities-5d9c-qIi.js} +1 -1
- package/dist/assets/Cluster-Cwf8NoIJ.js +11 -0
- package/dist/assets/ClusterStepModel-fLIN5mzx.js +1 -0
- package/dist/assets/CompositionEditor-BXhIV8ny.js +1 -0
- package/dist/assets/{CompositionEditorPage-DXiq4mMC.js → CompositionEditorPage-ihWkePvk.js} +1 -1
- package/dist/assets/Data-BmX1alwx.js +1 -0
- package/dist/assets/DetectionIntelligence-DpBsLHgH.js +1 -0
- package/dist/assets/DeviceDetail-BRNXK1Kz.js +2 -0
- package/dist/assets/{DeviceDoActionFields-4wfCnUDo.js → DeviceDoActionFields-jPhLDyIK.js} +1 -1
- package/dist/assets/{Devices-Zuh3Gb1y.js → Devices-DuxxmFoU.js} +1 -1
- package/dist/assets/{EmbedPlayerPage-Cfayr0_2.js → EmbedPlayerPage-CQnqlYuw.js} +1 -1
- package/dist/assets/Events-DfExfS75.js +1 -0
- package/dist/assets/Identity-DCfqnA4h.js +1 -0
- package/dist/assets/IntegrationDetail-Dd60p889.js +1 -0
- package/dist/assets/IntegrationHub-DngIfTmF.js +1 -0
- package/dist/assets/Integrations-BdHOOiI6.js +1 -0
- package/dist/assets/Integrations-Cp0oAlu0.js +1 -0
- package/dist/assets/Locations-DpJZyPIg.js +3 -0
- package/dist/assets/{Logs-BYKgLvH-.js → Logs-DTPkeYTB.js} +1 -1
- package/dist/assets/MyAccess-D8iNKV18.js +2 -0
- package/dist/assets/Network-BLc315ea.js +1 -0
- package/dist/assets/{NodeAddonsSettingsPanel-DhbzB3yG.js → NodeAddonsSettingsPanel-Chf6UF37.js} +1 -1
- package/dist/assets/Notifications-BwJGQAHc.js +1 -0
- package/dist/assets/Plates-BVbnPKtB.js +1 -0
- package/dist/assets/Recordings-dLgNG6pd.js +1 -0
- package/dist/assets/{ScanNetworkModal-mYvbo8Uo.js → ScanNetworkModal-BNO2YlFt.js} +1 -1
- package/dist/assets/{Scenes-CyjlxaOP.js → Scenes-BK7AuUWi.js} +1 -1
- package/dist/assets/{Secrets-DgQr5Kxc.js → Secrets-BY2ERPhf.js} +1 -1
- package/dist/assets/{Settings-cSyoiNRe.js → Settings-DE3NmAqr.js} +1 -1
- package/dist/assets/{Showroom-CVxQH10K.js → Showroom-Wabt30G9.js} +1 -1
- package/dist/assets/{Terminal-5aXU64zN.js → Terminal-BHChlbCq.js} +3 -3
- package/dist/assets/{Viewer-CSSu8htq.js → Viewer-g5WkF6mO.js} +1 -1
- package/dist/assets/{_virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DxPQ0X7S.js → _virtual_mf-localSharedImportMap___mfe_internal__admin_ui_host-DLbVZskO.js} +1 -1
- package/dist/assets/{authed-media-DKCCsaRv.js → authed-media-BbuEbo96.js} +1 -1
- package/dist/assets/{debounced-invalidate-7E55pOhB.js → debounced-invalidate-ueTCIG9w.js} +1 -1
- package/dist/assets/{device-integration-icon-CPFH1cD5.js → device-integration-icon-VoQAb7ud.js} +1 -1
- package/dist/assets/device-picker-model-BhRduRsY.js +1 -0
- package/dist/assets/{face-bbox-BLwRunnv.js → face-bbox-9UgDdk6i.js} +1 -1
- package/dist/assets/{hostInit-DAWBqgef.js → hostInit-ClxKYeCF.js} +1 -1
- package/dist/assets/index-B6zMUwLj.js +4 -0
- package/dist/assets/index-oTBzRcZ2.css +2 -0
- package/dist/assets/{location-owned-usage-CFYIPCzN.js → location-owned-usage-CuOFoDFT.js} +1 -1
- package/dist/assets/{mf-entry-bootstrap-0-127f685c.js → mf-entry-bootstrap-0-11b8c94f.js} +2 -2
- package/dist/assets/mount-BhRduRsY.js +1 -0
- package/dist/assets/{notification-schedule-field-CrLB-wdt.js → notification-schedule-field-BQpApjQQ.js} +1 -1
- package/dist/assets/remoteEntry-D_Bq2yl7.js +1 -0
- package/dist/assets/src-DtOnHh9r.js +67 -0
- package/dist/assets/{use-scenes-feed-BUMM_vS8.js → use-scenes-feed-DDyjv_py.js} +1 -1
- package/dist/assets/{use-stationary-objects-F6FJkq-t.js → use-stationary-objects-CVWdxB6H.js} +1 -1
- package/dist/assets/useEventInvalidation-BhRduRsY.js +1 -0
- package/dist/assets/{useNodeUrlSelection-CWDgf9EZ.js → useNodeUrlSelection-B7A_j1Pf.js} +1 -1
- package/dist/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-D0bzMnfx.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__admin_ui_host__remoteEntry-_hash_-DAsOC5_y.js} +2 -2
- package/dist/index.html +6 -6
- package/dist/server/addon.js +1 -1
- package/package.json +1 -1
- package/dist/assets/Addons-BpNMAC8g.js +0 -4
- package/dist/assets/AiProfiles-BeZSyNFd.js +0 -3
- package/dist/assets/Build-CHPyiOzb.js +0 -40
- package/dist/assets/Cluster-Dvmv3-5C.js +0 -11
- package/dist/assets/ClusterStepModel-BCXM90oM.js +0 -1
- package/dist/assets/CompositionEditor-Bktdwhnn.js +0 -1
- package/dist/assets/Data-DtUlsreq.js +0 -1
- package/dist/assets/DetectionIntelligence-BHcjDiGb.js +0 -1
- package/dist/assets/DeviceDetail-TJQ3r5Wf.js +0 -2
- package/dist/assets/Events-C8rtJF0X.js +0 -1
- package/dist/assets/Identity-BHqbF-VQ.js +0 -1
- package/dist/assets/IntegrationDetail-DDZBkRYs.js +0 -1
- package/dist/assets/IntegrationHub-C_kwGzUm.js +0 -1
- package/dist/assets/Integrations-B3NL6Bhn.js +0 -1
- package/dist/assets/Integrations-D3H9rujI.js +0 -1
- package/dist/assets/Locations-BIetkfhV.js +0 -3
- package/dist/assets/MyAccess-B8HF1nGo.js +0 -2
- package/dist/assets/Network-m6TRq9hZ.js +0 -1
- package/dist/assets/Notifications-DWpao1R2.js +0 -1
- package/dist/assets/Plates-BW_rdxX6.js +0 -1
- package/dist/assets/Recordings-DJmbAZFE.js +0 -1
- package/dist/assets/device-picker-model-DDC4ATOt.js +0 -1
- package/dist/assets/index-B-nNtYMr.css +0 -2
- package/dist/assets/index-CpGfiJoj.js +0 -4
- package/dist/assets/mount-DDC4ATOt.js +0 -1
- package/dist/assets/remoteEntry-Cpe5-iTU.js +0 -1
- package/dist/assets/src-DzkLcOyh.js +0 -67
- package/dist/assets/useEventInvalidation-DDC4ATOt.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{K as e,Q as t,S as n,W as r,b as i,o as a,q as o,x as s,z as c}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DhP-Lgiq.js";import{ct as l,ft as u,gt as d,ht as f,st as p,vt as m}from"./player-overlays-D4lg_avJ.js";import{Ac as h,Bc as g,Cd as _,Cn as v,Dn as y,En as b,Fc as x,Fd as S,Fu as C,Ic as w,In as T,Lc as E,Mc as D,Nc as O,Pc as k,Rc as A,Sf as j,Tn as M,Vc as N,bn as P,jc as F,kc as I,sa as L,tr as R,ud as z,wn as B,wu as V,xd as H,xf as U,xn as W,yu as G,zc as K}from"./src-DzkLcOyh.js";import{t as q}from"./crop-BEmkkd3b.js";import{a as ee,c as J,f as te,i as ne,l as re,m as Y,n as X,o as ie,p as ae,r as oe,s as se,t as ce,u as le}from"./debounced-invalidate-7E55pOhB.js";import{n as ue,r as Z,t as de}from"./face-bbox-BLwRunnv.js";import{pi as fe}from"./client-BqN2lVYf.js";import{t as pe}from"./AdminPage-BSFohA3i.js";import{n as me,r as he}from"./authed-media-DKCCsaRv.js";var ge=m(`badge-check`,[[`path`,{d:`M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z`,key:`3c2336`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]);t();var Q=[[`plateGallery`]];function _e({vehicleId:e}){let t=a(),{data:r,isLoading:i}=w({vehicleId:e}),o=A();function c(n){o.mutate({vehicleId:e,sampleId:n.id},{onSettled:()=>{t.invalidateQueries({queryKey:Q})}})}return i?n(`div`,{className:`flex items-center gap-2 py-3 text-xs text-foreground-subtle`,children:[s(S,{className:`h-3.5 w-3.5 animate-spin`}),`Loading plates…`]}):!r||r.length===0?s(`p`,{className:`py-2 text-xs text-foreground-subtle`,children:`No plates yet.`}):s(`div`,{className:`mt-2 grid grid-cols-3 gap-2 sm:grid-cols-4 md:grid-cols-6`,children:r.map(e=>n(`div`,{className:`group relative overflow-hidden rounded-md border border-border bg-surface`,children:[n(`div`,{className:`relative aspect-[2/1] overflow-hidden bg-surface-hover`,children:[e.base64?s(`img`,{src:`data:image/jpeg;base64,${e.base64}`,alt:e.text,className:`h-full w-full object-cover`}):s(`div`,{className:`flex h-full w-full items-center justify-center text-foreground-subtle`,children:s(j,{className:`h-6 w-6`})}),s(`button`,{type:`button`,onClick:()=>c(e),disabled:o.isPending,className:`absolute inset-0 flex items-center justify-center bg-black/50 opacity-0 transition-opacity group-hover:opacity-100 disabled:cursor-not-allowed`,"aria-label":`Remove plate sample`,children:s(V,{className:`h-4 w-4 text-white`})})]}),s(`p`,{className:`truncate px-1.5 py-1 text-center font-mono text-[11px] font-semibold tracking-wide text-foreground`,title:e.text,children:e.text})]},e.id))})}function ve({vehicle:e,expanded:t,onToggle:r}){let c=a(),[l,u]=o(``),[m,h]=o(!1),[g,x]=o(!1),C=K(),w=O();function E(){u(e.name),h(!0)}function D(){h(!1),u(``)}function k(){let t=l.trim();if(!t||t===e.name){D();return}C.mutate({id:e.id,name:t},{onSettled:()=>{c.invalidateQueries({queryKey:Q}),D()}})}function A(){w.mutate({id:e.id},{onSettled:()=>{c.invalidateQueries({queryKey:Q}),x(!1)}})}return n(`div`,{className:`rounded-md border border-border bg-surface`,children:[n(`div`,{className:`flex items-center gap-2 px-3 py-2`,children:[s(`div`,{className:`h-8 w-12 shrink-0 overflow-hidden rounded border border-border bg-surface-hover`,children:s(ue,{mediaId:e.coverMediaId,base64:e.coverBase64,alt:e.name,className:`h-full w-full object-cover`,placeholder:s(`div`,{className:`flex h-full w-full items-center justify-center`,children:s(j,{className:`h-4 w-4 text-foreground-subtle`})})})}),s(`div`,{className:`flex flex-1 min-w-0 items-center gap-2`,children:m?n(i,{children:[s(P,{value:l,onChange:e=>u(e.target.value),onKeyDown:e=>{e.key===`Enter`&&k(),e.key===`Escape`&&D()},className:`h-6 text-xs`,autoFocus:!0}),s(`button`,{type:`button`,onClick:k,disabled:C.isPending,className:`text-success hover:text-success/80 disabled:opacity-50`,"aria-label":`Confirm rename`,children:s(U,{className:`h-3.5 w-3.5`})}),s(`button`,{type:`button`,onClick:D,className:`text-foreground-subtle hover:text-foreground`,"aria-label":`Cancel rename`,children:s(V,{className:`h-3.5 w-3.5`})})]}):s(`span`,{className:`truncate text-sm font-medium text-foreground`,children:e.name})}),s(R,{variant:`default`,className:`text-[10px]`,children:e.sampleCount}),!m&&n(`div`,{className:`flex items-center gap-1`,children:[s(`button`,{type:`button`,onClick:E,className:`p-1 rounded hover:bg-surface-hover text-foreground-subtle hover:text-foreground`,"aria-label":`Rename`,children:s(_,{className:`h-3.5 w-3.5`})}),s(`button`,{type:`button`,onClick:()=>x(!0),className:`p-1 rounded hover:bg-danger/10 text-foreground-subtle hover:text-danger`,"aria-label":`Delete`,children:s(p,{className:`h-3.5 w-3.5`})})]}),s(`button`,{type:`button`,onClick:r,className:`p-1 rounded hover:bg-surface-hover text-foreground-subtle`,"aria-label":t?`Collapse`:`Expand`,children:s(t?d:f,{className:`h-3.5 w-3.5`})})]}),t&&s(`div`,{className:`border-t border-border px-3 pb-3 pt-2`,children:s(_e,{vehicleId:e.id})}),s(W,{open:g,onOpenChange:e=>!e&&x(!1),children:n(v,{children:[n(b,{children:[s(y,{children:`Delete vehicle`}),n(B,{children:[`Delete `,s(`strong`,{children:e.name}),` and all its plate samples? This cannot be undone.`]})]}),n(M,{children:[s(T,{variant:`secondary`,onClick:()=>x(!1),children:`Cancel`}),n(T,{variant:`danger`,onClick:A,disabled:w.isPending,children:[w.isPending?s(S,{className:`h-3.5 w-3.5 animate-spin`}):null,`Delete`]})]})]})})]})}function ye(){let e=a(),[t,r]=o(``),i=F();function c(){let n=t.trim();n&&i.mutate({name:n},{onSettled:()=>{e.invalidateQueries({queryKey:Q}),r(``)}})}return n(`div`,{className:`flex items-center gap-2 pt-2`,children:[s(P,{placeholder:`New vehicle name…`,value:t,onChange:e=>r(e.target.value),onKeyDown:e=>{e.key===`Enter`&&c()},className:`h-7 text-xs flex-1`}),n(T,{variant:`primary`,size:`sm`,onClick:c,disabled:i.isPending||!t.trim(),children:[i.isPending?s(S,{className:`h-3.5 w-3.5 animate-spin`}):s(H,{className:`h-3.5 w-3.5`}),`Add`]})]})}function be(){let{data:e,isLoading:t}=E(),[r,i]=o(null);function a(e){i(t=>t===e?null:e)}return t?n(`div`,{className:`flex items-center gap-2 py-4 text-xs text-foreground-subtle`,children:[s(S,{className:`h-4 w-4 animate-spin`}),`Loading vehicles…`]}):n(`div`,{className:`space-y-2`,children:[(!e||e.length===0)&&s(`p`,{className:`py-2 text-xs text-foreground-subtle`,children:`No vehicles enrolled yet. Add one below.`}),e?.map(e=>s(ve,{vehicle:e,expanded:r===e.id,onToggle:()=>a(e.id)},e.id)),s(ye,{})]})}function xe(e){return e==null?null:e.cropUrl!==void 0&&e.cropUrl.length>0?e.cropUrl:e.base64!==void 0&&e.base64.length>0?`data:image/jpeg;base64,${e.base64}`:null}t();var Se=[[`plateGallery`]];function Ce({plateIds:e,vehicles:t,onDone:r}){let i=a(),c=I(),l=F(),[u,d]=o(``),[f,p]=o(!1),[m,h]=o(null),g=e!==null&&e.length>0,_=e?.length??0;function x(){p(!1),d(``),h(null)}function C(){x(),r()}function w(t){!e||e.length===0||c.mutate({plateIds:[...e],vehicleId:t},{onSettled:()=>{i.invalidateQueries({queryKey:Se}),C()}})}function E(){!e||!u.trim()||l.mutate({name:u.trim()},{onSuccess:e=>{e?.id&&w(e.id)},onError:()=>{i.invalidateQueries({queryKey:Se}),C()}})}let D=c.isPending||l.isPending;return s(W,{open:g,onOpenChange:e=>!e&&C(),children:n(v,{children:[n(b,{children:[s(y,{children:_>1?`Assign ${String(_)} plates to vehicle`:`Assign plate to vehicle`}),s(B,{children:`Select an existing vehicle or create a new one.`})]}),s(`div`,{className:`space-y-1 max-h-56 overflow-y-auto`,children:t.map(e=>n(`button`,{type:`button`,onClick:()=>h(e.id),className:`w-full rounded-md px-3 py-2 text-left text-xs transition-colors ${m===e.id?`bg-primary/12 text-primary`:`hover:bg-surface-hover text-foreground`}`,children:[s(`span`,{className:`font-medium`,children:e.name}),n(`span`,{className:`ml-2 text-foreground-subtle`,children:[e.sampleCount,` plates`]})]},e.id))}),f?s(`div`,{className:`flex items-center gap-2 pt-2 border-t border-border`,children:s(P,{placeholder:`New vehicle name…`,value:u,onChange:e=>d(e.target.value),onKeyDown:e=>{e.key===`Enter`&&E()},autoFocus:!0,className:`flex-1`})}):s(`button`,{type:`button`,onClick:()=>{h(null),p(!0)},className:`mt-2 w-full rounded-md border border-dashed border-border px-3 py-2 text-left text-xs text-foreground-subtle hover:border-primary hover:text-primary transition-colors`,children:`+ New vehicle…`}),n(M,{children:[s(T,{variant:`secondary`,onClick:C,disabled:D,children:`Cancel`}),f?n(T,{variant:`primary`,onClick:E,disabled:D||!u.trim(),children:[D&&s(S,{className:`h-3.5 w-3.5 animate-spin`}),`Create & assign`]}):n(T,{variant:`primary`,onClick:()=>m&&w(m),disabled:D||!m,children:[D&&s(S,{className:`h-3.5 w-3.5 animate-spin`}),`Assign`,_>1?` ${String(_)}`:``]})]})]})})}t();var we=[[`plateGallery`]];function Te(e){let[t,n]=o(null),[r,i]=o(null),[a,s]=o(!1);return c(()=>{if(n(null),i(null),s(!1),e===void 0)return;let t=!1,r=null;return(async()=>{try{let i=await me(he(e));if(t)return;r=URL.createObjectURL(i),n(r)}catch{t||s(!0)}})(),()=>{t=!0,r&&URL.revokeObjectURL(r)}},[e]),c(()=>{if(!t)return;let e=new Image;return e.onload=()=>i({width:e.naturalWidth,height:e.naturalHeight}),e.onerror=()=>s(!0),e.src=t,()=>{e.onload=null,e.onerror=null}},[t]),{frameSrc:t,naturalWidth:r?.width??null,naturalHeight:r?.height??null,failed:a}}function Ee(e){let t=e.filter(e=>e.url.length>0);return t.length===0?null:t.find(e=>/crop|plate/i.test(e.kind))??t[0]}function $({label:e,value:t,mono:r}){return n(`div`,{className:`flex items-baseline justify-between gap-3 py-1.5 border-b border-border/60 last:border-0`,children:[s(`span`,{className:`shrink-0 text-[11px] uppercase tracking-wide text-foreground-subtle`,children:e}),s(`span`,{className:`min-w-0 truncate text-right text-xs font-medium text-foreground ${r?`font-mono`:``}`,title:t,children:t})]})}function De({box:e}){return s(`div`,{className:`pointer-events-none absolute rounded-[3px] border-2 border-primary shadow-[0_0_0_9999px_rgba(0,0,0,0.28)]`,style:{left:`${String(e.x*100)}%`,top:`${String(e.y*100)}%`,width:`${String(e.width*100)}%`,height:`${String(e.height*100)}%`},children:s(`span`,{className:`absolute -top-4 left-0 rounded bg-primary px-1 text-[9px] font-semibold uppercase tracking-wide text-white`,children:`Plate`})})}function Oe({plate:e,cameraName:t,onClose:i,onAssign:l,onUnassign:d,onDelete:f,actionsPending:m}){let g=a(),{data:y,isFetching:b}=k({plateId:e?.plateId??``},{enabled:e!==null}),x=h(),[w,E]=o(`frame`),[D,O]=o(!1),[A,j]=o(``),{frameSrc:M,naturalWidth:N,naturalHeight:F,failed:I}=Te(e?.keyFrameMediaId);c(()=>{O(!1),j(``),E(`frame`)},[e?.plateId]);let L=r(()=>{let t=Ee(y??[]);return t?t.url:xe(e)},[y,e]),R=r(()=>!e?.plateBbox||N===null||F===null?null:de(e.plateBbox,N,F),[e?.plateBbox,N,F]);if(e===null)return null;let B=e.keyFrameMediaId!==void 0&&!I,H=B&&w===`frame`,G=e.assigned?e.vehicleName??`Assigned`:e.recognizedVehicleId?`${e.vehicleName??`Recognized`} (suggested)`:`Unassigned`,K=`${String(Math.round(e.score*100))}%${e.corrected?` · corrected`:``}`;function ee(){e&&(j(e.text),O(!0))}function J(){if(!e)return;let t=A.trim().toUpperCase();if(!t||t===e.text){O(!1);return}x.mutate({plateId:e.plateId,text:t},{onSettled:()=>{g.invalidateQueries({queryKey:we}),O(!1)}})}return s(W,{open:!0,onOpenChange:e=>!e&&i(),children:n(v,{width:`lg`,placement:`sheet-on-mobile`,"aria-label":`Plate detail`,className:`flex h-[92dvh] flex-col gap-0 overflow-hidden p-0 bottom-0 left-0 right-0 top-auto w-full max-w-full translate-x-0 translate-y-0 rounded-b-none md:bottom-auto md:left-1/2 md:right-auto md:top-1/2 md:h-auto md:w-[calc(100vw-2rem)] md:max-w-xl md:-translate-x-1/2 md:-translate-y-1/2 md:rounded-lg md:max-h-[calc(100dvh-2rem)]`,children:[n(`header`,{className:`flex shrink-0 items-start justify-between gap-2 border-b border-border px-4 py-3`,children:[n(`div`,{className:`min-w-0`,children:[s(`div`,{className:`truncate font-mono text-sm font-semibold tracking-wide text-foreground`,children:e.text||`Plate detail`}),s(`div`,{className:`mt-0.5 truncate text-[11px] text-foreground-subtle`,children:t})]}),s(`button`,{type:`button`,onClick:i,className:`rounded p-1 text-foreground-subtle hover:bg-surface-hover hover:text-foreground`,"aria-label":`Close`,children:s(V,{className:`h-4 w-4`})})]}),n(`div`,{className:`min-h-0 flex-1 space-y-3 overflow-y-auto overscroll-contain px-4 py-3`,children:[B&&n(`div`,{className:`flex items-center gap-1 rounded-md border border-border p-0.5 text-xs`,children:[n(`button`,{type:`button`,onClick:()=>E(`frame`),className:`flex flex-1 items-center justify-center gap-1 rounded px-2 py-1 transition-colors ${w===`frame`?`bg-primary/12 font-medium text-primary`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:[s(z,{className:`h-3.5 w-3.5`}),` Full frame`]}),n(`button`,{type:`button`,onClick:()=>E(`crop`),className:`flex flex-1 items-center justify-center gap-1 rounded px-2 py-1 transition-colors ${w===`crop`?`bg-primary/12 font-medium text-primary`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:[s(q,{className:`h-3.5 w-3.5`}),` Crop`]})]}),H&&M?s(`div`,{className:`overflow-hidden rounded-lg border border-border bg-background`,children:s(X,{src:M,alt:`Full frame with detected plate`,fit:`natural`,className:`w-full`,overlay:R?s(De,{box:R}):void 0})}):L?n(`div`,{className:`relative aspect-[2/1] w-full overflow-hidden rounded-lg border border-border bg-background`,children:[s(X,{src:L,alt:`Detected plate`,className:`h-full w-full`}),b&&s(`div`,{className:`absolute right-2 top-2 rounded-full bg-black/50 p-1 text-white`,children:s(S,{className:`h-3.5 w-3.5 animate-spin`})})]}):n(`div`,{className:`flex aspect-[2/1] w-full flex-col items-center justify-center gap-1.5 rounded-lg border border-border bg-warning/5 text-foreground-subtle`,children:[s(u,{className:`h-8 w-8 text-warning/70`}),s(`span`,{className:`text-[11px] font-medium uppercase tracking-wide text-warning/80`,children:`No image`}),s(`span`,{className:`px-6 text-center text-[10px] text-foreground-subtle`,children:`The crop media for this plate could not be resolved. Safe to delete.`})]}),s(`div`,{className:`rounded-lg border border-border bg-surface px-3 py-2`,children:n(`div`,{className:`flex items-center justify-between gap-3`,children:[s(`span`,{className:`shrink-0 text-[11px] uppercase tracking-wide text-foreground-subtle`,children:`Plate text`}),D?n(`div`,{className:`flex min-w-0 flex-1 items-center justify-end gap-1.5`,children:[s(P,{value:A,onChange:e=>j(e.target.value),onKeyDown:e=>{e.key===`Enter`&&J(),e.key===`Escape`&&O(!1)},className:`h-7 max-w-[10rem] text-right font-mono text-xs uppercase`,autoFocus:!0}),s(`button`,{type:`button`,onClick:J,disabled:x.isPending,className:`text-success hover:text-success/80 disabled:opacity-50`,"aria-label":`Save corrected text`,children:x.isPending?s(S,{className:`h-3.5 w-3.5 animate-spin`}):s(U,{className:`h-3.5 w-3.5`})}),s(`button`,{type:`button`,onClick:()=>O(!1),className:`text-foreground-subtle hover:text-foreground`,"aria-label":`Cancel`,children:s(V,{className:`h-3.5 w-3.5`})})]}):n(`button`,{type:`button`,onClick:ee,className:`group flex min-w-0 items-center gap-1.5`,title:`Correct the OCR reading`,children:[s(`span`,{className:`truncate font-mono text-sm font-semibold tracking-wide text-foreground`,children:e.text||`—`}),s(_,{className:`h-3 w-3 shrink-0 text-foreground-subtle group-hover:text-foreground`})]})]})}),n(`div`,{className:`rounded-lg border border-border bg-surface px-3 py-1`,children:[s($,{label:`Camera`,value:t}),s($,{label:`Captured`,value:ae(e.timestamp)}),s($,{label:`Confidence`,value:K}),s($,{label:`Vehicle`,value:G}),s($,{label:`Track`,value:e.trackId,mono:!0})]})]}),n(`footer`,{className:`flex shrink-0 items-center justify-end gap-2 border-t border-border px-4 py-3 pb-[max(0.75rem,env(safe-area-inset-bottom))]`,children:[e.assigned?n(T,{variant:`secondary`,onClick:()=>d(e.plateId),disabled:m,children:[s(Z,{className:`h-3.5 w-3.5`}),` Detach`]}):n(T,{variant:`primary`,onClick:()=>l(e.plateId),disabled:m,children:[s(C,{className:`h-3.5 w-3.5`}),` Assign`]}),n(T,{variant:`secondary`,onClick:()=>f(e.plateId),disabled:m,children:[s(p,{className:`h-3.5 w-3.5`}),` Delete`]})]})]})})}t();var ke=[[`plateGallery`]],Ae=500,je=120;function Me({plate:e,cameraName:t,nowMs:r,selected:i,onToggleSelect:o,onAssign:c,onOpenDetail:d}){let f=a(),m=g(),h=D(),_=()=>{f.invalidateQueries({queryKey:ke})},v=()=>d(e.plateId),y=xe(e);return n(`div`,{className:`relative flex flex-col overflow-hidden rounded-md border bg-surface ${i?`border-primary ring-1 ring-primary`:`border-border`}`,children:[n(`div`,{className:`relative aspect-[2/1] overflow-hidden bg-surface-hover`,children:[y===null?n(`button`,{type:`button`,onClick:v,className:`flex h-full w-full flex-col items-center justify-center gap-1 bg-warning/5 text-foreground-subtle`,title:`No crop image — the plate's crop media is missing. Safe to delete.`,children:[s(u,{className:`h-7 w-7 text-warning/70`}),s(`span`,{className:`text-[9px] font-medium uppercase tracking-wide text-warning/80`,children:`No crop`})]}):s(`img`,{src:y,alt:`Plate ${e.text} from ${t}`,onClick:v,className:`h-full w-full cursor-zoom-in object-cover`}),s(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),o(e.plateId)},className:`absolute left-0 top-0 z-10 rounded-br-md bg-black/50 p-1.5 text-white hover:bg-black/70`,"aria-label":i?`Deselect`:`Select`,children:i?s(Y,{className:`h-4 w-4 text-primary`}):s(l,{className:`h-4 w-4`})}),e.corrected&&n(`span`,{className:`absolute right-0 top-0 z-10 flex items-center gap-0.5 rounded-bl-md bg-primary/80 px-1 py-0.5 text-[8px] font-semibold uppercase tracking-wide text-white`,title:`Manually corrected`,children:[s(ge,{className:`h-3 w-3`}),` Fixed`]})]}),n(`div`,{className:`min-w-0 px-2 pt-1.5 space-y-0.5`,children:[s(`p`,{className:`truncate font-mono text-xs font-bold tracking-wide text-foreground`,title:e.text,children:e.text||`—`}),s(`p`,{className:`truncate text-[10px] text-foreground-subtle`,title:t,children:t}),s(`p`,{className:`truncate text-[10px] text-foreground-subtle`,children:te(e.timestamp,r)}),e.vehicleName&&s(`p`,{className:`truncate text-[10px] font-medium text-primary`,title:e.vehicleName,children:e.vehicleName})]}),n(`div`,{className:`mt-1 flex items-center gap-0.5 border-t border-border/60 px-1 py-0.5`,children:[e.assigned?s(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),m.mutate({plateId:e.plateId},{onSettled:_})},disabled:m.isPending,className:`rounded p-1.5 text-foreground-subtle transition-colors hover:bg-warning/10 hover:text-warning disabled:opacity-40`,"aria-label":`Detach plate`,title:`Detach`,children:m.isPending?s(S,{className:`h-4 w-4 animate-spin`}):s(Z,{className:`h-4 w-4`})}):s(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),c(e.plateId)},className:`rounded p-1.5 text-foreground-subtle transition-colors hover:bg-primary/10 hover:text-primary`,"aria-label":`Assign plate to vehicle`,title:`Assign to vehicle`,children:s(C,{className:`h-4 w-4`})}),s(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),h.mutate({plateId:e.plateId},{onSettled:_})},disabled:h.isPending,className:`ml-auto rounded p-1.5 text-foreground-subtle transition-colors hover:bg-danger/10 hover:text-danger disabled:opacity-40`,"aria-label":`Delete plate`,title:`Delete plate`,children:h.isPending?s(S,{className:`h-4 w-4 animate-spin`}):s(p,{className:`h-4 w-4`})})]})]})}var Ne=[{label:`All`,value:`all`},{label:`Unassigned`,value:`unassigned`},{label:`Assigned`,value:`assigned`}];function Pe(e,t){return t===`unassigned`?e.filter(e=>!e.assigned):t===`assigned`?e.filter(e=>e.assigned):e}function Fe(){let e=a(),[t,c]=o(`all`),[l,u]=o(se),[d,f]=o(new Set),[m,h]=o(new Set),[_,v]=o(null),[y,b]=o(null),{data:w,isLoading:O}=x({limit:Ae,includeCrops:!1},{refetchInterval:3e4}),{data:k=[]}=E(),{data:A}=L({isCamera:!0,projection:`slim`}),j=g(),M=N(),P=D(),F=Date.now(),I=w??[],R=r(()=>{let e=new Map;for(let t of A??[])e.set(t.id,t.name);return e},[A]),z=e=>R.get(e)??`Camera #${String(e)}`,B=r(()=>J(I).map(e=>({id:e,name:z(e)})).sort((e,t)=>e.name.localeCompare(t.name)),[I,R]),H=r(()=>re(le(Pe(I,t),l),d),[I,t,l,d]),U=ie(H,je,r(()=>JSON.stringify([t,l.fromMs,l.toMs,[...d].sort((e,t)=>e-t)]),[t,l.fromMs,l.toMs,d])),W=r(()=>new Map(I.map(e=>[e.plateId,e])),[I]),G=y===null?null:W.get(y)??null,K=()=>{e.invalidateQueries({queryKey:ke})},q=()=>h(new Set);function te(e){h(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})}let Y=[...m],X=M.isPending||P.isPending,ae=j.isPending||P.isPending;function ce(){Y.length!==0&&M.mutate({plateIds:Y},{onSettled:()=>{K(),q()}})}function ue(){Y.length!==0&&Promise.allSettled(Y.map(e=>P.mutateAsync({plateId:e}))).then(()=>{K(),q()})}function de(e){b(null),v([e])}function fe(e){j.mutate({plateId:e},{onSettled:K}),b(null)}function pe(e){P.mutate({plateId:e},{onSettled:K}),b(null)}let me=H.length!==I.length;return n(`div`,{className:`relative space-y-3`,children:[n(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[s(`div`,{className:`flex items-center gap-1`,children:Ne.map(e=>s(`button`,{type:`button`,onClick:()=>c(e.value),className:`rounded-md px-2.5 py-1 text-xs transition-colors ${t===e.value?`bg-primary/12 text-primary font-medium`:`text-foreground-subtle hover:bg-surface-hover hover:text-foreground`}`,children:e.label},e.value))}),s(oe,{onChange:u}),s(ne,{cameras:B,selected:d,onChange:f}),!O&&s(`span`,{className:`ml-auto text-[10px] text-foreground-subtle`,children:me?`${String(H.length)} of ${String(I.length)} plates`:`${String(H.length)} plate${H.length===1?``:`s`}`})]}),m.size>0&&n(`div`,{className:`flex flex-wrap items-center gap-2 rounded-md border border-primary/40 bg-primary/8 px-3 py-2`,children:[n(`span`,{className:`text-xs font-medium text-foreground`,children:[m.size,` selected`]}),n(`div`,{className:`ml-auto flex flex-wrap items-center gap-1.5`,children:[n(T,{variant:`primary`,onClick:()=>v(Y),disabled:X,children:[s(C,{className:`h-3.5 w-3.5`}),` Assign`]}),n(T,{variant:`secondary`,onClick:ce,disabled:X,children:[M.isPending?s(S,{className:`h-3.5 w-3.5 animate-spin`}):s(Z,{className:`h-3.5 w-3.5`}),` `,`Detach`]}),n(T,{variant:`secondary`,onClick:ue,disabled:X,children:[s(p,{className:`h-3.5 w-3.5`}),` Delete`]}),s(T,{variant:`ghost`,onClick:q,disabled:X,children:s(V,{className:`h-3.5 w-3.5`})})]})]}),O&&n(`div`,{className:`flex items-center gap-2 py-4 text-xs text-foreground-subtle`,children:[s(S,{className:`h-4 w-4 animate-spin`}),` Loading plates…`]}),!O&&H.length===0&&s(`p`,{className:`py-4 text-xs text-foreground-subtle`,children:I.length>0?`No plates match the current filters.`:`No plates recognized yet.`}),!O&&H.length>0&&n(i,{children:[s(`div`,{className:`grid grid-cols-[repeat(auto-fill,minmax(9rem,1fr))] gap-2`,children:U.pageItems.map(e=>s(Me,{plate:e,cameraName:z(e.deviceId),nowMs:F,selected:m.has(e.plateId),onToggleSelect:te,onAssign:e=>v([e]),onOpenDetail:b},e.plateId))}),s(ee,{currentPage:U.page,totalItems:U.totalItems,pageSize:U.pageSize,onPageChange:U.setPage,itemNoun:`plates`})]}),s(Oe,{plate:G,cameraName:G?z(G.deviceId):``,onClose:()=>b(null),onAssign:de,onUnassign:fe,onDelete:pe,actionsPending:ae}),s(Ce,{plateIds:_,vehicles:k,onDone:()=>{v(null),q()}})]})}t();var Ie=[[`plateGallery`]],Le=2e3;function Re(){let t=a(),n=e(t);n.current=t;let r=e(void 0);r.current||=ce({delayMs:Le,invalidate:()=>{n.current.invalidateQueries({queryKey:Ie})}}),c(()=>()=>r.current?.cancel(),[]),G(fe.PipelineAnalyticsPlateGalleryChanged,()=>{r.current?.trigger()})}function ze(){return Re(),s(pe,{icon:j,title:`Plates`,subtitle:`Manage enrolled vehicles and assign recognized license plates to them.`,children:n(`section`,{className:`space-y-3`,children:[n(`div`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground mb-1`,children:`Vehicles`}),s(`p`,{className:`text-xs text-foreground-subtle mb-3`,children:`Enrolled vehicle identities used for plate recognition. Expand a row to view or remove plate samples.`}),s(be,{})]}),n(`div`,{className:`pt-4 border-t border-border`,children:[s(`h2`,{className:`text-sm font-semibold text-foreground mb-1`,children:`Recent recognized plates`}),s(`p`,{className:`text-xs text-foreground-subtle mb-3`,children:`License plates read by the detection pipeline. Assign them to a vehicle, correct the OCR text, or delete.`}),s(Fe,{})]})]})})}export{ze as PlatesPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as e,Q as t,S as n,W as r,b as i,o as a,q as o,x as s,z as c}from"./_virtual_mf___mfe_internal__admin_ui_host__loadShare___mf_0_tanstack_mf_1_react_mf_2_query__loadShare__.js-DhP-Lgiq.js";import{J as l,_t as u,at as d,st as f,vt as p}from"./player-overlays-D4lg_avJ.js";import{Ds as m,Fd as h,Gc as g,Hn as _,Jc as v,Kc as y,Ln as b,Nt as x,Pn as S,Pt as C,Uc as w,Wc as T,Wd as E,Wf as D,Xc as O,Yc as k,Zd as A,_l as j,cl as M,dl as N,dr as P,ff as F,fl as ee,gl as te,hl as ne,hs as re,hu as I,if as ie,il as L,ll as ae,ml as oe,mr as se,ns as ce,of as R,ol as le,pl as ue,qc as de,qn as z,rc as fe,rl as pe,sa as B,sc as me,sl as he,ss as ge,tl as _e,ul as ve,vu as V,wu as H,zu as U}from"./src-DzkLcOyh.js";import{c as ye,i as be,l as xe,n as Se,o as Ce,r as we,s as Te,t as Ee,u as De}from"./location-owned-usage-CFYIPCzN.js";import{t as Oe}from"./settings-2-DVqttbaa.js";import{pi as W}from"./client-BqN2lVYf.js";import{w as ke}from"./index-CpGfiJoj.js";import{t as Ae}from"./AdminPage-BSFohA3i.js";import{n as je}from"./authed-media-DKCCsaRv.js";import{t as Me}from"./AdminTabs-CjafoxvK.js";import{t as G}from"./format-size-DIxKXxtj.js";var Ne=p(`arrow-right-left`,[[`path`,{d:`m16 3 4 4-4 4`,key:`1x1c3m`}],[`path`,{d:`M20 7H4`,key:`zbl0bi`}],[`path`,{d:`m8 21-4-4 4-4`,key:`h9nckh`}],[`path`,{d:`M4 17h16`,key:`g4d7ey`}]]),Pe=p(`scissors`,[[`circle`,{cx:`6`,cy:`6`,r:`3`,key:`1lh9wr`}],[`path`,{d:`M8.12 8.12 12 12`,key:`1alkpv`}],[`path`,{d:`M20 4 8.12 15.88`,key:`xgtan2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`path`,{d:`M14.8 14.8 20 20`,key:`ptml3r`}]]);t();var Fe=[{value:`all`,label:`All`},{value:`recording`,label:`Recordings`},{value:`events`,label:`Events`}],Ie={recording:`bg-primary/10 text-primary`,events:`bg-violet-500/10 text-violet-400`},Le={columnKey:`at`,dir:`desc`};function Re(e){return new Date(e).toLocaleString()}function ze(){let[e,t]=o(`all`),{data:a,isLoading:c,isError:l}=g({},{refetchOnWindowFocus:!1}),{data:u,isLoading:d,isError:f}=re({},{refetchOnWindowFocus:!1}),{data:p}=B({isCamera:!0,projection:`slim`}),m=r(()=>{let e=new Map;for(let t of p??[])e.set(t.id,t.name);return e},[p]),_=r(()=>{let t=[...a??[],...u??[]];return(e===`all`?t:t.filter(t=>t.domain===e)).toSorted((e,t)=>t.at-e.at)},[a,u,e]),v=r(()=>{let t=[];return l&&e!==`events`&&t.push(`Recordings`),f&&e!==`recording`&&t.push(`Events`),t},[l,f,e]),y=r(()=>[{key:`at`,header:`When`,nowrap:!0,sortValue:e=>e.at,render:e=>s(`span`,{className:`text-foreground-subtle tabular-nums`,children:Re(e.at)})},{key:`domain`,header:`Domain`,sortValue:e=>e.domain,render:e=>s(`span`,{className:`inline-flex rounded px-1.5 py-0.5 text-[10px] font-medium ${Ie[e.domain]}`,children:e.domain})},{key:`op`,header:`Operation`,sortValue:e=>e.op,render:e=>s(`span`,{className:`text-foreground`,children:e.op})},{key:`reason`,header:`Reason`,sortValue:e=>e.reason,render:e=>s(`span`,{className:`text-foreground-subtle`,children:e.reason})},{key:`device`,header:`Camera`,sortValue:e=>e.deviceId===null?`cluster`:m.get(e.deviceId)??`#${String(e.deviceId)}`,render:e=>e.deviceId===null?s(`span`,{className:`text-foreground-subtle`,children:`cluster`}):s(`span`,{className:`text-foreground`,children:m.get(e.deviceId)??`#${String(e.deviceId)}`})},{key:`items`,header:`Items`,align:`right`,nowrap:!0,sortValue:e=>e.itemsAffected,render:e=>s(`span`,{className:`tabular-nums`,children:e.itemsAffected.toLocaleString()})},{key:`bytes`,header:`Reclaimed`,align:`right`,nowrap:!0,sortValue:e=>e.bytesReclaimed,render:e=>s(`span`,{className:`tabular-nums`,children:e.bytesReclaimed>0?G(e.bytesReclaimed):`—`})}],[m]),b=c||d;return n(`div`,{className:`flex flex-col gap-4`,children:[s(`div`,{className:`flex items-center gap-1`,children:Fe.map(n=>s(`button`,{onClick:()=>t(n.value),className:`rounded px-2 py-1 text-xs font-medium ${e===n.value?`bg-primary/10 text-primary`:`text-foreground-subtle hover:bg-muted`}`,children:n.label},n.value))}),b&&_.length===0?n(`div`,{className:`flex items-center gap-2 py-8 text-xs text-foreground-subtle`,children:[s(h,{className:`h-4 w-4 animate-spin`}),`Loading activity…`]}):_.length===0?v.length>0?s(S,{icon:U,title:`Activity could not be read`,description:`The ${v.join(` and `)} ops log did not answer. This is not "nothing happened" — retry, or check the node that owns it.`}):s(S,{icon:D,title:`No activity yet`,description:`Prune, delete and rescan operations across recordings and events show up here.`}):n(i,{children:[v.length>0&&n(`p`,{className:`flex items-center gap-1.5 text-[11px] text-amber-500`,children:[s(U,{className:`h-3 w-3 shrink-0`}),v.join(` and `),` did not answer — rows from`,` `,v.length===1?`that domain`:`those domains`,` are missing below.`]}),s(x,{columns:y,rows:_,rowKey:e=>e.id,minWidthPx:720,mobileMode:`scroll`,maxBodyHeight:C,defaultSort:Le})]})]})}t();function Be(){let e=B({isCamera:!0,projection:`slim`}),t=r(()=>(e.data??[]).toSorted((e,t)=>e.name.localeCompare(t.name)),[e.data]),[i,a]=o(null),c=i??t[0]?.id??null;return!e.isLoading&&t.length===0?s(S,{icon:u,title:`No cameras`,description:`Add a camera first.`}):n(`div`,{className:`space-y-3`,children:[n(`div`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Per-camera recording & retention`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`Recording mode, schedule bands and the retention policy for one camera — the same controls as the camera's own Recording tab. Retention is one policy over footage and analytics; per-camera event deletion lives on the Events tab.`})]}),n(`div`,{className:`flex items-center gap-2`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`Camera`}),s(`select`,{value:c??``,onChange:e=>a(Number(e.target.value)),className:`rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground`,children:t.map(e=>s(`option`,{value:e.id,children:e.name},e.id))})]}),c!==null&&s(_,{deviceId:c,children:s(ke,{deviceId:c,sectionFilter:e=>e.location===`top-tab`&&e.tab===`recording`})},c)]})}t();function Ve({types:e}){let t=a(),i=z(),{data:c}=L({}),l=pe(),u=r(()=>l.data??[],[l.data]),{data:d}=T({},{refetchOnWindowFocus:!1}),f=r(()=>Ee(c??[],d?.locations),[c,d?.locations]),[p,m]=o(null),[h,g]=o(null),_=()=>{t.invalidateQueries({queryKey:[[`storage`,`listLocations`]]})},v=j({onSuccess:_}),y=_e({onSuccess:_}),b=r(()=>{let e=new Map;for(let t of c??[]){let n=e.get(t.type);n?n.push(t):e.set(t.type,[t])}return e},[c]),x=async(e,t)=>{xe(t)&&!await i({title:`Disable "${e.displayName}"?`,message:`${ye(t).consequence}\n\nNothing is deleted — set the location back to Read-only or Active to bring its footage back.`,confirmLabel:`Disable`,variant:`danger`})||v.mutate(Te(e,{mode:t}))},S=async e=>{if(await i({title:`Delete location "${e.displayName}"?`,message:`Removes the record; files on disk are untouched.`,confirmLabel:`Delete`,variant:`danger`}))try{await y.mutateAsync({id:e.id})}catch(t){await i({title:`Delete anyway?`,message:`${t instanceof Error?t.message:String(t)}\n\nForcing removes the record only. Anything still on that location becomes unreachable.`,confirmLabel:`Force delete`,variant:`danger`})&&y.mutate({id:e.id,force:!0})}},C=e.map(e=>u.find(t=>t.id===e)).filter(e=>e!==void 0);return n(`div`,{className:`space-y-3`,children:[C.length===0?s(`p`,{className:`text-[11px] text-foreground-subtle italic`,children:`No storage locations declared for this purpose.`}):C.map(e=>s(Se,{type:e.id,displayName:e.displayName,description:e.description,cardinality:e.cardinality,locations:b.get(e.id)??[],onAdd:e=>m(e),onEdit:e=>g(e),onDelete:e=>{S(e)},ownedBytesById:f,onSetMode:(e,t)=>{x(e,t)}},e.id)),p!==null&&s(De,{initialType:p,onClose:()=>m(null),onCreated:()=>{_(),m(null)}}),h!==null&&s(Ce,{location:h,onClose:()=>g(null),onSaved:()=>{_(),g(null)}})]})}t();var He=`pipeline-analytics`;function Ue(e){for(let t of e?.sections??[])for(let e of t.fields??[])if(e.key===`postProcessingNodeId`&&typeof e.value==`string`)return e.value;return`hub`}function We(){let e=a(),{nodes:t}=I(),{data:i,isLoading:o}=P({addonId:He}),c=Ue(i),l=se({onSuccess:()=>{e.invalidateQueries({queryKey:[[`addonSettings`,`getGlobalSettings`]]})}}),u=r(()=>{let e=t.filter(e=>e.isOnline).map(e=>e.id);return[...new Set([`hub`,c,...e])].filter(Boolean)},[t,c]);return n(`div`,{className:`flex flex-col gap-6`,children:[n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Post-processing node`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`The single node that runs detection post-processing (events, media, audio & motion). Every other node stays inert — no multi-node balancing. Takes effect on addon restart.`}),n(`div`,{className:`mt-3 flex items-center gap-2`,children:[o?s(h,{className:`h-4 w-4 animate-spin text-foreground-subtle`}):s(`select`,{value:c,onChange:e=>{e.target.value!==c&&l.mutate({addonId:He,patch:{postProcessingNodeId:e.target.value}})},disabled:l.isPending,className:`rounded-md border border-border bg-surface px-2 py-1 text-xs text-foreground`,children:u.map(e=>s(`option`,{value:e,children:e===`hub`?`hub (default)`:e},e))}),l.isPending&&s(h,{className:`h-4 w-4 animate-spin text-primary`})]})]}),n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h3`,{className:`mb-1 text-sm font-semibold text-foreground`,children:`Events folder`}),s(`p`,{className:`mb-3 text-[11px] text-foreground-subtle`,children:`Where event crops / full frames are stored. A single folder — no collection / equal-splitting.`}),s(Ve,{types:[`eventMedia`]})]})]})}t();var Ge=[[`pipelineAnalytics`]],Ke=1440*60*1e3;function qe(e,t){return t.get(e)??`Removed camera #${String(e)}`}var Je=[{days:1,label:`1 day`},{days:7,label:`7 days`},{days:30,label:`30 days`},{days:90,label:`90 days`}];function Ye(){let t=a(),i=z(),[c,u]=o(30),[d,p]=o(null),{data:g,isLoading:_}=ge({},{refetchOnWindowFocus:!1}),{data:v}=B({isCamera:!0,projection:`slim`}),y=r(()=>{let e=new Map;for(let t of v??[])e.set(t.id,t.name);return e},[v]),b=e(()=>{t.invalidateQueries({queryKey:Ge})},[t]),C=m({onSuccess:b}),w=ce(),T=e(async()=>{await i({title:`Prune events older than ${String(c)} day${c===1?``:`s`}?`,message:`Permanently deletes every event (motion / object / audio) older than the cutoff across all cameras, and their media. This cannot be undone.`,confirmLabel:`Prune events`,variant:`danger`})&&C.mutate({olderThanMs:Date.now()-c*Ke,reason:`retention`})},[i,C,c]),E=e(async e=>{let t=qe(e.deviceId,y);if(await i({title:`Delete all events for ${t}?`,message:`Permanently deletes ${String(e.rows)} event${e.rows===1?``:`s`} (${G(e.bytes)} of media) for this camera. This cannot be undone.`,confirmLabel:`Delete events`,variant:`danger`})){p(null);try{let n=await w.mutateAsync({deviceId:e.deviceId});b();let r=n.motion+n.object+n.audio;if(r===0&&e.bytes>0){p(`0 events deleted for ${t}. Media still listed (${G(e.bytes)}) — those blobs are not event rows; use Management → Count leftovers or Disk reconcile.`);return}p(`Deleted ${String(r)} event${r===1?``:`s`} for ${t}.`)}catch(e){p(e instanceof Error?e.message:String(e))}}},[i,w,y,b]),D=r(()=>[{key:`camera`,header:`Camera`,render:e=>s(`span`,{className:`text-foreground`,children:qe(e.deviceId,y)})},{key:`rows`,header:`Events`,align:`right`,nowrap:!0,render:e=>s(`span`,{className:`tabular-nums`,children:e.rows.toLocaleString()})},{key:`bytes`,header:`Media`,align:`right`,nowrap:!0,render:e=>s(`span`,{className:`tabular-nums`,children:G(e.bytes)})},{key:`actions`,header:``,align:`right`,render:e=>n(`button`,{onClick:()=>{E(e)},disabled:w.isPending,className:`inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-danger hover:bg-danger/10 disabled:opacity-50`,title:`Delete all events for this camera`,children:[s(f,{className:`h-3 w-3`}),`Delete`]})}],[y,E,w.isPending]);return _&&!g?n(`div`,{className:`flex items-center gap-2 py-8 text-xs text-foreground-subtle`,children:[s(h,{className:`h-4 w-4 animate-spin`}),`Loading event-store footprint…`]}):g?n(`div`,{className:`flex flex-col gap-6`,children:[n(`section`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2`,children:[s(l,{label:`Total events`,icon:s(R,{className:`h-3 w-3`}),footer:`across ${String(g.devices.length)} camera${g.devices.length===1?``:`s`}`,children:g.totalRows.toLocaleString()}),s(l,{label:`Event media on disk`,children:G(g.totalBytes)})]}),n(`section`,{className:`flex flex-wrap items-center gap-2 text-xs`,children:[s(`span`,{className:`text-foreground-subtle`,children:`Prune events older than`}),s(`select`,{value:c,onChange:e=>u(Number(e.target.value)),className:`rounded-md border border-border bg-surface px-2 py-1 text-xs text-foreground`,children:Je.map(e=>s(`option`,{value:e.days,children:e.label},e.days))}),n(`button`,{onClick:()=>{T()},disabled:C.isPending,className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-xs font-medium text-foreground-subtle hover:bg-amber-500/10 hover:text-amber-500 disabled:opacity-50`,children:[C.isPending?s(h,{className:`h-3 w-3 animate-spin`}):s(Pe,{className:`h-3 w-3`}),`Prune now`]})]}),g.devices.length===0?s(S,{icon:R,title:`No stored events`,description:`No camera has persisted events yet.`}):s(x,{columns:D,rows:[...g.devices],rowKey:e=>e.deviceId,minWidthPx:480}),d===null?null:s(`p`,{className:d.startsWith(`Deleted `)?`text-[11px] text-foreground-subtle`:`text-[11px] text-destructive`,children:d})]}):s(S,{icon:R,title:`No event data`,description:`Pipeline analytics has not reported any event-store footprint yet.`})}function Xe(){return n(`div`,{className:`flex flex-col gap-8`,children:[n(`div`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Event store`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`What the durable event store occupies, per camera, with fleet-wide prune-by-age and delete-all-events.`}),s(`div`,{className:`mt-3`,children:s(Ye,{})})]}),n(`div`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Post-processing node & folders`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`The single node that writes event crops, and the storage location they land in.`}),s(`div`,{className:`mt-3`,children:s(We,{})})]})]})}function Ze(e){let t=[];return e.timelapse?t.push(`timelapse ${String(e.timelapse.everyMs/1e3)}s`):(t.push(`${String(e.speed??1)}×`),e.includeAudio&&t.push(`+ audio`)),t.join(` `)}function Qe(e){return new Date(e).toLocaleString(void 0,{day:`2-digit`,month:`short`,hour:`2-digit`,minute:`2-digit`})}function $e(e,t){let n=Math.max(0,Math.round((t-e)/1e3)),r=Math.floor(n/3600),i=Math.floor(n%3600/60),a=n%60,o=r>0?`${String(r)}:${String(i).padStart(2,`0`)}:${String(a).padStart(2,`0`)}`:`${String(i)}:${String(a).padStart(2,`0`)}`;return`${Qe(e)} · ${o}`}function et(e,t){let n=e-t;if(n<=0)return`expired`;let r=Math.floor(n/6e4);if(r<60)return`in ${String(r)}m`;let i=Math.floor(r/60);return i<24?`in ${String(i)}h`:`in ${String(Math.floor(i/24))}d`}function tt(e,t,n,r){return e.map(e=>{if(e.state===`expired`||e.state===`deleted`)return e;let i=r.get(e.id);if(i)return{...e,state:`failed`,error:i.error,progressPct:null};let a=n.get(e.id);if(a)return{...e,state:`ready`,fileBytes:a.fileBytes,progressPct:100};let o=t.get(e.id);return o&&(e.state===`queued`||e.state===`rendering`)?{...e,state:`rendering`,progressPct:o.progressPct}:e})}t();var nt=[`high`,`mid`,`low`],rt=[{value:1,label:`Real time (1×)`},{value:2,label:`2×`},{value:4,label:`4×`},{value:8,label:`8×`},{value:16,label:`16×`}],it=10080*60*1e3;function at(e){let t=new Date(Date.now()-e*6e4),n=e=>String(e).padStart(2,`0`);return`${t.getFullYear()}-${n(t.getMonth()+1)}-${n(t.getDate())}T${n(t.getHours())}:${n(t.getMinutes())}`}function ot({onClose:e,onCreated:t}){let i=B({isCamera:!0,projection:`slim`}),a=r(()=>(i.data??[]).toSorted((e,t)=>e.name.localeCompare(t.name)),[i.data]),[c,l]=o(``),[u,d]=o(`high`),[f,p]=o(at(60)),[m,h]=o(at(0)),[g,_]=o(1),[y,b]=o(!0),[x,S]=o(``),[C,w]=o(null),T=c===``?a[0]?.id??null:c,E=new Date(f).getTime(),D=new Date(m).getTime(),O=Number.isFinite(E)&&Number.isFinite(D)&&E<D,k=v({onSuccess:()=>{t(),e()},onError:e=>w(e instanceof Error?e.message:String(e))});return s(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm`,onClick:e,children:n(`div`,{className:`w-full max-w-md rounded-xl border border-border bg-surface shadow-2xl`,onClick:e=>e.stopPropagation(),children:[n(`div`,{className:`flex items-start justify-between border-b border-border px-4 py-3`,children:[n(`h2`,{className:`flex items-center gap-1.5 text-sm font-semibold text-foreground`,children:[s(A,{className:`h-3.5 w-3.5`}),`New export`]}),s(`button`,{onClick:e,className:`text-foreground-subtle hover:text-foreground`,children:s(H,{className:`h-4 w-4`})})]}),n(`div`,{className:`p-4 space-y-3`,children:[n(`div`,{className:`grid grid-cols-2 gap-3`,children:[n(`div`,{className:`space-y-1`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`Camera`}),s(`select`,{value:T??``,onChange:e=>l(Number(e.target.value)),className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground`,children:a.map(e=>s(`option`,{value:e.id,children:e.name},e.id))})]}),n(`div`,{className:`space-y-1`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`Profile`}),s(`select`,{value:u,onChange:e=>d(e.target.value),className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground`,children:nt.map(e=>s(`option`,{value:e,children:e},e))})]})]}),n(`div`,{className:`grid grid-cols-2 gap-3`,children:[n(`div`,{className:`space-y-1`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`From`}),s(`input`,{type:`datetime-local`,value:f,onChange:e=>p(e.target.value),className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground`})]}),n(`div`,{className:`space-y-1`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`To`}),s(`input`,{type:`datetime-local`,value:m,onChange:e=>h(e.target.value),className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground`})]})]}),n(`div`,{className:`grid grid-cols-2 gap-3`,children:[n(`div`,{className:`space-y-1`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`Speed`}),s(`select`,{value:g,onChange:e=>_(Number(e.target.value)),className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground`,children:rt.map(e=>s(`option`,{value:e.value,children:e.label},e.value))})]}),n(`div`,{className:`space-y-1`,children:[s(`label`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:`Title (optional)`}),s(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:`e.g. courier at the gate`,className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground placeholder:text-foreground-subtle`})]})]}),n(`label`,{className:`flex items-center gap-2 text-xs text-foreground cursor-pointer`,children:[s(`input`,{type:`checkbox`,checked:y,disabled:g!==1,onChange:e=>b(e.target.checked),className:`accent-primary`}),`Include audio`,g===1?``:` (real-time only)`]}),!O&&s(`p`,{className:`text-[11px] text-danger`,children:`"From" must be before "To".`}),C&&s(`p`,{className:`text-[11px] text-danger`,children:C})]}),n(`div`,{className:`flex justify-end gap-2 border-t border-border px-4 py-3`,children:[s(`button`,{onClick:e,className:`rounded border border-border px-3 py-1.5 text-xs text-foreground-subtle hover:text-foreground`,children:`Cancel`}),s(`button`,{onClick:()=>{if(T===null||!O)return;w(null);let e=x.trim();k.mutate({deviceId:T,profile:u,fromMs:E,toMs:D,options:{includeAudio:y,maxLifeMs:it,deleteAfterDownload:!1,...g===1?{}:{speed:g},...e.length>0?{title:e}:{}}})},disabled:T===null||!O||k.isPending,className:`rounded bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground disabled:opacity-50`,children:k.isPending?`Queuing…`:`Create export`})]})]})})}t();var st=[[`recordingExport`]],ct={queued:{cls:`bg-muted text-foreground-subtle`,label:`queued`},rendering:{cls:`bg-primary/10 text-primary`,label:`rendering`,spin:!0},ready:{cls:`bg-success/10 text-success`,label:`ready`},failed:{cls:`bg-danger/10 text-danger`,label:`failed`},expired:{cls:`bg-muted text-foreground-subtle`,label:`expired`},deleted:{cls:`bg-muted text-foreground-subtle`,label:`deleted`}};function lt(){let{data:e,isLoading:t}=O({},{refetchOnWindowFocus:!1,refetchInterval:e=>(e.state.data??[]).some(e=>e.state===`queued`||e.state===`rendering`)?3e3:!1}),{map:n}=V(W.RecordingExportProgress,e=>e.exportId),{map:i}=V(W.RecordingExportCompleted,e=>e.exportId),{map:a}=V(W.RecordingExportFailed,e=>e.exportId);return{rows:r(()=>tt(e??[],n,i,a),[e,n,i,a]),isLoading:t}}function ut(e){let[t,n]=o(()=>Date.now());return c(()=>{let t=setInterval(()=>n(Date.now()),e);return()=>clearInterval(t)},[e]),t}function dt(){let t=a(),[i,c]=o(!1),l=()=>{t.invalidateQueries({queryKey:[[`recordingExport`,`listExports`]]})},u=z(),p=d().trpcClient,m=ut(6e4),{rows:g,isLoading:_}=lt(),{data:v}=B({isCamera:!0,projection:`slim`}),y=r(()=>{let e=new Map;for(let t of v??[])e.set(t.id,t.name);return e},[v]),b=e(()=>{t.invalidateQueries({queryKey:st})},[t]),C=de({onSuccess:b}),w=k({onSuccess:b}),[T,E]=o(null),D=e(async e=>{E(e.id);try{let{url:t}=await p.recordingExport.getDownloadUrl.query({exportId:e.id}),n=await je(t),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`${e.options.title??e.id}.mp4`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r),b()}finally{E(null)}},[p,b]),O=e(async e=>{await u({title:`Cancel this export?`,message:`Stops the render. The partial file is discarded.`,confirmLabel:`Cancel export`,variant:`danger`})&&C.mutate({exportId:e.id})},[u,C]),j=e(async e=>{await u({title:`Delete this export?`,message:`Permanently removes the rendered file and its history row.`,confirmLabel:`Delete`,variant:`danger`})&&w.mutate({exportId:e.id})},[u,w]),M=r(()=>[{key:`camera`,header:`Camera`,render:e=>s(`span`,{className:`text-foreground`,children:y.get(e.deviceId)??`#${String(e.deviceId)}`})},{key:`range`,header:`Range`,nowrap:!0,render:e=>s(`span`,{className:`tabular-nums`,children:$e(e.fromMs,e.toMs)})},{key:`variant`,header:`Variant`,render:e=>s(`span`,{className:`text-foreground-subtle`,children:Ze(e.options)})},{key:`state`,header:`State`,render:e=>{let t=ct[e.state];return n(`span`,{className:`inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium ${t.cls}`,children:[t.spin&&s(h,{className:`h-2.5 w-2.5 animate-spin`}),t.label,e.state===`rendering`&&e.progressPct!==null&&n(`span`,{className:`tabular-nums`,children:[e.progressPct,`%`]})]})}},{key:`expiry`,header:`Expires`,nowrap:!0,render:e=>e.state===`deleted`?s(`span`,{className:`text-foreground-subtle`,children:`—`}):s(`span`,{className:`text-foreground-subtle tabular-nums`,children:et(e.expiresAt,m)})},{key:`size`,header:`Size`,align:`right`,nowrap:!0,render:e=>s(`span`,{className:`tabular-nums`,children:e.fileBytes===null?`—`:G(e.fileBytes)})},{key:`actions`,header:``,align:`right`,render:e=>{let t=e.state===`ready`,r=e.state===`queued`||e.state===`rendering`,i=e.state!==`deleted`;return n(`div`,{className:`flex items-center justify-end gap-1`,children:[t&&n(`button`,{onClick:()=>{D(e)},disabled:T===e.id,className:`inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-foreground-subtle hover:bg-primary/10 hover:text-foreground disabled:opacity-50`,title:`Download MP4`,children:[T===e.id?s(h,{className:`h-3 w-3 animate-spin`}):s(ie,{className:`h-3 w-3`}),`Download`]}),r&&n(`button`,{onClick:()=>{O(e)},disabled:C.isPending,className:`inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-foreground-subtle hover:bg-amber-500/10 hover:text-amber-500 disabled:opacity-50`,title:`Cancel render`,children:[s(F,{className:`h-3 w-3`}),`Cancel`]}),i&&s(`button`,{onClick:()=>{j(e)},disabled:w.isPending,className:`inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-danger hover:bg-danger/10 disabled:opacity-50`,title:`Delete export`,children:s(f,{className:`h-3 w-3`})})]})}}],[y,m,T,C.isPending,w.isPending,D,O,j]);return _&&g.length===0?n(`div`,{className:`flex items-center gap-2 py-8 text-xs text-foreground-subtle`,children:[s(h,{className:`h-4 w-4 animate-spin`}),`Loading exports…`]}):n(`div`,{className:`space-y-3`,children:[s(`div`,{className:`flex justify-end`,children:n(`button`,{onClick:()=>c(!0),className:`inline-flex items-center gap-1.5 rounded bg-primary px-3 py-1.5 text-xs font-medium text-primary-foreground`,children:[s(A,{className:`h-3.5 w-3.5`}),`New export`]})}),g.length===0?s(S,{icon:A,title:`No exports yet`,description:`Create one here (New export) or from a camera's timeline in the viewer. Rendered clips show up here to download or manage.`}):s(x,{columns:M,rows:g,rowKey:e=>e.id,minWidthPx:720}),i&&s(ot,{onClose:()=>c(!1),onCreated:l})]})}var ft=`inline-flex w-fit items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[11px] font-medium border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:opacity-50`;t();var pt=`storage-migration`,mt=new Set([`orphans`,`debug-media`,`ghost-ledger`]);function ht(e){return[`${e.orphansReclaimed} orphan rows (${G(e.orphanBytesReclaimed)})`,e.includeDebugMedia?`${e.debugMediaReclaimed} debug files (${G(e.debugMediaBytesReclaimed)})`:null,`${e.ghostsForgotten} ghost rows (${G(e.ghostBytesForgotten)})`].filter(e=>e!==null).join(` · `)}function gt(){let e=b(pt);return e===`pending`?null:e===`unknown`?s(`p`,{className:`py-2 text-xs text-foreground-subtle`,children:`Could not check whether storage cleanup is installed on this hub.`}):e===`present`?s(_t,{}):null}function _t(){let e=z(),[t,r]=o(!1),[i,a]=o(null),c=ae({},{refetchInterval:2e3}),l=c.data??null,u=l!==null&&mt.has(l.phase),d=M(),p=he(),m=async()=>{if(await e({title:`Run storage cleanup?`,message:t?`Reclaims leftover analytics rows and files, debug stills/filmstrips, and ghost footage rows on frozen locations. Safe to re-run.`:`Reclaims leftover analytics rows and files, and ghost footage rows on frozen locations. Debug stills are left alone. Safe to re-run.`,confirmLabel:`Run cleanup`,variant:`danger`})){a(null);try{await d.mutateAsync({includeDebugMedia:t}),await c.refetch()}catch(e){a(e instanceof Error?e.message:String(e))}}},g=async()=>{if(l&&await e({title:`Cancel cleanup?`,message:`Stops after the current step. Work already done stays done.`,confirmLabel:`Cancel cleanup`,variant:`danger`}))try{await p.mutateAsync({jobId:l.jobId}),await c.refetch()}catch{}};return n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Cleanup`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`One pass over leftover analytics (database + files) and ghost footage rows on frozen locations. Does not time out — progress updates here until it finishes.`}),n(`label`,{className:`mt-3 flex items-start gap-2 text-[11px] text-foreground`,children:[s(`input`,{type:`checkbox`,checked:t,disabled:u,onChange:e=>{r(e.target.checked)},className:`mt-0.5 h-3.5 w-3.5 accent-primary`}),s(`span`,{children:`Also remove debug media (motion stills and track filmstrips)`})]}),n(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[n(`button`,{type:`button`,disabled:u||d.isPending,onClick:()=>{m()},className:ft,children:[(u||d.isPending)&&s(h,{className:`h-3 w-3 animate-spin`}),s(f,{className:`h-3 w-3`}),`Run cleanup`]}),u&&s(`button`,{type:`button`,onClick:()=>{g()},className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-[10px] font-medium text-danger hover:bg-danger/10`,children:`Cancel`})]}),i&&s(`p`,{className:`mt-2 text-[11px] text-danger`,children:i}),l&&n(`div`,{className:`mt-3 space-y-1 rounded-md border border-border px-2.5 py-2`,children:[n(`p`,{className:`text-xs text-foreground`,children:[`Phase: `,s(`span`,{className:`font-medium`,children:l.phase}),u&&s(h,{className:`ml-2 inline h-3 w-3 animate-spin text-primary`})]}),l.detail&&s(`p`,{className:`text-[11px] text-foreground-subtle`,children:l.detail}),s(`p`,{className:`text-[11px] text-foreground-subtle`,children:ht(l)}),l.error&&s(`p`,{className:`text-[11px] text-danger`,children:l.error})]})]})}t();var vt=2e3;function yt(){let e=z(),t=a(),r=me(),i=fe(void 0,{refetchInterval:e=>e.state.data?.state===`running`?vt:!1}),o=i.data,l=o?.state===`running`,u=l||r.isPending;c(()=>{o?.state!==`done`||o.finishedAtMs===null||(t.invalidateQueries({queryKey:[[`recording`]]}),t.invalidateQueries({queryKey:[[`pipelineAnalytics`]]}))},[o?.state,o?.finishedAtMs,t]);let d=async()=>{await e({title:`Reconcile storage from disk?`,message:`Makes the database match the filesystem: recordings index, tracks, events and media whose files are gone. Favourited tracks without files are deleted. Snapshot-less motion/audio events are deleted. Enrolled identities stay. This cannot be undone.`,confirmLabel:`Reconcile`,variant:`warning`})&&(await r.mutateAsync(),await i.refetch())},f=l?o.total>0?`Reconciling ${String(o.completed)}/${String(o.total)}…`:`Reconciling…`:r.isPending?`Reconciling…`:`Reconcile from disk`;return n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Disk reconcile`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`Deletes database rows whose files are gone. Enrolled identities stay.`}),n(`div`,{className:`mt-3 flex flex-col gap-2`,children:[n(`button`,{type:`button`,onClick:()=>void d(),disabled:u,className:`inline-flex w-fit items-center gap-1.5 rounded-lg px-2.5 py-1.5 text-[11px] font-medium border border-border text-foreground-subtle hover:text-foreground hover:bg-surface-hover transition-colors disabled:opacity-50`,children:[u?s(h,{className:`h-3.5 w-3.5 animate-spin`}):s(E,{className:`h-3.5 w-3.5`}),f]}),o?.state===`done`?n(`p`,{className:`text-[11px] text-foreground-subtle`,children:[`Last run: `,String(o.completed),` camera(s) — dropped `,String(o.tracks),` tracks,`,` `,String(o.events),` events, `,String(o.mediaDropped),` media`,o.failed.length>0?`, ${String(o.failed.length)} failed (${o.failed.join(`, `)})`:``,`.`]}):null,o?.state===`error`&&o.error!==null?n(`p`,{className:`text-[11px] text-destructive`,children:[`Reconcile failed: `,o.error]}):null]})]})}var K=1e3,q=60*K,J=60*q;function Y(e){return e.toLocaleString(`en-US`)}function bt(e){if(!Number.isFinite(e)||e<0)return`—`;if(e>=J){let t=Math.floor(e/J),n=Math.round(e%J/q);return`${t.toString()}h ${n.toString()}m`}if(e>=q){let t=Math.floor(e/q),n=Math.round(e%q/K);return`${t.toString()}m ${n.toString()}s`}return`${Math.max(0,Math.round(e/K)).toString()}s`}function xt(e){let t=Math.max(0,e.observedAt-e.startedAt),n=e.filesTotal===null?`${Y(e.filesMoved)} files`:`${Y(e.filesMoved)} / ${Y(e.filesTotal)} files`,r=e.filesTotal===null||e.filesTotal===0?null:Math.min(1,e.filesMoved/e.filesTotal),i=t>0&&e.filesMoved>0,a=i?`${G(e.bytesMoved/t*K)}/s`:null,o=e.filesTotal===null?null:e.filesTotal-e.filesMoved,s=!i||o===null||o<=0?null:`~${bt(o*t/e.filesMoved)} left`;return{counted:n,fraction:r,moved:`${G(e.bytesMoved)} moved`,rate:a,eta:s}}function St(e){let t=xt(e);return[t.counted,t.moved,t.rate,t.eta].filter(e=>e!==null).join(` · `)}t();var Ct=`storage-migration`,X=[{id:`recordings`,label:`Recordings`,locationType:`recordings`},{id:`recordingsLow`,label:`Low-res recordings`,locationType:`recordingsLow`},{id:`eventMedia`,label:`Event media`,locationType:`eventMedia`}],wt=new Set([`planning`,`sealing`,`pausing`,`moving`,`draining`,`verifying`,`repointing`,`refreshing`,`resuming`]);function Tt(){let e=b(Ct);return e===`pending`?n(`div`,{className:`flex items-center gap-2 py-8 text-xs text-foreground-subtle`,children:[s(h,{className:`h-4 w-4 animate-spin`}),`Checking whether storage migration is installed…`]}):e===`unknown`?s(S,{icon:U,title:`Couldn't check whether storage migration is installed`,description:`The capability registry did not answer, so this panel has nothing to report either way — it is not a statement that the capability is missing. Reload to ask again.`}):e===`absent`?s(S,{icon:Ne,title:`Storage migration not installed`,description:`The capability registry answered: no addon in this cluster provides storage-migration. Once one is deployed, this panel moves recordings, low-res recordings and event media to new storage locations in one coordinated, verified operation.`}):s(Et,{})}function Et(){let e=z(),{data:t}=L({}),[i,a]=o({}),[c,l]=o({}),[u,d]=o(null),[f,p]=o(null),m=r(()=>{let e=new Map;for(let n of t??[]){let t=e.get(n.type);t?t.push(n):e.set(n.type,[n])}return e},[t]),g=r(()=>{let e=new Map;for(let n of t??[]){if(n.enabled===!1)continue;let t=e.get(n.type);t?t.push(n.id):e.set(n.type,[n.id])}let n=new Map;for(let[t,r]of e)r.length===1&&n.set(t,r[0]);return n},[t]),_=te({},{refetchInterval:2e3}),v=_.data??null,y=v!==null&&wt.has(v.phase),b=r(()=>{let e={};for(let t of X){let n=i[t.id];n&&(e[t.id]=n)}return Object.keys(e).length>0?e:void 0},[i]),x=r(()=>{let e={};for(let t of X){if(!i[t.id])continue;let n=c[t.id]??g.get(t.locationType);n&&(e[t.id]=n)}return Object.keys(e).length>0?e:void 0},[i,c,g]),S=r(()=>({destinations:b??{},...x?{sources:x}:{}}),[b,x]),C=ue(S,{enabled:!1,retry:!1}),w=ne(),T=le(),E=async()=>{if(!b)return;p(null);let e=await C.refetch();if(e.error){p(e.error instanceof Error?e.error.message:String(e.error));return}d(e.data??null)},D=async()=>{if(b&&await e({title:`Start storage migration?`,message:`Copies the selected classes from the chosen source to the destination, verifies, then either makes the destination the default (if the source was) or disables the source. Safe to re-run if interrupted.`,confirmLabel:`Start migration`,variant:`danger`})){p(null);try{await w.mutateAsync(S),d(null),await _.refetch()}catch(e){p(e instanceof Error?e.message:String(e))}}},O=async()=>{if(v&&await e({title:`Cancel migration?`,message:`Stops the in-progress migration. Data already moved and verified stays at the destination; anything already repointed is not reverted.`,confirmLabel:`Cancel migration`,variant:`danger`}))try{await T.mutateAsync({jobId:v.jobId}),await _.refetch()}catch{}};return n(`div`,{className:`flex flex-col gap-6`,children:[n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[n(`h3`,{className:`flex items-center gap-1.5 text-sm font-semibold text-foreground`,children:[s(Ne,{className:`h-3.5 w-3.5`}),`Storage migration`]}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`Move recordings, low-res recordings and/or event media from one location to another: copies via the recorder / pipeline-analytics movers, verifies, then either repoints the default (when the source was the default) or disables the source (when it was not). Skip a class with an empty destination.`}),s(`div`,{className:`mt-3 grid grid-cols-1 gap-3 sm:grid-cols-3`,children:X.map(e=>{let t=m.get(e.locationType)??[],r=g.get(e.locationType)??``;return n(`div`,{className:`space-y-2`,children:[s(`div`,{className:`text-[10px] uppercase tracking-wide text-foreground-subtle`,children:e.label}),n(`div`,{className:`space-y-1`,children:[n(`label`,{htmlFor:`migration-from-${e.id}`,className:`text-[10px] text-foreground-subtle`,children:[e.label,` from`]}),s(`select`,{id:`migration-from-${e.id}`,value:c[e.id]??r,onChange:t=>{let n=t.target.value;l(t=>({...t,[e.id]:n}))},disabled:y,className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground disabled:opacity-50`,children:t.map(e=>n(`option`,{value:e.id,children:[e.displayName,e.enabled===!1?` (read-only)`:``]},e.id))})]}),n(`div`,{className:`space-y-1`,children:[n(`label`,{htmlFor:`migration-dest-${e.id}`,className:`text-[10px] text-foreground-subtle`,children:[e.label,` to`]}),n(`select`,{id:`migration-dest-${e.id}`,value:i[e.id]??``,onChange:t=>{let n=t.target.value;a(t=>({...t,[e.id]:n}))},disabled:y,className:`w-full rounded border border-border bg-background px-2 py-1.5 text-xs text-foreground disabled:opacity-50`,children:[s(`option`,{value:``,children:`— skip —`}),t.map(e=>s(`option`,{value:e.id,children:e.displayName},e.id))]})]})]},e.id)})}),f&&s(`p`,{className:`mt-2 text-[11px] text-danger`,children:f}),n(`div`,{className:`mt-3 flex items-center gap-2`,children:[n(`button`,{type:`button`,onClick:()=>{E()},disabled:!b||C.isFetching||y,className:`inline-flex items-center gap-1.5 rounded border border-border px-2.5 py-1.5 text-xs font-medium text-foreground-subtle hover:text-foreground hover:bg-surface-hover disabled:opacity-50`,children:[C.isFetching&&s(h,{className:`h-3 w-3 animate-spin`}),`Plan`]}),n(`button`,{type:`button`,onClick:()=>{D()},disabled:!b||w.isPending||y,className:`inline-flex items-center gap-1.5 rounded bg-primary px-2.5 py-1.5 text-xs font-medium text-primary-foreground disabled:opacity-50`,children:[w.isPending&&s(h,{className:`h-3 w-3 animate-spin`}),`Start migration`]})]}),u&&s(`div`,{className:`mt-3 divide-y divide-border rounded-md border border-border`,children:u.moves.length===0?s(`p`,{className:`px-2.5 py-1.5 text-[11px] text-foreground-subtle`,children:`Nothing to move — selected destinations match the current defaults.`}):u.moves.map(e=>n(`div`,{className:`px-2.5 py-1.5 text-[11px] text-foreground`,children:[e.storageClass,`: `,e.fromLocationId,` → `,e.toLocationId]},`${e.storageClass}-${e.toLocationId}`))}),v&&n(`div`,{className:`mt-4 border-t border-border pt-3`,children:[n(`div`,{className:`flex items-center justify-between`,children:[s(`h4`,{className:`text-xs font-semibold text-foreground`,children:`Migration status`}),y&&n(`button`,{type:`button`,onClick:()=>{O()},className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-[10px] font-medium text-danger hover:bg-danger/10`,children:[s(H,{className:`h-3 w-3`}),`Cancel`]})]}),n(`p`,{className:`mt-1 text-xs text-foreground`,children:[`Phase: `,s(`span`,{className:`font-medium`,children:v.phase}),y&&s(h,{className:`ml-2 inline h-3 w-3 animate-spin text-primary`})]}),v.error&&s(`p`,{className:`mt-1 text-[11px] text-danger`,children:v.error}),v.pausedParticipants.length>0&&n(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:[`Paused: `,v.pausedParticipants.join(`, `)]}),s(`div`,{className:`mt-2 divide-y divide-border rounded-md border border-border`,children:v.moves.map(e=>s(Dt,{move:e},`${e.storageClass}-${e.fromLocationId}`))})]}),s(Ot,{})]}),s(kt,{running:y}),s(jt,{})]})}function Dt({move:e}){let t=e.progress===null?null:xt(e.progress);return n(`div`,{className:`px-2.5 py-1.5 text-[11px]`,children:[n(`div`,{className:`flex items-center justify-between`,children:[n(`span`,{className:`text-foreground`,children:[e.storageClass,`: `,e.fromLocationId,` → `,e.toLocationId]}),n(`span`,{className:`text-foreground-subtle`,children:[e.state??`pending`,e.error?` (${e.error})`:``]})]}),e.progress!==null&&n(`div`,{className:`mt-1 space-y-1`,children:[t!==null&&t.fraction!==null&&s(`div`,{className:`h-1 w-full overflow-hidden rounded bg-border`,children:s(`div`,{className:`h-full bg-primary`,style:{width:`${(t.fraction*100).toFixed(1)}%`}})}),s(`p`,{className:`text-[10px] text-foreground-subtle`,children:St(e.progress)})]})]})}function Ot(){let{data:e}=N({});return!e||e.length===0?null:n(`div`,{className:`mt-4 border-t border-border pt-3`,children:[s(`h4`,{className:`text-xs font-semibold text-foreground`,children:`Migration history`}),s(`div`,{className:`mt-2 divide-y divide-border rounded-md border border-border`,children:e.map(e=>n(`div`,{className:`px-2.5 py-1.5 text-[11px] text-foreground-subtle`,children:[s(`span`,{className:`font-medium text-foreground`,children:e.phase}),` · `,Object.entries(e.destinations).filter(e=>typeof e[1]==`string`).map(([e,t])=>`${e} → ${t}`).join(`, `),` · `,new Date(e.startedAt).toLocaleString()]},e.jobId))})]})}function kt({running:e}){let t=z(),r=oe({},{staleTime:1/0,refetchOnWindowFocus:!1}),i=ve(),[a,c]=o(null),l=r.data??[];if(l.length===0)return null;let u=async e=>{if(await t({title:`Drain remaining ${e.storageClass}?`,message:`Moves what is still on ${e.fromLocationId} to ${e.toLocationId}. Nothing is paused and no default is changed — this is the second half of a migration, run on its own. It is resumable: cancelling leaves everything readable from both locations.`,confirmLabel:`Drain remaining`,variant:`danger`})){c(null);try{await i.mutateAsync({classes:[e.storageClass]}),await r.refetch()}catch(e){c(e instanceof Error?e.message:String(e))}}};return n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[n(`div`,{className:`flex items-start justify-between gap-2`,children:[s(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Left on the old location`}),n(`div`,{className:`flex shrink-0 items-center gap-2`,children:[s(`span`,{className:`text-[10px] text-foreground-subtle`,children:r.dataUpdatedAt>0?`Measured ${new Date(r.dataUpdatedAt).toLocaleTimeString()}`:`Measured — never`}),s(`button`,{type:`button`,onClick:()=>{r.refetch()},disabled:r.isFetching,className:`rounded border border-border px-2 py-1 text-[10px] font-medium text-foreground-subtle hover:bg-surface-hover hover:text-foreground disabled:opacity-50`,children:r.isFetching?`Counting…`:`Refresh`})]})]}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`A migration repoints first and drains behind. If the drain was cancelled, failed, or was interrupted by a restart, the data below is still on the source — readable, but not where the defaults now point. Draining moves it; it changes no default and pauses nothing.`}),s(`p`,{className:`mt-1 text-[10px] text-foreground-subtle`,children:`This count is taken on demand: measuring it walks the whole media collection, so it is not refreshed on a timer. Press Refresh after a drain finishes.`}),a&&s(`p`,{className:`mt-2 text-[11px] text-danger`,children:a}),s(`div`,{className:`mt-2 divide-y divide-border rounded-md border border-border`,children:l.map(t=>n(`div`,{className:`flex items-center justify-between gap-2 px-2.5 py-1.5 text-[11px]`,children:[n(`span`,{className:`text-foreground`,children:[t.storageClass,`: `,t.fromLocationId,` → `,t.toLocationId,s(`span`,{className:`ml-2 text-foreground-subtle`,children:At(t)})]}),s(`button`,{type:`button`,onClick:()=>{u(t)},disabled:e||i.isPending,className:`shrink-0 rounded border border-border px-2 py-1 text-[10px] font-medium text-foreground-subtle hover:bg-surface-hover hover:text-foreground disabled:opacity-50`,children:`Drain remaining`})]},`${t.storageClass}-${t.fromLocationId}`))})]})}function At(e){if(e.items===null)return`amount unknown — the archive could not be read`;let t=e.items.toLocaleString(`en-US`);return e.bytes===null?`${t} rows`:`${t} segments · ${G(e.bytes)}`}function jt(){let{data:e}=ee({},{refetchInterval:2e3}),t=(e??[]).filter(e=>e.migrationJobId===null&&e.job.state===`running`);return t.length===0?null:n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Movers running outside a migration`}),s(`div`,{className:`mt-2 divide-y divide-border rounded-md border border-border`,children:t.map(e=>n(`div`,{className:`px-2.5 py-1.5 text-[11px]`,children:[n(`div`,{className:`text-foreground`,children:[e.lane,`: `,e.job.fromLocationId,` → `,e.job.toLocationId]}),s(`p`,{className:`mt-1 text-[10px] text-foreground-subtle`,children:St({filesMoved:e.job.filesMoved,filesTotal:e.job.filesTotal,bytesMoved:e.job.bytesMoved,startedAt:e.job.startedAt,observedAt:e.observedAt})})]},e.job.jobId))})]})}function Mt(){return n(`div`,{className:`flex flex-col gap-4`,children:[s(gt,{}),s(yt,{}),n(`section`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Move storage`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`Copy recordings, low-res recordings or event media to a new location, verify, then repoint the default. Applies to every camera.`}),s(`div`,{className:`mt-3`,children:s(Tt,{})})]})]})}t();var Nt=`recorder`;function Pt(e,t,n){for(let n of e?.sections??[])for(let e of n.fields??[])if(e.key===t&&typeof e.value==`string`)return e.value;return n}function Ft(){let e=a(),{nodes:t}=I(),{data:i,isLoading:o}=P({addonId:Nt}),c=Pt(i,`recordingNodeId`,`hub`),l=se({onSuccess:()=>{e.invalidateQueries({queryKey:[[`addonSettings`,`getGlobalSettings`]]})}}),u=r(()=>{let e=t.filter(e=>e.isOnline).map(e=>e.id);return[...new Set([`hub`,c,...e])].filter(Boolean)},[t,c]);return n(`div`,{className:`flex flex-col gap-6`,children:[n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h3`,{className:`text-sm font-semibold text-foreground`,children:`Recording node`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`The single node that records (continuous & events) and serves playback. Every other node stays inert — no multi-node balancing. Takes effect on addon restart.`}),n(`div`,{className:`mt-3 flex items-center gap-2`,children:[o?s(h,{className:`h-4 w-4 animate-spin text-foreground-subtle`}):s(`select`,{value:c,onChange:e=>{e.target.value!==c&&l.mutate({addonId:Nt,patch:{recordingNodeId:e.target.value}})},disabled:l.isPending,className:`rounded-md border border-border bg-surface px-2 py-1 text-xs text-foreground`,children:u.map(e=>s(`option`,{value:e,children:e===`hub`?`hub (default)`:e},e))}),l.isPending&&s(h,{className:`h-4 w-4 animate-spin text-primary`})]}),c!==`hub`&&n(`p`,{className:`mt-2 text-[11px] text-amber-500`,children:[`The stream-broker is hub-only — an agent recorder pulls streams from the hub over the network. The hub's RTSP restream port must be reachable from`,` `,s(`span`,{className:`font-medium`,children:c}),`. If the auto-derived host doesn't work, set the recorder's`,s(`span`,{className:`font-medium`,children:` recordingHubHostname`}),` global setting.`]})]}),n(`section`,{className:`rounded-md border border-border bg-surface p-4`,children:[s(`h3`,{className:`mb-1 text-sm font-semibold text-foreground`,children:`Recordings folders`}),s(`p`,{className:`mb-3 text-[11px] text-foreground-subtle`,children:`Where recordings are stored. Multi-location collections — segments are split across the locations of a type. Add a location to grow capacity; mark one default per type.`}),s(Ve,{types:[`recordings`,`recordingsLow`]})]})]})}function Z(e){return e.locationIds!==void 0&&e.locationIds.length>0?e.locationIds:e.locationId===null?[]:[e.locationId]}function It(e,t){let n=Z(e);return n.length===0?`default root`:n.map(e=>t.get(e)??e).join(` + `)}function Lt(e,t,n){if(e.length===0)return null;let r=e[0];if(e.length===1&&r!==void 0)return{label:It(r,t),exact:!0};if(n===null)return null;let i=e.find(e=>Z(e).includes(n));return i===void 0?null:{label:It(i,t),exact:!1}}t();var Rt=[[`recording`]],zt=[{value:`retention`,label:`Retention policy`},{value:`quota`,label:`Quota / disk pressure`},{value:`operator`,label:`Operator`}],Bt={ok:`bg-primary`,warn:`bg-amber-500`,critical:`bg-danger`},Q={ok:`text-foreground-subtle`,warn:`text-amber-500`,critical:`text-danger`};function $(e){return`${String(Math.round(e*100))}%`}function Vt(e){return e==null?`—`:new Date(e).toLocaleString()}function Ht(e,t){let n=e.locationIds??(e.locationId===null?[]:[e.locationId]),r=n.map(e=>t.get(e)).filter(e=>e!==void 0);return r.length>0?r.join(` + `):e.root===void 0?n.length>0?n.join(` + `):`default root`:e.root}function Ut(){let t=a(),i=z(),[c,u]=o(`retention`),{data:d,isLoading:p}=T({},{refetchOnWindowFocus:!1}),{data:m}=B({isCamera:!0,projection:`slim`}),{data:g}=L({}),_=r(()=>{let e=new Map;for(let t of m??[])e.set(t.id,t.name);return e},[m]),v=r(()=>{let e=new Map;for(let t of g??[])e.set(t.id,t.displayName);return e},[g]),b=r(()=>{let e=g??[];return e.find(e=>e.type===`recordings`&&e.enabled!==!1)?.id??e.find(e=>e.type===`recordings`)?.id??null},[g]),C=r(()=>d?.locations??[],[d?.locations]),D=r(()=>Lt(C,v,b),[C,v,b]),O=r(()=>be(C),[C]),k=e(()=>{t.invalidateQueries({queryKey:Rt})},[t]),A=y({onSuccess:k}),j=w({onSuccess:k}),M=e(async e=>{await i({title:`Prune ${_.get(e.deviceId)??`#${String(e.deviceId)}`}?`,message:`Applies the retention policy now (reason: ${c}). Footage beyond the policy is permanently deleted.`,confirmLabel:`Prune now`,variant:`danger`})&&A.mutate({deviceId:e.deviceId,reason:c})},[i,A,c,_]),N=e(async e=>{await i({title:`Delete all footage for ${_.get(e.deviceId)??`#${String(e.deviceId)}`}?`,message:`Permanently deletes ${G(e.usedBytes)} of recorded footage for this camera. This cannot be undone.`,confirmLabel:`Delete ${G(e.usedBytes)}`,variant:`danger`})&&j.mutate({deviceId:e.deviceId})},[i,j,_]),P=r(()=>[{key:`camera`,header:`Camera`,render:e=>s(`span`,{className:`text-foreground`,children:_.get(e.deviceId)??`#${String(e.deviceId)}`})},{key:`disk`,header:`Disk`,nowrap:!0,render:()=>D===null?s(`span`,{className:`text-foreground-subtle`,children:`—`}):n(`span`,{className:D.exact?`text-foreground`:`text-foreground-subtle`,title:D.exact?`The only recordings volume on this node — this camera can only be here.`:`The recordings DEFAULT. This node has several recordings volumes and the per-camera placement is not reported by recording.getStorageUsage, so this is where footage lands by default rather than a per-camera fact.`,children:[D.label,!D.exact&&s(`span`,{className:`ml-1 text-foreground-subtle`,children:`(default)`})]})},{key:`used`,header:`Used`,align:`right`,nowrap:!0,render:e=>s(`span`,{className:`tabular-nums`,children:G(e.usedBytes)})},{key:`oldest`,header:`Oldest footage`,align:`right`,nowrap:!0,render:e=>s(`span`,{className:`tabular-nums text-foreground-subtle`,title:`The oldest segment the ARCHIVE holds for this camera — the per-camera answer to 'is retention actually holding?'.`,children:Vt(e.oldestMs)})},{key:`actions`,header:``,align:`right`,render:e=>n(`div`,{className:`flex items-center justify-end gap-1`,children:[n(`button`,{onClick:()=>{M(e)},disabled:A.isPending,className:`inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-foreground-subtle hover:bg-amber-500/10 hover:text-amber-500 disabled:opacity-50`,title:`Apply retention policy now`,children:[s(Pe,{className:`h-3 w-3`}),`Prune`]}),n(`button`,{onClick:()=>{N(e)},disabled:j.isPending,className:`inline-flex items-center gap-1 rounded px-2 py-1 text-[10px] font-medium text-danger hover:bg-danger/10 disabled:opacity-50`,title:`Delete all footage`,children:[s(f,{className:`h-3 w-3`}),`Delete`]})]})}],[_,D,M,N,A.isPending,j.isPending]);if(p&&!d)return n(`div`,{className:`flex items-center gap-2 py-8 text-xs text-foreground-subtle`,children:[s(h,{className:`h-4 w-4 animate-spin`}),`Loading storage usage…`]});if(!d)return s(S,{icon:E,title:`No storage data`,description:`The recording node has not reported any storage usage yet.`});let F=d.devices.length;return n(`div`,{className:`flex flex-col gap-6`,children:[n(`section`,{className:`grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-3`,children:[s(l,{label:`Total used`,icon:s(E,{className:`h-3 w-3`}),footer:`${String(F)} camera${F===1?``:`s`} on ${d.nodeId}`,children:G(d.totalUsedBytes)}),O!==null&&O.severity!==null&&s(l,{label:`Free on recordings volumes`,icon:s(E,{className:`h-3 w-3`}),footer:`across ${String(O.knownVolumes)} volume${O.knownVolumes===1?``:`s`} of ${G(O.totalBytes)}`+(O.unknownVolumes>0?` · ${String(O.unknownVolumes)} did not report capacity`:``),children:s(`span`,{className:`tabular-nums ${Q[O.severity]}`,children:G(O.freeBytes)})}),C.map(e=>{let t=we(e),r=e.locationId??e.root??`default`;return s(l,{label:`Disk: ${Ht(e,v)}`,footer:t===null?`${G(e.usedBytes)} of recordings · volume capacity unknown`:`${G(t.freeBytes)} free of ${G(t.totalBytes)} · ${G(e.usedBytes)} recordings (${$(t.recordingsFraction)})`,children:t===null?s(`span`,{className:`tabular-nums`,children:G(e.usedBytes)}):n(`div`,{className:`flex items-center gap-2`,title:`Volume fill — everything on the disk, not only recordings. Warn at 85%, critical at 95%.`,children:[s(`div`,{className:`h-2 flex-1 overflow-hidden rounded bg-muted`,children:s(`div`,{className:`h-full rounded ${Bt[t.severity]}`,style:{width:$(t.fraction)}})}),s(`span`,{className:`tabular-nums text-xs ${Q[t.severity]}`,children:$(t.fraction)})]})},r)})]}),n(`section`,{className:`flex items-center gap-2 text-xs`,children:[s(`label`,{htmlFor:`prune-reason`,className:`text-foreground-subtle`,children:`Prune reason`}),s(`select`,{id:`prune-reason`,value:c,onChange:e=>{let t=zt.find(t=>t.value===e.target.value);t&&u(t.value)},className:`rounded-md border border-border bg-surface px-2 py-1 text-xs text-foreground`,children:zt.map(e=>s(`option`,{value:e.value,children:e.label},e.value))})]}),F===0?s(S,{icon:E,title:d.devicesRead===`unavailable`?`Per-camera usage unavailable`:`No recorded footage`,description:d.devicesRead===`unavailable`?`This recording node has no footage ledger, so it refused to answer the per-camera table rather than report what it happens to hold in memory. The disk totals above are unaffected.`:`No camera has recorded footage on this node yet.`}):s(x,{columns:P,rows:[...d.devices],rowKey:e=>e.deviceId,minWidthPx:480})]})}function Wt(){return n(`div`,{className:`flex flex-col gap-8`,children:[n(`div`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Footage on disk`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`What recorded footage occupies, per camera and per volume, with prune-by-policy and delete-all-footage.`}),s(`div`,{className:`mt-3`,children:s(Ut,{})})]}),n(`div`,{children:[s(`h2`,{className:`text-sm font-semibold text-foreground`,children:`Recording node & folders`}),s(`p`,{className:`mt-1 text-[11px] text-foreground-subtle`,children:`The single node that records and serves playback, and the storage locations footage is written to.`}),s(`div`,{className:`mt-3`,children:s(Ft,{})})]})]})}function Gt(){return s(Ae,{icon:A,title:`Recordings`,subtitle:`Recorded footage and the durable event store — what each occupies, where it is written, and the operations that move or reconcile both.`,children:s(Me,{tabs:[{id:`storage`,label:`Recordings`,icon:E,content:s(Wt,{})},{id:`events`,label:`Events`,icon:R,content:s(Xe,{})},{id:`cameras`,label:`Cameras`,icon:u,content:s(Be,{})},{id:`exports`,label:`Export`,icon:A,content:s(dt,{})},{id:`activity`,label:`Activity`,icon:D,content:s(ze,{})},{id:`management`,label:`Management`,icon:Oe,content:s(Mt,{})}]})})}export{Gt as RecordingsPage};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./src-DzkLcOyh.js";
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! tailwindcss v4.3.1 | MIT License | https://tailwindcss.com */
|
|
2
|
-
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-300:#ffa3a3;--color-red-400:#ff6568;--color-red-500:#fb2c36;--color-red-600:#e40014;--color-red-700:#bf000f;--color-red-950:#460809;--color-orange-300:#ffb96d;--color-orange-400:#ff8b1a;--color-orange-500:#fe6e00;--color-orange-600:#f05100;--color-amber-50:#fffbeb;--color-amber-100:#fef3c6;--color-amber-200:#fee685;--color-amber-300:#ffd236;--color-amber-400:#fcbb00;--color-amber-500:#f99c00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-amber-800:#953d00;--color-amber-950:#461901;--color-yellow-400:#fac800;--color-yellow-500:#edb200;--color-green-50:#f0fdf4;--color-green-300:#7bf1a8;--color-green-400:#05df72;--color-green-500:#00c758;--color-green-700:#008138;--color-green-950:#032e15;--color-emerald-50:#ecfdf5;--color-emerald-200:#a4f4cf;--color-emerald-300:#5ee9b5;--color-emerald-400:#00d294;--color-emerald-500:#00bb7f;--color-emerald-700:#007956;--color-emerald-900:#004e3b;--color-emerald-950:#002c22;--color-cyan-50:#ecfeff;--color-cyan-200:#a2f4fd;--color-cyan-400:#00d2ef;--color-cyan-500:#00b7d7;--color-cyan-600:#0092b5;--color-cyan-700:#007492;--color-cyan-950:#053345;--color-sky-50:#f0f9ff;--color-sky-200:#b8e6fe;--color-sky-300:#77d4ff;--color-sky-400:#00bcfe;--color-sky-500:#00a5ef;--color-sky-700:#0069a4;--color-blue-50:#eff6ff;--color-blue-300:#90c5ff;--color-blue-400:#54a2ff;--color-blue-500:#3080ff;--color-blue-600:#155dfc;--color-blue-700:#1447e6;--color-blue-950:#162456;--color-indigo-300:#a4b3ff;--color-indigo-400:#7d87ff;--color-indigo-500:#625fff;--color-indigo-700:#432dd7;--color-indigo-950:#1e1a4d;--color-violet-300:#c4b4ff;--color-violet-400:#a685ff;--color-violet-500:#8d54ff;--color-violet-700:#7008e7;--color-purple-50:#faf5ff;--color-purple-300:#d9b3ff;--color-purple-400:#c07eff;--color-purple-500:#ac4bff;--color-purple-600:#9810fa;--color-purple-700:#8200da;--color-purple-950:#3c0366;--color-fuchsia-50:#fdf4ff;--color-fuchsia-400:#ec6cff;--color-fuchsia-600:#c600db;--color-fuchsia-950:#4b004f;--color-pink-400:#fb64b6;--color-pink-500:#f6339a;--color-rose-100:#ffe4e6;--color-rose-300:#ffa2ae;--color-rose-400:#ff667f;--color-rose-500:#ff2357;--color-slate-50:#f8fafc;--color-slate-400:#90a1b9;--color-slate-600:#45556c;--color-slate-950:#020618;--color-gray-200:#e5e7eb;--color-gray-300:#d1d5dc;--color-gray-400:#99a1af;--color-gray-500:#6a7282;--color-gray-700:#364153;--color-zinc-50:#fafafa;--color-zinc-100:#f4f4f5;--color-zinc-300:#d4d4d8;--color-zinc-400:#9f9fa9;--color-zinc-500:#71717b;--color-zinc-600:#52525c;--color-zinc-700:#3f3f46;--color-zinc-800:#27272a;--color-zinc-900:#18181b;--color-zinc-950:#09090b;--color-neutral-950:#0a0a0a;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-2xl:42rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-normal:0em;--tracking-wide:.025em;--tracking-wider:.05em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--radius-2xl:1rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--animate-spin:spin 1s linear infinite;--animate-ping:ping 1s cubic-bezier(0, 0, .2, 1) infinite;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm:8px;--blur-md:12px;--blur-2xl:40px;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:#f59e42;--color-primary-foreground:#0c0a09;--color-background:#0c0a09;--color-background-elevated:#1c1917;--color-surface:#1c1917;--color-surface-hover:#292524;--color-border:#292524;--color-border-subtle:#1c1917;--color-foreground:#fafaf9;--color-foreground-muted:#a8a29e;--color-foreground-subtle:#78716c;--color-foreground-disabled:#57534e;--color-success:#4ade80;--color-warning:#fbbf24;--color-danger:#f87171;--color-info:#60a5fa;--color-provider-onvif:#3b82f6;--color-provider-hikvision:#a855f7;--color-provider-reolink:#06b6d4;--color-provider-rtsp:#78716c}@supports (color:lab(0% 0 0)){:root,:host{--color-red-300:lab(76.5514% 36.422 15.5335);--color-red-400:lab(63.7053% 60.745 31.3109);--color-red-500:lab(55.4814% 75.0732 48.8528);--color-red-600:lab(48.4493% 77.4328 61.5452);--color-red-700:lab(40.4273% 67.2623 53.7441);--color-red-950:lab(13.003% 29.04 16.7519);--color-orange-300:lab(80.8059% 21.7313 50.4455);--color-orange-400:lab(70.0429% 42.5156 75.8207);--color-orange-500:lab(64.272% 57.1788 90.3583);--color-orange-600:lab(57.1026% 64.2584 89.8886);--color-amber-50:lab(98.6252% -.635922 8.42309);--color-amber-100:lab(95.916% -1.21653 23.111);--color-amber-200:lab(91.7203% -.505269 49.9084);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-500:lab(72.7183% 31.8672 97.9407);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-amber-800:lab(37.8822% 37.1699 52.2718);--color-amber-950:lab(15.8111% 20.9107 23.3752);--color-yellow-400:lab(83.2664% 8.65132 106.895);--color-yellow-500:lab(76.3898% 14.5258 98.4589);--color-green-50:lab(98.1563% -5.60117 2.75915);--color-green-300:lab(86.9953% -47.2691 25.0054);--color-green-400:lab(78.503% -64.9265 39.7492);--color-green-500:lab(70.5521% -66.5147 45.8073);--color-green-700:lab(47.0329% -47.0239 31.4788);--color-green-950:lab(15.6845% -20.4225 11.7249);--color-emerald-50:lab(97.8462% -6.94966 1.85487);--color-emerald-200:lab(90.2247% -31.039 9.47084);--color-emerald-300:lab(83.9203% -48.7124 13.8849);--color-emerald-400:lab(75.0771% -60.7313 19.4147);--color-emerald-500:lab(66.9756% -58.27 19.5419);--color-emerald-700:lab(44.4871% -41.0396 11.0361);--color-emerald-900:lab(28.8637% -26.9249 5.45986);--color-emerald-950:lab(15.0582% -17.9507 2.38369);--color-cyan-50:lab(98.3304% -5.97432 -2.62108);--color-cyan-200:lab(91.0821% -24.0435 -12.8306);--color-cyan-400:lab(76.6045% -40.9406 -29.6231);--color-cyan-500:lab(67.805% -35.3952 -30.2018);--color-cyan-600:lab(55.1767% -26.7496 -30.5139);--color-cyan-700:lab(44.7267% -21.5987 -26.118);--color-cyan-950:lab(19.1528% -9.68757 -15.5267);--color-sky-50:lab(97.3623% -2.33802 -4.13098);--color-sky-200:lab(88.6983% -11.3978 -16.8488);--color-sky-300:lab(80.3307% -20.2945 -31.385);--color-sky-400:lab(70.687% -23.6078 -45.9483);--color-sky-500:lab(63.3038% -18.433 -51.0407);--color-sky-700:lab(41.6013% -9.10804 -42.5647);--color-blue-50:lab(96.492% -1.14644 -5.11479);--color-blue-300:lab(77.5052% -6.4629 -36.42);--color-blue-400:lab(65.0361% -1.42065 -56.9802);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-600:lab(44.0605% 29.0279 -86.0352);--color-blue-700:lab(36.9089% 35.0961 -85.6872);--color-blue-950:lab(15.6723% 8.86232 -32.2945);--color-indigo-300:lab(74.0235% 8.54138 -41.6075);--color-indigo-400:lab(59.866% 22.4834 -64.4485);--color-indigo-500:lab(48.295% 38.3129 -81.9673);--color-indigo-700:lab(32.4486% 49.2217 -84.6695);--color-indigo-950:lab(12.4853% 14.9672 -31.3418);--color-violet-300:lab(76.7419% 18.3911 -37.0706);--color-violet-400:lab(62.8239% 34.9159 -60.0512);--color-violet-500:lab(49.9355% 55.1776 -81.8963);--color-violet-700:lab(35.2783% 67.9912 -88.793);--color-purple-50:lab(97.1627% 2.99937 -4.13398);--color-purple-300:lab(78.3298% 26.2195 -34.9499);--color-purple-400:lab(63.6946% 47.6127 -59.2066);--color-purple-500:lab(52.0183% 66.11 -78.2316);--color-purple-600:lab(43.0295% 75.21 -86.5669);--color-purple-700:lab(36.1758% 69.8525 -80.0381);--color-purple-950:lab(14.8253% 38.9005 -44.5861);--color-fuchsia-50:lab(97.1083% 4.46233 -4.09334);--color-fuchsia-400:lab(66.1178% 66.0652 -52.4733);--color-fuchsia-600:lab(47.5131% 83.4271 -63.0363);--color-fuchsia-950:lab(15.7348% 39.0235 -27.4073);--color-pink-400:lab(64.5597% 64.3615 -12.7988);--color-pink-500:lab(56.9303% 76.8162 -8.07021);--color-rose-100:lab(92.8221% 9.86832 2.60075);--color-rose-300:lab(76.6339% 38.3549 9.68835);--color-rose-400:lab(64.4125% 63.0291 19.2068);--color-rose-500:lab(56.101% 79.4328 31.4532);--color-slate-50:lab(98.1434% -.369519 -1.05966);--color-slate-400:lab(65.5349% -2.25151 -14.5072);--color-slate-600:lab(35.5623% -1.74978 -15.4316);--color-slate-950:lab(1.76974% 1.32743 -9.28855);--color-gray-200:lab(91.6229% -.159115 -2.26791);--color-gray-300:lab(85.1236% -.612259 -3.7138);--color-gray-400:lab(65.9269% -.832707 -8.17473);--color-gray-500:lab(47.7841% -.393182 -10.0268);--color-gray-700:lab(27.1134% -.956401 -12.3224);--color-zinc-50:lab(98.26% 0 0);--color-zinc-100:lab(96.1634% .0993311 -.364041);--color-zinc-300:lab(84.9837% .601262 -2.17986);--color-zinc-400:lab(65.6464% 1.53497 -5.42429);--color-zinc-500:lab(47.8878% 1.65477 -5.77283);--color-zinc-600:lab(35.1166% 1.78212 -6.1173);--color-zinc-700:lab(26.8019% 1.35387 -4.68303);--color-zinc-800:lab(15.7305% .613764 -2.16959);--color-zinc-900:lab(8.30603% .618205 -2.16572);--color-zinc-950:lab(2.51107% .242703 -.886115);--color-neutral-950:lab(2.75381% 0 0)}}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.\@container\/clustertab{container:clustertab/inline-size}.\@container\/flowstrip{container:flowstrip/inline-size}.\@container\/liveload{container:liveload/inline-size}.\@container{container-type:inline-size}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.-inset-x-1\.5{inset-inline:calc(var(--spacing) * -1.5)}.inset-x-0{inset-inline:0}.inset-x-2{inset-inline:calc(var(--spacing) * 2)}.inset-y-0{inset-block:0}.inset-y-\[-2px\]{inset-block:-2px}.-top-0\.5{top:calc(var(--spacing) * -.5)}.-top-1{top:calc(var(--spacing) * -1)}.-top-1\.5{top:calc(var(--spacing) * -1.5)}.-top-3{top:calc(var(--spacing) * -3)}.-top-4{top:calc(var(--spacing) * -4)}.-top-5{top:calc(var(--spacing) * -5)}.top-0{top:0}.top-0\.5{top:calc(var(--spacing) * .5)}.top-1{top:var(--spacing)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.top-3{top:calc(var(--spacing) * 3)}.top-4{top:calc(var(--spacing) * 4)}.top-14{top:calc(var(--spacing) * 14)}.top-\[calc\(env\(safe-area-inset-top\)\+1rem\)\]{top:calc(env(safe-area-inset-top) + 1rem)}.top-auto{top:auto}.top-full{top:100%}.-right-0\.5{right:calc(var(--spacing) * -.5)}.-right-1{right:calc(var(--spacing) * -1)}.-right-3{right:calc(var(--spacing) * -3)}.right-0{right:0}.right-1{right:var(--spacing)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-2\.5{right:calc(var(--spacing) * 2.5)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.right-\[calc\(env\(safe-area-inset-right\)\+1rem\)\]{right:calc(env(safe-area-inset-right) + 1rem)}.-bottom-1{bottom:calc(var(--spacing) * -1)}.-bottom-3{bottom:calc(var(--spacing) * -3)}.bottom-0{bottom:0}.bottom-1{bottom:var(--spacing)}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-4{bottom:calc(var(--spacing) * 4)}.bottom-10{bottom:calc(var(--spacing) * 10)}.bottom-\[calc\(env\(safe-area-inset-bottom\)\+1rem\)\]{bottom:calc(env(safe-area-inset-bottom) + 1rem)}.bottom-full{bottom:100%}.-left-1{left:calc(var(--spacing) * -1)}.-left-1\.5{left:calc(var(--spacing) * -1.5)}.-left-3{left:calc(var(--spacing) * -3)}.left-0{left:0}.left-0\.5{left:calc(var(--spacing) * .5)}.left-1{left:var(--spacing)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing) * 2)}.left-2\.5{left:calc(var(--spacing) * 2.5)}.left-14{left:calc(var(--spacing) * 14)}.left-auto{left:auto}.left-full{left:100%}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[5\]{z-index:5}.z-\[9999\]{z-index:9999}.col-1{grid-column:1}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.col-span-full{grid-column:1/-1}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.\!container{width:100%!important}@media (min-width:40rem){.\!container{max-width:40rem!important}}@media (min-width:48rem){.\!container{max-width:48rem!important}}@media (min-width:64rem){.\!container{max-width:64rem!important}}@media (min-width:80rem){.\!container{max-width:80rem!important}}@media (min-width:96rem){.\!container{max-width:96rem!important}}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-2{margin-inline:calc(var(--spacing) * -2)}.mx-0\.5{margin-inline:calc(var(--spacing) * .5)}.mx-1{margin-inline:var(--spacing)}.mx-1\.5{margin-inline:calc(var(--spacing) * 1.5)}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.my-1{margin-block:var(--spacing)}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-\[-14px\]{margin-top:-14px}.mt-auto{margin-top:auto}.mt-px{margin-top:1px}.mr-0\.5{margin-right:calc(var(--spacing) * .5)}.mr-1{margin-right:var(--spacing)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.-mb-1{margin-bottom:calc(var(--spacing) * -1)}.-mb-3{margin-bottom:calc(var(--spacing) * -3)}.-mb-px{margin-bottom:-1px}.mb-0{margin-bottom:0}.mb-0\.5{margin-bottom:calc(var(--spacing) * .5)}.mb-1{margin-bottom:var(--spacing)}.mb-1\.5{margin-bottom:calc(var(--spacing) * 1.5)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.-ml-1\.5{margin-left:calc(var(--spacing) * -1.5)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-1{margin-left:var(--spacing)}.ml-1\.5{margin-left:calc(var(--spacing) * 1.5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-4{margin-left:calc(var(--spacing) * 4)}.ml-5{margin-left:calc(var(--spacing) * 5)}.ml-\[-0\.125rem\]{margin-left:-.125rem}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.table-row{display:table-row}.aspect-\[2\/1\]{aspect-ratio:2}.aspect-square{aspect-ratio:1}.aspect-video{aspect-ratio:var(--aspect-video)}.h-0{height:0}.h-0\.5{height:calc(var(--spacing) * .5)}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-4\.5{height:calc(var(--spacing) * 4.5)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-28{height:calc(var(--spacing) * 28)}.h-32{height:calc(var(--spacing) * 32)}.h-36{height:calc(var(--spacing) * 36)}.h-40{height:calc(var(--spacing) * 40)}.h-48{height:calc(var(--spacing) * 48)}.h-72{height:calc(var(--spacing) * 72)}.h-\[11px\]{height:11px}.h-\[18px\]{height:18px}.h-\[80vh\]{height:80vh}.h-\[85vh\]{height:85vh}.h-\[92dvh\]{height:92dvh}.h-\[100dvh\]{height:100dvh}.h-\[140px\]{height:140px}.h-\[150px\]{height:150px}.h-\[480px\]{height:480px}.h-\[calc\(100dvh-2rem-2\*max\(env\(safe-area-inset-top\)\,env\(safe-area-inset-bottom\)\)\)\]{height:calc(100dvh - 2rem - 2 * max(env(safe-area-inset-top), env(safe-area-inset-bottom)))}.h-auto{height:auto}.h-dvh{height:100dvh}.h-full{height:100%}.h-px{height:1px}.h-screen{height:100vh}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-36{max-height:calc(var(--spacing) * 36)}.max-h-40{max-height:calc(var(--spacing) * 40)}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-52{max-height:calc(var(--spacing) * 52)}.max-h-56{max-height:calc(var(--spacing) * 56)}.max-h-64{max-height:calc(var(--spacing) * 64)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-80{max-height:calc(var(--spacing) * 80)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[40vh\]{max-height:40vh}.max-h-\[50vh\]{max-height:50vh}.max-h-\[55\%\]{max-height:55%}.max-h-\[60vh\]{max-height:60vh}.max-h-\[70\%\]{max-height:70%}.max-h-\[70vh\]{max-height:70vh}.max-h-\[78vh\]{max-height:78vh}.max-h-\[80dvh\]{max-height:80dvh}.max-h-\[80vh\]{max-height:80vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[92dvh\]{max-height:92dvh}.max-h-\[320px\]{max-height:320px}.max-h-\[560px\]{max-height:560px}.max-h-\[calc\(85dvh-2\*max\(env\(safe-area-inset-top\)\,env\(safe-area-inset-bottom\)\)\)\]{max-height:calc(85dvh - 2 * max(env(safe-area-inset-top), env(safe-area-inset-bottom)))}.max-h-\[calc\(90dvh-2\*max\(env\(safe-area-inset-top\)\,env\(safe-area-inset-bottom\)\)\)\]{max-height:calc(90dvh - 2 * max(env(safe-area-inset-top), env(safe-area-inset-bottom)))}.max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.max-h-\[calc\(100dvh-2rem-2\*max\(env\(safe-area-inset-top\)\,env\(safe-area-inset-bottom\)\)\)\]{max-height:calc(100dvh - 2rem - 2 * max(env(safe-area-inset-top), env(safe-area-inset-bottom)))}.max-h-\[calc\(100vh-310px\)\]{max-height:calc(100vh - 310px)}.max-h-\[calc\(100vh-360px\)\]{max-height:calc(100vh - 360px)}.max-h-\[calc\(100vh-400px\)\]{max-height:calc(100vh - 400px)}.max-h-full{max-height:100%}.max-h-none{max-height:none}.min-h-0{min-height:0}.min-h-7{min-height:calc(var(--spacing) * 7)}.min-h-9{min-height:calc(var(--spacing) * 9)}.min-h-32{min-height:calc(var(--spacing) * 32)}.min-h-\[5\.5rem\]{min-height:5.5rem}.min-h-\[8rem\]{min-height:8rem}.min-h-\[38px\]{min-height:38px}.min-h-\[44px\]{min-height:44px}.min-h-\[50vh\]{min-height:50vh}.min-h-\[56vh\]{min-height:56vh}.min-h-\[60px\]{min-height:60px}.min-h-\[70vh\]{min-height:70vh}.min-h-\[80px\]{min-height:80px}.min-h-\[96px\]{min-height:96px}.min-h-\[120px\]{min-height:120px}.min-h-\[280px\]{min-height:280px}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-0\.5{width:calc(var(--spacing) * .5)}.w-1{width:var(--spacing)}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-2\/3{width:66.6667%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-3\/4{width:75%}.w-4{width:calc(var(--spacing) * 4)}.w-4\.5{width:calc(var(--spacing) * 4.5)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-10{width:calc(var(--spacing) * 10)}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-28{width:calc(var(--spacing) * 28)}.w-32{width:calc(var(--spacing) * 32)}.w-36{width:calc(var(--spacing) * 36)}.w-40{width:calc(var(--spacing) * 40)}.w-44{width:calc(var(--spacing) * 44)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-60{width:calc(var(--spacing) * 60)}.w-64{width:calc(var(--spacing) * 64)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-\[1\.35rem\]{width:1.35rem}.w-\[4\.5rem\]{width:4.5rem}.w-\[11px\]{width:11px}.w-\[13\.5rem\]{width:13.5rem}.w-\[15\%\]{width:15%}.w-\[18px\]{width:18px}.w-\[30\%\]{width:30%}.w-\[55\%\]{width:55%}.w-\[70px\]{width:70px}.w-\[140px\]{width:140px}.w-\[150px\]{width:150px}.w-\[180px\]{width:180px}.w-\[200px\]{width:200px}.w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.w-\[min\(15rem\,calc\(100vw-1\.5rem\)\)\]{width:min(15rem,100vw - 1.5rem)}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:max-content}.w-px{width:1px}.\!max-w-2xl{max-width:var(--container-2xl)!important}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-56{max-width:calc(var(--spacing) * 56)}.max-w-\[5rem\]{max-width:5rem}.max-w-\[7rem\]{max-width:7rem}.max-w-\[8rem\]{max-width:8rem}.max-w-\[10rem\]{max-width:10rem}.max-w-\[11rem\]{max-width:11rem}.max-w-\[12rem\]{max-width:12rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[18rem\]{max-width:18rem}.max-w-\[26rem\]{max-width:26rem}.max-w-\[80px\]{max-width:80px}.max-w-\[85\%\]{max-width:85%}.max-w-\[120px\]{max-width:120px}.max-w-\[140px\]{max-width:140px}.max-w-\[160px\]{max-width:160px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[280px\]{max-width:280px}.max-w-\[360px\]{max-width:360px}.max-w-\[420px\]{max-width:420px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-none{max-width:none}.max-w-sm{max-width:var(--container-sm)}.max-w-xl{max-width:var(--container-xl)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:0}.min-w-4{min-width:calc(var(--spacing) * 4)}.min-w-7{min-width:calc(var(--spacing) * 7)}.min-w-12{min-width:calc(var(--spacing) * 12)}.min-w-40{min-width:calc(var(--spacing) * 40)}.min-w-72{min-width:calc(var(--spacing) * 72)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[9rem\]{min-width:9rem}.min-w-\[10rem\]{min-width:10rem}.min-w-\[11rem\]{min-width:11rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[13rem\]{min-width:13rem}.min-w-\[14rem\]{min-width:14rem}.min-w-\[15rem\]{min-width:15rem}.min-w-\[16rem\]{min-width:16rem}.min-w-\[28rem\]{min-width:28rem}.min-w-\[36rem\]{min-width:36rem}.min-w-\[44px\]{min-width:44px}.min-w-\[60px\]{min-width:60px}.min-w-\[70px\]{min-width:70px}.min-w-\[80px\]{min-width:80px}.min-w-\[90px\]{min-width:90px}.min-w-\[120px\]{min-width:120px}.min-w-\[140px\]{min-width:140px}.min-w-\[160px\]{min-width:160px}.min-w-\[180px\]{min-width:180px}.min-w-\[200px\]{min-width:200px}.min-w-\[220px\]{min-width:220px}.min-w-\[240px\]{min-width:240px}.min-w-\[260px\]{min-width:260px}.min-w-\[280px\]{min-width:280px}.min-w-\[300px\]{min-width:300px}.min-w-\[480px\]{min-width:480px}.min-w-\[640px\]{min-width:640px}.min-w-\[720px\]{min-width:720px}.min-w-\[820px\]{min-width:820px}.min-w-\[Npx\]{min-width:Npx}.flex-1{flex:1}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-56{flex-basis:calc(var(--spacing) * 56)}.basis-72{flex-basis:calc(var(--spacing) * 72)}.basis-\[140px\]{flex-basis:140px}.basis-\[160px\]{flex-basis:160px}.basis-auto{flex-basis:auto}.basis-full{flex-basis:100%}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:separate}.border-spacing-0{--tw-border-spacing-x:0;--tw-border-spacing-y:0;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}.-translate-x-1\.5{--tw-translate-x:calc(var(--spacing) * -1.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-full{--tw-translate-x:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-x-px{--tw-translate-x:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0\.5{--tw-translate-x:calc(var(--spacing) * .5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1{--tw-translate-x:var(--spacing);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-1\.5{--tw-translate-x:calc(var(--spacing) * 1.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3{--tw-translate-x:calc(var(--spacing) * 3);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-3\.5{--tw-translate-x:calc(var(--spacing) * 3.5);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-6{--tw-translate-x:calc(var(--spacing) * 6);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-px{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-0{--tw-translate-y:0;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.-rotate-12{rotate:-12deg}.rotate-45{rotate:45deg}.rotate-90{rotate:90deg}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform-gpu{transform:translateZ(0) var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-\[dash_1\.5s_ease-in-out_infinite\]{animation:1.5s ease-in-out infinite dash}.animate-ping{animation:var(--animate-ping)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-e-resize{cursor:e-resize}.cursor-ew-resize{cursor:ew-resize}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-help{cursor:help}.cursor-move{cursor:move}.cursor-n-resize{cursor:n-resize}.cursor-ne-resize{cursor:ne-resize}.cursor-not-allowed{cursor:not-allowed}.cursor-ns-resize{cursor:ns-resize}.cursor-nw-resize{cursor:nw-resize}.cursor-nwse-resize{cursor:nwse-resize}.cursor-pointer{cursor:pointer}.cursor-s-resize{cursor:s-resize}.cursor-se-resize{cursor:se-resize}.cursor-sw-resize{cursor:sw-resize}.cursor-w-resize{cursor:w-resize}.cursor-wait{cursor:wait}.cursor-zoom-in{cursor:zoom-in}.cursor-zoom-out{cursor:zoom-out}.touch-none{touch-action:none}.resize{resize:both}.resize-y{resize:vertical}.scroll-mt-4{scroll-margin-top:calc(var(--spacing) * 4)}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.appearance-none{appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[1fr_4rem_5rem_4rem_3rem\]{grid-template-columns:1fr 4rem 5rem 4rem 3rem}.grid-cols-\[7rem_minmax\(0\,1fr\)\]{grid-template-columns:7rem minmax(0,1fr)}.grid-cols-\[100px_1fr_240px\]{grid-template-columns:100px 1fr 240px}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.grid-cols-\[auto_1fr_auto\]{grid-template-columns:auto 1fr auto}.grid-cols-\[minmax\(0\,1fr\)_auto\]{grid-template-columns:minmax(0,1fr) auto}.grid-cols-\[repeat\(auto-fill\,minmax\(6\.5rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(9rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(11rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr))}.grid-cols-\[repeat\(auto-fill\,minmax\(13rem\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(180px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-0{gap:0}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-px{gap:1px}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-1\.5{column-gap:calc(var(--spacing) * 1.5)}.gap-x-2{column-gap:calc(var(--spacing) * 2)}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-x-6{column-gap:calc(var(--spacing) * 6)}:where(.space-x-1>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(var(--spacing) * var(--tw-space-x-reverse));margin-inline-end:calc(var(--spacing) * calc(1 - var(--tw-space-x-reverse)))}.gap-y-0\.5{row-gap:calc(var(--spacing) * .5)}.gap-y-1{row-gap:var(--spacing)}.gap-y-1\.5{row-gap:calc(var(--spacing) * 1.5)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}.gap-y-2\.5{row-gap:calc(var(--spacing) * 2.5)}.gap-y-3{row-gap:calc(var(--spacing) * 3)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-amber-500\/20>:not(:last-child)){border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){:where(.divide-amber-500\/20>:not(:last-child)){border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}:where(.divide-border>:not(:last-child)){border-color:var(--color-border)}:where(.divide-border-subtle>:not(:last-child)){border-color:var(--color-border-subtle)}:where(.divide-border\/20>:not(:last-child)){border-color:#29252433}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/20>:not(:last-child)){border-color:color-mix(in oklab, var(--color-border) 20%, transparent)}}:where(.divide-border\/30>:not(:last-child)){border-color:#2925244d}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/30>:not(:last-child)){border-color:color-mix(in oklab, var(--color-border) 30%, transparent)}}:where(.divide-border\/50>:not(:last-child)){border-color:#29252480}@supports (color:color-mix(in lab, red, red)){:where(.divide-border\/50>:not(:last-child)){border-color:color-mix(in oklab, var(--color-border) 50%, transparent)}}.self-center{align-self:center}.self-end{align-self:flex-end}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.\!truncate{text-overflow:ellipsis!important;white-space:nowrap!important;overflow:hidden!important}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-clip{overflow:clip}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-clip{overflow-x:clip}.overflow-x-hidden{overflow-x:hidden}.overflow-x-scroll{overflow-x:scroll}.overflow-y-auto{overflow-y:auto}.overflow-y-hidden{overflow-y:hidden}.overscroll-contain{overscroll-behavior:contain}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\[2px\]{border-radius:2px}.rounded-\[3px\]{border-radius:3px}.rounded-\[19px\]{border-radius:19px}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-t-sm{border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.rounded-t-xl{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-br-md{border-bottom-right-radius:var(--radius-md)}.rounded-bl-md{border-bottom-left-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-x{border-inline-style:var(--tw-border-style);border-inline-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-r-0{border-right-style:var(--tw-border-style);border-right-width:0}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-amber-200{border-color:var(--color-amber-200)}.border-amber-400{border-color:var(--color-amber-400)}.border-amber-500\/20{border-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/20{border-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.border-amber-500\/30{border-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/30{border-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.border-amber-500\/40{border-color:#f99c0066}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/40{border-color:color-mix(in oklab, var(--color-amber-500) 40%, transparent)}}.border-amber-500\/50{border-color:#f99c0080}@supports (color:color-mix(in lab, red, red)){.border-amber-500\/50{border-color:color-mix(in oklab, var(--color-amber-500) 50%, transparent)}}.border-amber-700\/60{border-color:#b7500099}@supports (color:color-mix(in lab, red, red)){.border-amber-700\/60{border-color:color-mix(in oklab, var(--color-amber-700) 60%, transparent)}}.border-background{border-color:var(--color-background)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-500{border-color:var(--color-blue-500)}.border-blue-500\/30{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.border-blue-500\/30{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.border-border{border-color:var(--color-border)}.border-border-subtle{border-color:var(--color-border-subtle)}.border-border-subtle\/40{border-color:#1c191766}@supports (color:color-mix(in lab, red, red)){.border-border-subtle\/40{border-color:color-mix(in oklab, var(--color-border-subtle) 40%, transparent)}}.border-border-subtle\/50{border-color:#1c191780}@supports (color:color-mix(in lab, red, red)){.border-border-subtle\/50{border-color:color-mix(in oklab, var(--color-border-subtle) 50%, transparent)}}.border-border\/30{border-color:#2925244d}@supports (color:color-mix(in lab, red, red)){.border-border\/30{border-color:color-mix(in oklab, var(--color-border) 30%, transparent)}}.border-border\/40{border-color:#29252466}@supports (color:color-mix(in lab, red, red)){.border-border\/40{border-color:color-mix(in oklab, var(--color-border) 40%, transparent)}}.border-border\/50{border-color:#29252480}@supports (color:color-mix(in lab, red, red)){.border-border\/50{border-color:color-mix(in oklab, var(--color-border) 50%, transparent)}}.border-border\/60{border-color:#29252499}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--color-border) 60%, transparent)}}.border-border\/70{border-color:#292524b3}@supports (color:color-mix(in lab, red, red)){.border-border\/70{border-color:color-mix(in oklab, var(--color-border) 70%, transparent)}}.border-border\/80{border-color:#292524cc}@supports (color:color-mix(in lab, red, red)){.border-border\/80{border-color:color-mix(in oklab, var(--color-border) 80%, transparent)}}.border-current\/30{border-color:currentColor}@supports (color:color-mix(in lab, red, red)){.border-current\/30{border-color:color-mix(in oklab, currentcolor 30%, transparent)}}.border-cyan-400{border-color:var(--color-cyan-400)}.border-cyan-500{border-color:var(--color-cyan-500)}.border-cyan-500\/30{border-color:#00b7d74d}@supports (color:color-mix(in lab, red, red)){.border-cyan-500\/30{border-color:color-mix(in oklab, var(--color-cyan-500) 30%, transparent)}}.border-danger{border-color:var(--color-danger)}.border-danger\/20{border-color:#f8717133}@supports (color:color-mix(in lab, red, red)){.border-danger\/20{border-color:color-mix(in oklab, var(--color-danger) 20%, transparent)}}.border-danger\/30{border-color:#f871714d}@supports (color:color-mix(in lab, red, red)){.border-danger\/30{border-color:color-mix(in oklab, var(--color-danger) 30%, transparent)}}.border-danger\/40{border-color:#f8717166}@supports (color:color-mix(in lab, red, red)){.border-danger\/40{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.border-danger\/50{border-color:#f8717180}@supports (color:color-mix(in lab, red, red)){.border-danger\/50{border-color:color-mix(in oklab, var(--color-danger) 50%, transparent)}}.border-emerald-200{border-color:var(--color-emerald-200)}.border-emerald-500\/30{border-color:#00bb7f4d}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/30{border-color:color-mix(in oklab, var(--color-emerald-500) 30%, transparent)}}.border-emerald-500\/40{border-color:#00bb7f66}@supports (color:color-mix(in lab, red, red)){.border-emerald-500\/40{border-color:color-mix(in oklab, var(--color-emerald-500) 40%, transparent)}}.border-foreground-subtle{border-color:var(--color-foreground-subtle)}.border-foreground-subtle\/20{border-color:#78716c33}@supports (color:color-mix(in lab, red, red)){.border-foreground-subtle\/20{border-color:color-mix(in oklab, var(--color-foreground-subtle) 20%, transparent)}}.border-foreground-subtle\/30{border-color:#78716c4d}@supports (color:color-mix(in lab, red, red)){.border-foreground-subtle\/30{border-color:color-mix(in oklab, var(--color-foreground-subtle) 30%, transparent)}}.border-foreground-subtle\/60{border-color:#78716c99}@supports (color:color-mix(in lab, red, red)){.border-foreground-subtle\/60{border-color:color-mix(in oklab, var(--color-foreground-subtle) 60%, transparent)}}.border-fuchsia-400{border-color:var(--color-fuchsia-400)}.border-gray-500\/40{border-color:#6a728266}@supports (color:color-mix(in lab, red, red)){.border-gray-500\/40{border-color:color-mix(in oklab, var(--color-gray-500) 40%, transparent)}}.border-green-400{border-color:var(--color-green-400)}.border-green-500{border-color:var(--color-green-500)}.border-green-500\/30{border-color:#00c7584d}@supports (color:color-mix(in lab, red, red)){.border-green-500\/30{border-color:color-mix(in oklab, var(--color-green-500) 30%, transparent)}}.border-indigo-500{border-color:var(--color-indigo-500)}.border-info{border-color:var(--color-info)}.border-info\/30{border-color:#60a5fa4d}@supports (color:color-mix(in lab, red, red)){.border-info\/30{border-color:color-mix(in oklab, var(--color-info) 30%, transparent)}}.border-info\/40{border-color:#60a5fa66}@supports (color:color-mix(in lab, red, red)){.border-info\/40{border-color:color-mix(in oklab, var(--color-info) 40%, transparent)}}.border-orange-500{border-color:var(--color-orange-500)}.border-orange-500\/20{border-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/20{border-color:color-mix(in oklab, var(--color-orange-500) 20%, transparent)}}.border-orange-500\/30{border-color:#fe6e004d}@supports (color:color-mix(in lab, red, red)){.border-orange-500\/30{border-color:color-mix(in oklab, var(--color-orange-500) 30%, transparent)}}.border-pink-500{border-color:var(--color-pink-500)}.border-pink-500\/30{border-color:#f6339a4d}@supports (color:color-mix(in lab, red, red)){.border-pink-500\/30{border-color:color-mix(in oklab, var(--color-pink-500) 30%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-primary-foreground\/30{border-color:#0c0a094d}@supports (color:color-mix(in lab, red, red)){.border-primary-foreground\/30{border-color:color-mix(in oklab, var(--color-primary-foreground) 30%, transparent)}}.border-primary\/20{border-color:#f59e4233}@supports (color:color-mix(in lab, red, red)){.border-primary\/20{border-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.border-primary\/30{border-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.border-primary\/30{border-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.border-primary\/40{border-color:#f59e4266}@supports (color:color-mix(in lab, red, red)){.border-primary\/40{border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.border-primary\/50{border-color:#f59e4280}@supports (color:color-mix(in lab, red, red)){.border-primary\/50{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.border-purple-400{border-color:var(--color-purple-400)}.border-purple-500{border-color:var(--color-purple-500)}.border-purple-500\/30{border-color:#ac4bff4d}@supports (color:color-mix(in lab, red, red)){.border-purple-500\/30{border-color:color-mix(in oklab, var(--color-purple-500) 30%, transparent)}}.border-red-400\/40{border-color:#ff656866}@supports (color:color-mix(in lab, red, red)){.border-red-400\/40{border-color:color-mix(in oklab, var(--color-red-400) 40%, transparent)}}.border-red-500\/30{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.border-red-500\/30{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.border-red-500\/40{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.border-red-500\/40{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.border-red-500\/50{border-color:#fb2c3680}@supports (color:color-mix(in lab, red, red)){.border-red-500\/50{border-color:color-mix(in oklab, var(--color-red-500) 50%, transparent)}}.border-sky-500\/30{border-color:#00a5ef4d}@supports (color:color-mix(in lab, red, red)){.border-sky-500\/30{border-color:color-mix(in oklab, var(--color-sky-500) 30%, transparent)}}.border-slate-400{border-color:var(--color-slate-400)}.border-success{border-color:var(--color-success)}.border-success\/30{border-color:#4ade804d}@supports (color:color-mix(in lab, red, red)){.border-success\/30{border-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.border-success\/40{border-color:#4ade8066}@supports (color:color-mix(in lab, red, red)){.border-success\/40{border-color:color-mix(in oklab, var(--color-success) 40%, transparent)}}.border-success\/50{border-color:#4ade8080}@supports (color:color-mix(in lab, red, red)){.border-success\/50{border-color:color-mix(in oklab, var(--color-success) 50%, transparent)}}.border-surface{border-color:var(--color-surface)}.border-transparent{border-color:#0000}.border-violet-500\/30{border-color:#8d54ff4d}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/30{border-color:color-mix(in oklab, var(--color-violet-500) 30%, transparent)}}.border-violet-500\/40{border-color:#8d54ff66}@supports (color:color-mix(in lab, red, red)){.border-violet-500\/40{border-color:color-mix(in oklab, var(--color-violet-500) 40%, transparent)}}.border-warning{border-color:var(--color-warning)}.border-warning\/30{border-color:#fbbf244d}@supports (color:color-mix(in lab, red, red)){.border-warning\/30{border-color:color-mix(in oklab, var(--color-warning) 30%, transparent)}}.border-warning\/40{border-color:#fbbf2466}@supports (color:color-mix(in lab, red, red)){.border-warning\/40{border-color:color-mix(in oklab, var(--color-warning) 40%, transparent)}}.border-white{border-color:var(--color-white)}.border-white\/15{border-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.border-white\/15{border-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.border-white\/20{border-color:#fff3}@supports (color:color-mix(in lab, red, red)){.border-white\/20{border-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.border-white\/30{border-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.border-white\/30{border-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.border-white\/40{border-color:#fff6}@supports (color:color-mix(in lab, red, red)){.border-white\/40{border-color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.border-yellow-500{border-color:var(--color-yellow-500)}.border-zinc-300{border-color:var(--color-zinc-300)}.border-zinc-700{border-color:var(--color-zinc-700)}.border-zinc-800{border-color:var(--color-zinc-800)}.border-t-primary{border-top-color:var(--color-primary)}.border-t-primary-foreground{border-top-color:var(--color-primary-foreground)}.border-t-transparent{border-top-color:#0000}.border-t-white\/60{border-top-color:#fff9}@supports (color:color-mix(in lab, red, red)){.border-t-white\/60{border-top-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.border-l-amber-400{border-left-color:var(--color-amber-400)}.border-l-blue-400{border-left-color:var(--color-blue-400)}.border-l-foreground-subtle\/30{border-left-color:#78716c4d}@supports (color:color-mix(in lab, red, red)){.border-l-foreground-subtle\/30{border-left-color:color-mix(in oklab, var(--color-foreground-subtle) 30%, transparent)}}.border-l-green-400{border-left-color:var(--color-green-400)}.border-l-red-400{border-left-color:var(--color-red-400)}.bg-\[\#0b0d10\]{background-color:#0b0d10}.bg-\[\#0c0a09\]{background-color:#0c0a09}.bg-\[\#cb3837\]{background-color:#cb3837}.bg-amber-50{background-color:var(--color-amber-50)}.bg-amber-400{background-color:var(--color-amber-400)}.bg-amber-400\/10{background-color:#fcbb001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-400\/10{background-color:color-mix(in oklab, var(--color-amber-400) 10%, transparent)}}.bg-amber-500{background-color:var(--color-amber-500)}.bg-amber-500\/5{background-color:#f99c000d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/5{background-color:color-mix(in oklab, var(--color-amber-500) 5%, transparent)}}.bg-amber-500\/10{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/10{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.bg-amber-500\/15{background-color:#f99c0026}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/15{background-color:color-mix(in oklab, var(--color-amber-500) 15%, transparent)}}.bg-amber-500\/20{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/20{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.bg-amber-500\/30{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/30{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.bg-amber-500\/\[0\.04\]{background-color:#f99c000a}@supports (color:color-mix(in lab, red, red)){.bg-amber-500\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-amber-500) 4%, transparent)}}.bg-background{background-color:var(--color-background)}.bg-background-elevated{background-color:var(--color-background-elevated)}.bg-background\/20{background-color:#0c0a0933}@supports (color:color-mix(in lab, red, red)){.bg-background\/20{background-color:color-mix(in oklab, var(--color-background) 20%, transparent)}}.bg-background\/30{background-color:#0c0a094d}@supports (color:color-mix(in lab, red, red)){.bg-background\/30{background-color:color-mix(in oklab, var(--color-background) 30%, transparent)}}.bg-background\/40{background-color:#0c0a0966}@supports (color:color-mix(in lab, red, red)){.bg-background\/40{background-color:color-mix(in oklab, var(--color-background) 40%, transparent)}}.bg-background\/50{background-color:#0c0a0980}@supports (color:color-mix(in lab, red, red)){.bg-background\/50{background-color:color-mix(in oklab, var(--color-background) 50%, transparent)}}.bg-background\/60{background-color:#0c0a0999}@supports (color:color-mix(in lab, red, red)){.bg-background\/60{background-color:color-mix(in oklab, var(--color-background) 60%, transparent)}}.bg-background\/80{background-color:#0c0a09cc}@supports (color:color-mix(in lab, red, red)){.bg-background\/80{background-color:color-mix(in oklab, var(--color-background) 80%, transparent)}}.bg-background\/85{background-color:#0c0a09d9}@supports (color:color-mix(in lab, red, red)){.bg-background\/85{background-color:color-mix(in oklab, var(--color-background) 85%, transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/0{background-color:#0000}@supports (color:color-mix(in lab, red, red)){.bg-black\/0{background-color:color-mix(in oklab, var(--color-black) 0%, transparent)}}.bg-black\/30{background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.bg-black\/30{background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.bg-black\/40{background-color:#0006}@supports (color:color-mix(in lab, red, red)){.bg-black\/40{background-color:color-mix(in oklab, var(--color-black) 40%, transparent)}}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.bg-black\/50{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.bg-black\/55{background-color:#0000008c}@supports (color:color-mix(in lab, red, red)){.bg-black\/55{background-color:color-mix(in oklab, var(--color-black) 55%, transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab, red, red)){.bg-black\/60{background-color:color-mix(in oklab, var(--color-black) 60%, transparent)}}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.bg-black\/70{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.bg-black\/90{background-color:#000000e6}@supports (color:color-mix(in lab, red, red)){.bg-black\/90{background-color:color-mix(in oklab, var(--color-black) 90%, transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-400{background-color:var(--color-blue-400)}.bg-blue-500\/5{background-color:#3080ff0d}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/5{background-color:color-mix(in oklab, var(--color-blue-500) 5%, transparent)}}.bg-blue-500\/8{background-color:#3080ff14}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/8{background-color:color-mix(in oklab, var(--color-blue-500) 8%, transparent)}}.bg-blue-500\/10{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/10{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.bg-blue-500\/12{background-color:#3080ff1f}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/12{background-color:color-mix(in oklab, var(--color-blue-500) 12%, transparent)}}.bg-blue-500\/15{background-color:#3080ff26}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/15{background-color:color-mix(in oklab, var(--color-blue-500) 15%, transparent)}}.bg-blue-500\/20{background-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.bg-blue-500\/20{background-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.bg-border{background-color:var(--color-border)}.bg-border-subtle{background-color:var(--color-border-subtle)}.bg-cyan-50{background-color:var(--color-cyan-50)}.bg-cyan-400{background-color:var(--color-cyan-400)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-cyan-500\/5{background-color:#00b7d70d}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/5{background-color:color-mix(in oklab, var(--color-cyan-500) 5%, transparent)}}.bg-cyan-500\/10{background-color:#00b7d71a}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/10{background-color:color-mix(in oklab, var(--color-cyan-500) 10%, transparent)}}.bg-cyan-500\/15{background-color:#00b7d726}@supports (color:color-mix(in lab, red, red)){.bg-cyan-500\/15{background-color:color-mix(in oklab, var(--color-cyan-500) 15%, transparent)}}.bg-danger{background-color:var(--color-danger)}.bg-danger\/5{background-color:#f871710d}@supports (color:color-mix(in lab, red, red)){.bg-danger\/5{background-color:color-mix(in oklab, var(--color-danger) 5%, transparent)}}.bg-danger\/10{background-color:#f871711a}@supports (color:color-mix(in lab, red, red)){.bg-danger\/10{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.bg-danger\/15{background-color:#f8717126}@supports (color:color-mix(in lab, red, red)){.bg-danger\/15{background-color:color-mix(in oklab, var(--color-danger) 15%, transparent)}}.bg-danger\/20{background-color:#f8717133}@supports (color:color-mix(in lab, red, red)){.bg-danger\/20{background-color:color-mix(in oklab, var(--color-danger) 20%, transparent)}}.bg-danger\/40{background-color:#f8717166}@supports (color:color-mix(in lab, red, red)){.bg-danger\/40{background-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.bg-danger\/90{background-color:#f87171e6}@supports (color:color-mix(in lab, red, red)){.bg-danger\/90{background-color:color-mix(in oklab, var(--color-danger) 90%, transparent)}}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-emerald-400{background-color:var(--color-emerald-400)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-emerald-500\/5{background-color:#00bb7f0d}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/5{background-color:color-mix(in oklab, var(--color-emerald-500) 5%, transparent)}}.bg-emerald-500\/10{background-color:#00bb7f1a}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/10{background-color:color-mix(in oklab, var(--color-emerald-500) 10%, transparent)}}.bg-emerald-500\/12{background-color:#00bb7f1f}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/12{background-color:color-mix(in oklab, var(--color-emerald-500) 12%, transparent)}}.bg-emerald-500\/15{background-color:#00bb7f26}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/15{background-color:color-mix(in oklab, var(--color-emerald-500) 15%, transparent)}}.bg-emerald-500\/25{background-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.bg-emerald-500\/25{background-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.bg-foreground{background-color:var(--color-foreground)}.bg-foreground-subtle{background-color:var(--color-foreground-subtle)}.bg-foreground-subtle\/10{background-color:#78716c1a}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/10{background-color:color-mix(in oklab, var(--color-foreground-subtle) 10%, transparent)}}.bg-foreground-subtle\/15{background-color:#78716c26}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/15{background-color:color-mix(in oklab, var(--color-foreground-subtle) 15%, transparent)}}.bg-foreground-subtle\/20{background-color:#78716c33}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/20{background-color:color-mix(in oklab, var(--color-foreground-subtle) 20%, transparent)}}.bg-foreground-subtle\/30{background-color:#78716c4d}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/30{background-color:color-mix(in oklab, var(--color-foreground-subtle) 30%, transparent)}}.bg-foreground-subtle\/40{background-color:#78716c66}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/40{background-color:color-mix(in oklab, var(--color-foreground-subtle) 40%, transparent)}}.bg-foreground-subtle\/60{background-color:#78716c99}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/60{background-color:color-mix(in oklab, var(--color-foreground-subtle) 60%, transparent)}}.bg-foreground-subtle\/70{background-color:#78716cb3}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/70{background-color:color-mix(in oklab, var(--color-foreground-subtle) 70%, transparent)}}.bg-foreground-subtle\/\[0\.03\]{background-color:#78716c08}@supports (color:color-mix(in lab, red, red)){.bg-foreground-subtle\/\[0\.03\]{background-color:color-mix(in oklab, var(--color-foreground-subtle) 3%, transparent)}}.bg-foreground\/50{background-color:#fafaf980}@supports (color:color-mix(in lab, red, red)){.bg-foreground\/50{background-color:color-mix(in oklab, var(--color-foreground) 50%, transparent)}}.bg-fuchsia-50{background-color:var(--color-fuchsia-50)}.bg-fuchsia-400{background-color:var(--color-fuchsia-400)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-500\/10{background-color:#6a72821a}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/10{background-color:color-mix(in oklab, var(--color-gray-500) 10%, transparent)}}.bg-gray-500\/15{background-color:#6a728226}@supports (color:color-mix(in lab, red, red)){.bg-gray-500\/15{background-color:color-mix(in oklab, var(--color-gray-500) 15%, transparent)}}.bg-gray-700{background-color:var(--color-gray-700)}.bg-gray-700\/50{background-color:#36415380}@supports (color:color-mix(in lab, red, red)){.bg-gray-700\/50{background-color:color-mix(in oklab, var(--color-gray-700) 50%, transparent)}}.bg-green-50{background-color:var(--color-green-50)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/5{background-color:#00c7580d}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/5{background-color:color-mix(in oklab, var(--color-green-500) 5%, transparent)}}.bg-green-500\/8{background-color:#00c75814}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/8{background-color:color-mix(in oklab, var(--color-green-500) 8%, transparent)}}.bg-green-500\/10{background-color:#00c7581a}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/10{background-color:color-mix(in oklab, var(--color-green-500) 10%, transparent)}}.bg-green-500\/12{background-color:#00c7581f}@supports (color:color-mix(in lab, red, red)){.bg-green-500\/12{background-color:color-mix(in oklab, var(--color-green-500) 12%, transparent)}}.bg-indigo-400{background-color:var(--color-indigo-400)}.bg-indigo-500\/5{background-color:#625fff0d}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\/5{background-color:color-mix(in oklab, var(--color-indigo-500) 5%, transparent)}}.bg-indigo-500\/10{background-color:#625fff1a}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\/10{background-color:color-mix(in oklab, var(--color-indigo-500) 10%, transparent)}}.bg-indigo-500\/20{background-color:#625fff33}@supports (color:color-mix(in lab, red, red)){.bg-indigo-500\/20{background-color:color-mix(in oklab, var(--color-indigo-500) 20%, transparent)}}.bg-info{background-color:var(--color-info)}.bg-info\/5{background-color:#60a5fa0d}@supports (color:color-mix(in lab, red, red)){.bg-info\/5{background-color:color-mix(in oklab, var(--color-info) 5%, transparent)}}.bg-info\/10{background-color:#60a5fa1a}@supports (color:color-mix(in lab, red, red)){.bg-info\/10{background-color:color-mix(in oklab, var(--color-info) 10%, transparent)}}.bg-info\/15{background-color:#60a5fa26}@supports (color:color-mix(in lab, red, red)){.bg-info\/15{background-color:color-mix(in oklab, var(--color-info) 15%, transparent)}}.bg-neutral-950\/90{background-color:#0a0a0ae6}@supports (color:color-mix(in lab, red, red)){.bg-neutral-950\/90{background-color:color-mix(in oklab, var(--color-neutral-950) 90%, transparent)}}.bg-neutral-950\/95{background-color:#0a0a0af2}@supports (color:color-mix(in lab, red, red)){.bg-neutral-950\/95{background-color:color-mix(in oklab, var(--color-neutral-950) 95%, transparent)}}.bg-orange-500{background-color:var(--color-orange-500)}.bg-orange-500\/5{background-color:#fe6e000d}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/5{background-color:color-mix(in oklab, var(--color-orange-500) 5%, transparent)}}.bg-orange-500\/10{background-color:#fe6e001a}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/10{background-color:color-mix(in oklab, var(--color-orange-500) 10%, transparent)}}.bg-orange-500\/15{background-color:#fe6e0026}@supports (color:color-mix(in lab, red, red)){.bg-orange-500\/15{background-color:color-mix(in oklab, var(--color-orange-500) 15%, transparent)}}.bg-pink-500\/5{background-color:#f6339a0d}@supports (color:color-mix(in lab, red, red)){.bg-pink-500\/5{background-color:color-mix(in oklab, var(--color-pink-500) 5%, transparent)}}.bg-pink-500\/10{background-color:#f6339a1a}@supports (color:color-mix(in lab, red, red)){.bg-pink-500\/10{background-color:color-mix(in oklab, var(--color-pink-500) 10%, transparent)}}.bg-pink-500\/15{background-color:#f6339a26}@supports (color:color-mix(in lab, red, red)){.bg-pink-500\/15{background-color:color-mix(in oklab, var(--color-pink-500) 15%, transparent)}}.bg-primary{background-color:var(--color-primary)}.bg-primary-foreground\/20{background-color:#0c0a0933}@supports (color:color-mix(in lab, red, red)){.bg-primary-foreground\/20{background-color:color-mix(in oklab, var(--color-primary-foreground) 20%, transparent)}}.bg-primary\/5{background-color:#f59e420d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\/8{background-color:#f59e4214}@supports (color:color-mix(in lab, red, red)){.bg-primary\/8{background-color:color-mix(in oklab, var(--color-primary) 8%, transparent)}}.bg-primary\/10{background-color:#f59e421a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-primary\/12{background-color:#f59e421f}@supports (color:color-mix(in lab, red, red)){.bg-primary\/12{background-color:color-mix(in oklab, var(--color-primary) 12%, transparent)}}.bg-primary\/15{background-color:#f59e4226}@supports (color:color-mix(in lab, red, red)){.bg-primary\/15{background-color:color-mix(in oklab, var(--color-primary) 15%, transparent)}}.bg-primary\/20{background-color:#f59e4233}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-primary\/80{background-color:#f59e42cc}@supports (color:color-mix(in lab, red, red)){.bg-primary\/80{background-color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.bg-primary\/85{background-color:#f59e42d9}@supports (color:color-mix(in lab, red, red)){.bg-primary\/85{background-color:color-mix(in oklab, var(--color-primary) 85%, transparent)}}.bg-primary\/\[0\.04\]{background-color:#f59e420a}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.04\]{background-color:color-mix(in oklab, var(--color-primary) 4%, transparent)}}.bg-primary\/\[0\.05\]{background-color:#f59e420d}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.05\]{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\/\[0\.08\]{background-color:#f59e4214}@supports (color:color-mix(in lab, red, red)){.bg-primary\/\[0\.08\]{background-color:color-mix(in oklab, var(--color-primary) 8%, transparent)}}.bg-provider-hikvision{background-color:var(--color-provider-hikvision)}.bg-provider-onvif{background-color:var(--color-provider-onvif)}.bg-provider-reolink{background-color:var(--color-provider-reolink)}.bg-provider-rtsp{background-color:var(--color-provider-rtsp)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-400{background-color:var(--color-purple-400)}.bg-purple-500\/5{background-color:#ac4bff0d}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/5{background-color:color-mix(in oklab, var(--color-purple-500) 5%, transparent)}}.bg-purple-500\/10{background-color:#ac4bff1a}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/10{background-color:color-mix(in oklab, var(--color-purple-500) 10%, transparent)}}.bg-purple-500\/15{background-color:#ac4bff26}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/15{background-color:color-mix(in oklab, var(--color-purple-500) 15%, transparent)}}.bg-purple-500\/20{background-color:#ac4bff33}@supports (color:color-mix(in lab, red, red)){.bg-purple-500\/20{background-color:color-mix(in oklab, var(--color-purple-500) 20%, transparent)}}.bg-red-400{background-color:var(--color-red-400)}.bg-red-400\/10{background-color:#ff65681a}@supports (color:color-mix(in lab, red, red)){.bg-red-400\/10{background-color:color-mix(in oklab, var(--color-red-400) 10%, transparent)}}.bg-red-500{background-color:var(--color-red-500)}.bg-red-500\/10{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/10{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.bg-red-500\/15{background-color:#fb2c3626}@supports (color:color-mix(in lab, red, red)){.bg-red-500\/15{background-color:color-mix(in oklab, var(--color-red-500) 15%, transparent)}}.bg-rose-400{background-color:var(--color-rose-400)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-rose-500\/15{background-color:#ff235726}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/15{background-color:color-mix(in oklab, var(--color-rose-500) 15%, transparent)}}.bg-rose-500\/30{background-color:#ff23574d}@supports (color:color-mix(in lab, red, red)){.bg-rose-500\/30{background-color:color-mix(in oklab, var(--color-rose-500) 30%, transparent)}}.bg-sky-500{background-color:var(--color-sky-500)}.bg-sky-500\/12{background-color:#00a5ef1f}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/12{background-color:color-mix(in oklab, var(--color-sky-500) 12%, transparent)}}.bg-sky-500\/15{background-color:#00a5ef26}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/15{background-color:color-mix(in oklab, var(--color-sky-500) 15%, transparent)}}.bg-sky-500\/20{background-color:#00a5ef33}@supports (color:color-mix(in lab, red, red)){.bg-sky-500\/20{background-color:color-mix(in oklab, var(--color-sky-500) 20%, transparent)}}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-400{background-color:var(--color-slate-400)}.bg-slate-600{background-color:var(--color-slate-600)}.bg-success{background-color:var(--color-success)}.bg-success\/5{background-color:#4ade800d}@supports (color:color-mix(in lab, red, red)){.bg-success\/5{background-color:color-mix(in oklab, var(--color-success) 5%, transparent)}}.bg-success\/10{background-color:#4ade801a}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--color-success) 10%, transparent)}}.bg-success\/15{background-color:#4ade8026}@supports (color:color-mix(in lab, red, red)){.bg-success\/15{background-color:color-mix(in oklab, var(--color-success) 15%, transparent)}}.bg-success\/20{background-color:#4ade8033}@supports (color:color-mix(in lab, red, red)){.bg-success\/20{background-color:color-mix(in oklab, var(--color-success) 20%, transparent)}}.bg-success\/30{background-color:#4ade804d}@supports (color:color-mix(in lab, red, red)){.bg-success\/30{background-color:color-mix(in oklab, var(--color-success) 30%, transparent)}}.bg-success\/60{background-color:#4ade8099}@supports (color:color-mix(in lab, red, red)){.bg-success\/60{background-color:color-mix(in oklab, var(--color-success) 60%, transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-surface-hover{background-color:var(--color-surface-hover)}.bg-surface-hover\/10{background-color:#2925241a}@supports (color:color-mix(in lab, red, red)){.bg-surface-hover\/10{background-color:color-mix(in oklab, var(--color-surface-hover) 10%, transparent)}}.bg-surface-hover\/20{background-color:#29252433}@supports (color:color-mix(in lab, red, red)){.bg-surface-hover\/20{background-color:color-mix(in oklab, var(--color-surface-hover) 20%, transparent)}}.bg-surface-hover\/30{background-color:#2925244d}@supports (color:color-mix(in lab, red, red)){.bg-surface-hover\/30{background-color:color-mix(in oklab, var(--color-surface-hover) 30%, transparent)}}.bg-surface-hover\/40{background-color:#29252466}@supports (color:color-mix(in lab, red, red)){.bg-surface-hover\/40{background-color:color-mix(in oklab, var(--color-surface-hover) 40%, transparent)}}.bg-surface-hover\/50{background-color:#29252480}@supports (color:color-mix(in lab, red, red)){.bg-surface-hover\/50{background-color:color-mix(in oklab, var(--color-surface-hover) 50%, transparent)}}.bg-surface-hover\/80{background-color:#292524cc}@supports (color:color-mix(in lab, red, red)){.bg-surface-hover\/80{background-color:color-mix(in oklab, var(--color-surface-hover) 80%, transparent)}}.bg-surface\/30{background-color:#1c19174d}@supports (color:color-mix(in lab, red, red)){.bg-surface\/30{background-color:color-mix(in oklab, var(--color-surface) 30%, transparent)}}.bg-surface\/40{background-color:#1c191766}@supports (color:color-mix(in lab, red, red)){.bg-surface\/40{background-color:color-mix(in oklab, var(--color-surface) 40%, transparent)}}.bg-surface\/50{background-color:#1c191780}@supports (color:color-mix(in lab, red, red)){.bg-surface\/50{background-color:color-mix(in oklab, var(--color-surface) 50%, transparent)}}.bg-surface\/60{background-color:#1c191799}@supports (color:color-mix(in lab, red, red)){.bg-surface\/60{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.bg-surface\/80{background-color:#1c1917cc}@supports (color:color-mix(in lab, red, red)){.bg-surface\/80{background-color:color-mix(in oklab, var(--color-surface) 80%, transparent)}}.bg-surface\/95{background-color:#1c1917f2}@supports (color:color-mix(in lab, red, red)){.bg-surface\/95{background-color:color-mix(in oklab, var(--color-surface) 95%, transparent)}}.bg-transparent{background-color:#0000}.bg-violet-500{background-color:var(--color-violet-500)}.bg-violet-500\/10{background-color:#8d54ff1a}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/10{background-color:color-mix(in oklab, var(--color-violet-500) 10%, transparent)}}.bg-violet-500\/12{background-color:#8d54ff1f}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/12{background-color:color-mix(in oklab, var(--color-violet-500) 12%, transparent)}}.bg-violet-500\/15{background-color:#8d54ff26}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/15{background-color:color-mix(in oklab, var(--color-violet-500) 15%, transparent)}}.bg-violet-500\/20{background-color:#8d54ff33}@supports (color:color-mix(in lab, red, red)){.bg-violet-500\/20{background-color:color-mix(in oklab, var(--color-violet-500) 20%, transparent)}}.bg-warning{background-color:var(--color-warning)}.bg-warning\/5{background-color:#fbbf240d}@supports (color:color-mix(in lab, red, red)){.bg-warning\/5{background-color:color-mix(in oklab, var(--color-warning) 5%, transparent)}}.bg-warning\/8{background-color:#fbbf2414}@supports (color:color-mix(in lab, red, red)){.bg-warning\/8{background-color:color-mix(in oklab, var(--color-warning) 8%, transparent)}}.bg-warning\/10{background-color:#fbbf241a}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--color-warning) 10%, transparent)}}.bg-warning\/15{background-color:#fbbf2426}@supports (color:color-mix(in lab, red, red)){.bg-warning\/15{background-color:color-mix(in oklab, var(--color-warning) 15%, transparent)}}.bg-warning\/20{background-color:#fbbf2433}@supports (color:color-mix(in lab, red, red)){.bg-warning\/20{background-color:color-mix(in oklab, var(--color-warning) 20%, transparent)}}.bg-warning\/90{background-color:#fbbf24e6}@supports (color:color-mix(in lab, red, red)){.bg-warning\/90{background-color:color-mix(in oklab, var(--color-warning) 90%, transparent)}}.bg-warning\/\[0\.03\]{background-color:#fbbf2408}@supports (color:color-mix(in lab, red, red)){.bg-warning\/\[0\.03\]{background-color:color-mix(in oklab, var(--color-warning) 3%, transparent)}}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.bg-white\/10{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.bg-white\/15{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.bg-white\/15{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-white\/50{background-color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.bg-white\/50{background-color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.bg-yellow-500\/5{background-color:#edb2000d}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/5{background-color:color-mix(in oklab, var(--color-yellow-500) 5%, transparent)}}.bg-yellow-500\/10{background-color:#edb2001a}@supports (color:color-mix(in lab, red, red)){.bg-yellow-500\/10{background-color:color-mix(in oklab, var(--color-yellow-500) 10%, transparent)}}.bg-zinc-50{background-color:var(--color-zinc-50)}.bg-zinc-300{background-color:var(--color-zinc-300)}.bg-zinc-500{background-color:var(--color-zinc-500)}.bg-zinc-600{background-color:var(--color-zinc-600)}.bg-zinc-700{background-color:var(--color-zinc-700)}.bg-zinc-800{background-color:var(--color-zinc-800)}.bg-zinc-800\/80{background-color:#27272acc}@supports (color:color-mix(in lab, red, red)){.bg-zinc-800\/80{background-color:color-mix(in oklab, var(--color-zinc-800) 80%, transparent)}}.bg-zinc-900{background-color:var(--color-zinc-900)}.bg-zinc-900\/90{background-color:#18181be6}@supports (color:color-mix(in lab, red, red)){.bg-zinc-900\/90{background-color:color-mix(in oklab, var(--color-zinc-900) 90%, transparent)}}.bg-zinc-900\/95{background-color:#18181bf2}@supports (color:color-mix(in lab, red, red)){.bg-zinc-900\/95{background-color:color-mix(in oklab, var(--color-zinc-900) 95%, transparent)}}.bg-zinc-950{background-color:var(--color-zinc-950)}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-black\/80{--tw-gradient-from:#000c}@supports (color:color-mix(in lab, red, red)){.from-black\/80{--tw-gradient-from:color-mix(in oklab, var(--color-black) 80%, transparent)}}.from-black\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-700\/40{--tw-gradient-from:#00795666}@supports (color:color-mix(in lab, red, red)){.from-emerald-700\/40{--tw-gradient-from:color-mix(in oklab, var(--color-emerald-700) 40%, transparent)}}.from-emerald-700\/40{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary{--tw-gradient-from:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-sky-200{--tw-gradient-from:var(--color-sky-200);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface-hover{--tw-gradient-from:var(--color-surface-hover);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-surface\/50{--tw-gradient-from:#1c191780}@supports (color:color-mix(in lab, red, red)){.from-surface\/50{--tw-gradient-from:color-mix(in oklab, var(--color-surface) 50%, transparent)}}.from-surface\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-transparent{--tw-gradient-via:transparent;--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-emerald-900\/30{--tw-gradient-to:#004e3b4d}@supports (color:color-mix(in lab, red, red)){.to-emerald-900\/30{--tw-gradient-to:color-mix(in oklab, var(--color-emerald-900) 30%, transparent)}}.to-emerald-900\/30{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-primary\/80{--tw-gradient-to:#f59e42cc}@supports (color:color-mix(in lab, red, red)){.to-primary\/80{--tw-gradient-to:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.to-primary\/80{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-sky-50{--tw-gradient-to:var(--color-sky-50);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-surface{--tw-gradient-to:var(--color-surface);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-surface\/50{--tw-gradient-to:#1c191780}@supports (color:color-mix(in lab, red, red)){.to-surface\/50{--tw-gradient-to:color-mix(in oklab, var(--color-surface) 50%, transparent)}}.to-surface\/50{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-foreground-subtle{fill:var(--color-foreground-subtle)}.stroke-\[2\.5\]{stroke-width:2.5px}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.p-0{padding:0}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:var(--spacing)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\.5{padding:calc(var(--spacing) * 3.5)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:0}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0{padding-block:0}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-14{padding-block:calc(var(--spacing) * 14)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.py-px{padding-block:1px}.pt-0{padding-top:0}.pt-0\.5{padding-top:calc(var(--spacing) * .5)}.pt-1{padding-top:var(--spacing)}.pt-1\.5{padding-top:calc(var(--spacing) * 1.5)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pt-\[calc\(1rem\+env\(safe-area-inset-top\)\)\]{padding-top:calc(1rem + env(safe-area-inset-top))}.pt-\[env\(safe-area-inset-top\)\]{padding-top:env(safe-area-inset-top)}.pr-1{padding-right:var(--spacing)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-2\.5{padding-right:calc(var(--spacing) * 2.5)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-5{padding-right:calc(var(--spacing) * 5)}.pr-6{padding-right:calc(var(--spacing) * 6)}.pr-7{padding-right:calc(var(--spacing) * 7)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-9{padding-right:calc(var(--spacing) * 9)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-0\.5{padding-bottom:calc(var(--spacing) * .5)}.pb-1{padding-bottom:var(--spacing)}.pb-1\.5{padding-bottom:calc(var(--spacing) * 1.5)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pb-\[calc\(1rem\+env\(safe-area-inset-bottom\)\)\]{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}.pb-\[env\(safe-area-inset-bottom\)\]{padding-bottom:env(safe-area-inset-bottom)}.pb-\[max\(0\.5rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.5rem, env(safe-area-inset-bottom))}.pb-\[max\(0\.75rem\,env\(safe-area-inset-bottom\)\)\]{padding-bottom:max(.75rem, env(safe-area-inset-bottom))}.pl-1{padding-left:var(--spacing)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2{padding-left:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-6{padding-left:calc(var(--spacing) * 6)}.pl-7{padding-left:calc(var(--spacing) * 7)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-11{padding-left:calc(var(--spacing) * 11)}.pl-16{padding-left:calc(var(--spacing) * 16)}.pl-\[4\.75rem\]{padding-left:4.75rem}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-middle{vertical-align:middle}.align-text-bottom{vertical-align:text-bottom}.align-top{vertical-align:top}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[7px\]{font-size:7px}.text-\[8\.5px\]{font-size:8.5px}.text-\[8px\]{font-size:8px}.text-\[9\.5px\]{font-size:9.5px}.text-\[9px\]{font-size:9px}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.leading-3{--tw-leading:calc(var(--spacing) * 3);line-height:calc(var(--spacing) * 3)}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-\[1\.25\]{--tw-leading:1.25;line-height:1.25}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-normal{--tw-tracking:var(--tracking-normal);letter-spacing:var(--tracking-normal)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-100{color:var(--color-amber-100)}.text-amber-300{color:var(--color-amber-300)}.text-amber-300\/90{color:#ffd236e6}@supports (color:color-mix(in lab, red, red)){.text-amber-300\/90{color:color-mix(in oklab, var(--color-amber-300) 90%, transparent)}}.text-amber-400{color:var(--color-amber-400)}.text-amber-400\/80{color:#fcbb00cc}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/80{color:color-mix(in oklab, var(--color-amber-400) 80%, transparent)}}.text-amber-400\/90{color:#fcbb00e6}@supports (color:color-mix(in lab, red, red)){.text-amber-400\/90{color:color-mix(in oklab, var(--color-amber-400) 90%, transparent)}}.text-amber-500{color:var(--color-amber-500)}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-amber-700\/80{color:#b75000cc}@supports (color:color-mix(in lab, red, red)){.text-amber-700\/80{color:color-mix(in oklab, var(--color-amber-700) 80%, transparent)}}.text-amber-800{color:var(--color-amber-800)}.text-amber-950{color:var(--color-amber-950)}.text-background{color:var(--color-background)}.text-black{color:var(--color-black)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-400\/50{color:#54a2ff80}@supports (color:color-mix(in lab, red, red)){.text-blue-400\/50{color:color-mix(in oklab, var(--color-blue-400) 50%, transparent)}}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-950{color:var(--color-blue-950)}.text-border{color:var(--color-border)}.text-cyan-400{color:var(--color-cyan-400)}.text-cyan-500{color:var(--color-cyan-500)}.text-cyan-600{color:var(--color-cyan-600)}.text-cyan-700{color:var(--color-cyan-700)}.text-cyan-950{color:var(--color-cyan-950)}.text-danger{color:var(--color-danger)}.text-danger\/80{color:#f87171cc}@supports (color:color-mix(in lab, red, red)){.text-danger\/80{color:color-mix(in oklab, var(--color-danger) 80%, transparent)}}.text-emerald-200{color:var(--color-emerald-200)}.text-emerald-300{color:var(--color-emerald-300)}.text-emerald-400{color:var(--color-emerald-400)}.text-emerald-500{color:var(--color-emerald-500)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-950{color:var(--color-emerald-950)}.text-foreground{color:var(--color-foreground)}.text-foreground-disabled{color:var(--color-foreground-disabled)}.text-foreground-muted{color:var(--color-foreground-muted)}.text-foreground-subtle{color:var(--color-foreground-subtle)}.text-foreground-subtle\/25{color:#78716c40}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/25{color:color-mix(in oklab, var(--color-foreground-subtle) 25%, transparent)}}.text-foreground-subtle\/30{color:#78716c4d}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/30{color:color-mix(in oklab, var(--color-foreground-subtle) 30%, transparent)}}.text-foreground-subtle\/40{color:#78716c66}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/40{color:color-mix(in oklab, var(--color-foreground-subtle) 40%, transparent)}}.text-foreground-subtle\/50{color:#78716c80}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/50{color:color-mix(in oklab, var(--color-foreground-subtle) 50%, transparent)}}.text-foreground-subtle\/60{color:#78716c99}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/60{color:color-mix(in oklab, var(--color-foreground-subtle) 60%, transparent)}}.text-foreground-subtle\/70{color:#78716cb3}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/70{color:color-mix(in oklab, var(--color-foreground-subtle) 70%, transparent)}}.text-foreground-subtle\/80{color:#78716ccc}@supports (color:color-mix(in lab, red, red)){.text-foreground-subtle\/80{color:color-mix(in oklab, var(--color-foreground-subtle) 80%, transparent)}}.text-foreground\/70{color:#fafaf9b3}@supports (color:color-mix(in lab, red, red)){.text-foreground\/70{color:color-mix(in oklab, var(--color-foreground) 70%, transparent)}}.text-foreground\/80{color:#fafaf9cc}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab, var(--color-foreground) 80%, transparent)}}.text-foreground\/90{color:#fafaf9e6}@supports (color:color-mix(in lab, red, red)){.text-foreground\/90{color:color-mix(in oklab, var(--color-foreground) 90%, transparent)}}.text-fuchsia-600{color:var(--color-fuchsia-600)}.text-fuchsia-950{color:var(--color-fuchsia-950)}.text-gray-200{color:var(--color-gray-200)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-700{color:var(--color-gray-700)}.text-green-400{color:var(--color-green-400)}.text-green-400\/50{color:#05df7280}@supports (color:color-mix(in lab, red, red)){.text-green-400\/50{color:color-mix(in oklab, var(--color-green-400) 50%, transparent)}}.text-green-700{color:var(--color-green-700)}.text-green-950{color:var(--color-green-950)}.text-indigo-400{color:var(--color-indigo-400)}.text-indigo-700{color:var(--color-indigo-700)}.text-indigo-950{color:var(--color-indigo-950)}.text-info{color:var(--color-info)}.text-orange-300{color:var(--color-orange-300)}.text-orange-400{color:var(--color-orange-400)}.text-pink-400{color:var(--color-pink-400)}.text-pink-500{color:var(--color-pink-500)}.text-primary{color:var(--color-primary)}.text-primary-foreground{color:var(--color-primary-foreground)}.text-primary\/70{color:#f59e42b3}@supports (color:color-mix(in lab, red, red)){.text-primary\/70{color:color-mix(in oklab, var(--color-primary) 70%, transparent)}}.text-purple-400{color:var(--color-purple-400)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-950{color:var(--color-purple-950)}.text-red-300{color:var(--color-red-300)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-red-950{color:var(--color-red-950)}.text-rose-100{color:var(--color-rose-100)}.text-rose-300{color:var(--color-rose-300)}.text-rose-400{color:var(--color-rose-400)}.text-sky-300\/80{color:#77d4ffcc}@supports (color:color-mix(in lab, red, red)){.text-sky-300\/80{color:color-mix(in oklab, var(--color-sky-300) 80%, transparent)}}.text-sky-400{color:var(--color-sky-400)}.text-sky-500{color:var(--color-sky-500)}.text-sky-700{color:var(--color-sky-700)}.text-slate-600{color:var(--color-slate-600)}.text-slate-950{color:var(--color-slate-950)}.text-success{color:var(--color-success)}.text-violet-400{color:var(--color-violet-400)}.text-violet-500{color:var(--color-violet-500)}.text-violet-700{color:var(--color-violet-700)}.text-warning{color:var(--color-warning)}.text-warning\/70{color:#fbbf24b3}@supports (color:color-mix(in lab, red, red)){.text-warning\/70{color:color-mix(in oklab, var(--color-warning) 70%, transparent)}}.text-warning\/80{color:#fbbf24cc}@supports (color:color-mix(in lab, red, red)){.text-warning\/80{color:color-mix(in oklab, var(--color-warning) 80%, transparent)}}.text-warning\/90{color:#fbbf24e6}@supports (color:color-mix(in lab, red, red)){.text-warning\/90{color:color-mix(in oklab, var(--color-warning) 90%, transparent)}}.text-white{color:var(--color-white)}.text-white\/30{color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.text-white\/30{color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.text-white\/40{color:#fff6}@supports (color:color-mix(in lab, red, red)){.text-white\/40{color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.text-white\/45{color:#ffffff73}@supports (color:color-mix(in lab, red, red)){.text-white\/45{color:color-mix(in oklab, var(--color-white) 45%, transparent)}}.text-white\/50{color:#ffffff80}@supports (color:color-mix(in lab, red, red)){.text-white\/50{color:color-mix(in oklab, var(--color-white) 50%, transparent)}}.text-white\/55{color:#ffffff8c}@supports (color:color-mix(in lab, red, red)){.text-white\/55{color:color-mix(in oklab, var(--color-white) 55%, transparent)}}.text-white\/60{color:#fff9}@supports (color:color-mix(in lab, red, red)){.text-white\/60{color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.text-white\/80{color:#fffc}@supports (color:color-mix(in lab, red, red)){.text-white\/80{color:color-mix(in oklab, var(--color-white) 80%, transparent)}}.text-white\/85{color:#ffffffd9}@supports (color:color-mix(in lab, red, red)){.text-white\/85{color:color-mix(in oklab, var(--color-white) 85%, transparent)}}.text-white\/90{color:#ffffffe6}@supports (color:color-mix(in lab, red, red)){.text-white\/90{color:color-mix(in oklab, var(--color-white) 90%, transparent)}}.text-yellow-400{color:var(--color-yellow-400)}.text-zinc-100{color:var(--color-zinc-100)}.text-zinc-300{color:var(--color-zinc-300)}.text-zinc-400{color:var(--color-zinc-400)}.text-zinc-500{color:var(--color-zinc-500)}.text-zinc-700{color:var(--color-zinc-700)}.capitalize{text-transform:capitalize}.lowercase{text-transform:lowercase}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.decoration-foreground-subtle\/50{text-decoration-color:#78716c80}@supports (color:color-mix(in lab, red, red)){.decoration-foreground-subtle\/50{-webkit-text-decoration-color:color-mix(in oklab, var(--color-foreground-subtle) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-foreground-subtle) 50%, transparent);-webkit-text-decoration-color:color-mix(in oklab, var(--color-foreground-subtle) 50%, transparent);text-decoration-color:color-mix(in oklab, var(--color-foreground-subtle) 50%, transparent)}}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.caret-emerald-400{caret-color:var(--color-emerald-400)}.accent-green-500{accent-color:var(--color-green-500)}.accent-primary{accent-color:var(--color-primary)}.accent-violet-500{accent-color:var(--color-violet-500)}.accent-warning{accent-color:var(--color-warning)}.\[color-scheme\:light\]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.opacity-0{opacity:0}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-45{opacity:.45}.opacity-50{opacity:.5}.opacity-55{opacity:.55}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.opacity-100{opacity:1}.opacity-\[0\.45\]{opacity:.45}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_9999px_rgba\(0\,0\,0\,0\.28\)\]{--tw-shadow:0 0 0 9999px var(--tw-shadow-color,#00000047);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_6px\]{--tw-shadow:0 0 6px var(--tw-shadow-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[inset_3px_0_0_var\(--color-primary\)\]{--tw-shadow:inset 3px 0 0 var(--tw-shadow-color,var(--color-primary));box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-amber-500{--tw-shadow-color:#f99c00}@supports (color:lab(0% 0 0)){.shadow-amber-500{--tw-shadow-color:lab(72.7183% 31.8672 97.9407)}}@supports (color:color-mix(in lab, red, red)){.shadow-amber-500{--tw-shadow-color:color-mix(in oklab, var(--color-amber-500) var(--tw-shadow-alpha), transparent)}}.shadow-black\/10{--tw-shadow-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.shadow-black\/10{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 10%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/30{--tw-shadow-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.shadow-black\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-black\/40{--tw-shadow-color:#0006}@supports (color:color-mix(in lab, red, red)){.shadow-black\/40{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-black) 40%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-danger\/30{--tw-shadow-color:#f871714d}@supports (color:color-mix(in lab, red, red)){.shadow-danger\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-danger) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/5{--tw-shadow-color:#f59e420d}@supports (color:color-mix(in lab, red, red)){.shadow-primary\/5{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-primary) 5%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/20{--tw-shadow-color:#f59e4233}@supports (color:color-mix(in lab, red, red)){.shadow-primary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-primary) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-primary\/30{--tw-shadow-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.shadow-primary\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-primary) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-success\/20{--tw-shadow-color:#4ade8033}@supports (color:color-mix(in lab, red, red)){.shadow-success\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-success) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.shadow-warning\/30{--tw-shadow-color:#fbbf244d}@supports (color:color-mix(in lab, red, red)){.shadow-warning\/30{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-warning) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-amber-400{--tw-ring-color:var(--color-amber-400)}.ring-black\/5{--tw-ring-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.ring-black\/5{--tw-ring-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.ring-border{--tw-ring-color:var(--color-border)}.ring-current{--tw-ring-color:currentcolor}.ring-emerald-500\/25{--tw-ring-color:#00bb7f40}@supports (color:color-mix(in lab, red, red)){.ring-emerald-500\/25{--tw-ring-color:color-mix(in oklab, var(--color-emerald-500) 25%, transparent)}}.ring-foreground-subtle\/60{--tw-ring-color:#78716c99}@supports (color:color-mix(in lab, red, red)){.ring-foreground-subtle\/60{--tw-ring-color:color-mix(in oklab, var(--color-foreground-subtle) 60%, transparent)}}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-primary\/20{--tw-ring-color:#f59e4233}@supports (color:color-mix(in lab, red, red)){.ring-primary\/20{--tw-ring-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.ring-primary\/30{--tw-ring-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.ring-primary\/30{--tw-ring-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.ring-primary\/40{--tw-ring-color:#f59e4266}@supports (color:color-mix(in lab, red, red)){.ring-primary\/40{--tw-ring-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.ring-primary\/60{--tw-ring-color:#f59e4299}@supports (color:color-mix(in lab, red, red)){.ring-primary\/60{--tw-ring-color:color-mix(in oklab, var(--color-primary) 60%, transparent)}}.ring-sky-500\/25{--tw-ring-color:#00a5ef40}@supports (color:color-mix(in lab, red, red)){.ring-sky-500\/25{--tw-ring-color:color-mix(in oklab, var(--color-sky-500) 25%, transparent)}}.ring-violet-500\/25{--tw-ring-color:#8d54ff40}@supports (color:color-mix(in lab, red, red)){.ring-violet-500\/25{--tw-ring-color:color-mix(in oklab, var(--color-violet-500) 25%, transparent)}}.ring-white\/20{--tw-ring-color:#fff3}@supports (color:color-mix(in lab, red, red)){.ring-white\/20{--tw-ring-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.ring-white\/25{--tw-ring-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.ring-white\/25{--tw-ring-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-2xl{--tw-blur:blur(var(--blur-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-md{--tw-backdrop-blur:blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[width\]{transition-property:width;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-all{-webkit-user-select:all;user-select:all}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.\[benchmark\:audio\]{benchmark:audio}.\[benchmark\:image\]{benchmark:image}.\[model-studio\:convert\]{model-studio:convert}.\[openvino\:gpu\]{openvino:gpu}.block-5{block-size:calc(var(--spacing) * 5)}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:bg-black\/30:is(:where(.group):hover *){background-color:#0000004d}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-black\/30:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:#f59e4233}@supports (color:color-mix(in lab, red, red)){.group-hover\:bg-primary\/20:is(:where(.group):hover *){background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.group-hover\:bg-surface-hover:is(:where(.group):hover *){background-color:var(--color-surface-hover)}.group-hover\:text-foreground:is(:where(.group):hover *){color:var(--color-foreground)}.group-hover\:text-foreground-subtle:is(:where(.group):hover *){color:var(--color-foreground-subtle)}.group-hover\:text-primary\/60:is(:where(.group):hover *){color:#f59e4299}@supports (color:color-mix(in lab, red, red)){.group-hover\:text-primary\/60:is(:where(.group):hover *){color:color-mix(in oklab, var(--color-primary) 60%, transparent)}}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\/sort\:opacity-30:is(:where(.group\/sort):hover *){opacity:.3}}.placeholder\:text-foreground-disabled::placeholder{color:var(--color-foreground-disabled)}.placeholder\:text-foreground-subtle::placeholder{color:var(--color-foreground-subtle)}.placeholder\:text-foreground-subtle\/60::placeholder{color:#78716c99}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-foreground-subtle\/60::placeholder{color:color-mix(in oklab, var(--color-foreground-subtle) 60%, transparent)}}.placeholder\:text-foreground-subtle\/70::placeholder{color:#78716cb3}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-foreground-subtle\/70::placeholder{color:color-mix(in oklab, var(--color-foreground-subtle) 70%, transparent)}}.placeholder\:text-white\/40::placeholder{color:#fff6}@supports (color:color-mix(in lab, red, red)){.placeholder\:text-white\/40::placeholder{color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.placeholder\:text-zinc-600::placeholder{color:var(--color-zinc-600)}.backdrop\:bg-black\/50::backdrop{background-color:#00000080}@supports (color:color-mix(in lab, red, red)){.backdrop\:bg-black\/50::backdrop{background-color:color-mix(in oklab, var(--color-black) 50%, transparent)}}.backdrop\:backdrop-blur-sm::backdrop{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.first\:mt-0:first-child{margin-top:0}.first\:border-t-0:first-child{border-top-style:var(--tw-border-style);border-top-width:0}.last\:mb-0:last-child{margin-bottom:0}.last\:border-0:last-child{border-style:var(--tw-border-style);border-width:0}.last\:border-b-0:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.read-only\:cursor-not-allowed:read-only{cursor:not-allowed}.read-only\:opacity-60:read-only{opacity:.6}.empty\:hidden:empty{display:none}.focus-within\:border-primary:focus-within{border-color:var(--color-primary)}.focus-within\:ring-1:focus-within{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-within\:ring-primary\/30:focus-within{--tw-ring-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.focus-within\:ring-primary\/30:focus-within{--tw-ring-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:truncate:hover{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.hover\:border-blue-500\/30:hover{border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-blue-500\/30:hover{border-color:color-mix(in oklab, var(--color-blue-500) 30%, transparent)}}.hover\:border-border:hover{border-color:var(--color-border)}.hover\:border-danger\/40:hover{border-color:#f8717166}@supports (color:color-mix(in lab, red, red)){.hover\:border-danger\/40:hover{border-color:color-mix(in oklab, var(--color-danger) 40%, transparent)}}.hover\:border-danger\/50:hover{border-color:#f8717180}@supports (color:color-mix(in lab, red, red)){.hover\:border-danger\/50:hover{border-color:color-mix(in oklab, var(--color-danger) 50%, transparent)}}.hover\:border-foreground-subtle:hover{border-color:var(--color-foreground-subtle)}.hover\:border-foreground-subtle\/30:hover{border-color:#78716c4d}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground-subtle\/30:hover{border-color:color-mix(in oklab, var(--color-foreground-subtle) 30%, transparent)}}.hover\:border-foreground-subtle\/40:hover{border-color:#78716c66}@supports (color:color-mix(in lab, red, red)){.hover\:border-foreground-subtle\/40:hover{border-color:color-mix(in oklab, var(--color-foreground-subtle) 40%, transparent)}}.hover\:border-primary:hover{border-color:var(--color-primary)}.hover\:border-primary\/30:hover{border-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/30:hover{border-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.hover\:border-primary\/40:hover{border-color:#f59e4266}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.hover\:border-primary\/50:hover{border-color:#f59e4280}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.hover\:border-primary\/60:hover{border-color:#f59e4299}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/60:hover{border-color:color-mix(in oklab, var(--color-primary) 60%, transparent)}}.hover\:border-red-400\/40:hover{border-color:#ff656866}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-400\/40:hover{border-color:color-mix(in oklab, var(--color-red-400) 40%, transparent)}}.hover\:border-red-500\/30:hover{border-color:#fb2c364d}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/30:hover{border-color:color-mix(in oklab, var(--color-red-500) 30%, transparent)}}.hover\:border-red-500\/40:hover{border-color:#fb2c3666}@supports (color:color-mix(in lab, red, red)){.hover\:border-red-500\/40:hover{border-color:color-mix(in oklab, var(--color-red-500) 40%, transparent)}}.hover\:border-white\/40:hover{border-color:#fff6}@supports (color:color-mix(in lab, red, red)){.hover\:border-white\/40:hover{border-color:color-mix(in oklab, var(--color-white) 40%, transparent)}}.hover\:bg-amber-300:hover{background-color:var(--color-amber-300)}.hover\:bg-amber-500\/10:hover{background-color:#f99c001a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/10:hover{background-color:color-mix(in oklab, var(--color-amber-500) 10%, transparent)}}.hover\:bg-amber-500\/20:hover{background-color:#f99c0033}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/20:hover{background-color:color-mix(in oklab, var(--color-amber-500) 20%, transparent)}}.hover\:bg-amber-500\/25:hover{background-color:#f99c0040}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/25:hover{background-color:color-mix(in oklab, var(--color-amber-500) 25%, transparent)}}.hover\:bg-amber-500\/30:hover{background-color:#f99c004d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-amber-500\/30:hover{background-color:color-mix(in oklab, var(--color-amber-500) 30%, transparent)}}.hover\:bg-background\/60:hover{background-color:#0c0a0999}@supports (color:color-mix(in lab, red, red)){.hover\:bg-background\/60:hover{background-color:color-mix(in oklab, var(--color-background) 60%, transparent)}}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab, var(--color-black) 70%, transparent)}}.hover\:bg-black\/75:hover{background-color:#000000bf}@supports (color:color-mix(in lab, red, red)){.hover\:bg-black\/75:hover{background-color:color-mix(in oklab, var(--color-black) 75%, transparent)}}.hover\:bg-blue-500\/10:hover{background-color:#3080ff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-500\/10:hover{background-color:color-mix(in oklab, var(--color-blue-500) 10%, transparent)}}.hover\:bg-blue-500\/20:hover{background-color:#3080ff33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-blue-500\/20:hover{background-color:color-mix(in oklab, var(--color-blue-500) 20%, transparent)}}.hover\:bg-border\/50:hover{background-color:#29252480}@supports (color:color-mix(in lab, red, red)){.hover\:bg-border\/50:hover{background-color:color-mix(in oklab, var(--color-border) 50%, transparent)}}.hover\:bg-current\/10:hover{background-color:currentColor}@supports (color:color-mix(in lab, red, red)){.hover\:bg-current\/10:hover{background-color:color-mix(in oklab, currentcolor 10%, transparent)}}.hover\:bg-danger:hover{background-color:var(--color-danger)}.hover\:bg-danger\/10:hover{background-color:#f871711a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/10:hover{background-color:color-mix(in oklab, var(--color-danger) 10%, transparent)}}.hover\:bg-danger\/15:hover{background-color:#f8717126}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/15:hover{background-color:color-mix(in oklab, var(--color-danger) 15%, transparent)}}.hover\:bg-danger\/20:hover{background-color:#f8717133}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/20:hover{background-color:color-mix(in oklab, var(--color-danger) 20%, transparent)}}.hover\:bg-danger\/90:hover{background-color:#f87171e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-danger\/90:hover{background-color:color-mix(in oklab, var(--color-danger) 90%, transparent)}}.hover\:bg-emerald-500\/20:hover{background-color:#00bb7f33}@supports (color:color-mix(in lab, red, red)){.hover\:bg-emerald-500\/20:hover{background-color:color-mix(in oklab, var(--color-emerald-500) 20%, transparent)}}.hover\:bg-foreground-subtle\/5:hover{background-color:#78716c0d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground-subtle\/5:hover{background-color:color-mix(in oklab, var(--color-foreground-subtle) 5%, transparent)}}.hover\:bg-foreground-subtle\/10:hover{background-color:#78716c1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-foreground-subtle\/10:hover{background-color:color-mix(in oklab, var(--color-foreground-subtle) 10%, transparent)}}.hover\:bg-orange-500\/20:hover{background-color:#fe6e0033}@supports (color:color-mix(in lab, red, red)){.hover\:bg-orange-500\/20:hover{background-color:color-mix(in oklab, var(--color-orange-500) 20%, transparent)}}.hover\:bg-orange-600:hover{background-color:var(--color-orange-600)}.hover\:bg-primary:hover{background-color:var(--color-primary)}.hover\:bg-primary\/5:hover{background-color:#f59e420d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/5:hover{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.hover\:bg-primary\/10:hover{background-color:#f59e421a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/10:hover{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.hover\:bg-primary\/15:hover{background-color:#f59e4226}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/15:hover{background-color:color-mix(in oklab, var(--color-primary) 15%, transparent)}}.hover\:bg-primary\/20:hover{background-color:#f59e4233}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/20:hover{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.hover\:bg-primary\/25:hover{background-color:#f59e4240}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/25:hover{background-color:color-mix(in oklab, var(--color-primary) 25%, transparent)}}.hover\:bg-primary\/40:hover{background-color:#f59e4266}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/40:hover{background-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.hover\:bg-primary\/90:hover{background-color:#f59e42e6}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--color-primary) 90%, transparent)}}.hover\:bg-red-400\/20:hover{background-color:#ff656833}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-400\/20:hover{background-color:color-mix(in oklab, var(--color-red-400) 20%, transparent)}}.hover\:bg-red-500\/10:hover{background-color:#fb2c361a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/10:hover{background-color:color-mix(in oklab, var(--color-red-500) 10%, transparent)}}.hover\:bg-red-500\/20:hover{background-color:#fb2c3633}@supports (color:color-mix(in lab, red, red)){.hover\:bg-red-500\/20:hover{background-color:color-mix(in oklab, var(--color-red-500) 20%, transparent)}}.hover\:bg-red-600:hover{background-color:var(--color-red-600)}.hover\:bg-success\/10:hover{background-color:#4ade801a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/10:hover{background-color:color-mix(in oklab, var(--color-success) 10%, transparent)}}.hover\:bg-success\/15:hover{background-color:#4ade8026}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/15:hover{background-color:color-mix(in oklab, var(--color-success) 15%, transparent)}}.hover\:bg-success\/20:hover{background-color:#4ade8033}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/20:hover{background-color:color-mix(in oklab, var(--color-success) 20%, transparent)}}.hover\:bg-success\/25:hover{background-color:#4ade8040}@supports (color:color-mix(in lab, red, red)){.hover\:bg-success\/25:hover{background-color:color-mix(in oklab, var(--color-success) 25%, transparent)}}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:bg-surface-hover:hover{background-color:var(--color-surface-hover)}.hover\:bg-surface-hover\/30:hover{background-color:#2925244d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-hover\/30:hover{background-color:color-mix(in oklab, var(--color-surface-hover) 30%, transparent)}}.hover\:bg-surface-hover\/40:hover{background-color:#29252466}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-hover\/40:hover{background-color:color-mix(in oklab, var(--color-surface-hover) 40%, transparent)}}.hover\:bg-surface-hover\/50:hover{background-color:#29252480}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-hover\/50:hover{background-color:color-mix(in oklab, var(--color-surface-hover) 50%, transparent)}}.hover\:bg-surface-hover\/70:hover{background-color:#292524b3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface-hover\/70:hover{background-color:color-mix(in oklab, var(--color-surface-hover) 70%, transparent)}}.hover\:bg-surface\/60:hover{background-color:#1c191799}@supports (color:color-mix(in lab, red, red)){.hover\:bg-surface\/60:hover{background-color:color-mix(in oklab, var(--color-surface) 60%, transparent)}}.hover\:bg-transparent:hover{background-color:#0000}.hover\:bg-warning\/10:hover{background-color:#fbbf241a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/10:hover{background-color:color-mix(in oklab, var(--color-warning) 10%, transparent)}}.hover\:bg-warning\/20:hover{background-color:#fbbf2433}@supports (color:color-mix(in lab, red, red)){.hover\:bg-warning\/20:hover{background-color:color-mix(in oklab, var(--color-warning) 20%, transparent)}}.hover\:bg-white\/10:hover{background-color:#ffffff1a}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/10:hover{background-color:color-mix(in oklab, var(--color-white) 10%, transparent)}}.hover\:bg-white\/15:hover{background-color:#ffffff26}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/15:hover{background-color:color-mix(in oklab, var(--color-white) 15%, transparent)}}.hover\:bg-white\/20:hover{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/20:hover{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.hover\:text-amber-500:hover{color:var(--color-amber-500)}.hover\:text-background:hover{color:var(--color-background)}.hover\:text-blue-400:hover{color:var(--color-blue-400)}.hover\:text-danger:hover{color:var(--color-danger)}.hover\:text-foreground:hover{color:var(--color-foreground)}.hover\:text-info\/80:hover{color:#60a5facc}@supports (color:color-mix(in lab, red, red)){.hover\:text-info\/80:hover{color:color-mix(in oklab, var(--color-info) 80%, transparent)}}.hover\:text-primary:hover{color:var(--color-primary)}.hover\:text-primary\/80:hover{color:#f59e42cc}@supports (color:color-mix(in lab, red, red)){.hover\:text-primary\/80:hover{color:color-mix(in oklab, var(--color-primary) 80%, transparent)}}.hover\:text-red-400:hover{color:var(--color-red-400)}.hover\:text-red-500:hover{color:var(--color-red-500)}.hover\:text-success\/80:hover{color:#4ade80cc}@supports (color:color-mix(in lab, red, red)){.hover\:text-success\/80:hover{color:color-mix(in oklab, var(--color-success) 80%, transparent)}}.hover\:text-warning:hover{color:var(--color-warning)}.hover\:text-white:hover{color:var(--color-white)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:opacity-100:hover{opacity:1}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:ring-2:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.hover\:shadow-primary\/30:hover{--tw-shadow-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.hover\:shadow-primary\/30:hover{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-primary) 30%, transparent) var(--tw-shadow-alpha), transparent)}}.hover\:ring-primary\/50:hover{--tw-ring-color:#f59e4280}@supports (color:color-mix(in lab, red, red)){.hover\:ring-primary\/50:hover{--tw-ring-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.hover\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:border-primary\/50:focus{border-color:#f59e4280}@supports (color:color-mix(in lab, red, red)){.focus\:border-primary\/50:focus{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-primary:focus{--tw-ring-color:var(--color-primary)}.focus\:ring-primary\/30:focus{--tw-ring-color:#f59e424d}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/30:focus{--tw-ring-color:color-mix(in oklab, var(--color-primary) 30%, transparent)}}.focus\:ring-primary\/40:focus{--tw-ring-color:#f59e4266}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/40:focus{--tw-ring-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.focus\:ring-primary\/50:focus{--tw-ring-color:#f59e4280}@supports (color:color-mix(in lab, red, red)){.focus\:ring-primary\/50:focus{--tw-ring-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-2:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-primary:focus-visible{--tw-ring-color:var(--color-primary)}.focus-visible\:ring-primary\/40:focus-visible{--tw-ring-color:#f59e4266}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-primary\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.focus-visible\:ring-primary\/50:focus-visible{--tw-ring-color:#f59e4280}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-primary\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.focus-visible\:outline:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-2:focus-visible{outline-style:var(--tw-outline-style);outline-width:2px}.focus-visible\:outline-offset-2:focus-visible{outline-offset:2px}.focus-visible\:outline-primary:focus-visible{outline-color:var(--color-primary)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-surface-hover\/80:active{background-color:#292524cc}@supports (color:color-mix(in lab, red, red)){.active\:bg-surface-hover\/80:active{background-color:color-mix(in oklab, var(--color-surface-hover) 80%, transparent)}}.active\:bg-white\/25:active{background-color:#ffffff40}@supports (color:color-mix(in lab, red, red)){.active\:bg-white\/25:active{background-color:color-mix(in oklab, var(--color-white) 25%, transparent)}}.active\:bg-white\/30:active{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.active\:bg-white\/30:active{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:shadow-none:disabled{--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}@media (hover:hover){.disabled\:hover\:border-border:disabled:hover{border-color:var(--color-border)}.disabled\:hover\:bg-surface:disabled:hover{background-color:var(--color-surface)}}@media (prefers-reduced-motion:reduce){.motion-reduce\:transition-none{transition-property:none}}@media (min-width:40rem){.sm\:col-span-2{grid-column:span 2/span 2}.sm\:col-start-auto{grid-column-start:auto}.sm\:row-start-auto{grid-row-start:auto}.sm\:ml-auto{margin-left:auto}.sm\:block{display:block}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:inline{display:inline}.sm\:table-cell{display:table-cell}.sm\:min-h-\[12rem\]{min-height:12rem}.sm\:w-14{width:calc(var(--spacing) * 14)}.sm\:w-28{width:calc(var(--spacing) * 28)}.sm\:w-32{width:calc(var(--spacing) * 32)}.sm\:w-40{width:calc(var(--spacing) * 40)}.sm\:w-44{width:calc(var(--spacing) * 44)}.sm\:w-48{width:calc(var(--spacing) * 48)}.sm\:w-52{width:calc(var(--spacing) * 52)}.sm\:w-56{width:calc(var(--spacing) * 56)}.sm\:w-auto{width:auto}.sm\:max-w-xs{max-width:var(--container-xs)}.sm\:min-w-\[200px\]{min-width:200px}.sm\:flex-1{flex:1}.sm\:shrink-0{flex-shrink:0}.sm\:basis-auto{flex-basis:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.sm\:grid-cols-\[max-content_minmax\(0\,1fr\)\]{grid-template-columns:max-content minmax(0,1fr)}.sm\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,2fr\)_minmax\(0\,1\.5fr\)\]{grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1.5fr)}.sm\:grid-cols-\[minmax\(0\,2fr\)_minmax\(0\,1fr\)_minmax\(0\,1fr\)_1\.75rem\]{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) 1.75rem}.sm\:grid-cols-\[minmax\(0\,16rem\)_1fr\]{grid-template-columns:minmax(0,16rem) 1fr}.sm\:grid-cols-subgrid{grid-template-columns:subgrid}.sm\:flex-row{flex-direction:row}.sm\:flex-nowrap{flex-wrap:nowrap}.sm\:items-center{align-items:center}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-3{gap:calc(var(--spacing) * 3)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-px{gap:1px}:where(.sm\:space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.sm\:gap-x-3{column-gap:calc(var(--spacing) * 3)}.sm\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sm\:overflow-hidden{overflow:hidden}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:border{border-style:var(--tw-border-style);border-width:1px}.sm\:border-border{border-color:var(--color-border)}.sm\:bg-border{background-color:var(--color-border)}.sm\:p-2\.5{padding:calc(var(--spacing) * 2.5)}.sm\:p-3{padding:calc(var(--spacing) * 3)}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-2{padding-inline:calc(var(--spacing) * 2)}.sm\:px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.sm\:px-3{padding-inline:calc(var(--spacing) * 3)}.sm\:px-4{padding-inline:calc(var(--spacing) * 4)}.sm\:px-5{padding-inline:calc(var(--spacing) * 5)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-1{padding-block:var(--spacing)}.sm\:py-2{padding-block:calc(var(--spacing) * 2)}.sm\:py-3{padding-block:calc(var(--spacing) * 3)}.sm\:pt-2{padding-top:calc(var(--spacing) * 2)}.sm\:pr-2{padding-right:calc(var(--spacing) * 2)}.sm\:text-right{text-align:right}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.sm\:text-\[11px\]{font-size:11px}.sm\:empty\:block:empty{display:block}}@media (min-width:48rem){.md\:absolute{position:absolute}.md\:sticky{position:sticky}.md\:top-1\/2{top:50%}.md\:right-auto{right:auto}.md\:bottom-auto{bottom:auto}.md\:left-0{left:0}.md\:left-1\/2{left:50%}.md\:z-\[1\]{z-index:1}.md\:col-span-2{grid-column:span 2/span 2}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:h-7{height:calc(var(--spacing) * 7)}.md\:h-8{height:calc(var(--spacing) * 8)}.md\:h-auto{height:auto}.md\:max-h-\[calc\(100dvh-2rem\)\]{max-height:calc(100dvh - 2rem)}.md\:max-h-\[calc\(100dvh-2rem-2\*max\(env\(safe-area-inset-top\)\,env\(safe-area-inset-bottom\)\)\)\]{max-height:calc(100dvh - 2rem - 2 * max(env(safe-area-inset-top), env(safe-area-inset-bottom)))}.md\:max-h-none{max-height:none}.md\:min-h-0{min-height:0}.md\:w-44{width:calc(var(--spacing) * 44)}.md\:w-56{width:calc(var(--spacing) * 56)}.md\:w-64{width:calc(var(--spacing) * 64)}.md\:w-72{width:calc(var(--spacing) * 72)}.md\:w-\[calc\(100vw-2rem\)\]{width:calc(100vw - 2rem)}.md\:w-auto{width:auto}.md\:w-full{width:100%}.md\:max-w-4xl{max-width:var(--container-4xl)}.md\:max-w-\[16rem\]{max-width:16rem}.md\:max-w-full{max-width:100%}.md\:max-w-lg{max-width:var(--container-lg)}.md\:max-w-md{max-width:var(--container-md)}.md\:max-w-sm{max-width:var(--container-sm)}.md\:max-w-xl{max-width:var(--container-xl)}.md\:flex-shrink-0{flex-shrink:0}.md\:-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-wrap{flex-wrap:wrap}.md\:gap-2\.5{gap:calc(var(--spacing) * 2.5)}.md\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.md\:overflow-x-visible{overflow-x:visible}.md\:rounded-lg{border-radius:var(--radius-lg)}.md\:border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.md\:border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.md\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.md\:pb-2{padding-bottom:calc(var(--spacing) * 2)}.md\:pb-4{padding-bottom:calc(var(--spacing) * 4)}.md\:text-left{text-align:left}@media (hover:hover){.md\:hover\:sticky:hover{position:sticky}}}@media (min-width:64rem){.lg\:flex{display:flex}.lg\:inline{display:inline}.lg\:table-cell{display:table-cell}.lg\:w-1\/3{width:33.3333%}.lg\:w-52{width:calc(var(--spacing) * 52)}.lg\:w-56{width:calc(var(--spacing) * 56)}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,260px\)_minmax\(0\,1fr\)\]{grid-template-columns:minmax(0,260px) minmax(0,1fr)}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:items-start{align-items:flex-start}.lg\:justify-between{justify-content:space-between}.lg\:p-4{padding:calc(var(--spacing) * 4)}}@media (min-width:80rem){.xl\:inline{display:inline}.xl\:table-cell{display:table-cell}.xl\:w-64{width:calc(var(--spacing) * 64)}.xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.xl\:grid-cols-\[minmax\(0\,1fr\)_minmax\(0\,380px\)\]{grid-template-columns:minmax(0,1fr) minmax(0,380px)}}@media (min-width:96rem){.\32 xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.\32 xl\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (width>=280px){.\@\[280px\]\:inline{display:inline}.\@\[280px\]\:px-3{padding-inline:calc(var(--spacing) * 3)}}@container (width>=420px){.\@\[420px\]\:flex{display:flex}.\@\[420px\]\:hidden{display:none}.\@\[420px\]\:flex-1{flex:1}.\@\[420px\]\:shrink-0{flex-shrink:0}.\@\[420px\]\:flex-row{flex-direction:row}.\@\[420px\]\:flex-nowrap{flex-wrap:nowrap}.\@\[420px\]\:items-center{align-items:center}.\@\[420px\]\:gap-2{gap:calc(var(--spacing) * 2)}.\@\[420px\]\:pl-0{padding-left:0}}@container (width>=480px){.\@\[480px\]\:col-span-2{grid-column:span 2/span 2}.\@\[480px\]\:inline-flex{display:inline-flex}.\@\[480px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container (width>=640px){.\@\[640px\]\:inline-flex{display:inline-flex}.\@\[640px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container (width>=880px){.\@\[880px\]\:col-span-3{grid-column:span 3/span 3}.\@\[880px\]\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@container (width>=1140px){.\@\[1140px\]\:col-span-4{grid-column:span 4/span 4}.\@\[1140px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@container clustertab (width>=24rem){.\@sm\/clustertab\:inline{display:inline}}@container liveload (width>=28rem){.\@md\/liveload\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@container flowstrip (width>=32rem){.\@lg\/flowstrip\:block{display:block}.\@lg\/flowstrip\:hidden{display:none}.\@lg\/flowstrip\:w-auto{width:auto}.\@lg\/flowstrip\:min-w-\[132px\]{min-width:132px}.\@lg\/flowstrip\:flex-none{flex:none}.\@lg\/flowstrip\:flex-row{flex-direction:row}.\@lg\/flowstrip\:flex-wrap{flex-wrap:wrap}.\@lg\/flowstrip\:items-center{align-items:center}.\@lg\/flowstrip\:gap-x-1{column-gap:var(--spacing)}.\@lg\/flowstrip\:gap-y-2{row-gap:calc(var(--spacing) * 2)}.\@lg\/flowstrip\:px-0\.5{padding-inline:calc(var(--spacing) * .5)}.\@lg\/flowstrip\:py-0{padding-block:0}}@container clustertab (width>=42rem){.\@2xl\/clustertab\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@container inspector (width>=48rem){.\@3xl\/inspector\:inline{display:inline}}@container liveload (width>=48rem){.\@3xl\/liveload\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@container clustertab (width>=64rem){.\@5xl\/clustertab\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-color-scheme:dark){.dark\:bg-amber-950{background-color:var(--color-amber-950)}.dark\:bg-blue-950{background-color:var(--color-blue-950)}.dark\:bg-cyan-950{background-color:var(--color-cyan-950)}.dark\:bg-fuchsia-950{background-color:var(--color-fuchsia-950)}.dark\:bg-green-950{background-color:var(--color-green-950)}.dark\:bg-purple-950{background-color:var(--color-purple-950)}.dark\:bg-slate-950{background-color:var(--color-slate-950)}.dark\:bg-zinc-900{background-color:var(--color-zinc-900)}.dark\:text-amber-200{color:var(--color-amber-200)}.dark\:text-amber-300{color:var(--color-amber-300)}.dark\:text-amber-400{color:var(--color-amber-400)}.dark\:text-blue-300{color:var(--color-blue-300)}.dark\:text-blue-400{color:var(--color-blue-400)}.dark\:text-cyan-200{color:var(--color-cyan-200)}.dark\:text-cyan-400{color:var(--color-cyan-400)}.dark\:text-emerald-300{color:var(--color-emerald-300)}.dark\:text-fuchsia-400{color:var(--color-fuchsia-400)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-green-300{color:var(--color-green-300)}.dark\:text-indigo-300{color:var(--color-indigo-300)}.dark\:text-purple-300{color:var(--color-purple-300)}.dark\:text-purple-400{color:var(--color-purple-400)}.dark\:text-red-300{color:var(--color-red-300)}.dark\:text-red-400{color:var(--color-red-400)}.dark\:text-sky-300{color:var(--color-sky-300)}.dark\:text-slate-400{color:var(--color-slate-400)}.dark\:text-violet-300{color:var(--color-violet-300)}.dark\:\[color-scheme\:dark\]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}.\[\&\:\:-webkit-scrollbar\]\:w-1::-webkit-scrollbar{width:var(--spacing)}.\[\&\:\:-webkit-scrollbar-thumb\]\:rounded-full::-webkit-scrollbar-thumb{border-radius:3.40282e38px}.\[\&\:\:-webkit-scrollbar-thumb\]\:bg-surface-hover::-webkit-scrollbar-thumb{background-color:var(--color-surface-hover)}.\[\&\:\:-webkit-scrollbar-track\]\:bg-transparent::-webkit-scrollbar-track{background-color:#0000}.\[\&\:not\(\[open\]\)\]\:hidden:not([open]){display:none}.\[\&\>\*\]\:h-full>*{height:100%}.\[\&\>\*\]\:w-full>*,.\[\&\>\*\:last-child\]\:w-full>:last-child{width:100%}.\[\&\>img\]\:object-cover>img,.\[\&\>video\]\:object-cover>video{object-fit:cover}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.dark{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#f59e42;--color-primary-foreground:#0c0a09;--color-background:#0c0a09;--color-background-elevated:#1c1917;--color-surface:#1c1917;--color-surface-hover:#292524;--color-border:#292524;--color-border-subtle:#1c1917;--color-foreground:#fafaf9;--color-foreground-muted:#a8a29e;--color-foreground-subtle:#78716c;--color-foreground-disabled:#57534e;--color-success:#4ade80;--color-warning:#fbbf24;--color-danger:#f87171;--color-info:#60a5fa}.light{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#e67e22;--color-primary-foreground:#fff;--color-background:#fafaf9;--color-background-elevated:#fff;--color-surface:#f5f5f4;--color-surface-hover:#e7e5e4;--color-border:#d6d3d1;--color-border-subtle:#e7e5e4;--color-foreground:#1c1917;--color-foreground-muted:#57534e;--color-foreground-subtle:#78716c;--color-foreground-disabled:#a8a29e;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-info:#2563eb}@media (prefers-color-scheme:light){:root:not(.dark){--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#e67e22;--color-primary-foreground:#fff;--color-background:#fafaf9;--color-background-elevated:#fff;--color-surface:#f5f5f4;--color-surface-hover:#e7e5e4;--color-border:#d6d3d1;--color-border-subtle:#e7e5e4;--color-foreground:#1c1917;--color-foreground-muted:#57534e;--color-foreground-subtle:#78716c;--color-foreground-disabled:#a8a29e;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-info:#2563eb}}html,body,#root{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.react-grid-item.react-grid-placeholder{background-color:var(--color-primary)!important;opacity:.15!important;border-radius:8px!important}.react-grid-item>.react-resizable-handle:after{border-right-color:var(--color-foreground-subtle)!important;border-bottom-color:var(--color-foreground-subtle)!important}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background-color:var(--color-foreground-subtle)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}input::placeholder,textarea::placeholder{color:var(--color-foreground-disabled)}@media (display-mode:standalone){body{overscroll-behavior:none}}button,a,input,select,textarea,[role=button]{touch-action:manipulation}.info-html-content ul,.info-html-content ol{list-style:revert;margin:.25rem 0;padding-left:1.25rem}.info-html-content li{margin:.15rem 0}.info-html-content a{color:var(--color-primary);word-break:break-word;text-decoration:underline}.info-html-content code{background:#0000000d;border-radius:3px;padding:0 .25rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.95em}@property --tw-border-spacing-x{syntax:"<length>";inherits:false;initial-value:0}@property --tw-border-spacing-y{syntax:"<length>";inherits:false;initial-value:0}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}
|