diff --git a/.gitignore b/.gitignore index f4e80e6..7ea2e2b 100644 --- a/.gitignore +++ b/.gitignore @@ -52,7 +52,14 @@ local-tool/visiona-local/payload/ .env.dev .env.dev.generated # stage 環境(docker-compose.stage.yml)— 不進 git,由人工放到 stage host -.env.stage +# 用 .env.stage*(而非精確匹配)涵蓋人工備份檔(如 .env.stage.backup-YYYYMMDD-*), +# 這些備份含 stage secrets,一個 git add -A 就會進 git(進了就沒救) +.env.stage* +# 範本檔不含 secrets,明確 re-include 進 git +!.env.stage.example + +# 簡報 / office 文件不進 git(repo 內出現的多半是內部討論素材,可能含內部資訊) +*.pptx # Claude Code 本地 session / memory,不入 git .claude/ @@ -60,9 +67,13 @@ local-tool/visiona-local/payload/ # Autoflow Agent(由 autoflow-agent init 自動產生) # 整包 ignore(progress.md / review 報告 / 個人筆記皆 per-branch) # 共享文件(PRD / 設計 / 架構 / 交付)走 docs/ 進 git -.autoflow/ graphify-out/ # sub-agent 工作 log(per-branch、不進 git) .autoflow-logs/ **/.autoflow-logs/ + +.autoflow/ +.autoflow/CLAUDE.md.backup.* +.autoflow/.backups/ +.mcp.json diff --git a/local-agent/start-agent.sh b/local-agent/start-agent.sh new file mode 100755 index 0000000..2ff238a --- /dev/null +++ b/local-agent/start-agent.sh @@ -0,0 +1,123 @@ +#!/usr/bin/env bash +# +# visionA Agent 本地啟動腳本(公網正式路徑 demo 驗證用) +# +# 用途:在本機起 agent GUI,走公網邊界反代(stage-9527.innovedus.com:9527) +# 連 tunnel,驗證「網管開通邊界反代 WS 轉發」是否生效 + 雲端 device online 顯示。 +# +# ⚠️ 實測重點:Wails app 不能用 `go run .`(會 panic: missing build tags)。 +# 必須先用 `make wails-macos` build 成 .app(需先裝 wails CLI),本腳本直接開 .app。 +# 這個腳本只設環境變數 + 開既有 build 好的 .app,不改任何 agent 原始碼。 +# +# 前置(首次): +# go install github.com/wailsapp/wails/v2/cmd/wails@latest +# cd local-agent && make wails-macos +# +# 用法: +# ./start-agent.sh # 走公網正式路徑(預設) +# ./start-agent.sh internal # 走內網 demo 路徑(ws://192.168.0.130:9527,需 VPN) +# +# 起來後:在 GUI 配對頁貼上瀏覽器拿到的配對碼(vAc_ 開頭),狀態頁看 online。 + +set -euo pipefail + +# ── 腳本所在目錄(讓從任何地方呼叫都能定位 agent)── +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +APP="$SCRIPT_DIR/visiona-agent/build/bin/visiona-agent.app" +APP_BIN="$APP/Contents/MacOS/visiona-agent" + +# ── 選路徑:public(預設,公網正式)/ internal(內網 demo)── +MODE="${1:-public}" + +case "$MODE" in + public) + HOST="stage-9527.innovedus.com:9527" + CLOUD_API_URL="https://$HOST" + RELAY_URL="wss://$HOST/tunnel/connect" + WS_SCHEME="https" + ;; + internal) + HOST="192.168.0.130:9527" + CLOUD_API_URL="http://$HOST" + RELAY_URL="ws://$HOST/tunnel/connect" + WS_SCHEME="http" + ;; + *) + echo "用法:$0 [public|internal]" >&2 + echo " public = 公網正式路徑 wss://stage-9527.innovedus.com:9527(預設)" >&2 + echo " internal = 內網 demo 路徑 ws://192.168.0.130:9527(需 VPN)" >&2 + exit 1 + ;; +esac + +echo "════════════════════════════════════════════════════════" +echo " visionA Agent 啟動($MODE 路徑)" +echo "════════════════════════════════════════════════════════" +echo " Cloud API : $CLOUD_API_URL" +echo " Relay URL : $RELAY_URL" +echo "" + +# ── 前置檢查:.app 存在嗎?── +if [ ! -x "$APP_BIN" ]; then + echo "❌ 找不到 build 好的 app:$APP_BIN" >&2 + echo " 請先 build(首次):" >&2 + echo " go install github.com/wailsapp/wails/v2/cmd/wails@latest" >&2 + echo " cd \"$SCRIPT_DIR\" && PATH=\"\$(go env GOPATH)/bin:\$PATH\" make wails-macos" >&2 + exit 1 +fi + +# ──────────────────────────────────────────────────────────── +# 預檢:開 GUI 前先測邊界反代 WS 握手(省得白貼配對碼) +# 回 101 = WS 轉發通;400 = 邊界反代還在剝 header(網管沒設對); +# 444 = Host 沒帶對;逾時 = 防火牆/DNS。 +# ──────────────────────────────────────────────────────────── +echo "──▶ 預檢:測 $HOST 的 WS 握手 ..." +# https(stage 自簽憑證)時帶 -k:預檢只測可達性,不驗憑證; +# 否則 TLS 握手直接失敗回 000,被誤判成「防火牆/DNS 問題」誤導排查。 +CURL_INSECURE="" +if [ "$WS_SCHEME" = "https" ]; then + CURL_INSECURE="-k" +fi +WS_CODE="$(curl -s $CURL_INSECURE -o /dev/null -w '%{http_code}' -m 10 -N \ + -H 'Connection: Upgrade' \ + -H 'Upgrade: websocket' \ + -H 'Sec-WebSocket-Version: 13' \ + -H 'Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==' \ + "$WS_SCHEME://$HOST/tunnel/connect" 2>/dev/null || echo "000")" + +case "$WS_CODE" in + 101) echo " ✅ 101 — 邊界反代 WS 轉發已生效,tunnel 可通。" ;; + 401) echo " ✅ 401(WS header 有過、卡在 token 驗證)— WS 轉發 OK,屬正常(配對後帶 token)。" ;; + 400) + echo " ❌ 400 — 邊界反代還在剝 WS upgrade header(唯一根因未解)。" + echo " → 請網管在公網入口 proxy 開 WS 轉發(h1.1 + Upgrade/Connection header)。" + echo " 5 秒後仍會續開 GUI(Ctrl-C 中止)。"; sleep 5 ;; + 444) + echo " ⚠️ 444 — Host 白名單擋掉(邊界反代沒帶對 Host: ${HOST})。5 秒後續開(Ctrl-C 中止)。"; sleep 5 ;; + 000) + echo " ⚠️ 連線逾時/拒絕 — 防火牆沒放行 :9527 或 DNS 解錯(internal 請確認 VPN)。" + echo " 5 秒後續開(Ctrl-C 中止)。"; sleep 5 ;; + *) echo " ⚠️ 收到 HTTP ${WS_CODE}(非預期)。5 秒後續開(Ctrl-C 中止)。"; sleep 5 ;; +esac +echo "" + +# ── 設環境變數(優先級:env > config.yaml > 內建預設)── +export VISIONA_CLOUD_API_URL="$CLOUD_API_URL" +export VISIONA_RELAY_URL="$RELAY_URL" + +# public 模式:stage 用自簽憑證,agent 需明確 opt-in 跳過 TLS 驗證 +# (pairing exchange + tunnel WSS + 設定頁「測試連線」三條路徑共用此開關), +# 否則全部 x509 失敗,與本腳本的 demo 目的自相矛盾。 +# ⚠️ DEV / DEMO ONLY — 正式環境絕不可設此變數。 +if [ "$MODE" = "public" ]; then + export VISIONA_INSECURE_SKIP_TLS_VERIFY=true + echo "⚠️ 已設 VISIONA_INSECURE_SKIP_TLS_VERIFY=true(stage 自簽憑證用;跳過 TLS 驗證,僅 demo 用)" + echo "" +fi + +# ── 直接執行 .app 內的 binary(保留 stdout/stderr 在終端看 log;env 有帶進去)── +echo "──▶ 啟動 GUI(${APP_BIN})..." +echo " 起來後:配對頁貼上瀏覽器拿到的配對碼(vAc_ 開頭)→ 狀態頁看 online。" +echo " (關 GUI 視窗即結束 agent)" +echo "" +exec "$APP_BIN" diff --git a/local-agent/visiona-agent/agent_bindings.go b/local-agent/visiona-agent/agent_bindings.go index 21c3797..8bdb76c 100644 --- a/local-agent/visiona-agent/agent_bindings.go +++ b/local-agent/visiona-agent/agent_bindings.go @@ -121,7 +121,25 @@ func (a *App) Pair(pairingToken string) error { if ctx == nil { ctx = context.Background() } - return a.tunnelManager.Pair(ctx, pairingToken) + err := a.tunnelManager.Pair(ctx, pairingToken) + if err != nil { + // Debug 缺口修補:把 exchange 失敗的實際原因(含 TLS / network error 細節) + // 寫進 wails.log,否則排查得翻雲端 log 才知道請求根本沒送達。 + // ⚠️ 不 log pairing token 全文(敏感);只記前綴供對照。 + a.appLog("tunnel: Pair failed (token=%s): %v", maskPairingToken(pairingToken), err) + } + return err +} + +// maskPairingToken 產生 pairing token 的遮蔽顯示字串,供 log 使用。 +// pairing token 格式為 vAc_ + 32 hex(見 tunnel.ValidatePairingToken),敏感不可全記。 +// 規則:保留 "vAc_" 前綴 + 前 4 hex,其餘以 "…" 取代;非預期格式只記長度避免洩漏。 +func maskPairingToken(token string) string { + const prefix = "vAc_" + if !strings.HasPrefix(token, prefix) || len(token) < len(prefix)+4 { + return fmt.Sprintf("", len(token)) + } + return prefix + token[len(prefix):len(prefix)+4] + "…" } // Unpair 清除本地 Session Token 並斷開 tunnel。 @@ -255,6 +273,9 @@ func (a *App) TestConnection(relayURL string) TestResult { if relayURL == "" { return TestResult{OK: false, Reason: "URL is empty"} } + // 只檢查 ws:// / wss:// 前綴,刻意不強制要求 path:relay base URL(裸 host、無 path) + // 是合法輸入。實際 tunnel 連線的 /tunnel/connect path 由 client.connect()(normalizeRelayURL) + // 在 Dial 前兜底補上,不在此驗證層要求。 if !strings.HasPrefix(relayURL, "ws://") && !strings.HasPrefix(relayURL, "wss://") { return TestResult{OK: false, Reason: fmt.Sprintf("URL must start with ws:// or wss:// (got %q)", relayURL)} } @@ -264,6 +285,13 @@ func (a *App) TestConnection(relayURL string) TestResult { dialer := websocket.Dialer{ HandshakeTimeout: 5 * time.Second, + // 與 tunnel client 主路徑(internal/tunnel/client.go connect())共用同一份 + // TLS 設定:ALPN 釘死 http/1.1(否則經會挑 h2 的反代時誤報 bad handshake) + // + insecure skip 開關同源(a.insecureSkipTLSVerify 由 NewApp 讀 env 一次, + // ⚠️ DEV / TEST ONLY;WARNING log 由 app.go tryStartTunnel 統一印)。 + // 沒對齊的後果:stage 自簽環境「測試連線」永遠 x509 失敗,誤導使用者以為 + // relay 不通,但 tunnel 本體其實連得上。 + TLSClientConfig: tunnel.TLSConfigForDial(a.insecureSkipTLSVerify), } headers := http.Header{} start := time.Now() diff --git a/local-agent/visiona-agent/agent_bindings_test.go b/local-agent/visiona-agent/agent_bindings_test.go index 87f221d..055a43c 100644 --- a/local-agent/visiona-agent/agent_bindings_test.go +++ b/local-agent/visiona-agent/agent_bindings_test.go @@ -14,12 +14,16 @@ package main import ( "archive/zip" "io" + "net/http" + "net/http/httptest" "os" "strings" "testing" "visiona-agent/internal/agentconfig" "visiona-agent/internal/tunnel" + + "github.com/gorilla/websocket" ) // newBindingTestApp 建立一個沒有 Wails runtime 的 App,只帶 AB7-AB10 會用到的元件。 @@ -128,6 +132,77 @@ func TestTestConnection_InputValidation(t *testing.T) { } } +// newSelfSignedWSServer 起一個自簽憑證的 TLS server,收到請求就完成 WebSocket +// upgrade 後立即關閉(TestConnection 只測握手,不發 frame)。 +// 回傳 wss:// URL。 +func newSelfSignedWSServer(t *testing.T) string { + t.Helper() + upgrader := websocket.Upgrader{CheckOrigin: func(*http.Request) bool { return true }} + srv := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + c, err := upgrader.Upgrade(w, r, nil) + if err != nil { + return // upgrade 失敗(非 WS 請求);TestConnection 端會收到 dial error + } + _ = c.Close() + })) + t.Cleanup(srv.Close) + return "wss://" + strings.TrimPrefix(srv.URL, "https://") +} + +// TestTestConnection_SecureByDefaultRejectsSelfSigned 驗證預設(未 opt-in skip)時, +// TestConnection 對自簽憑證 server 應以 TLS 驗證失敗收場(production-safe default)。 +// 比照 tunnel package 的行為級測試模式(TestExchangerSecureByDefaultRejectsSelfSigned)。 +func TestTestConnection_SecureByDefaultRejectsSelfSigned(t *testing.T) { + wssURL := newSelfSignedWSServer(t) + a := &App{} // insecureSkipTLSVerify 預設 false + got := a.TestConnection(wssURL) + if got.OK { + t.Fatal("TestConnection should fail against self-signed server when skip disabled") + } + // 失敗原因必須是憑證驗證(x509),不是其他網路錯誤——確保真的走到 TLS 驗證。 + if !strings.Contains(got.Reason, "x509") && !strings.Contains(got.Reason, "certificate") { + t.Errorf("Reason = %q, want TLS certificate verification failure (x509)", got.Reason) + } +} + +// TestTestConnection_InsecureSkipTLSVerifyAllowsSelfSigned 驗證開關開時, +// TestConnection 對自簽憑證 server 應握手成功(stage demo 情境;Major-1 修復的行為)。 +func TestTestConnection_InsecureSkipTLSVerifyAllowsSelfSigned(t *testing.T) { + wssURL := newSelfSignedWSServer(t) + a := &App{insecureSkipTLSVerify: true} + got := a.TestConnection(wssURL) + if !got.OK { + t.Fatalf("TestConnection with skip enabled should succeed against self-signed server, got reason=%q", got.Reason) + } +} + +// TestNewApp_InsecureSkipTLSVerifyOptIn 驗證 NewApp(唯一 env 讀取點)遵守 +// opt-in 規則:只有明確 "true" 才開,unset / false / 拼錯字都維持安全預設。 +// (完整 11 案例的規則測試在 tunnel.IsInsecureSkipTLSVerify 的單元測試; +// 這裡只守「NewApp 有正確接上同一份判斷」。) +func TestNewApp_InsecureSkipTLSVerifyOptIn(t *testing.T) { + cases := []struct { + name string + env string + want bool + }{ + {"unset(安全預設)", "", false}, + {"false", "false", false}, + {"拼錯字 truthy", "truthy", false}, + {"明確 opt-in true", "true", true}, + {"大小寫不敏感 TRUE", "TRUE", true}, + } + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + t.Setenv(tunnel.InsecureSkipTLSVerifyEnvVar, tc.env) + a := NewApp() + if a.insecureSkipTLSVerify != tc.want { + t.Errorf("NewApp().insecureSkipTLSVerify = %v, want %v (env=%q)", a.insecureSkipTLSVerify, tc.want, tc.env) + } + }) + } +} + func TestResetAllSettings_ClearsConfigAndToken(t *testing.T) { a := newBindingTestApp(t) // 先寫入非預設 settings + 一個 token @@ -262,3 +337,50 @@ func TestGetRecentLogs_WithoutBufferReturnsEmpty(t *testing.T) { t.Errorf("GetRecentLogs without buffer = %d items; want 0", len(got)) } } + +// TestMaskPairingToken 驗證 pairing token 的 log 遮罩。 +// +// 這是安全相關 helper:遮罩錯就會把敏感的 pairing token 全文寫進 wails.log。 +// 規則(見 maskPairingToken): +// - 正常 token(vAc_ + 32 hex)→ "vAc_" + 前 4 hex + "…"(其餘以 "…" 取代) +// - 過短 / 非 vAc_ 前綴 / 空字串 → ""(只記長度、不記內容) +func TestMaskPairingToken(t *testing.T) { + const fullToken = "vAc_0123456789abcdef0123456789abcdef" // vAc_ + 32 hex + // suffix 是「不該出現在遮罩結果」的尾段(前 4 hex 之後的部分)。 + const leakSuffix = "456789abcdef0123456789abcdef" + + cases := []struct { + name string + in string + want string + }{ + {"normal token", fullToken, "vAc_0123…"}, + {"min valid length (vAc_ + 4 hex)", "vAc_0123", "vAc_0123…"}, + {"too short (vAc_ + 3 hex)", "vAc_012", ""}, + {"empty string", "", ""}, + {"wrong prefix (session token)", "vAs_0123456789abcdef0123456789abcdef", ""}, + {"no prefix", "0123456789abcdef0123456789abcdef", ""}, + {"prefix only", "vAc_", ""}, + } + for _, c := range cases { + t.Run(c.name, func(t *testing.T) { + got := maskPairingToken(c.in) + if got != c.want { + t.Errorf("maskPairingToken(%q) = %q; want %q", c.in, got, c.want) + } + }) + } + + // 額外的安全不變量:正常 token 的遮罩結果絕不能包含 token 全文或其尾段。 + masked := maskPairingToken(fullToken) + if strings.Contains(masked, fullToken) { + t.Errorf("masked output %q must not contain the full token", masked) + } + if strings.Contains(masked, leakSuffix) { + t.Errorf("masked output %q must not leak the token suffix %q", masked, leakSuffix) + } + // 正確前綴必須保留(供對照)。 + if !strings.HasPrefix(masked, "vAc_") { + t.Errorf("masked output %q should keep the vAc_ prefix for correlation", masked) + } +} diff --git a/local-agent/visiona-agent/app.go b/local-agent/visiona-agent/app.go index 2e3b658..239e57c 100644 --- a/local-agent/visiona-agent/app.go +++ b/local-agent/visiona-agent/app.go @@ -148,6 +148,13 @@ type App struct { // 由 startup() 建立;Manager 透過 Config.TokenStore 使用它。 // 拆成獨立欄位是為了讓 test / reset 操作能直接戳 store(不用繞 Manager)。 tokenStore tunnel.TokenStore + + // ⚠️ DEV / TEST ONLY:跳過 TLS 憑證驗證(連自簽憑證的 stage / 測試環境用)。 + // 由 NewApp() 從 VISIONA_INSECURE_SKIP_TLS_VERIFY 讀一次(唯一讀取點,規則見 + // tunnel.IsInsecureSkipTLSVerify),之後 tryStartTunnel(exchange + tunnel WSS) + // 與 TestConnection binding(設定頁「測試連線」)都共用這個欄位,避免規則飄移。 + // 正式環境絕不可開(中間人攻擊可竊聽 / 竄改流量)。 + insecureSkipTLSVerify bool } // NewApp 建立 App 實例。 @@ -168,6 +175,10 @@ func NewApp() *App { // R5-5a:沒插硬體就顯示空白狀態(由 UI 處理),一律真實硬體路徑 return &App{ pythonMode: mode, + // ⚠️ DEV / TEST ONLY 開關的唯一 env 讀取點(詳見 App struct 欄位註解)。 + // 在 NewApp 讀(而非 tryStartTunnel)是為了讓 TestConnection 在 tunnel + // 未啟動(如 RelayURL 未設定、early return)時也拿得到同一份判斷。 + insecureSkipTLSVerify: tunnel.IsInsecureSkipTLSVerify(os.Getenv(tunnel.InsecureSkipTLSVerifyEnvVar)), } } @@ -389,8 +400,19 @@ func (a *App) tryStartTunnel() { if cloudAPIURL == "" { cloudAPIURL = "https://api.visionA.cloud" // placeholder;mock 模式下用不到 } + // ⚠️ DEV / TEST ONLY:跳過 TLS 憑證驗證(連自簽憑證的 stage / 測試環境用)。 + // production-safe default = false;必須明確設 VISIONA_INSECURE_SKIP_TLS_VERIFY=true 才開。 + // 開時 exchange http client + tunnel WSS dialer + TestConnection 都會跳過憑證驗證。 + // 值由 NewApp() 讀 env 一次寫入 a.insecureSkipTLSVerify(唯一讀取點),這裡只消費。 + // 正式環境絕不可開(中間人攻擊可竊聽 / 竄改流量)。 + insecureSkipTLSVerify := a.insecureSkipTLSVerify + if insecureSkipTLSVerify { + a.appLog("tunnel: ⚠️ TLS verification DISABLED (VISIONA_INSECURE_SKIP_TLS_VERIFY=true) — DEV/TEST ONLY, never use in production") + } + exchanger := tunnel.NewHTTPPairingExchanger(cloudAPIURL) exchanger.MockMode = mockMode + exchanger.InsecureSkipTLSVerify = insecureSkipTLSVerify // Startup log 明確標示當前模式;mock=true 時用 WARN 級字眼讓 dev 一眼看到。 if mockMode { @@ -419,6 +441,8 @@ func (a *App) tryStartTunnel() { Exchanger: exchanger, ReconnectMode: reconnectMode, TokenStore: a.tokenStore, // AB7:encrypted file;nil 時 Manager fallback 到 in-memory + // ⚠️ DEV / TEST ONLY:tunnel WSS 撥號跳過 TLS 驗證(連自簽憑證 stage 用)。 + InsecureSkipTLSVerify: insecureSkipTLSVerify, // Logger:TODO Phase 1 改用結構化 logger }) diff --git a/local-agent/visiona-agent/build/darwin/Info.dev.plist b/local-agent/visiona-agent/build/darwin/Info.dev.plist new file mode 100644 index 0000000..14121ef --- /dev/null +++ b/local-agent/visiona-agent/build/darwin/Info.dev.plist @@ -0,0 +1,68 @@ + + + + CFBundlePackageType + APPL + CFBundleName + {{.Info.ProductName}} + CFBundleExecutable + {{.OutputFilename}} + CFBundleIdentifier + com.wails.{{.Name}} + CFBundleVersion + {{.Info.ProductVersion}} + CFBundleGetInfoString + {{.Info.Comments}} + CFBundleShortVersionString + {{.Info.ProductVersion}} + CFBundleIconFile + iconfile + LSMinimumSystemVersion + 10.13.0 + NSHighResolutionCapable + true + NSHumanReadableCopyright + {{.Info.Copyright}} + {{if .Info.FileAssociations}} + CFBundleDocumentTypes + + {{range .Info.FileAssociations}} + + CFBundleTypeExtensions + + {{.Ext}} + + CFBundleTypeName + {{.Name}} + CFBundleTypeRole + {{.Role}} + CFBundleTypeIconFile + {{.IconName}} + + {{end}} + + {{end}} + {{if .Info.Protocols}} + CFBundleURLTypes + + {{range .Info.Protocols}} + + CFBundleURLName + com.wails.{{.Scheme}} + CFBundleURLSchemes + + {{.Scheme}} + + CFBundleTypeRole + {{.Role}} + + {{end}} + + {{end}} + NSAppTransportSecurity + + NSAllowsLocalNetworking + + + + diff --git a/local-agent/visiona-agent/frontend/404.html b/local-agent/visiona-agent/frontend/404.html index 7342567..8fd481e 100644 --- a/local-agent/visiona-agent/frontend/404.html +++ b/local-agent/visiona-agent/frontend/404.html @@ -1 +1 @@ -404: This page could not be found.visionA Agent

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.visionA Agent

404

This page could not be found.

\ No newline at end of file diff --git a/local-agent/visiona-agent/frontend/404/index.html b/local-agent/visiona-agent/frontend/404/index.html index 7342567..8fd481e 100644 --- a/local-agent/visiona-agent/frontend/404/index.html +++ b/local-agent/visiona-agent/frontend/404/index.html @@ -1 +1 @@ -404: This page could not be found.visionA Agent

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.visionA Agent

404

This page could not be found.

\ No newline at end of file diff --git a/local-agent/visiona-agent/frontend/__next.__PAGE__.txt b/local-agent/visiona-agent/frontend/__next.__PAGE__.txt index 5e65237..d5d1c9c 100644 --- a/local-agent/visiona-agent/frontend/__next.__PAGE__.txt +++ b/local-agent/visiona-agent/frontend/__next.__PAGE__.txt @@ -1,9 +1,9 @@ 1:"$Sreact.fragment" 2:I[78565,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"ClientPageRoot"] -3:I[52683,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js","/_next/static/chunks/d6dfeddbc30b2115.js"],"default"] +3:I[52683,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js","/_next/static/chunks/f04ca8af3a2f14a5.js"],"default"] 6:I[36345,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"OutletBoundary"] 7:"$Sreact.suspense" -0:{"buildId":"bNfP9AtF7RvuNYXedUUKm","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/d6dfeddbc30b2115.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} +0:{"buildId":"xUG58KEr_UmI6n37ubQud","rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/f04ca8af3a2f14a5.js","async":true}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"loading":null,"isPartial":false} 4:{} 5:"$0:rsc:props:children:0:props:serverProvidedParams:params" 8:null diff --git a/local-agent/visiona-agent/frontend/__next._full.txt b/local-agent/visiona-agent/frontend/__next._full.txt index e8d7c67..5e0257f 100644 --- a/local-agent/visiona-agent/frontend/__next._full.txt +++ b/local-agent/visiona-agent/frontend/__next._full.txt @@ -1,20 +1,20 @@ 1:"$Sreact.fragment" -2:I[44674,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"LocaleProvider"] -3:I[88918,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"LocaleSync"] -4:I[27423,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"ThemeProvider"] -5:I[46798,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"TooltipProvider"] +2:I[44674,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"LocaleProvider"] +3:I[88918,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"LocaleSync"] +4:I[27423,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"ThemeProvider"] +5:I[46798,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"TooltipProvider"] 6:I[3097,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"default"] 7:I[99299,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"default"] -8:I[13354,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"Toaster"] +8:I[13354,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"Toaster"] 9:I[78565,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"ClientPageRoot"] -a:I[52683,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js","/_next/static/chunks/d6dfeddbc30b2115.js"],"default"] +a:I[52683,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js","/_next/static/chunks/f04ca8af3a2f14a5.js"],"default"] d:I[36345,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"OutletBoundary"] e:"$Sreact.suspense" 10:I[36345,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"ViewportBoundary"] 12:I[36345,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"MetadataBoundary"] 14:I[16153,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"default"] -:HL["/_next/static/chunks/8c0a22761cbf2865.css","style"] -0:{"P":null,"b":"bNfP9AtF7RvuNYXedUUKm","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8c0a22761cbf2865.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/594c88e889e6e4db.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/45d5f77c4ae14bfd.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"zh-Hant","suppressHydrationWarning":true,"children":["$","body",null,{"className":"min-h-dvh","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"delayDuration":0,"children":[["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L8",null,{"richColors":true,"closeButton":true,"position":"top-right"}]]}]}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@b","$@c"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/d6dfeddbc30b2115.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L10",null,{"children":"$L11"}],["$","div",null,{"hidden":true,"children":["$","$L12",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L13"}]}]}],null]}],false]],"m":"$undefined","G":["$14",[]],"S":true} +:HL["/_next/static/chunks/6c9a7a09adf93ec8.css","style"] +0:{"P":null,"b":"xUG58KEr_UmI6n37ubQud","c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/6c9a7a09adf93ec8.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","script","script-0",{"src":"/_next/static/chunks/594c88e889e6e4db.js","async":true,"nonce":"$undefined"}],["$","script","script-1",{"src":"/_next/static/chunks/da91cad579900bca.js","async":true,"nonce":"$undefined"}]],["$","html",null,{"lang":"zh-Hant","suppressHydrationWarning":true,"children":["$","body",null,{"className":"min-h-dvh","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"delayDuration":0,"children":[["$","$L6",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}],["$","$L8",null,{"richColors":true,"closeButton":true,"position":"top-right"}]]}]}]]}]}]}]]}],{"children":[["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@b","$@c"]}}],[["$","script","script-0",{"src":"/_next/static/chunks/f04ca8af3a2f14a5.js","async":true,"nonce":"$undefined"}]],["$","$Ld",null,{"children":["$","$e",null,{"name":"Next.MetadataOutlet","children":"$@f"}]}]]}],{},null,false,false]},null,false,false],["$","$1","h",{"children":[null,["$","$L10",null,{"children":"$L11"}],["$","div",null,{"hidden":true,"children":["$","$L12",null,{"children":["$","$e",null,{"name":"Next.Metadata","children":"$L13"}]}]}],null]}],false]],"m":"$undefined","G":["$14",[]],"S":true} b:{} c:"$0:f:0:1:1:children:0:props:children:0:props:serverProvidedParams:params" 11:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] diff --git a/local-agent/visiona-agent/frontend/__next._head.txt b/local-agent/visiona-agent/frontend/__next._head.txt index 0b5a829..ae530c0 100644 --- a/local-agent/visiona-agent/frontend/__next._head.txt +++ b/local-agent/visiona-agent/frontend/__next._head.txt @@ -2,4 +2,4 @@ 2:I[36345,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"ViewportBoundary"] 3:I[36345,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"MetadataBoundary"] 4:"$Sreact.suspense" -0:{"buildId":"bNfP9AtF7RvuNYXedUUKm","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"visionA Agent"}],["$","meta","1",{"name":"description","content":"本機桌面代理(local agent / tunnel bridge),讓 Kneron 邊緣裝置安全連上 visionA 雲端。"}]]}]}]}],null]}],"loading":null,"isPartial":false} +0:{"buildId":"xUG58KEr_UmI6n37ubQud","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"visionA Agent"}],["$","meta","1",{"name":"description","content":"本機桌面代理(local agent / tunnel bridge),讓 Kneron 邊緣裝置安全連上 visionA 雲端。"}]]}]}]}],null]}],"loading":null,"isPartial":false} diff --git a/local-agent/visiona-agent/frontend/__next._index.txt b/local-agent/visiona-agent/frontend/__next._index.txt index 0f72044..40795da 100644 --- a/local-agent/visiona-agent/frontend/__next._index.txt +++ b/local-agent/visiona-agent/frontend/__next._index.txt @@ -1,10 +1,10 @@ 1:"$Sreact.fragment" -2:I[44674,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"LocaleProvider"] -3:I[88918,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"LocaleSync"] -4:I[27423,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"ThemeProvider"] -5:I[46798,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"TooltipProvider"] +2:I[44674,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"LocaleProvider"] +3:I[88918,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"LocaleSync"] +4:I[27423,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"ThemeProvider"] +5:I[46798,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"TooltipProvider"] 6:I[3097,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"default"] 7:I[99299,["/_next/static/chunks/f81ac11fa6af3b6b.js"],"default"] -8:I[13354,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/45d5f77c4ae14bfd.js"],"Toaster"] -:HL["/_next/static/chunks/8c0a22761cbf2865.css","style"] -0:{"buildId":"bNfP9AtF7RvuNYXedUUKm","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/8c0a22761cbf2865.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/594c88e889e6e4db.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/45d5f77c4ae14bfd.js","async":true}]],["$","html",null,{"lang":"zh-Hant","suppressHydrationWarning":true,"children":["$","body",null,{"className":"min-h-dvh","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"delayDuration":0,"children":[["$","$L6",null,{"parallelRouterKey":"children","template":["$","$L7",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$L8",null,{"richColors":true,"closeButton":true,"position":"top-right"}]]}]}]]}]}]}]]}],"loading":null,"isPartial":false} +8:I[13354,["/_next/static/chunks/594c88e889e6e4db.js","/_next/static/chunks/da91cad579900bca.js"],"Toaster"] +:HL["/_next/static/chunks/6c9a7a09adf93ec8.css","style"] +0:{"buildId":"xUG58KEr_UmI6n37ubQud","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/6c9a7a09adf93ec8.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/594c88e889e6e4db.js","async":true}],["$","script","script-1",{"src":"/_next/static/chunks/da91cad579900bca.js","async":true}]],["$","html",null,{"lang":"zh-Hant","suppressHydrationWarning":true,"children":["$","body",null,{"className":"min-h-dvh","children":["$","$L2",null,{"children":[["$","$L3",null,{}],["$","$L4",null,{"children":["$","$L5",null,{"delayDuration":0,"children":[["$","$L6",null,{"parallelRouterKey":"children","template":["$","$L7",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}],["$","$L8",null,{"richColors":true,"closeButton":true,"position":"top-right"}]]}]}]]}]}]}]]}],"loading":null,"isPartial":false} diff --git a/local-agent/visiona-agent/frontend/__next._tree.txt b/local-agent/visiona-agent/frontend/__next._tree.txt index 1615ac8..e3fe501 100644 --- a/local-agent/visiona-agent/frontend/__next._tree.txt +++ b/local-agent/visiona-agent/frontend/__next._tree.txt @@ -1,2 +1,2 @@ -:HL["/_next/static/chunks/8c0a22761cbf2865.css","style"] -0:{"buildId":"bNfP9AtF7RvuNYXedUUKm","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} +:HL["/_next/static/chunks/6c9a7a09adf93ec8.css","style"] +0:{"buildId":"xUG58KEr_UmI6n37ubQud","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":true},"staleTime":300} diff --git a/local-agent/visiona-agent/frontend/_next/static/chunks/6c9a7a09adf93ec8.css b/local-agent/visiona-agent/frontend/_next/static/chunks/6c9a7a09adf93ec8.css new file mode 100644 index 0000000..2fdaf08 --- /dev/null +++ b/local-agent/visiona-agent/frontend/_next/static/chunks/6c9a7a09adf93ec8.css @@ -0,0 +1 @@ +@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,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-duration:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-amber-50:#fffbeb;--color-amber-300:#ffd236;--color-amber-400:#fcbb00;--color-amber-600:#dd7400;--color-amber-700:#b75000;--color-amber-950:#461901;--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-200:#bedbff;--color-blue-300:#90c5ff;--color-blue-500:#3080ff;--color-blue-800:#193cb8;--color-blue-900:#1c398e;--color-blue-950:#162456;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);--default-mono-font-family:var(--font-geist-mono,ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace)}@supports (color:lab(0% 0 0)){:root,:host{--color-amber-50:lab(98.6252% -.635922 8.42309);--color-amber-300:lab(86.4156% 6.13147 78.3961);--color-amber-400:lab(80.1641% 16.6016 99.2089);--color-amber-600:lab(60.3514% 40.5624 87.1228);--color-amber-700:lab(47.2709% 42.9082 69.2966);--color-amber-950:lab(15.8111% 20.9107 23.3752);--color-blue-50:lab(96.492% -1.14644 -5.11479);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-200:lab(86.15% -4.04379 -21.0797);--color-blue-300:lab(77.5052% -6.4629 -36.42);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-800:lab(30.2514% 27.7853 -70.2699);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-blue-950:lab(15.6723% 8.86232 -32.2945)}}}@layer base{*,:after,:before,::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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}html,body{height:100%}body{background-color:var(--background);font-family:var(--font-geist-sans,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.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}.inset-0{inset:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.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}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.size-20{width:calc(var(--spacing)*20);height:calc(var(--spacing)*20)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-14{height:calc(var(--spacing)*14)}.h-40{height:calc(var(--spacing)*40)}.h-64{height:calc(var(--spacing)*64)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-dvh{min-height:100dvh}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-8{width:calc(var(--spacing)*8)}.w-24{width:calc(var(--spacing)*24)}.w-40{width:calc(var(--spacing)*40)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;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-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[120px_1fr\]{grid-template-columns:120px 1fr}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.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)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*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-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)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}: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-border>:not(:last-child)){border-color:var(--border)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-amber-300{border-color:var(--color-amber-300)}.border-blue-300\/60{border-color:#90c5ff99}@supports (color:color-mix(in lab, red, red)){.border-blue-300\/60{border-color:color-mix(in oklab,var(--color-blue-300)60%,transparent)}}.border-border{border-color:var(--border)}.border-destructive,.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-status-online{border-color:var(--status-online)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-amber-50{background-color:var(--color-amber-50)}.bg-background{background-color:var(--background)}.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-blue-50{background-color:var(--color-blue-50)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-status-error{background-color:var(--status-error)}.bg-status-idle{background-color:var(--status-idle)}.bg-status-offline{background-color:var(--status-offline)}.bg-status-online{background-color:var(--status-online)}.bg-status-reconnecting{background-color:var(--status-reconnecting)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.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-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.font-mono{font-family:var(--font-geist-mono,ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace)}.font-sans{font-family:var(--font-geist-sans,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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))}.leading-none{--tw-leading:1;line-height:1}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-amber-600{color:var(--color-amber-600)}.text-blue-900{color:var(--color-blue-900)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-status-online{color:var(--status-online)}.text-status-reconnecting{color:var(--status-reconnecting)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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-xs{--tw-shadow:0 1px 2px 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)}.ring{--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-ring,.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.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,)}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;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-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing)*9)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection,.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection,.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-destructive\/30:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-status-online\/30:focus-visible{--tw-ring-color:var(--status-online)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-status-online\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--status-online)30%,transparent)}}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-6:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing)*6)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing)*1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:calc(var(--spacing)*1.5)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing)*44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing)*1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}:is(.\*\:data-\[slot\=alert-description\]\:text-blue-800\/90>*)[data-slot=alert-description]{color:#193cb8e6}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-blue-800\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--color-blue-800)90%,transparent)}}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}.motion-safe\:animate-spin{animation:var(--animate-spin)}}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[size\=default\]\:sm\:max-w-lg[data-size=default]{max-width:var(--container-lg)}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-amber-700\/40:is(.dark *){border-color:#b7500066}@supports (color:color-mix(in lab, red, red)){.dark\:border-amber-700\/40:is(.dark *){border-color:color-mix(in oklab,var(--color-amber-700)40%,transparent)}}.dark\:border-blue-500\/30:is(.dark *){border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-blue-500\/30:is(.dark *){border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-amber-950\/30:is(.dark *){background-color:#4619014d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-amber-950\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-amber-950)30%,transparent)}}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1624564d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-950)30%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-amber-400:is(.dark *){color:var(--color-amber-400)}.dark\:text-blue-100:is(.dark *){color:var(--color-blue-100)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}:is(.dark\:\*\:data-\[slot\=alert-description\]\:text-blue-200\/80:is(.dark *)>*)[data-slot=alert-description]{color:#bedbffcc}@supports (color:color-mix(in lab, red, red)){:is(.dark\:\*\:data-\[slot\=alert-description\]\:text-blue-200\/80:is(.dark *)>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--color-blue-200)80%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-8>*):is(svg:not([class*=size-])){width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#e40014;--border:#e5e5e5;--input:#e5e5e5;--ring:#a1a1a1;--chart-1:#f05100;--chart-2:#009588;--chart-3:#104e64;--chart-4:#fcbb00;--chart-5:#f99c00;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1;--status-online:#00bb7f;--status-offline:#a1a1a1;--status-reconnecting:#f7c91a;--status-error:#fb2c36;--status-idle:#c4c4c4;--warning:#d09300;--warning-foreground:#492b00;--warning-subtle:#fff4db}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:lab(7.78201% -.0000149012 0);--primary-foreground:lab(98.26% 0 0);--secondary:lab(96.52% -.0000298023 .0000119209);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 .0000119209);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 .0000119209);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(48.4493% 77.4328 61.5452);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% -.0000298023 .0000119209);--chart-1:lab(57.1026% 64.2584 89.8886);--chart-2:lab(55.0223% -41.0774 -3.90277);--chart-3:lab(30.372% -13.1853 -18.7887);--chart-4:lab(80.1641% 16.6016 99.2089);--chart-5:lab(72.7183% 31.8672 97.9407);--sidebar:lab(98.26% 0 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(96.52% -.0000298023 .0000119209);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% -.0000298023 .0000119209);--status-online:lab(66.9756% -58.27 19.5419);--status-offline:lab(66.128% -.0000298023 .0000119209);--status-reconnecting:lab(83.2581% 6.76128 80.3298);--status-error:lab(55.4814% 75.0734 48.8504);--status-idle:lab(79.12% -.0000298023 -.0000119209);--warning:lab(65.6285% 17.3048 77.4091);--warning-foreground:lab(20.9068% 13.6763 34.4248);--warning-subtle:lab(96.6599% 1.50219 15.5202)}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:#e5e5e5;--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#262626;--accent-foreground:#fafafa;--destructive:#ff6568;--border:#ffffff1a;--input:#ffffff26;--ring:#737373;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#ffffff1a;--sidebar-ring:#737373;--status-online:#00c386;--status-offline:#737373;--status-reconnecting:#edc751;--status-error:#ff6165;--status-idle:#484848;--warning:#e7ac2a;--warning-foreground:#fbedd1;--warning-subtle:#3f29034d}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% 0 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% 0 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% 0 0);--primary:lab(90.952% 0 -.0000119209);--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 -.00000596046);--secondary-foreground:lab(98.26% 0 0);--muted:lab(15.204% 0 -.00000596046);--muted-foreground:lab(66.128% -.0000298023 .0000119209);--accent:lab(15.204% 0 -.00000596046);--accent-foreground:lab(98.26% 0 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% 0 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(15.204% 0 -.00000596046);--sidebar-accent-foreground:lab(98.26% 0 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0);--status-online:lab(69.7618% -58.1338 19.5173);--status-offline:lab(48.496% 0 0);--status-reconnecting:lab(81.8461% 4.7622 61.7848);--status-error:lab(63.1376% 63.6989 32.7469);--status-idle:lab(30.4% -.0000149012 0);--warning:lab(74.5664% 14.0937 69.2724);--warning-foreground:lab(94.3393% 1.51199 15.5285);--warning-subtle:lab(18.7387% 8.09276 25.6372/.3)}}@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-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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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:"";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:"";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:"";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:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} diff --git a/local-agent/visiona-agent/frontend/_next/static/chunks/8c0a22761cbf2865.css b/local-agent/visiona-agent/frontend/_next/static/chunks/8c0a22761cbf2865.css deleted file mode 100644 index d0dc6c4..0000000 --- a/local-agent/visiona-agent/frontend/_next/static/chunks/8c0a22761cbf2865.css +++ /dev/null @@ -1 +0,0 @@ -@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,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking: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-duration:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0}}}@layer theme{:root,:host{--color-blue-50:#eff6ff;--color-blue-100:#dbeafe;--color-blue-200:#bedbff;--color-blue-300:#90c5ff;--color-blue-500:#3080ff;--color-blue-800:#193cb8;--color-blue-900:#1c398e;--color-blue-950:#162456;--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-sm:24rem;--container-lg:32rem;--container-2xl:42rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-xs:.125rem;--animate-spin:spin 1s linear infinite;--animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);--default-mono-font-family:var(--font-geist-mono,ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace)}@supports (color:lab(0% 0 0)){:root,:host{--color-blue-50:lab(96.492% -1.14644 -5.11479);--color-blue-100:lab(92.0301% -2.24757 -11.6453);--color-blue-200:lab(86.15% -4.04379 -21.0797);--color-blue-300:lab(77.5052% -6.4629 -36.42);--color-blue-500:lab(54.1736% 13.3369 -74.6839);--color-blue-800:lab(30.2514% 27.7853 -70.2699);--color-blue-900:lab(26.1542% 15.7545 -51.5504);--color-blue-950:lab(15.6723% 8.86232 -32.2945)}}}@layer base{*,:after,:before,::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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab,var(--ring)50%,transparent)}}html,body{height:100%}body{background-color:var(--background);font-family:var(--font-geist-sans,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.\@container\/card-header{container:card-header/inline-size}.pointer-events-none{pointer-events:none}.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}.inset-0{inset:calc(var(--spacing)*0)}.start{inset-inline-start:var(--spacing)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing)*4)}.top-\[50\%\]{top:50%}.right-2{right:calc(var(--spacing)*2)}.right-4{right:calc(var(--spacing)*4)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.left-\[50\%\]{left:50%}.z-50{z-index:50}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2/span 2}.row-start-1{grid-row-start:1}.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}}.-mx-1{margin-inline:calc(var(--spacing)*-1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing)*1)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.ml-0\.5{margin-left:calc(var(--spacing)*.5)}.ml-auto{margin-left:auto}.line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-2{width:calc(var(--spacing)*2);height:calc(var(--spacing)*2)}.size-2\.5{width:calc(var(--spacing)*2.5);height:calc(var(--spacing)*2.5)}.size-3{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.size-3\.5{width:calc(var(--spacing)*3.5);height:calc(var(--spacing)*3.5)}.size-4{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.size-5{width:calc(var(--spacing)*5);height:calc(var(--spacing)*5)}.size-6{width:calc(var(--spacing)*6);height:calc(var(--spacing)*6)}.size-7{width:calc(var(--spacing)*7);height:calc(var(--spacing)*7)}.size-8{width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.size-9{width:calc(var(--spacing)*9);height:calc(var(--spacing)*9)}.size-10{width:calc(var(--spacing)*10);height:calc(var(--spacing)*10)}.size-16{width:calc(var(--spacing)*16);height:calc(var(--spacing)*16)}.size-20{width:calc(var(--spacing)*20);height:calc(var(--spacing)*20)}.size-full{width:100%;height:100%}.h-2{height:calc(var(--spacing)*2)}.h-2\.5{height:calc(var(--spacing)*2.5)}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-10{height:calc(var(--spacing)*10)}.h-14{height:calc(var(--spacing)*14)}.h-40{height:calc(var(--spacing)*40)}.h-64{height:calc(var(--spacing)*64)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-\(--radix-dropdown-menu-content-available-height\){max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\(--radix-select-content-available-height\){max-height:var(--radix-select-content-available-height)}.min-h-4{min-height:calc(var(--spacing)*4)}.min-h-dvh{min-height:100dvh}.w-2\.5{width:calc(var(--spacing)*2.5)}.w-8{width:calc(var(--spacing)*8)}.w-24{width:calc(var(--spacing)*24)}.w-40{width:calc(var(--spacing)*40)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-sm{max-width:var(--container-sm)}.min-w-0{min-width:calc(var(--spacing)*0)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.origin-\(--radix-dropdown-menu-content-transform-origin\){transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\(--radix-select-content-transform-origin\){transform-origin:var(--radix-select-content-transform-origin)}.origin-\(--radix-tooltip-content-transform-origin\){transform-origin:var(--radix-tooltip-content-transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1/2*100%)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-\[-50\%\]{--tw-translate-x:-50%;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-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y:calc(-50% - 2px);translate:var(--tw-translate-x)var(--tw-translate-y)}.rotate-45{rotate:45deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.animate-in{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.touch-none{touch-action:none}.scroll-my-1{scroll-margin-block:calc(var(--spacing)*1)}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[120px_1fr\]{grid-template-columns:120px 1fr}.grid-rows-\[auto_1fr\]{grid-template-rows:auto 1fr}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.place-content-center{place-content:center}.place-items-center{place-items:center}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-items-start{justify-items:start}.gap-1{gap:calc(var(--spacing)*1)}.gap-1\.5{gap:calc(var(--spacing)*1.5)}.gap-2{gap:calc(var(--spacing)*2)}.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)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*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-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)))}.gap-y-0\.5{row-gap:calc(var(--spacing)*.5)}: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-border>:not(:last-child)){border-color:var(--border)}.self-start{align-self:flex-start}.justify-self-end{justify-self:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:calc(var(--radius) + 4px)}.rounded-xs{border-radius:var(--radius-xs)}.border{border-style:var(--tw-border-style);border-width:1px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-blue-300\/60{border-color:#90c5ff99}@supports (color:color-mix(in lab, red, red)){.border-blue-300\/60{border-color:color-mix(in oklab,var(--color-blue-300)60%,transparent)}}.border-border{border-color:var(--border)}.border-destructive,.border-destructive\/40{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.border-destructive\/40{border-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.border-input{border-color:var(--input)}.border-primary{border-color:var(--primary)}.border-sidebar-border{border-color:var(--sidebar-border)}.border-status-online{border-color:var(--status-online)}.border-transparent{border-color:#0000}.border-t-transparent{border-top-color:#0000}.border-l-transparent{border-left-color:#0000}.bg-background{background-color:var(--background)}.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-blue-50{background-color:var(--color-blue-50)}.bg-border{background-color:var(--border)}.bg-card{background-color:var(--card)}.bg-destructive{background-color:var(--destructive)}.bg-muted{background-color:var(--muted)}.bg-popover{background-color:var(--popover)}.bg-primary,.bg-primary\/20{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab,var(--primary)20%,transparent)}}.bg-secondary{background-color:var(--secondary)}.bg-sidebar{background-color:var(--sidebar)}.bg-status-error{background-color:var(--status-error)}.bg-status-idle{background-color:var(--status-idle)}.bg-status-offline{background-color:var(--status-offline)}.bg-status-online{background-color:var(--status-online)}.bg-status-reconnecting{background-color:var(--status-reconnecting)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.fill-current{fill:currentColor}.fill-primary{fill:var(--primary)}.p-0{padding:calc(var(--spacing)*0)}.p-1{padding:calc(var(--spacing)*1)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-\[3px\]{padding:3px}.p-px{padding:1px}.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-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-0\.5{padding-block:calc(var(--spacing)*.5)}.py-1{padding-block:calc(var(--spacing)*1)}.py-1\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-6{padding-block:calc(var(--spacing)*6)}.py-12{padding-block:calc(var(--spacing)*12)}.pr-2{padding-right:calc(var(--spacing)*2)}.pr-8{padding-right:calc(var(--spacing)*8)}.pl-2{padding-left:calc(var(--spacing)*2)}.pl-8{padding-left:calc(var(--spacing)*8)}.text-center{text-align:center}.font-mono{font-family:var(--font-geist-mono,ui-monospace,SFMono-Regular,"SF Mono",Menlo,monospace)}.font-sans{font-family:var(--font-geist-sans,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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))}.leading-none{--tw-leading:1;line-height:1}.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-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.text-blue-900{color:var(--color-blue-900)}.text-card-foreground{color:var(--card-foreground)}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab,var(--foreground)60%,transparent)}}.text-foreground\/80{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/80{color:color-mix(in oklab,var(--foreground)80%,transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.text-sidebar-foreground{color:var(--sidebar-foreground)}.text-status-online{color:var(--status-online)}.text-status-reconnecting{color:var(--status-reconnecting)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.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-xs{--tw-shadow:0 1px 2px 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)}.ring{--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-ring,.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.ring-offset-background{--tw-ring-offset-color:var(--background)}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-\[color\,box-shadow\]{transition-property:color,box-shadow;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-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-200{--tw-duration:.2s;transition-duration:.2s}.fade-in-0{--tw-enter-opacity:0}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.zoom-in-95{--tw-enter-scale:.95}.group-data-\[disabled\=true\]\:pointer-events-none:is(:where(.group)[data-disabled=true] *){pointer-events:none}.group-data-\[disabled\=true\]\:opacity-50:is(:where(.group)[data-disabled=true] *){opacity:.5}.group-data-\[orientation\=horizontal\]\/tabs\:h-9:is(:where(.group\/tabs)[data-orientation=horizontal] *){height:calc(var(--spacing)*9)}.group-data-\[orientation\=vertical\]\/tabs\:h-fit:is(:where(.group\/tabs)[data-orientation=vertical] *){height:fit-content}.group-data-\[orientation\=vertical\]\/tabs\:w-full:is(:where(.group\/tabs)[data-orientation=vertical] *){width:100%}.group-data-\[orientation\=vertical\]\/tabs\:flex-col:is(:where(.group\/tabs)[data-orientation=vertical] *){flex-direction:column}.group-data-\[orientation\=vertical\]\/tabs\:justify-start:is(:where(.group\/tabs)[data-orientation=vertical] *){justify-content:flex-start}.group-data-\[size\=sm\]\/alert-dialog-content\:grid:is(:where(.group\/alert-dialog-content)[data-size=sm] *){display:grid}.group-data-\[size\=sm\]\/alert-dialog-content\:grid-cols-2:is(:where(.group\/alert-dialog-content)[data-size=sm] *){grid-template-columns:repeat(2,minmax(0,1fr))}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.peer-disabled\:cursor-not-allowed:is(:where(.peer):disabled~*){cursor:not-allowed}.peer-disabled\:opacity-50:is(:where(.peer):disabled~*){opacity:.5}.selection\:bg-primary ::selection,.selection\:bg-primary::selection{background-color:var(--primary)}.selection\:text-primary-foreground ::selection,.selection\:text-primary-foreground::selection{color:var(--primary-foreground)}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing)*7)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-\[orientation\=horizontal\]\/tabs\:after\:inset-x-0:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);inset-inline:calc(var(--spacing)*0)}.group-data-\[orientation\=horizontal\]\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);bottom:-5px}.group-data-\[orientation\=horizontal\]\/tabs\:after\:h-0\.5:is(:where(.group\/tabs)[data-orientation=horizontal] *):after{content:var(--tw-content);height:calc(var(--spacing)*.5)}.group-data-\[orientation\=vertical\]\/tabs\:after\:inset-y-0:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);inset-block:calc(var(--spacing)*0)}.group-data-\[orientation\=vertical\]\/tabs\:after\:-right-1:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);right:calc(var(--spacing)*-1)}.group-data-\[orientation\=vertical\]\/tabs\:after\:w-0\.5:is(:where(.group\/tabs)[data-orientation=vertical] *):after{content:var(--tw-content);width:calc(var(--spacing)*.5)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab,var(--secondary)80%,transparent)}}.hover\:text-accent-foreground:hover{color:var(--accent-foreground)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.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-ring:focus{--tw-ring-color:var(--ring)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.focus\:outline-hidden:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus\:outline-hidden:focus{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(4px + 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-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(3px + 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-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.focus-visible\:ring-destructive\/30:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)30%,transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab,var(--ring)50%,transparent)}}.focus-visible\:ring-status-online\/30:focus-visible{--tw-ring-color:var(--status-online)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-status-online\/30:focus-visible{--tw-ring-color:color-mix(in oklab,var(--status-online)30%,transparent)}}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_auto_1fr\]:has([data-slot=alert-dialog-media]){grid-template-rows:auto auto 1fr}.has-data-\[slot\=alert-dialog-media\]\:gap-x-6:has([data-slot=alert-dialog-media]){column-gap:calc(var(--spacing)*6)}.has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\]:has([data-slot=card-action]){grid-template-columns:1fr auto}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing)*4)1fr}.has-\[\>svg\]\:gap-x-3:has(>svg){column-gap:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing)*1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing)*2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing)*3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing)*4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[inset\]\:pl-8[data-inset]{padding-left:calc(var(--spacing)*8)}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:calc(var(--spacing)*1.5)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=horizontal\]\:flex-col[data-orientation=horizontal]{flex-direction:column}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing)*44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing)*1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x:calc(var(--spacing)*1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing)*-1);translate:var(--tw-translate-x)var(--tw-translate-y)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-9[data-size=default]{height:calc(var(--spacing)*9)}.data-\[size\=sm\]\:h-8[data-size=sm]{height:calc(var(--spacing)*8)}.data-\[size\=sm\]\:max-w-xs[data-size=sm]{max-width:var(--container-xs)}:is(.\*\:data-\[slot\=alert-description\]\:text-blue-800\/90>*)[data-slot=alert-description]{color:#193cb8e6}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-blue-800\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--color-blue-800)90%,transparent)}}:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){:is(.\*\:data-\[slot\=alert-description\]\:text-destructive\/90>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--destructive)90%,transparent)}}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-2>*)[data-slot=select-value]{gap:calc(var(--spacing)*2)}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:var(--background)}.data-\[state\=active\]\:text-foreground[data-state=active]{color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-\[state\=active\]\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{--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)}.group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]:after{content:var(--tw-content);opacity:1}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:var(--primary)}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:var(--primary)}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:var(--primary-foreground)}.data-\[state\=closed\]\:animate-out[data-state=closed]{animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale:.95}.data-\[state\=open\]\:animate-in[data-state=open]{animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:var(--accent)}.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:var(--accent-foreground)}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:var(--muted-foreground)}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.data-\[variant\=destructive\]\:focus\:bg-destructive\/10[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)10%,transparent)}}.data-\[variant\=destructive\]\:focus\:text-destructive[data-variant=destructive]:focus{color:var(--destructive)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@media (prefers-reduced-motion:no-preference){.motion-safe\:animate-pulse{animation:var(--animate-pulse)}.motion-safe\:animate-spin{animation:var(--animate-spin)}}@media (min-width:40rem){.sm\:max-w-lg{max-width:var(--container-lg)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:text-left{text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:row-span-2:is(:where(.group\/alert-dialog-content)[data-size=default] *){grid-row:span 2/span 2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:place-items-start:is(:where(.group\/alert-dialog-content)[data-size=default] *){place-items:start}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:text-left:is(:where(.group\/alert-dialog-content)[data-size=default] *){text-align:left}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:group-has-data-\[slot\=alert-dialog-media\]\/alert-dialog-content\:col-start-2:is(:where(.group\/alert-dialog-content)[data-size=default] *):is(:where(.group\/alert-dialog-content):has([data-slot=alert-dialog-media]) *){grid-column-start:2}.sm\:group-data-\[size\=default\]\/alert-dialog-content\:has-data-\[slot\=alert-dialog-media\]\:grid-rows-\[auto_1fr\]:is(:where(.group\/alert-dialog-content)[data-size=default] *):has([data-slot=alert-dialog-media]){grid-template-rows:auto 1fr}.data-\[size\=default\]\:sm\:max-w-lg[data-size=default]{max-width:var(--container-lg)}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-blue-500\/30:is(.dark *){border-color:#3080ff4d}@supports (color:color-mix(in lab, red, red)){.dark\:border-blue-500\/30:is(.dark *){border-color:color-mix(in oklab,var(--color-blue-500)30%,transparent)}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-blue-950\/30:is(.dark *){background-color:#1624564d}@supports (color:color-mix(in lab, red, red)){.dark\:bg-blue-950\/30:is(.dark *){background-color:color-mix(in oklab,var(--color-blue-950)30%,transparent)}}.dark\:bg-destructive\/60:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60:is(.dark *){background-color:color-mix(in oklab,var(--destructive)60%,transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:text-blue-100:is(.dark *){color:var(--color-blue-100)}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--accent)50%,transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab,var(--input)50%,transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab,var(--destructive)40%,transparent)}}:is(.dark\:\*\:data-\[slot\=alert-description\]\:text-blue-200\/80:is(.dark *)>*)[data-slot=alert-description]{color:#bedbffcc}@supports (color:color-mix(in lab, red, red)){:is(.dark\:\*\:data-\[slot\=alert-description\]\:text-blue-200\/80:is(.dark *)>*)[data-slot=alert-description]{color:color-mix(in oklab,var(--color-blue-200)80%,transparent)}}.dark\:data-\[state\=active\]\:border-input:is(.dark *)[data-state=active]{border-color:var(--input)}.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[state\=active\]\:bg-input\/30:is(.dark *)[data-state=active]{background-color:color-mix(in oklab,var(--input)30%,transparent)}}.dark\:data-\[state\=active\]\:text-foreground:is(.dark *)[data-state=active]{color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-\[state\=active\]\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *)[data-state=active]{background-color:#0000}.dark\:data-\[state\=checked\]\:bg-primary:is(.dark *)[data-state=checked]{background-color:var(--primary)}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:is(.dark *)[data-variant=destructive]:focus{background-color:color-mix(in oklab,var(--destructive)20%,transparent)}}.\[\&_p\]\:leading-relaxed p{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:var(--muted-foreground)}.\[\.border-b\]\:pb-6.border-b{padding-bottom:calc(var(--spacing)*6)}.\[\.border-t\]\:pt-6.border-t{padding-top:calc(var(--spacing)*6)}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing)*2)}:is(.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive[data-variant=destructive]>*):is(svg){color:var(--destructive)!important}:is(.\*\:\[svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-8>*):is(svg:not([class*=size-])){width:calc(var(--spacing)*8);height:calc(var(--spacing)*8)}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:calc(var(--spacing)*3);height:calc(var(--spacing)*3)}.\[\&\>svg\]\:size-4>svg{width:calc(var(--spacing)*4);height:calc(var(--spacing)*4)}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y:calc(var(--spacing)*.5);translate:var(--tw-translate-x)var(--tw-translate-y)}.\[\&\>svg\]\:text-current>svg{color:currentColor}@media (hover:hover){a.\[a\&\]\:hover\:bg-accent:hover{background-color:var(--accent)}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab,var(--destructive)90%,transparent)}}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:color-mix(in oklab,var(--primary)90%,transparent)}}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:color-mix(in oklab,var(--secondary)90%,transparent)}}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:var(--accent-foreground)}a.\[a\&\]\:hover\:underline:hover{text-decoration-line:underline}}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}:root{--radius:.625rem;--background:#fff;--foreground:#0a0a0a;--card:#fff;--card-foreground:#0a0a0a;--popover:#fff;--popover-foreground:#0a0a0a;--primary:#171717;--primary-foreground:#fafafa;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#737373;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#e40014;--border:#e5e5e5;--input:#e5e5e5;--ring:#a1a1a1;--chart-1:#f05100;--chart-2:#009588;--chart-3:#104e64;--chart-4:#fcbb00;--chart-5:#f99c00;--sidebar:#fafafa;--sidebar-foreground:#0a0a0a;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1;--status-online:#00bb7f;--status-offline:#a1a1a1;--status-reconnecting:#f7c91a;--status-error:#fb2c36;--status-idle:#c4c4c4;--warning:#d09300;--warning-foreground:#492b00;--warning-subtle:#fff4db}@supports (color:lab(0% 0 0)){:root{--background:lab(100% 0 0);--foreground:lab(2.75381% 0 0);--card:lab(100% 0 0);--card-foreground:lab(2.75381% 0 0);--popover:lab(100% 0 0);--popover-foreground:lab(2.75381% 0 0);--primary:lab(7.78201% -.0000149012 0);--primary-foreground:lab(98.26% 0 0);--secondary:lab(96.52% -.0000298023 .0000119209);--secondary-foreground:lab(7.78201% -.0000149012 0);--muted:lab(96.52% -.0000298023 .0000119209);--muted-foreground:lab(48.496% 0 0);--accent:lab(96.52% -.0000298023 .0000119209);--accent-foreground:lab(7.78201% -.0000149012 0);--destructive:lab(48.4493% 77.4328 61.5452);--border:lab(90.952% 0 -.0000119209);--input:lab(90.952% 0 -.0000119209);--ring:lab(66.128% -.0000298023 .0000119209);--chart-1:lab(57.1026% 64.2584 89.8886);--chart-2:lab(55.0223% -41.0774 -3.90277);--chart-3:lab(30.372% -13.1853 -18.7887);--chart-4:lab(80.1641% 16.6016 99.2089);--chart-5:lab(72.7183% 31.8672 97.9407);--sidebar:lab(98.26% 0 0);--sidebar-foreground:lab(2.75381% 0 0);--sidebar-primary:lab(7.78201% -.0000149012 0);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(96.52% -.0000298023 .0000119209);--sidebar-accent-foreground:lab(7.78201% -.0000149012 0);--sidebar-border:lab(90.952% 0 -.0000119209);--sidebar-ring:lab(66.128% -.0000298023 .0000119209);--status-online:lab(66.9756% -58.27 19.5419);--status-offline:lab(66.128% -.0000298023 .0000119209);--status-reconnecting:lab(83.2581% 6.76128 80.3298);--status-error:lab(55.4814% 75.0734 48.8504);--status-idle:lab(79.12% -.0000298023 -.0000119209);--warning:lab(65.6285% 17.3048 77.4091);--warning-foreground:lab(20.9068% 13.6763 34.4248);--warning-subtle:lab(96.6599% 1.50219 15.5202)}}.dark{--background:#0a0a0a;--foreground:#fafafa;--card:#171717;--card-foreground:#fafafa;--popover:#171717;--popover-foreground:#fafafa;--primary:#e5e5e5;--primary-foreground:#171717;--secondary:#262626;--secondary-foreground:#fafafa;--muted:#262626;--muted-foreground:#a1a1a1;--accent:#262626;--accent-foreground:#fafafa;--destructive:#ff6568;--border:#ffffff1a;--input:#ffffff26;--ring:#737373;--chart-1:#1447e6;--chart-2:#00bb7f;--chart-3:#f99c00;--chart-4:#ac4bff;--chart-5:#ff2357;--sidebar:#171717;--sidebar-foreground:#fafafa;--sidebar-primary:#1447e6;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#262626;--sidebar-accent-foreground:#fafafa;--sidebar-border:#ffffff1a;--sidebar-ring:#737373;--status-online:#00c386;--status-offline:#737373;--status-reconnecting:#edc751;--status-error:#ff6165;--status-idle:#484848;--warning:#e7ac2a;--warning-foreground:#fbedd1;--warning-subtle:#3f29034d}@supports (color:lab(0% 0 0)){.dark{--background:lab(2.75381% 0 0);--foreground:lab(98.26% 0 0);--card:lab(7.78201% -.0000149012 0);--card-foreground:lab(98.26% 0 0);--popover:lab(7.78201% -.0000149012 0);--popover-foreground:lab(98.26% 0 0);--primary:lab(90.952% 0 -.0000119209);--primary-foreground:lab(7.78201% -.0000149012 0);--secondary:lab(15.204% 0 -.00000596046);--secondary-foreground:lab(98.26% 0 0);--muted:lab(15.204% 0 -.00000596046);--muted-foreground:lab(66.128% -.0000298023 .0000119209);--accent:lab(15.204% 0 -.00000596046);--accent-foreground:lab(98.26% 0 0);--destructive:lab(63.7053% 60.745 31.3109);--border:lab(100% 0 0/.1);--input:lab(100% 0 0/.15);--ring:lab(48.496% 0 0);--chart-1:lab(36.9089% 35.0961 -85.6872);--chart-2:lab(66.9756% -58.27 19.5419);--chart-3:lab(72.7183% 31.8672 97.9407);--chart-4:lab(52.0183% 66.11 -78.2316);--chart-5:lab(56.101% 79.4328 31.4532);--sidebar:lab(7.78201% -.0000149012 0);--sidebar-foreground:lab(98.26% 0 0);--sidebar-primary:lab(36.9089% 35.0961 -85.6872);--sidebar-primary-foreground:lab(98.26% 0 0);--sidebar-accent:lab(15.204% 0 -.00000596046);--sidebar-accent-foreground:lab(98.26% 0 0);--sidebar-border:lab(100% 0 0/.1);--sidebar-ring:lab(48.496% 0 0);--status-online:lab(69.7618% -58.1338 19.5173);--status-offline:lab(48.496% 0 0);--status-reconnecting:lab(81.8461% 4.7622 61.7848);--status-error:lab(63.1376% 63.6989 32.7469);--status-idle:lab(30.4% -.0000149012 0);--warning:lab(74.5664% 14.0937 69.2724);--warning-foreground:lab(94.3393% 1.51199 15.5285);--warning-subtle:lab(18.7387% 8.09276 25.6372/.3)}}@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-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-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{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:"";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:"";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:"";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-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}} diff --git a/local-agent/visiona-agent/frontend/_next/static/chunks/d6dfeddbc30b2115.js b/local-agent/visiona-agent/frontend/_next/static/chunks/d6dfeddbc30b2115.js deleted file mode 100644 index e684fe9..0000000 --- a/local-agent/visiona-agent/frontend/_next/static/chunks/d6dfeddbc30b2115.js +++ /dev/null @@ -1,11 +0,0 @@ -(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,52683,e=>{"use strict";let t;var r,n,a,o,i,s,l,c=e.i(98134),d=e.i(75201),u=e.i(3790);let f=(0,u.default)("globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]),p=(0,u.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),v=(0,u.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var h=e.i(42092),m=e.i(7284);let g=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,x=m.clsx,b=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return x(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:a,defaultVariants:o}=t,i=Object.keys(a).map(e=>{let t=null==r?void 0:r[e],n=null==o?void 0:o[e];if(null===t)return null;let i=g(t)||g(n);return a[e][i]}),s=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return x(e,i,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...a}=t;return Object.entries(a).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...o,...s}[t]):({...o,...s})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)};var y=e.i(97245),y=y,w=e.i(75157);let j=b("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function S({className:e,variant:t="default",size:r="default",asChild:n=!1,...a}){let o=n?y.Root:"button";return(0,c.jsx)(o,{"data-slot":"button","data-variant":t,"data-size":r,className:(0,w.cn)(j({variant:t,size:r,className:e})),...a})}var C=e.i(46798),k=e.i(44674),E=e.i(6901),R=e.i(84344),R=R,N=e.i(84086),N=N;let T=(0,u.default)("power-off",[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]),A=(0,u.default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]),P=(0,u.default)("unlink",[["path",{d:"m18.84 12.25 1.72-1.71h-.02a5.004 5.004 0 0 0-.12-7.07 5.006 5.006 0 0 0-6.95 0l-1.72 1.71",key:"yqzxt4"}],["path",{d:"m5.17 11.75-1.71 1.71a5.004 5.004 0 0 0 .12 7.07 5.006 5.006 0 0 0 6.95 0l1.71-1.71",key:"4qinb0"}],["line",{x1:"8",x2:"8",y1:"2",y2:"5",key:"1041cp"}],["line",{x1:"2",x2:"5",y1:"8",y2:"8",key:"14m1p5"}],["line",{x1:"16",x2:"16",y1:"19",y2:"22",key:"rzdirn"}],["line",{x1:"19",x2:"22",y1:"16",y2:"16",key:"ox905f"}]]),I={online:{i18nKey:"connection.online",Icon:N.default,dotClass:"bg-status-online"},offline:{i18nKey:"connection.offline",Icon:T,dotClass:"bg-status-offline"},reconnecting:{i18nKey:"connection.reconnecting",Icon:A,dotClass:"bg-status-reconnecting motion-safe:animate-pulse",animate:!0,iconAnimate:!0},"not-paired":{i18nKey:"connection.notPaired",Icon:P,dotClass:"bg-status-idle"},error:{i18nKey:"connection.error",Icon:R.default,dotClass:"bg-status-error"}};function D({status:e="not-paired",className:t}){let r=(0,k.useT)(),n=I[e],a=r(n.i18nKey);return(0,c.jsxs)("span",{role:"status","aria-live":"polite","aria-label":a,"data-testid":"connection-status-badge","data-status":e,className:(0,w.cn)("inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs font-medium","border-border bg-card text-foreground/80",t),children:[(0,c.jsx)("span",{"aria-hidden":"true",className:(0,w.cn)("inline-block size-2 shrink-0 rounded-full",n.dotClass)}),(0,c.jsx)(n.Icon,{"aria-hidden":"true",className:(0,w.cn)("size-3.5 shrink-0",n.iconAnimate&&"motion-safe:animate-spin")}),(0,c.jsx)("span",{children:a})]})}function L(){let e=(0,k.useT)();return(0,c.jsxs)("header",{"data-slot":"header",className:(0,w.cn)("flex h-14 shrink-0 items-center gap-3 border-b px-4","bg-sidebar text-sidebar-foreground border-sidebar-border"),children:[(0,c.jsxs)("div",{className:"flex items-center gap-2","aria-label":e("app.title"),children:[(0,c.jsx)("span",{"aria-hidden":"true",className:"bg-primary text-primary-foreground grid size-7 place-items-center rounded-md text-xs font-bold",children:"vA"}),(0,c.jsx)("span",{className:"text-sm font-semibold",children:e("app.title")})]}),(0,c.jsx)("div",{className:"flex-1"}),(0,c.jsxs)("div",{className:"flex items-center gap-2",children:[(0,c.jsx)(D,{}),(0,c.jsx)(z,{}),(0,c.jsx)(_,{})]})]})}function z(){let{locale:e,setLocale:t}=(0,k.useLocale)(),r=(0,k.useT)();return(0,c.jsxs)(C.Tooltip,{children:[(0,c.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,c.jsx)(S,{variant:"ghost",size:"icon-sm","aria-label":r("header.toggleLocale"),onClick:function(){let r=E.SUPPORTED_LOCALES.indexOf(e);t(E.SUPPORTED_LOCALES[(r+1)%E.SUPPORTED_LOCALES.length])},"data-testid":"locale-toggle",children:(0,c.jsx)(f,{className:"size-4","aria-hidden":"true"})})}),(0,c.jsxs)(C.TooltipContent,{side:"bottom",children:[r("header.toggleLocale")," · ",e]})]})}function _(){let{theme:e,setTheme:t,resolvedTheme:r}=(0,h.useTheme)(),n=(0,k.useT)();return(0,c.jsxs)(C.Tooltip,{children:[(0,c.jsx)(C.TooltipTrigger,{asChild:!0,children:(0,c.jsx)(S,{variant:"ghost",size:"icon-sm","aria-label":n("header.toggleTheme"),onClick:function(){"dark"===r?t("light"):t("dark")},"data-testid":"theme-toggle",children:"dark"===e||"dark"===r?(0,c.jsx)(p,{className:"size-4","aria-hidden":"true"}):(0,c.jsx)(v,{className:"size-4","aria-hidden":"true"})})}),(0,c.jsx)(C.TooltipContent,{side:"bottom",children:n("header.toggleTheme")})]})}function M({children:e}){return(0,c.jsxs)("div",{className:"flex min-h-dvh flex-col","data-testid":"agent-app-shell",children:[(0,c.jsx)(L,{}),(0,c.jsx)("main",{className:"flex-1 min-w-0 overflow-y-auto",children:e})]})}var O=e.i(91967),H=e.i(38082),F=e.i(50888),U=y;function K(e){let t=e+"CollectionProvider",[r,n]=(0,H.createContextScope)(t),[a,o]=r(t,{collectionRef:{current:null},itemMap:new Map}),i=e=>{let{scope:t,children:r}=e,n=d.default.useRef(null),o=d.default.useRef(new Map).current;return(0,c.jsx)(a,{scope:t,itemMap:o,collectionRef:n,children:r})};i.displayName=t;let s=e+"CollectionSlot",l=(0,U.createSlot)(s),u=d.default.forwardRef((e,t)=>{let{scope:r,children:n}=e,a=o(s,r),i=(0,F.useComposedRefs)(t,a.collectionRef);return(0,c.jsx)(l,{ref:i,children:n})});u.displayName=s;let f=e+"CollectionItemSlot",p="data-radix-collection-item",v=(0,U.createSlot)(f),h=d.default.forwardRef((e,t)=>{let{scope:r,children:n,...a}=e,i=d.default.useRef(null),s=(0,F.useComposedRefs)(t,i),l=o(f,r);return d.default.useEffect(()=>(l.itemMap.set(i,{ref:i,...a}),()=>void l.itemMap.delete(i))),(0,c.jsx)(v,{...{[p]:""},ref:s,children:n})});return h.displayName=f,[{Provider:i,Slot:u,ItemSlot:h},function(t){let r=o(e+"CollectionConsumer",t);return d.default.useCallback(()=>{let e=r.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${p}]`));return Array.from(r.itemMap.values()).sort((e,r)=>t.indexOf(e.ref.current)-t.indexOf(r.ref.current))},[r.collectionRef,r.itemMap])},n]}var B=new WeakMap;function W(e,t){var r,n;let a,o,i;if("at"in Array.prototype)return Array.prototype.at.call(e,t);let s=(r=e,n=t,a=r.length,(i=(o=V(n))>=0?o:a+o)<0||i>=a?-1:i);return -1===s?void 0:e[s]}function V(e){return e!=e||0===e?0:Math.trunc(e)}(class e extends Map{#e;constructor(e){super(e),this.#e=[...super.keys()],B.set(this,!0)}set(e,t){return B.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,r){let n,a=this.has(t),o=this.#e.length,i=V(e),s=i>=0?i:o+i,l=s<0||s>=o?-1:s;if(l===this.size||a&&l===this.size-1||-1===l)return this.set(t,r),this;let c=this.size+ +!a;i<0&&s++;let d=[...this.#e],u=!1;for(let e=s;e=this.size&&(n=this.size-1),this.at(n)}keyFrom(e,t){let r=this.indexOf(e);if(-1===r)return;let n=r+t;return n<0&&(n=0),n>=this.size&&(n=this.size-1),this.keyAt(n)}find(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return n;r++}}findIndex(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return r;r++}return -1}filter(t,r){let n=[],a=0;for(let e of this)Reflect.apply(t,r,[e,a,this])&&n.push(e),a++;return new e(n)}map(t,r){let n=[],a=0;for(let e of this)n.push([e[0],Reflect.apply(t,r,[e,a,this])]),a++;return new e(n)}reduce(...e){let[t,r]=e,n=0,a=r??this.at(0);for(let r of this)a=0===n&&1===e.length?r:Reflect.apply(t,this,[a,r,n,this]),n++;return a}reduceRight(...e){let[t,r]=e,n=r??this.at(-1);for(let r=this.size-1;r>=0;r--){let a=this.at(r);n=r===this.size-1&&1===e.length?a:Reflect.apply(t,this,[n,a,r,this])}return n}toSorted(t){return new e([...this.entries()].sort(t))}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let r=this.keyAt(e),n=this.get(r);t.set(r,n)}return t}toSpliced(...t){let r=[...this.entries()];return r.splice(...t),new e(r)}slice(t,r){let n=new e,a=this.size-1;if(void 0===t)return n;t<0&&(t+=this.size),void 0!==r&&r>0&&(a=r-1);for(let e=t;e<=a;e++){let t=this.keyAt(e),r=this.get(t);n.set(t,r)}return n}every(e,t){let r=0;for(let n of this){if(!Reflect.apply(e,t,[n,r,this]))return!1;r++}return!0}some(e,t){let r=0;for(let n of this){if(Reflect.apply(e,t,[n,r,this]))return!0;r++}return!1}});var $=e.i(54041),q=e.i(85381),Y=e.i(84080),X=e.i(38185),G=d.createContext(void 0);function Z(e){let t=d.useContext(G);return e||t||"ltr"}var J="rovingFocusGroup.onEntryFocus",Q={bubbles:!1,cancelable:!0},ee="RovingFocusGroup",[et,er,en]=K(ee),[ea,eo]=(0,H.createContextScope)(ee,[en]),[ei,es]=ea(ee),el=d.forwardRef((e,t)=>(0,c.jsx)(et.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,c.jsx)(et.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,c.jsx)(ec,{...e,ref:t})})}));el.displayName=ee;var ec=d.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,orientation:n,loop:a=!1,dir:o,currentTabStopId:i,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:l,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...p}=e,v=d.useRef(null),h=(0,F.useComposedRefs)(t,v),m=Z(o),[g,x]=(0,X.useControllableState)({prop:i,defaultProp:s??null,onChange:l,caller:ee}),[b,y]=d.useState(!1),w=(0,Y.useCallbackRef)(u),j=er(r),S=d.useRef(!1),[C,k]=d.useState(0);return d.useEffect(()=>{let e=v.current;if(e)return e.addEventListener(J,w),()=>e.removeEventListener(J,w)},[w]),(0,c.jsx)(ei,{scope:r,orientation:n,dir:m,loop:a,currentTabStopId:g,onItemFocus:d.useCallback(e=>x(e),[x]),onItemShiftTab:d.useCallback(()=>y(!0),[]),onFocusableItemAdd:d.useCallback(()=>k(e=>e+1),[]),onFocusableItemRemove:d.useCallback(()=>k(e=>e-1),[]),children:(0,c.jsx)(q.Primitive.div,{tabIndex:b||0===C?-1:0,"data-orientation":n,...p,ref:h,style:{outline:"none",...e.style},onMouseDown:(0,O.composeEventHandlers)(e.onMouseDown,()=>{S.current=!0}),onFocus:(0,O.composeEventHandlers)(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!b){let t=new CustomEvent(J,Q);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=j().filter(e=>e.focusable);ep([e.find(e=>e.active),e.find(e=>e.id===g),...e].filter(Boolean).map(e=>e.ref.current),f)}}S.current=!1}),onBlur:(0,O.composeEventHandlers)(e.onBlur,()=>y(!1))})})}),ed="RovingFocusGroupItem",eu=d.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:r,focusable:n=!0,active:a=!1,tabStopId:o,children:i,...s}=e,l=(0,$.useId)(),u=o||l,f=es(ed,r),p=f.currentTabStopId===u,v=er(r),{onFocusableItemAdd:h,onFocusableItemRemove:m,currentTabStopId:g}=f;return d.useEffect(()=>{if(n)return h(),()=>m()},[n,h,m]),(0,c.jsx)(et.ItemSlot,{scope:r,id:u,focusable:n,active:a,children:(0,c.jsx)(q.Primitive.span,{tabIndex:p?0:-1,"data-orientation":f.orientation,...s,ref:t,onMouseDown:(0,O.composeEventHandlers)(e.onMouseDown,e=>{n?f.onItemFocus(u):e.preventDefault()}),onFocus:(0,O.composeEventHandlers)(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:(0,O.composeEventHandlers)(e.onKeyDown,e=>{if("Tab"===e.key&&e.shiftKey)return void f.onItemShiftTab();if(e.target!==e.currentTarget)return;let t=function(e,t,r){var n;let a=(n=e.key,"rtl"!==r?n:"ArrowLeft"===n?"ArrowRight":"ArrowRight"===n?"ArrowLeft":n);if(!("vertical"===t&&["ArrowLeft","ArrowRight"].includes(a))&&!("horizontal"===t&&["ArrowUp","ArrowDown"].includes(a)))return ef[a]}(e,f.orientation,f.dir);if(void 0!==t){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let a=v().filter(e=>e.focusable).map(e=>e.ref.current);if("last"===t)a.reverse();else if("prev"===t||"next"===t){var r,n;"prev"===t&&a.reverse();let o=a.indexOf(e.currentTarget);a=f.loop?(r=a,n=o+1,r.map((e,t)=>r[(n+t)%r.length])):a.slice(o+1)}setTimeout(()=>ep(a))}}),children:"function"==typeof i?i({isCurrentTabStop:p,hasTabStop:null!=g}):i})})});eu.displayName=ed;var ef={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function ep(e,t=!1){let r=document.activeElement;for(let n of e)if(n===r||(n.focus({preventScroll:t}),document.activeElement!==r))return}var ev=e.i(69060),eh="Tabs",[em,eg]=(0,H.createContextScope)(eh,[eo]),ex=eo(),[eb,ey]=em(eh),ew=d.forwardRef((e,t)=>{let{__scopeTabs:r,value:n,onValueChange:a,defaultValue:o,orientation:i="horizontal",dir:s,activationMode:l="automatic",...d}=e,u=Z(s),[f,p]=(0,X.useControllableState)({prop:n,onChange:a,defaultProp:o??"",caller:eh});return(0,c.jsx)(eb,{scope:r,baseId:(0,$.useId)(),value:f,onValueChange:p,orientation:i,dir:u,activationMode:l,children:(0,c.jsx)(q.Primitive.div,{dir:u,"data-orientation":i,...d,ref:t})})});ew.displayName=eh;var ej="TabsList",eS=d.forwardRef((e,t)=>{let{__scopeTabs:r,loop:n=!0,...a}=e,o=ey(ej,r),i=ex(r);return(0,c.jsx)(el,{asChild:!0,...i,orientation:o.orientation,dir:o.dir,loop:n,children:(0,c.jsx)(q.Primitive.div,{role:"tablist","aria-orientation":o.orientation,...a,ref:t})})});eS.displayName=ej;var eC="TabsTrigger",ek=d.forwardRef((e,t)=>{let{__scopeTabs:r,value:n,disabled:a=!1,...o}=e,i=ey(eC,r),s=ex(r),l=eN(i.baseId,n),d=eT(i.baseId,n),u=n===i.value;return(0,c.jsx)(eu,{asChild:!0,...s,focusable:!a,active:u,children:(0,c.jsx)(q.Primitive.button,{type:"button",role:"tab","aria-selected":u,"aria-controls":d,"data-state":u?"active":"inactive","data-disabled":a?"":void 0,disabled:a,id:l,...o,ref:t,onMouseDown:(0,O.composeEventHandlers)(e.onMouseDown,e=>{a||0!==e.button||!1!==e.ctrlKey?e.preventDefault():i.onValueChange(n)}),onKeyDown:(0,O.composeEventHandlers)(e.onKeyDown,e=>{[" ","Enter"].includes(e.key)&&i.onValueChange(n)}),onFocus:(0,O.composeEventHandlers)(e.onFocus,()=>{let e="manual"!==i.activationMode;u||a||!e||i.onValueChange(n)})})})});ek.displayName=eC;var eE="TabsContent",eR=d.forwardRef((e,t)=>{let{__scopeTabs:r,value:n,forceMount:a,children:o,...i}=e,s=ey(eE,r),l=eN(s.baseId,n),u=eT(s.baseId,n),f=n===s.value,p=d.useRef(f);return d.useEffect(()=>{let e=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,c.jsx)(ev.Presence,{present:a||f,children:({present:r})=>(0,c.jsx)(q.Primitive.div,{"data-state":f?"active":"inactive","data-orientation":s.orientation,role:"tabpanel","aria-labelledby":l,hidden:!r,id:u,tabIndex:0,...i,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:r&&o})})});function eN(e,t){return`${e}-trigger-${t}`}function eT(e,t){return`${e}-content-${t}`}eR.displayName=eE,e.s(["Content",()=>eR,"List",()=>eS,"Root",()=>ew,"Tabs",()=>ew,"TabsContent",()=>eR,"TabsList",()=>eS,"TabsTrigger",()=>ek,"Trigger",()=>ek,"createTabsScope",()=>eg],26941);var eA=e.i(26941),eA=eA;function eP({className:e,orientation:t="horizontal",...r}){return(0,c.jsx)(eA.Root,{"data-slot":"tabs","data-orientation":t,orientation:t,className:(0,w.cn)("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col",e),...r})}let eI=b("rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col",{variants:{variant:{default:"bg-muted",line:"gap-1 bg-transparent"}},defaultVariants:{variant:"default"}});function eD({className:e,variant:t="default",...r}){return(0,c.jsx)(eA.List,{"data-slot":"tabs-list","data-variant":t,className:(0,w.cn)(eI({variant:t}),e),...r})}function eL({className:e,...t}){return(0,c.jsx)(eA.Trigger,{"data-slot":"tabs-trigger",className:(0,w.cn)("focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4","group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent","data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground","after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100",e),...t})}function ez({className:e,...t}){return(0,c.jsx)(eA.Content,{"data-slot":"tabs-content",className:(0,w.cn)("flex-1 outline-none",e),...t})}let e_=[{value:"status",i18nKey:"nav.status"},{value:"pair",i18nKey:"nav.pair"},{value:"settings",i18nKey:"nav.settings"}];function eM(){let e=(0,k.useT)();return(0,c.jsx)(eD,{"data-testid":"agent-tab-list","aria-label":e("nav.status"),className:"w-full",children:e_.map(({value:t,i18nKey:r})=>(0,c.jsx)(eL,{value:t,"data-testid":`agent-tab-trigger-${t}`,children:e(r)},t))})}let eO=(0,u.default)("arrow-up-right",[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]);var eH=e.i(54219);let eF=(0,u.default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);var N=N;function eU({className:e,type:t,...r}){return(0,c.jsx)("input",{type:t,"data-slot":"input",className:(0,w.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var eK=d.forwardRef((e,t)=>(0,c.jsx)(q.Primitive.label,{...e,ref:t,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));eK.displayName="Label",e.s(["Label",()=>eK,"Root",()=>eK],36763);var eB=e.i(36763),eB=eB;function eW({className:e,...t}){return(0,c.jsx)(eB.Root,{"data-slot":"label",className:(0,w.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}let eV=/^vAc_[a-f0-9]{32}$/i;function e$(e){let t=e.trim();return 0===t.length?"empty":eV.test(t)?"valid":"invalid"}function eq({id:e="pairing-token",value:t,onChange:r,onSubmit:n,disabled:a=!1,autoFocus:o=!1}){let i=(0,k.useT)(),s=e$(t),l=`${e}-hint`,d="invalid"===s?"border-destructive focus-visible:ring-destructive/30":"valid"===s?"border-status-online focus-visible:ring-status-online/30":"";return(0,c.jsxs)("div",{className:"space-y-2",children:[(0,c.jsx)(eW,{htmlFor:e,children:i("pair.input.label")}),(0,c.jsx)(eU,{id:e,type:"text",value:t,onChange:function(e){r(e.target.value.replace(/\s+/g,""))},onFocus:function(e){e.currentTarget.select()},onKeyDown:function(e){"Enter"===e.key&&"valid"===s&&n&&(e.preventDefault(),n())},disabled:a,autoFocus:o,spellCheck:!1,autoCapitalize:"none",autoComplete:"off",placeholder:i("pair.input.placeholder"),"aria-invalid":"invalid"===s,"aria-describedby":l,"data-testid":"token-input","data-validity":s,className:(0,w.cn)("font-mono text-sm",d)}),(0,c.jsx)(eY,{id:l,validity:s})]})}function eY({id:e,validity:t}){let r=(0,k.useT)();return"empty"===t?(0,c.jsx)("p",{id:e,className:"text-muted-foreground flex items-center gap-1.5 text-xs",children:r("pair.input.hintEmpty")}):"invalid"===t?(0,c.jsxs)("p",{id:e,"aria-live":"polite",className:"text-destructive flex items-center gap-1.5 text-xs",children:[(0,c.jsx)(eF,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),(0,c.jsx)("span",{children:r("pair.input.errorFormat")})]}):(0,c.jsxs)("p",{id:e,"aria-live":"polite",className:"text-status-online flex items-center gap-1.5 text-xs",children:[(0,c.jsx)(N.default,{"aria-hidden":"true",className:"size-3.5 shrink-0"}),(0,c.jsx)("span",{children:r("pair.input.valid")})]})}let eX=b("relative grid w-full grid-cols-[0_1fr] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",{variants:{variant:{default:"bg-card text-card-foreground",destructive:"text-destructive bg-card border-destructive/40 [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/90",info:"border-blue-300/60 bg-blue-50 text-blue-900 dark:border-blue-500/30 dark:bg-blue-950/30 dark:text-blue-100 *:data-[slot=alert-description]:text-blue-800/90 dark:*:data-[slot=alert-description]:text-blue-200/80"}},defaultVariants:{variant:"default"}});function eG({className:e,variant:t,...r}){return(0,c.jsx)("div",{"data-slot":"alert","data-variant":t??"default",role:"alert",className:(0,w.cn)(eX({variant:t}),e),...r})}function eZ({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"alert-description",className:(0,w.cn)("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed",e),...t})}function eJ({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"card",className:(0,w.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",e),...t})}function eQ({className:e,...t}){return(0,c.jsx)("div",{"data-slot":"card-content",className:(0,w.cn)("px-6",e),...t})}var e0=e.i(462);let e1={sm:"size-4",md:"size-5",lg:"size-8"};function e2({size:e="md",label:t="Loading",className:r,...n}){return(0,c.jsxs)("span",{role:"status","aria-live":"polite","data-slot":"spinner",className:(0,w.cn)("inline-flex items-center justify-center",r),...n,children:[(0,c.jsx)(e0.Loader2Icon,{className:(0,w.cn)("animate-spin",e1[e]),"aria-hidden":!0}),(0,c.jsx)("span",{className:"sr-only",children:t})]})}function e4(){let e=window;return!!e.go?.main?.App}let e3=()=>{};function e5(){let e=window,t=e.go?.main?.App;if(!t)throw Error("agent-api: Wails binding not available (window.go.main.App missing)");return t}function e6(e){let t={state:function(e){switch(e){case"notPaired":case"connecting":case"online":case"reconnecting":case"offline":case"error":return e;default:return"error"}}(e.state),relayUrl:e.relayUrl??""};return e.error&&(t.error=e.error),e.attemptNo&&(t.attemptNo=e.attemptNo),e.account&&(t.account=e.account),e.connectedSince&&e.connectedSince>0&&(t.connectedSince=new Date(e.connectedSince).toISOString()),e.sessionTokenPreview&&(t.sessionTokenPreview=e.sessionTokenPreview),t}let e8={state:"notPaired",relayUrl:"wss://relay.visionA.cloud"},e9={relayUrl:"wss://relay.visionA.cloud",autoStart:!1,reconnectStrategy:"auto",logLevel:"info"},e7={...e9},te={getConnectionStatus:async()=>({...e8}),async pair(e){if(await tt(800),!/^vAc_[a-f0-9]{32}$/i.test(e))throw{code:"token_invalid"}},async unpair(){e7={...e9}},async reconnect(){},async disconnect(){},getAgentSettings:async()=>({...e7}),async saveAgentSettings(e){e7={...e}},testConnection:async e=>(await tt(500),/^wss?:\/\//i.test(e))?{ok:!0,latencyMs:42}:{ok:!1,reason:"URL must start with ws:// or wss://"},async resetAllSettings(){e7={...e9}},getRecentLogs:async()=>[],exportLog:async()=>(await tt(300),"~/Downloads/visionA-agent-log-mock.zip")};function tt(e){return new Promise(t=>setTimeout(t,e))}let tr={getConnectionStatus:async()=>e4()?e6(await e5().GetConnectionStatus()):te.getConnectionStatus(),async pair(e){if(!e4())return te.pair(e);try{await e5().Pair(e)}catch(t){let e;throw{code:(e=(t instanceof Error?t.message:String(t)).toLowerCase()).includes("token")&&e.includes("format")?"token_invalid":e.includes("token")&&e.includes("expired")?"token_expired":e.includes("token")&&e.includes("already used")?"token_used":e.includes("token")&&e.includes("revoked")?"token_revoked":e.includes("token")&&e.includes("invalid")?"token_invalid":e.includes("relay")||e.includes("websocket")||e.includes("dial")||e.includes("connection refused")?"relay_unreachable":e.includes("network")||e.includes("timeout")||e.includes("no such host")?"network_error":"unknown"}}},unpair:async()=>e4()?e5().Unpair():te.unpair(),reconnect:async()=>e4()?e5().Reconnect():te.reconnect(),disconnect:async()=>e4()?e5().Disconnect():te.disconnect(),async getAgentSettings(){if(!e4())return te.getAgentSettings();let e=await e5().GetAgentSettings();return{relayUrl:e.relayUrl,autoStart:e.autoStart,reconnectStrategy:e.reconnectStrategy,logLevel:e.logLevel}},saveAgentSettings:async e=>e4()?e5().SaveAgentSettings({relayUrl:e.relayUrl,autoStart:e.autoStart,reconnectStrategy:e.reconnectStrategy,logLevel:e.logLevel}):te.saveAgentSettings(e),async testConnection(e){if(!e4())return te.testConnection(e);let t=await e5().TestConnection(e);return{ok:t.ok,latencyMs:t.latencyMs,reason:t.reason}},resetAllSettings:async()=>e4()?e5().ResetAllSettings():te.resetAllSettings(),getRecentLogs:async e=>e4()?[]:te.getRecentLogs(),exportLog:async()=>e4()?e5().ExportLog():te.exportLog()};function tn({snapshot:e,className:t}){let r=(0,k.useT)(),n=function(e){if(!e)return null;let t=new Date(e);if(Number.isNaN(t.getTime()))return null;let r=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),a=String(t.getDate()).padStart(2,"0"),o=String(t.getHours()).padStart(2,"0"),i=String(t.getMinutes()).padStart(2,"0");return`${r}-${n}-${a} ${o}:${i}`}(e.connectedSince),a=function(e){if(!e)return null;let t=e.match(/([a-zA-Z0-9]{2,})\s*$/);return t?t[1].slice(-4):null}(e.sessionTokenPreview),o=[{label:r("status.info.account"),value:e.account??"—"},{label:r("status.info.relayUrl"),value:e.relayUrl},{label:r("status.info.connectedAt"),value:n??"—"},{label:r("status.info.sessionToken"),value:e.sessionTokenPreview??"—","aria-label":a?r("status.info.sessionToken.aria").replace("{last4}",a):void 0}];return(0,c.jsx)("dl",{"data-testid":"info-card",className:(0,w.cn)("grid gap-3 text-sm",t),children:o.map(e=>(0,c.jsxs)("div",{className:"grid grid-cols-[120px_1fr] items-baseline gap-3",children:[(0,c.jsx)("dt",{className:"text-muted-foreground",children:e.label}),(0,c.jsx)("dd",{className:(0,w.cn)("font-mono break-all",e.valueClass),"aria-label":e["aria-label"],children:e.value})]},e.label))})}var N=N;let ta=(0,u.default)("power",[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]]),to=(0,u.default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);var ti=e.i(88577);function ts(e,[t,r]){return Math.min(r,Math.max(t,e))}var tl="ScrollArea",[tc,td]=(0,H.createContextScope)(tl),[tu,tf]=tc(tl),tp=d.forwardRef((e,t)=>{let{__scopeScrollArea:r,type:n="hover",dir:a,scrollHideDelay:o=600,...i}=e,[s,l]=d.useState(null),[u,f]=d.useState(null),[p,v]=d.useState(null),[h,m]=d.useState(null),[g,x]=d.useState(null),[b,y]=d.useState(0),[w,j]=d.useState(0),[S,C]=d.useState(!1),[k,E]=d.useState(!1),R=(0,F.useComposedRefs)(t,e=>l(e)),N=Z(a);return(0,c.jsx)(tu,{scope:r,type:n,dir:N,scrollHideDelay:o,scrollArea:s,viewport:u,onViewportChange:f,content:p,onContentChange:v,scrollbarX:h,onScrollbarXChange:m,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:g,onScrollbarYChange:x,scrollbarYEnabled:k,onScrollbarYEnabledChange:E,onCornerWidthChange:y,onCornerHeightChange:j,children:(0,c.jsx)(q.Primitive.div,{dir:N,...i,ref:R,style:{position:"relative","--radix-scroll-area-corner-width":b+"px","--radix-scroll-area-corner-height":w+"px",...e.style}})})});tp.displayName=tl;var tv="ScrollAreaViewport",th=d.forwardRef((e,t)=>{let{__scopeScrollArea:r,children:n,nonce:a,...o}=e,i=tf(tv,r),s=d.useRef(null),l=(0,F.useComposedRefs)(t,s,i.onViewportChange);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:a}),(0,c.jsx)(q.Primitive.div,{"data-radix-scroll-area-viewport":"",...o,ref:l,style:{overflowX:i.scrollbarXEnabled?"scroll":"hidden",overflowY:i.scrollbarYEnabled?"scroll":"hidden",...e.style},children:(0,c.jsx)("div",{ref:i.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});th.displayName=tv;var tm="ScrollAreaScrollbar",tg=d.forwardRef((e,t)=>{let{forceMount:r,...n}=e,a=tf(tm,e.__scopeScrollArea),{onScrollbarXEnabledChange:o,onScrollbarYEnabledChange:i}=a,s="horizontal"===e.orientation;return d.useEffect(()=>(s?o(!0):i(!0),()=>{s?o(!1):i(!1)}),[s,o,i]),"hover"===a.type?(0,c.jsx)(tx,{...n,ref:t,forceMount:r}):"scroll"===a.type?(0,c.jsx)(tb,{...n,ref:t,forceMount:r}):"auto"===a.type?(0,c.jsx)(ty,{...n,ref:t,forceMount:r}):"always"===a.type?(0,c.jsx)(tw,{...n,ref:t}):null});tg.displayName=tm;var tx=d.forwardRef((e,t)=>{let{forceMount:r,...n}=e,a=tf(tm,e.__scopeScrollArea),[o,i]=d.useState(!1);return d.useEffect(()=>{let e=a.scrollArea,t=0;if(e){let r=()=>{window.clearTimeout(t),i(!0)},n=()=>{t=window.setTimeout(()=>i(!1),a.scrollHideDelay)};return e.addEventListener("pointerenter",r),e.addEventListener("pointerleave",n),()=>{window.clearTimeout(t),e.removeEventListener("pointerenter",r),e.removeEventListener("pointerleave",n)}}},[a.scrollArea,a.scrollHideDelay]),(0,c.jsx)(ev.Presence,{present:r||o,children:(0,c.jsx)(ty,{"data-state":o?"visible":"hidden",...n,ref:t})})}),tb=d.forwardRef((e,t)=>{var r;let{forceMount:n,...a}=e,o=tf(tm,e.__scopeScrollArea),i="horizontal"===e.orientation,s=tH(()=>u("SCROLL_END"),100),[l,u]=(r={hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}},d.useReducer((e,t)=>r[e][t]??e,"hidden"));return d.useEffect(()=>{if("idle"===l){let e=window.setTimeout(()=>u("HIDE"),o.scrollHideDelay);return()=>window.clearTimeout(e)}},[l,o.scrollHideDelay,u]),d.useEffect(()=>{let e=o.viewport,t=i?"scrollLeft":"scrollTop";if(e){let r=e[t],n=()=>{let n=e[t];r!==n&&(u("SCROLL"),s()),r=n};return e.addEventListener("scroll",n),()=>e.removeEventListener("scroll",n)}},[o.viewport,i,u,s]),(0,c.jsx)(ev.Presence,{present:n||"hidden"!==l,children:(0,c.jsx)(tw,{"data-state":"hidden"===l?"hidden":"visible",...a,ref:t,onPointerEnter:(0,O.composeEventHandlers)(e.onPointerEnter,()=>u("POINTER_ENTER")),onPointerLeave:(0,O.composeEventHandlers)(e.onPointerLeave,()=>u("POINTER_LEAVE"))})})}),ty=d.forwardRef((e,t)=>{let r=tf(tm,e.__scopeScrollArea),{forceMount:n,...a}=e,[o,i]=d.useState(!1),s="horizontal"===e.orientation,l=tH(()=>{if(r.viewport){let e=r.viewport.offsetWidth{let{orientation:r="vertical",...n}=e,a=tf(tm,e.__scopeScrollArea),o=d.useRef(null),i=d.useRef(0),[s,l]=d.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),u=tL(s.viewport,s.content),f={...n,sizes:s,onSizesChange:l,hasThumb:!!(u>0&&u<1),onThumbChange:e=>o.current=e,onThumbPointerUp:()=>i.current=0,onThumbPointerDown:e=>i.current=e};function p(e,t){return function(e,t,r,n="ltr"){let a=tz(r),o=t||a/2,i=r.scrollbar.paddingStart+o,s=r.scrollbar.size-r.scrollbar.paddingEnd-(a-o),l=r.content-r.viewport;return tM([i,s],"ltr"===n?[0,l]:[-1*l,0])(e)}(e,i.current,s,t)}return"horizontal"===r?(0,c.jsx)(tj,{...f,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){let e=t_(a.viewport.scrollLeft,s,a.dir);o.current.style.transform=`translate3d(${e}px, 0, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollLeft=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollLeft=p(e,a.dir))}}):"vertical"===r?(0,c.jsx)(tS,{...f,ref:t,onThumbPositionChange:()=>{if(a.viewport&&o.current){let e=t_(a.viewport.scrollTop,s);o.current.style.transform=`translate3d(0, ${e}px, 0)`}},onWheelScroll:e=>{a.viewport&&(a.viewport.scrollTop=e)},onDragScroll:e=>{a.viewport&&(a.viewport.scrollTop=p(e))}}):null}),tj=d.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...a}=e,o=tf(tm,e.__scopeScrollArea),[i,s]=d.useState(),l=d.useRef(null),u=(0,F.useComposedRefs)(t,l,o.onScrollbarXChange);return d.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),(0,c.jsx)(tE,{"data-orientation":"horizontal",...a,ref:u,sizes:r,style:{bottom:0,left:"rtl"===o.dir?"var(--radix-scroll-area-corner-width)":0,right:"ltr"===o.dir?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":tz(r)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,r)=>{if(o.viewport){var n,a;let i=o.viewport.scrollLeft+t.deltaX;e.onWheelScroll(i),n=i,a=r,n>0&&n{l.current&&o.viewport&&i&&n({content:o.viewport.scrollWidth,viewport:o.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:tD(i.paddingLeft),paddingEnd:tD(i.paddingRight)}})}})}),tS=d.forwardRef((e,t)=>{let{sizes:r,onSizesChange:n,...a}=e,o=tf(tm,e.__scopeScrollArea),[i,s]=d.useState(),l=d.useRef(null),u=(0,F.useComposedRefs)(t,l,o.onScrollbarYChange);return d.useEffect(()=>{l.current&&s(getComputedStyle(l.current))},[l]),(0,c.jsx)(tE,{"data-orientation":"vertical",...a,ref:u,sizes:r,style:{top:0,right:"ltr"===o.dir?0:void 0,left:"rtl"===o.dir?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":tz(r)+"px",...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,r)=>{if(o.viewport){var n,a;let i=o.viewport.scrollTop+t.deltaY;e.onWheelScroll(i),n=i,a=r,n>0&&n{l.current&&o.viewport&&i&&n({content:o.viewport.scrollHeight,viewport:o.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:tD(i.paddingTop),paddingEnd:tD(i.paddingBottom)}})}})}),[tC,tk]=tc(tm),tE=d.forwardRef((e,t)=>{let{__scopeScrollArea:r,sizes:n,hasThumb:a,onThumbChange:o,onThumbPointerUp:i,onThumbPointerDown:s,onThumbPositionChange:l,onDragScroll:u,onWheelScroll:f,onResize:p,...v}=e,h=tf(tm,r),[m,g]=d.useState(null),x=(0,F.useComposedRefs)(t,e=>g(e)),b=d.useRef(null),y=d.useRef(""),w=h.viewport,j=n.content-n.viewport,S=(0,Y.useCallbackRef)(f),C=(0,Y.useCallbackRef)(l),k=tH(p,10);function E(e){b.current&&u({x:e.clientX-b.current.left,y:e.clientY-b.current.top})}return d.useEffect(()=>{let e=e=>{let t=e.target;m?.contains(t)&&S(e,j)};return document.addEventListener("wheel",e,{passive:!1}),()=>document.removeEventListener("wheel",e,{passive:!1})},[w,m,j,S]),d.useEffect(C,[n,C]),tF(m,k),tF(h.content,k),(0,c.jsx)(tC,{scope:r,scrollbar:m,hasThumb:a,onThumbChange:(0,Y.useCallbackRef)(o),onThumbPointerUp:(0,Y.useCallbackRef)(i),onThumbPositionChange:C,onThumbPointerDown:(0,Y.useCallbackRef)(s),children:(0,c.jsx)(q.Primitive.div,{...v,ref:x,style:{position:"absolute",...v.style},onPointerDown:(0,O.composeEventHandlers)(e.onPointerDown,e=>{0===e.button&&(e.target.setPointerCapture(e.pointerId),b.current=m.getBoundingClientRect(),y.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",h.viewport&&(h.viewport.style.scrollBehavior="auto"),E(e))}),onPointerMove:(0,O.composeEventHandlers)(e.onPointerMove,E),onPointerUp:(0,O.composeEventHandlers)(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=y.current,h.viewport&&(h.viewport.style.scrollBehavior=""),b.current=null})})})}),tR="ScrollAreaThumb",tN=d.forwardRef((e,t)=>{let{forceMount:r,...n}=e,a=tk(tR,e.__scopeScrollArea);return(0,c.jsx)(ev.Presence,{present:r||a.hasThumb,children:(0,c.jsx)(tT,{ref:t,...n})})}),tT=d.forwardRef((e,t)=>{let{__scopeScrollArea:r,style:n,...a}=e,o=tf(tR,r),i=tk(tR,r),{onThumbPositionChange:s}=i,l=(0,F.useComposedRefs)(t,e=>i.onThumbChange(e)),u=d.useRef(void 0),f=tH(()=>{u.current&&(u.current(),u.current=void 0)},100);return d.useEffect(()=>{let e=o.viewport;if(e){let t=()=>{f(),u.current||(u.current=tO(e,s),s())};return s(),e.addEventListener("scroll",t),()=>e.removeEventListener("scroll",t)}},[o.viewport,f,s]),(0,c.jsx)(q.Primitive.div,{"data-state":i.hasThumb?"visible":"hidden",...a,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:(0,O.composeEventHandlers)(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),r=e.clientX-t.left,n=e.clientY-t.top;i.onThumbPointerDown({x:r,y:n})}),onPointerUp:(0,O.composeEventHandlers)(e.onPointerUp,i.onThumbPointerUp)})});tN.displayName=tR;var tA="ScrollAreaCorner",tP=d.forwardRef((e,t)=>{let r=tf(tA,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return"scroll"!==r.type&&n?(0,c.jsx)(tI,{...e,ref:t}):null});tP.displayName=tA;var tI=d.forwardRef((e,t)=>{let{__scopeScrollArea:r,...n}=e,a=tf(tA,r),[o,i]=d.useState(0),[s,l]=d.useState(0),u=!!(o&&s);return tF(a.scrollbarX,()=>{let e=a.scrollbarX?.offsetHeight||0;a.onCornerHeightChange(e),l(e)}),tF(a.scrollbarY,()=>{let e=a.scrollbarY?.offsetWidth||0;a.onCornerWidthChange(e),i(e)}),u?(0,c.jsx)(q.Primitive.div,{...n,ref:t,style:{width:o,height:s,position:"absolute",right:"ltr"===a.dir?0:void 0,left:"rtl"===a.dir?0:void 0,bottom:0,...e.style}}):null});function tD(e){return e?parseInt(e,10):0}function tL(e,t){let r=e/t;return isNaN(r)?0:r}function tz(e){let t=tL(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd;return Math.max((e.scrollbar.size-r)*t,18)}function t_(e,t,r="ltr"){let n=tz(t),a=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,o=t.scrollbar.size-a,i=t.content-t.viewport,s=ts(e,"ltr"===r?[0,i]:[-1*i,0]);return tM([0,i],[0,o-n])(s)}function tM(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}var tO=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return!function a(){let o={left:e.scrollLeft,top:e.scrollTop},i=r.left!==o.left,s=r.top!==o.top;(i||s)&&t(),r=o,n=window.requestAnimationFrame(a)}(),()=>window.cancelAnimationFrame(n)};function tH(e,t){let r=(0,Y.useCallbackRef)(e),n=d.useRef(0);return d.useEffect(()=>()=>window.clearTimeout(n.current),[]),d.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function tF(e,t){let r=(0,Y.useCallbackRef)(t);(0,ti.useLayoutEffect)(()=>{let t=0;if(e){let n=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(r)});return n.observe(e),()=>{window.cancelAnimationFrame(t),n.unobserve(e)}}},[e,r])}e.s(["Corner",()=>tP,"Root",()=>tp,"ScrollArea",()=>tp,"ScrollAreaCorner",()=>tP,"ScrollAreaScrollbar",()=>tg,"ScrollAreaThumb",()=>tN,"ScrollAreaViewport",()=>th,"Scrollbar",()=>tg,"Thumb",()=>tN,"Viewport",()=>th,"createScrollAreaScope",()=>td],95146);var tU=e.i(95146),tU=tU;function tK({className:e,children:t,...r}){return(0,c.jsxs)(tU.Root,{"data-slot":"scroll-area",className:(0,w.cn)("relative",e),...r,children:[(0,c.jsx)(tU.Viewport,{"data-slot":"scroll-area-viewport",className:"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1",children:t}),(0,c.jsx)(tB,{}),(0,c.jsx)(tU.Corner,{})]})}function tB({className:e,orientation:t="vertical",...r}){return(0,c.jsx)(tU.ScrollAreaScrollbar,{"data-slot":"scroll-area-scrollbar",orientation:t,className:(0,w.cn)("flex touch-none p-px transition-colors select-none","vertical"===t&&"h-full w-2.5 border-l border-l-transparent","horizontal"===t&&"h-2.5 flex-col border-t border-t-transparent",e),...r,children:(0,c.jsx)(tU.ScrollAreaThumb,{"data-slot":"scroll-area-thumb",className:"bg-border relative flex-1 rounded-full"})})}let tW={connected:{Icon:N.default,colorClass:"text-status-online"},connecting:{Icon:A,colorClass:"text-status-reconnecting"},failed:{Icon:eF,colorClass:"text-destructive"},started:{Icon:ta,colorClass:"text-muted-foreground"},stopped:{Icon:T,colorClass:"text-muted-foreground"},settings:{Icon:to,colorClass:"text-muted-foreground"}};function tV({logs:e,max:t=10,className:r}){let n=(0,k.useT)(),a=e.slice(0,t);return(0,c.jsxs)("section",{"data-testid":"recent-log","aria-labelledby":"recent-log-heading",className:(0,w.cn)("space-y-2",r),children:[(0,c.jsx)("h3",{id:"recent-log-heading",className:"text-sm font-medium",children:n("status.log.title")}),0===a.length?(0,c.jsx)("p",{className:"text-muted-foreground text-xs",children:n("status.log.empty")}):(0,c.jsx)(tK,{className:"h-40 rounded-md border",children:(0,c.jsx)("ol",{className:"divide-border divide-y",children:a.map((e,t)=>{let r=tW[e.kind];return(0,c.jsxs)("li",{className:"flex items-center gap-3 px-3 py-1.5 font-mono text-xs",children:[(0,c.jsx)("span",{className:"text-muted-foreground",children:function(e){let t=new Date(e);if(Number.isNaN(t.getTime()))return"--:--";let r=String(t.getHours()).padStart(2,"0"),n=String(t.getMinutes()).padStart(2,"0");return`${r}:${n}`}(e.ts)}),(0,c.jsx)(r.Icon,{"aria-hidden":"true",className:(0,w.cn)("size-3.5 shrink-0",r.colorClass)}),(0,c.jsx)("span",{className:"flex-1 truncate",children:e.text})]},`${e.ts}-${t}`)})})})]})}var R=R,N=N;let t$={online:{i18nKey:"status.hero.online",Icon:N.default,dotClass:"bg-status-online",dotAnimate:!1,iconSpin:!1},offline:{i18nKey:"status.hero.offline",Icon:T,dotClass:"bg-status-offline",dotAnimate:!1,iconSpin:!1},reconnecting:{i18nKey:"status.hero.reconnecting",Icon:A,dotClass:"bg-status-reconnecting",dotAnimate:!0,iconSpin:!0},notPaired:{i18nKey:"status.hero.notPaired",Icon:P,dotClass:"bg-status-idle",dotAnimate:!1,iconSpin:!1},error:{i18nKey:"status.hero.error",Icon:R.default,dotClass:"bg-status-error",dotAnimate:!1,iconSpin:!1,labelClass:"text-destructive"}};function tq({state:e,attemptNo:t,errorMessage:r,className:n}){let a=(0,k.useT)(),o="connecting"===e?"reconnecting":e,i=t$[o],s=a(i.i18nKey),l="reconnecting"===o&&"number"==typeof t?a("status.hero.attemptNo").replace("{n}",String(t)):"error"===o&&r?r:null;return(0,c.jsxs)("div",{role:"status","aria-live":"polite","aria-label":l?`${s}, ${l}`:s,"data-testid":"status-hero","data-state":o,className:(0,w.cn)("flex flex-col items-center gap-3 py-4",n),children:[(0,c.jsx)("div",{"aria-hidden":"true",className:(0,w.cn)("flex size-20 items-center justify-center rounded-full text-white shadow-sm",i.dotClass,i.dotAnimate&&"motion-safe:animate-pulse"),children:(0,c.jsx)(i.Icon,{className:(0,w.cn)("size-8",i.iconSpin&&"motion-safe:animate-spin")})}),(0,c.jsxs)("div",{className:"flex flex-col items-center gap-1 text-center",children:[(0,c.jsx)("p",{className:(0,w.cn)("text-xl font-semibold",i.labelClass),children:s}),l&&(0,c.jsx)("p",{className:(0,w.cn)("text-xs","error"===o?"text-destructive":"text-muted-foreground"),children:l})]})]})}var tY=e.i(72416),tX="focusScope.autoFocusOnMount",tG="focusScope.autoFocusOnUnmount",tZ={bubbles:!1,cancelable:!0},tJ=d.forwardRef((e,t)=>{let{loop:r=!1,trapped:n=!1,onMountAutoFocus:a,onUnmountAutoFocus:o,...i}=e,[s,l]=d.useState(null),u=(0,Y.useCallbackRef)(a),f=(0,Y.useCallbackRef)(o),p=d.useRef(null),v=(0,F.useComposedRefs)(t,e=>l(e)),h=d.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;d.useEffect(()=>{if(n){let e=function(e){if(h.paused||!s)return;let t=e.target;s.contains(t)?p.current=t:t1(p.current,{select:!0})},t=function(e){if(h.paused||!s)return;let t=e.relatedTarget;null!==t&&(s.contains(t)||t1(p.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let r=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&t1(s)});return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),r.disconnect()}}},[n,s,h.paused]),d.useEffect(()=>{if(s){t2.add(h);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(tX,tZ);s.addEventListener(tX,u),s.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let r=document.activeElement;for(let n of e)if(t1(n,{select:t}),document.activeElement!==r)return}(tQ(s).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&t1(s))}return()=>{s.removeEventListener(tX,u),setTimeout(()=>{let t=new CustomEvent(tG,tZ);s.addEventListener(tG,f),s.dispatchEvent(t),t.defaultPrevented||t1(e??document.body,{select:!0}),s.removeEventListener(tG,f),t2.remove(h)},0)}}},[s,u,f,h]);let m=d.useCallback(e=>{if(!r&&!n||h.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,a=document.activeElement;if(t&&a){var o;let t,n=e.currentTarget,[i,s]=[t0(t=tQ(o=n),o),t0(t.reverse(),o)];i&&s?e.shiftKey||a!==s?e.shiftKey&&a===i&&(e.preventDefault(),r&&t1(s,{select:!0})):(e.preventDefault(),r&&t1(i,{select:!0})):a===n&&e.preventDefault()}},[r,n,h.paused]);return(0,c.jsx)(q.Primitive.div,{tabIndex:-1,...i,ref:v,onKeyDown:m})});function tQ(e){let t=[],r=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;r.nextNode();)t.push(r.currentNode);return t}function t0(e,t){for(let r of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(r,{upTo:t}))return r}function t1(e,{select:t=!1}={}){if(e&&e.focus){var r;let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&(r=e)instanceof HTMLInputElement&&"select"in r&&t&&e.select()}}tJ.displayName="FocusScope";var t2=(t=[],{add(e){let r=t[0];e!==r&&r?.pause(),(t=t4(t,e)).unshift(e)},remove(e){t=t4(t,e),t[0]?.resume()}});function t4(e,t){let r=[...e],n=r.indexOf(t);return -1!==n&&r.splice(n,1),r}var t3=e.i(1404),t5=0;function t6(){d.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??t8()),document.body.insertAdjacentElement("beforeend",e[1]??t8()),t5++,()=>{1===t5&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),t5--}},[])}function t8(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var t9=function(){return(t9=Object.assign||function(e){for(var t,r=1,n=arguments.length;rt.indexOf(n)&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var a=0,n=Object.getOwnPropertySymbols(e);at.indexOf(n[a])&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]]);return r}var re=("function"==typeof SuppressedError&&SuppressedError,"right-scroll-bar-position"),rt="width-before-scroll-bar";function rr(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var rn="u">typeof window?d.useLayoutEffect:d.useEffect,ra=new WeakMap,ro=(void 0===r&&(r={}),(void 0===n&&(n=function(e){return e}),a=[],o=!1,i={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return a.length?a[a.length-1]:null},useMedium:function(e){var t=n(e,o);return a.push(t),function(){a=a.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;a.length;){var t=a;a=[],t.forEach(e)}a={push:function(t){return e(t)},filter:function(){return a}}},assignMedium:function(e){o=!0;var t=[];if(a.length){var r=a;a=[],r.forEach(e),t=a}var n=function(){var r=t;t=[],r.forEach(e)},i=function(){return Promise.resolve().then(n)};i(),a={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),a}}}}).options=t9({async:!0,ssr:!1},r),i),ri=function(){},rs=d.forwardRef(function(e,t){var r,n,a,o,i=d.useRef(null),s=d.useState({onScrollCapture:ri,onWheelCapture:ri,onTouchMoveCapture:ri}),l=s[0],c=s[1],u=e.forwardProps,f=e.children,p=e.className,v=e.removeScrollBar,h=e.enabled,m=e.shards,g=e.sideCar,x=e.noRelative,b=e.noIsolation,y=e.inert,w=e.allowPinchZoom,j=e.as,S=e.gapMode,C=t7(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),k=(r=[i,t],n=function(e){return r.forEach(function(t){return rr(t,e)})},(a=(0,d.useState)(function(){return{value:null,callback:n,facade:{get current(){return a.value},set current(value){var e=a.value;e!==value&&(a.value=value,a.callback(value,e))}}}})[0]).callback=n,o=a.facade,rn(function(){var e=ra.get(o);if(e){var t=new Set(e),n=new Set(r),a=o.current;t.forEach(function(e){n.has(e)||rr(e,null)}),n.forEach(function(e){t.has(e)||rr(e,a)})}ra.set(o,r)},[r]),o),E=t9(t9({},C),l);return d.createElement(d.Fragment,null,h&&d.createElement(g,{sideCar:ro,removeScrollBar:v,shards:m,noRelative:x,noIsolation:b,inert:y,setCallbacks:c,allowPinchZoom:!!w,lockRef:i,gapMode:S}),u?d.cloneElement(d.Children.only(f),t9(t9({},E),{ref:k})):d.createElement(void 0===j?"div":j,t9({},E,{className:p,ref:k}),f))});rs.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},rs.classNames={fullWidth:rt,zeroRight:re};var rl=function(e){var t=e.sideCar,r=t7(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var n=t.read();if(!n)throw Error("Sidecar medium not found");return d.createElement(n,t9({},r))};rl.isSideCarExport=!0;var rc=function(){var e=0,t=null;return{add:function(r){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=l||("u">typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var n,a;(n=t).styleSheet?n.styleSheet.cssText=r:n.appendChild(document.createTextNode(r)),a=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(a)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},rd=function(){var e=rc();return function(t,r){d.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&r])}},ru=function(){var e=rd();return function(t){return e(t.styles,t.dynamic),null}},rf={left:0,top:0,right:0,gap:0},rp=function(e){return parseInt(e||"",10)||0},rv=function(e){var t=window.getComputedStyle(document.body),r=t["padding"===e?"paddingLeft":"marginLeft"],n=t["padding"===e?"paddingTop":"marginTop"],a=t["padding"===e?"paddingRight":"marginRight"];return[rp(r),rp(n),rp(a)]},rh=function(e){if(void 0===e&&(e="margin"),"u"