INCOMING CHANGES
@@ -452,6 +464,50 @@ function handlePull(force: boolean) {
color: var(--cg-color-text-secondary);
}
+.commits-section {
+ display: flex;
+ flex-direction: column;
+ gap: var(--cg-space-2);
+}
+
+.commit-list {
+ display: flex;
+ flex-direction: column;
+ gap: var(--cg-space-1);
+ padding: var(--cg-space-3);
+ background: var(--cg-color-bg-secondary);
+ border-radius: var(--cg-radius-sm);
+ max-height: 200px;
+ overflow-y: auto;
+}
+
+.commit-item {
+ display: flex;
+ align-items: center;
+ gap: var(--cg-space-2);
+ font-size: var(--cg-font-size-sm);
+}
+
+.commit-hash {
+ font-family: var(--cg-font-mono);
+ color: var(--cg-color-info);
+ flex-shrink: 0;
+}
+
+.commit-message {
+ color: var(--cg-color-text-primary);
+ flex: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.commit-date {
+ color: var(--cg-color-text-muted);
+ font-size: var(--cg-font-size-xs);
+ flex-shrink: 0;
+}
+
.changes-section {
display: flex;
flex-direction: column;
diff --git a/frontend/src/components/base/molecules/PushModal.vue b/frontend/src/components/base/molecules/PushModal.vue
index d5277fa..d4e8bb5 100644
--- a/frontend/src/components/base/molecules/PushModal.vue
+++ b/frontend/src/components/base/molecules/PushModal.vue
@@ -72,7 +72,10 @@
- ℹ
+
This will create the remote branch for the first time.
diff --git a/frontend/src/components/base/organisms/ModelResolutionStep.vue b/frontend/src/components/base/organisms/ModelResolutionStep.vue
index 296a7f7..6682615 100644
--- a/frontend/src/components/base/organisms/ModelResolutionStep.vue
+++ b/frontend/src/components/base/organisms/ModelResolutionStep.vue
@@ -129,7 +129,7 @@
diff --git a/frontend/src/components/download/CivitaiTab.vue b/frontend/src/components/download/CivitaiTab.vue
new file mode 100644
index 0000000..ac86fd4
--- /dev/null
+++ b/frontend/src/components/download/CivitaiTab.vue
@@ -0,0 +1,43 @@
+
+
+
+
🎨
+
Civitai Integration
+
Coming soon! Civitai model search and download will be available in a future update.
+
+
+
+
+
+
+
diff --git a/frontend/src/components/download/DirectUrlTab.vue b/frontend/src/components/download/DirectUrlTab.vue
new file mode 100644
index 0000000..196a999
--- /dev/null
+++ b/frontend/src/components/download/DirectUrlTab.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
Model will be queued for background download.
+
+
+
+ Queue Download
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/download/HfFileBrowser.vue b/frontend/src/components/download/HfFileBrowser.vue
new file mode 100644
index 0000000..cc17d51
--- /dev/null
+++ b/frontend/src/components/download/HfFileBrowser.vue
@@ -0,0 +1,807 @@
+
+
+
+
+
+
+
+ Loading repository files...
+
+
+ {{ error }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ files.length === 0 ? 'No files in repository' : 'No files match filter' }}
+
+
+
+
+ {{ file.path }}
+ {{ formatSize(file.size) }}
+
+
+
+
+
+
+
Download Destination
+
+
+ /
+
+
+
+
+
+
+
+
+ {{ selected.size }} file(s) selected
+ {{ formatSize(totalSelectedSize) }}
+
+
+ Queue Download
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/download/HuggingFaceTab.vue b/frontend/src/components/download/HuggingFaceTab.vue
new file mode 100644
index 0000000..37ba7c3
--- /dev/null
+++ b/frontend/src/components/download/HuggingFaceTab.vue
@@ -0,0 +1,416 @@
+
+
+
+
+
+
+
+
+
+
+ Searching HuggingFace...
+
+
+
{{ searchError }}
+
+ Configure HuggingFace Token
+
+
+
+
+
+
{{ repo.description }}
+
+ {{ tag }}
+
+
+
+
+ No repositories found
+
+
+ Enter a HuggingFace URL, repo ID (user/repo), or search term
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/components/download/TokenConfigModal.vue b/frontend/src/components/download/TokenConfigModal.vue
new file mode 100644
index 0000000..80274ae
--- /dev/null
+++ b/frontend/src/components/download/TokenConfigModal.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+ {{ providerIcon }}
+ {{ providerName }}
+
+
+
+ Current token:
+ {{ currentTokenMask }}
+
+ Clear Token
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ Save Token
+
+
+
+
+
+
+
+
+
diff --git a/frontend/src/composables/useComfyGitService.ts b/frontend/src/composables/useComfyGitService.ts
index 7b9dab8..213b16f 100644
--- a/frontend/src/composables/useComfyGitService.ts
+++ b/frontend/src/composables/useComfyGitService.ts
@@ -11,6 +11,7 @@ import type {
CreateBranchResult,
SwitchBranchResult,
EnvironmentInfo,
+ EnvironmentDetail,
SwitchEnvironmentProgress,
CreateEnvironmentRequest,
CreateEnvironmentResult,
@@ -60,7 +61,10 @@ import type {
WorkerTestResult,
CustomWorkerSystemInfo,
WorkerInstancesResponse,
- DeployToWorkerRequest
+ DeployToWorkerRequest,
+ HuggingFaceRepoInfoResponse,
+ HuggingFaceSearchResponse,
+ ModelsSubdirectoriesResponse
} from '@/types/comfygit'
import { mockApi, isMockApi } from '@/services/mockApi'
import { useMockControls } from '@/composables/useMockControls'
@@ -79,6 +83,20 @@ declare global {
// Toggle between mock and real API (set VITE_USE_MOCK_API=false in .env to disable)
const USE_MOCK = isMockApi()
+// UUID generator that works in non-secure contexts (HTTP)
+// generateUUID() only works in secure contexts (HTTPS/localhost)
+function generateUUID(): string {
+ if (typeof crypto !== 'undefined' && crypto.randomUUID) {
+ return generateUUID()
+ }
+ // Fallback for non-secure contexts
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
+ const r = (Math.random() * 16) | 0
+ const v = c === 'x' ? r : (r & 0x3) | 0x8
+ return v.toString(16)
+ })
+}
+
// ============================================================================
// MOCK STATE MANAGEMENT
// For simulating stateful operations like wizard flows
@@ -285,7 +303,12 @@ export function useComfyGitService() {
throw new Error(errorData.error || errorData.message || `Request failed: ${response.status}`)
}
- return response.json()
+ // Handle empty responses (some endpoints return 200 with no body)
+ const text = await response.text()
+ if (!text) {
+ return undefined as T
+ }
+ return JSON.parse(text)
}
async function getStatus(forceRefresh = false): Promise
{
@@ -316,6 +339,14 @@ export function useComfyGitService() {
return fetchApi(`/v2/comfygit/log?limit=${limit}&offset=${offset}`)
}
+ async function getBranchHistory(branchName: string, limit = 50): Promise {
+ if (USE_MOCK) {
+ const commits = await mockApi.getCommitHistory(limit)
+ return { commits, has_more: false, current_branch: branchName }
+ }
+ return fetchApi(`/v2/comfygit/log?branch=${encodeURIComponent(branchName)}&limit=${limit}`)
+ }
+
async function exportEnv(outputPath?: string): Promise {
return fetchApi('/v2/comfygit/export', {
method: 'POST',
@@ -439,6 +470,15 @@ export function useComfyGitService() {
}
}
+ async function getEnvironmentDetails(name: string): Promise {
+ if (USE_MOCK) return null
+ try {
+ return await fetchApi(`/v2/comfygit/environments/${encodeURIComponent(name)}`)
+ } catch {
+ return null
+ }
+ }
+
async function switchEnvironment(targetEnv: string, workspacePath?: string): Promise {
if (USE_MOCK) return mockApi.switchEnvironment(targetEnv)
@@ -701,6 +741,45 @@ export function useComfyGitService() {
})
}
+ async function getHuggingFaceRepoInfo(url: string): Promise {
+ if (USE_MOCK) {
+ return {
+ repo_id: 'mock/repo',
+ revision: 'main',
+ files: [
+ { path: 'model.safetensors', size: 1024 * 1024 * 100, is_model_file: true, shard_group: null }
+ ]
+ }
+ }
+ const params = new URLSearchParams({ url })
+ return fetchApi(`/v2/workspace/huggingface/repo-info?${params}`)
+ }
+
+ async function getModelsSubdirectories(): Promise {
+ if (USE_MOCK) {
+ return {
+ directories: ['checkpoints', 'loras', 'vae', 'controlnet'],
+ standard: ['checkpoints', 'loras', 'vae'],
+ existing: ['checkpoints', 'controlnet']
+ }
+ }
+ return fetchApi('/v2/workspace/models/subdirectories')
+ }
+
+ async function searchHuggingFaceRepos(query: string, limit = 10): Promise {
+ if (USE_MOCK) {
+ return {
+ query,
+ results: [
+ { repo_id: 'black-forest-labs/FLUX.1-dev', description: 'FLUX.1 development model', downloads: 1200000, likes: 4500, tags: ['text-to-image', 'diffusers'] },
+ { repo_id: 'stabilityai/stable-diffusion-xl-base-1.0', description: 'SDXL base model', downloads: 890000, likes: 3200, tags: ['text-to-image'] }
+ ]
+ }
+ }
+ const params = new URLSearchParams({ query, limit: String(limit) })
+ return fetchApi(`/v2/workspace/huggingface/search?${params}`)
+ }
+
// Settings
async function getConfig(workspacePath?: string): Promise {
if (USE_MOCK) return mockApi.getConfig()
@@ -850,6 +929,64 @@ export function useComfyGitService() {
})
}
+ /**
+ * Queue a node install via Manager queue API.
+ * This routes through the Manager's sequential queue to avoid race conditions.
+ * Returns the ui_id for tracking via WebSocket events.
+ */
+ async function queueNodeInstall(params: {
+ id: string
+ version?: string
+ selected_version?: string
+ repository?: string
+ mode?: string
+ channel?: string
+ }): Promise<{ ui_id: string }> {
+ if (USE_MOCK) {
+ await mockApi.installNode(params.id)
+ return { ui_id: generateUUID() }
+ }
+
+ const ui_id = generateUUID()
+
+ // Get client_id from ComfyUI's API if available
+ const client_id = (window as any).app?.api?.clientId ??
+ (window as any).app?.api?.initialClientId ??
+ 'comfygit-panel'
+
+ const task = {
+ kind: 'install',
+ params: {
+ id: params.id,
+ version: params.version || params.selected_version || 'latest',
+ selected_version: params.selected_version || 'latest',
+ repository: params.repository || '',
+ mode: params.mode || 'remote',
+ channel: params.channel || 'default'
+ },
+ ui_id,
+ client_id
+ }
+
+ // Queue the task
+ await fetchApi('/v2/manager/queue/task', {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify(task)
+ })
+
+ console.log('[ComfyGit] Task queued with ui_id:', ui_id, 'for package:', params.id)
+
+ // Return ui_id BEFORE starting queue processing
+ // This allows caller to set up event tracking before events fire
+ // Fire-and-forget the start - don't await (avoids race condition)
+ fetchApi('/v2/manager/queue/start').catch(err => {
+ console.error('[ComfyGit] Queue start failed:', err)
+ })
+
+ return { ui_id }
+ }
+
async function updateNode(nodeName: string): Promise<{ status: 'success' | 'error', message?: string }> {
if (USE_MOCK) {
await mockApi.updateNode(nodeName)
@@ -1551,6 +1688,7 @@ export function useComfyGitService() {
getStatus,
commit,
getHistory,
+ getBranchHistory,
exportEnv,
validateExport,
validateDeploy,
@@ -1564,6 +1702,7 @@ export function useComfyGitService() {
deleteBranch,
// Environment Management
getEnvironments,
+ getEnvironmentDetails,
switchEnvironment,
getSwitchProgress,
createEnvironment,
@@ -1588,6 +1727,9 @@ export function useComfyGitService() {
scanWorkspaceModels,
getModelsDirectory,
setModelsDirectory,
+ getHuggingFaceRepoInfo,
+ getModelsSubdirectories,
+ searchHuggingFaceRepos,
// Settings
getConfig,
updateConfig,
@@ -1603,6 +1745,7 @@ export function useComfyGitService() {
getNodes,
trackNodeAsDev,
installNode,
+ queueNodeInstall,
updateNode,
uninstallNode,
// Git Remotes
diff --git a/frontend/src/main.ts b/frontend/src/main.ts
index 005d30a..387c8cb 100644
--- a/frontend/src/main.ts
+++ b/frontend/src/main.ts
@@ -4,6 +4,7 @@ import ComfyGitPanel from '@/components/ComfyGitPanel.vue'
import CommitPopover from '@/components/CommitPopover.vue'
import ModelDownloadQueue from '@/components/ModelDownloadQueue.vue'
import MockControlPopover from '@/components/MockControlPopover.vue'
+import MissingResourcesPopup from '@/components/MissingResourcesPopup.vue'
import { useModelDownloadQueue } from '@/composables/useModelDownloadQueue'
import { isMockApi } from '@/services/mockApi'
import type { ComfyGitStatus } from '@/types/comfygit'
@@ -20,6 +21,12 @@ document.head.appendChild(cssLink)
const initialTheme = getInitialTheme()
applyTheme(initialTheme)
+// Reset panel tab to default on page load (fresh navigation / refresh)
+// sessionStorage persists across close/reopen within a page, but we want
+// a fresh page load to always start on the status tab.
+sessionStorage.removeItem('ComfyGit.LastView')
+sessionStorage.removeItem('ComfyGit.LastSection')
+
// Expose theme switcher to console for easy testing
// Usage: window.ComfyGit.setTheme('comfy') or window.ComfyGit.setTheme('phosphor')
import { switchTheme, getCurrentTheme, type ThemeName } from '@/themes'
@@ -43,6 +50,8 @@ let downloadQueueContainer: HTMLElement | null = null
let downloadQueueApp: ReturnType | null = null
let mockControlPopover: HTMLElement | null = null
let mockControlApp: ReturnType | null = null
+let missingResourcesContainer: HTMLElement | null = null
+let missingResourcesApp: ReturnType | null = null
// Global status for indicator
const globalStatus = ref(null)
@@ -338,6 +347,21 @@ function closeMockControlPopover() {
}
}
+function mountMissingResourcesPopup() {
+ if (missingResourcesContainer) return // Already mounted
+
+ missingResourcesContainer = document.createElement('div')
+ missingResourcesContainer.className = 'comfygit-missing-resources-root'
+
+ missingResourcesApp = createApp({
+ render: () => h(MissingResourcesPopup)
+ })
+
+ missingResourcesApp.mount(missingResourcesContainer)
+ document.body.appendChild(missingResourcesContainer)
+ console.log('[ComfyGit] Missing resources popup mounted')
+}
+
// Update commit button indicator and disabled state
let commitButton: HTMLButtonElement | null = null
let mockButton: HTMLButtonElement | null = null
@@ -480,6 +504,65 @@ document.head.appendChild(styles)
app.registerExtension({
name: 'Comfy.ComfyGitPanel',
+ // Commands that can be triggered by keybindings or menu items
+ commands: [
+ {
+ id: 'ComfyGit.OpenPanel',
+ label: 'Open ComfyGit Panel',
+ icon: 'pi pi-folder-open',
+ function: () => showPanel()
+ },
+ {
+ id: 'ComfyGit.QuickCommit',
+ label: 'Quick Commit',
+ icon: 'pi pi-check',
+ function: () => {
+ if (commitButton && !commitButton.disabled) {
+ showCommitPopover(commitButton)
+ }
+ }
+ }
+ ],
+
+ // Default keybindings (user can customize in Settings → Keyboard Shortcuts)
+ keybindings: [
+ {
+ commandId: 'ComfyGit.OpenPanel',
+ combo: { key: 'l', alt: true, shift: true }
+ },
+ {
+ commandId: 'ComfyGit.QuickCommit',
+ combo: { key: 'k', alt: true, shift: true }
+ }
+ ],
+
+ // Hook into workflow loading to intercept missing resources
+ async beforeConfigureGraph(graphData: any, _missingNodeTypes: any[]) {
+ // Disable ComfyUI's built-in popups - we show our own
+ try {
+ await Promise.all([
+ app.ui.settings.setSettingValueAsync('Comfy.Workflow.ShowMissingModelsWarning', false),
+ app.ui.settings.setSettingValueAsync('Comfy.Workflow.ShowMissingNodesWarning', false)
+ ])
+ } catch (e) {
+ console.warn('[ComfyGit] Failed to disable built-in warnings:', e)
+ }
+
+ // Store workflow data for afterConfigureGraph (separate hook calls)
+ ;(window as any).__comfygit_pending_workflow = graphData
+ },
+
+ async afterConfigureGraph(_missingNodeTypes: any[]) {
+ const workflow = (window as any).__comfygit_pending_workflow
+ if (!workflow) return
+ delete (window as any).__comfygit_pending_workflow
+
+ // Dispatch event for MissingResourcesPopup to handle
+ window.dispatchEvent(new CustomEvent('comfygit:workflow-loaded', {
+ detail: { workflow }
+ }))
+ },
+
async setup() {
// Create button group
const btnGroup = document.createElement('div')
@@ -523,6 +606,15 @@ app.registerExtension({
// Mount global download queue
mountDownloadQueue()
+ // Mount missing resources popup
+ mountMissingResourcesPopup()
+
+ // Listen for panel open requests from other components
+ window.addEventListener('comfygit:open-panel', ((event: CustomEvent) => {
+ const initialView = event.detail?.initialView
+ showPanel(initialView)
+ }) as EventListener)
+
// Load any pending downloads from previous session
const { loadPendingDownloads } = useModelDownloadQueue()
loadPendingDownloads()
@@ -784,6 +876,168 @@ app.registerExtension({
}
console.log('[ComfyGit] Manager error notification system initialized')
+
+ // ========== RESTART REQUIRED TOAST: Show after nodes installed ==========
+ window.addEventListener('comfygit:nodes-installed', (event: Event) => {
+ const customEvent = event as CustomEvent
+ const { count = 1 } = customEvent.detail || {}
+ showRestartRequiredNotification(count)
+ })
+
+ function showRestartRequiredNotification(nodeCount: number) {
+ // Remove any existing restart toast
+ const existing = document.getElementById('comfygit-restart-toast')
+ if (existing) existing.remove()
+
+ const toast = document.createElement('div')
+ toast.id = 'comfygit-restart-toast'
+ toast.style.cssText = `
+ position: fixed;
+ bottom: 20px;
+ left: 50%;
+ transform: translateX(-50%);
+ background: #1e1e1e;
+ border: 1px solid #333;
+ border-radius: 8px;
+ padding: 12px 16px;
+ box-shadow: 0 8px 32px rgba(0,0,0,0.5);
+ z-index: 999999;
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ font-family: sans-serif;
+ font-size: 14px;
+ color: #fff;
+ max-width: 550px;
+ `
+
+ // Success icon (matches Manager style)
+ const icon = document.createElement('span')
+ icon.textContent = '✅'
+ icon.style.fontSize = '20px'
+ toast.appendChild(icon)
+
+ // Message container
+ const msgContainer = document.createElement('div')
+ msgContainer.style.cssText = 'flex: 1; display: flex; flex-direction: column; gap: 2px;'
+
+ const title = document.createElement('div')
+ title.textContent = 'To apply changes, please restart ComfyUI'
+ title.style.cssText = 'font-weight: 500; color: #fff;'
+ msgContainer.appendChild(title)
+
+ const detail = document.createElement('div')
+ detail.textContent = `${nodeCount} node package${nodeCount > 1 ? 's' : ''} ready to install`
+ detail.style.cssText = 'font-size: 12px; opacity: 0.7;'
+ msgContainer.appendChild(detail)
+
+ toast.appendChild(msgContainer)
+
+ // Restart button (matches Manager's bordered style)
+ const restartBtn = document.createElement('button')
+ restartBtn.textContent = 'Apply Changes'
+ restartBtn.style.cssText = `
+ background: transparent;
+ color: #fff;
+ border: 2px solid #fff;
+ border-radius: 20px;
+ padding: 6px 14px;
+ cursor: pointer;
+ font-size: 13px;
+ font-weight: 500;
+ white-space: nowrap;
+ transition: background 0.2s;
+ `
+ restartBtn.onmouseover = () => restartBtn.style.background = 'rgba(255,255,255,0.1)'
+ restartBtn.onmouseout = () => restartBtn.style.background = 'transparent'
+ restartBtn.onclick = async () => {
+ restartBtn.disabled = true
+ restartBtn.textContent = 'Restarting...'
+ restartBtn.style.opacity = '0.7'
+
+ // Update toast appearance for restarting state
+ title.textContent = 'Restarting...'
+ detail.textContent = 'Applying changes, please wait...'
+
+ try {
+ // Set up reconnection handler BEFORE triggering reboot
+ const onReconnect = async () => {
+ console.log('[ComfyGit] Reconnected after restart, refreshing node definitions...')
+
+ try {
+ // Refresh node definitions (like Manager does)
+ if ((app as any).refreshComboInNodes) {
+ await (app as any).refreshComboInNodes()
+ console.log('[ComfyGit] Node definitions refreshed successfully')
+ }
+
+ // Update toast to show success
+ icon.textContent = '✅'
+ title.textContent = 'Nodes Installed'
+ title.style.color = '#4caf50'
+ detail.textContent = `${nodeCount} package${nodeCount > 1 ? 's' : ''} installed successfully!`
+ toast.style.borderColor = '#4caf50'
+ restartBtn.style.display = 'none'
+
+ // Auto-close after 3 seconds
+ setTimeout(() => {
+ toast.remove()
+ }, 3000)
+ } catch (refreshErr) {
+ console.error('[ComfyGit] Failed to refresh nodes:', refreshErr)
+ // Still show success since restart worked
+ icon.textContent = '✅'
+ title.textContent = 'Restart Complete'
+ title.style.color = '#4caf50'
+ detail.textContent = 'Refresh the page to load new nodes.'
+ toast.style.borderColor = '#4caf50'
+ restartBtn.style.display = 'none'
+ }
+ }
+
+ // Listen for reconnection (once)
+ api.addEventListener('reconnected', onReconnect, { once: true } as any)
+
+ // Trigger reboot
+ await fetch('/v2/manager/reboot')
+ // Toast will update when reconnected
+ } catch (err) {
+ console.error('[ComfyGit] Failed to restart:', err)
+ title.textContent = 'Restart Failed'
+ title.style.color = '#e53935'
+ detail.textContent = 'Could not restart server. Try again.'
+ toast.style.borderColor = '#e53935'
+ restartBtn.textContent = 'Try Again'
+ restartBtn.disabled = false
+ restartBtn.style.opacity = '1'
+ }
+ }
+ toast.appendChild(restartBtn)
+
+ // Close button
+ const closeBtn = document.createElement('button')
+ closeBtn.textContent = '×'
+ closeBtn.title = 'Dismiss (restart later)'
+ closeBtn.style.cssText = `
+ background: transparent;
+ border: none;
+ color: #fff;
+ font-size: 24px;
+ line-height: 1;
+ cursor: pointer;
+ padding: 0 4px;
+ opacity: 0.6;
+ `
+ closeBtn.onmouseover = () => closeBtn.style.opacity = '1'
+ closeBtn.onmouseout = () => closeBtn.style.opacity = '0.6'
+ closeBtn.onclick = () => toast.remove()
+ toast.appendChild(closeBtn)
+
+ document.body.appendChild(toast)
+ console.log(`[ComfyGit] Restart required notification displayed (${nodeCount} packages installed)`)
+ }
+
+ console.log('[ComfyGit] Restart notification system initialized')
}
}
})
diff --git a/frontend/src/types/comfygit.ts b/frontend/src/types/comfygit.ts
index 951858c..d1d8f9e 100644
--- a/frontend/src/types/comfygit.ts
+++ b/frontend/src/types/comfygit.ts
@@ -195,6 +195,29 @@ export interface EnvironmentInfo {
last_commit_date?: string
}
+export interface EnvironmentDetail extends EnvironmentInfo {
+ workflows: {
+ synced: string[]
+ new: string[]
+ modified: string[]
+ deleted: string[]
+ }
+ nodes: Array<{
+ name: string
+ version: string | null
+ source: string
+ }>
+ models: {
+ missing: Array<{
+ filename: string
+ category: string
+ workflow_names: string[]
+ criticality: string
+ can_download: boolean
+ }>
+ }
+}
+
export interface SwitchEnvironmentProgress {
state: 'idle' | 'preparing' | 'syncing' | 'starting' | 'validating' | 'complete' | 'rolled_back' | 'critical_failure'
target_env: string
@@ -1140,3 +1163,39 @@ export interface WorkerTestResult {
gpu_info?: string
mode?: string
}
+
+// =============================================================================
+// HuggingFace Integration Types
+// =============================================================================
+
+export interface HuggingFaceRepoFile {
+ path: string
+ size: number
+ is_model_file: boolean
+ shard_group?: string | null
+}
+
+export interface HuggingFaceRepoInfoResponse {
+ repo_id: string
+ revision: string
+ files: HuggingFaceRepoFile[]
+}
+
+export interface ModelsSubdirectoriesResponse {
+ directories: string[]
+ standard: string[]
+ existing: string[]
+}
+
+export interface HuggingFaceSearchResult {
+ repo_id: string
+ description: string | null
+ downloads: number
+ likes: number
+ tags: string[]
+}
+
+export interface HuggingFaceSearchResponse {
+ results: HuggingFaceSearchResult[]
+ query: string
+}
diff --git a/frontend/src/utils/huggingface.ts b/frontend/src/utils/huggingface.ts
new file mode 100644
index 0000000..1884fdf
--- /dev/null
+++ b/frontend/src/utils/huggingface.ts
@@ -0,0 +1,79 @@
+export type HuggingFaceUrlKind = 'repo' | 'file' | 'unknown'
+
+export interface HuggingFaceParsedUrl {
+ kind: HuggingFaceUrlKind
+ repoId?: string
+ revision?: string
+ path?: string // file path in repo (for kind='file')
+}
+
+function isHfHost(host: string): boolean {
+ const h = host.toLowerCase()
+ return h === 'huggingface.co' || h.endsWith('.huggingface.co') || h === 'hf.co'
+}
+
+export function parseHuggingFaceUrl(rawUrl: string): HuggingFaceParsedUrl {
+ const url = rawUrl.trim()
+ if (!url) return { kind: 'unknown' }
+
+ let u: URL
+ try {
+ u = new URL(url)
+ } catch {
+ return { kind: 'unknown' }
+ }
+
+ if (!isHfHost(u.hostname)) return { kind: 'unknown' }
+
+ const parts = u.pathname.replace(/^\/+/, '').split('/').filter(Boolean)
+
+ // Ignore datasets/spaces URLs for now (model downloader MVP)
+ if (parts[0] === 'datasets' || parts[0] === 'spaces') return { kind: 'unknown' }
+
+ if (parts.length < 2) return { kind: 'unknown' }
+
+ const repoId = `${parts[0]}/${parts[1]}`
+ const rest = parts.slice(2)
+
+ // https://huggingface.co/owner/repo
+ if (rest.length === 0) {
+ return { kind: 'repo', repoId, revision: 'main' }
+ }
+
+ const marker = rest[0]
+
+ // https://huggingface.co/owner/repo/tree/main(/subdir...)
+ if (marker === 'tree') {
+ const revision = rest[1] || 'main'
+ const path = rest.slice(2).join('/')
+ return { kind: 'repo', repoId, revision, path: path || undefined }
+ }
+
+ // https://huggingface.co/owner/repo/resolve/main/path/to/file
+ if (marker === 'resolve') {
+ const revision = rest[1] || 'main'
+ const path = rest.slice(2).join('/')
+ if (!path) return { kind: 'repo', repoId, revision }
+ return { kind: 'file', repoId, revision, path }
+ }
+
+ // Browser file page (not direct download)
+ if (marker === 'blob') {
+ const revision = rest[1] || 'main'
+ const path = rest.slice(2).join('/')
+ if (!path) return { kind: 'repo', repoId, revision }
+ return { kind: 'file', repoId, revision, path }
+ }
+
+ // Fallback: treat as repo
+ return { kind: 'repo', repoId, revision: 'main' }
+}
+
+function encodePath(path: string): string {
+ return path.split('/').map(encodeURIComponent).join('/')
+}
+
+export function buildHfResolveUrl(repoId: string, revision: string, path: string): string {
+ const [owner, repo] = repoId.split('/')
+ return `https://huggingface.co/${encodeURIComponent(owner)}/${encodeURIComponent(repo)}/resolve/${encodeURIComponent(revision)}/${encodePath(path)}`
+}
diff --git a/js/comfygit-panel.css b/js/comfygit-panel.css
index 04f2f47..5939ebd 100644
--- a/js/comfygit-panel.css
+++ b/js/comfygit-panel.css
@@ -1 +1 @@
-.panel-layout[data-v-21565df9]{display:flex;flex-direction:column;height:100%}.panel-layout-content[data-v-21565df9]{flex:1;overflow-y:auto;min-height:0}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar{width:8px}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.panel-title[data-v-c3875efc]{margin:0;font-weight:var(--cg-font-weight-normal);text-shadow:var(--cg-text-shadow-title)}.panel-title.view[data-v-c3875efc]{color:var(--cg-color-accent);font-size:var(--cg-font-size-lg);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.panel-title.dialog[data-v-c3875efc]{color:var(--cg-color-accent);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.panel-title-prefix[data-v-c3875efc]{opacity:.7}.panel-title-prefix-theme[data-v-c3875efc]:before{content:var(--cg-decoration-title-prefix);opacity:.7}.info-button[data-v-6fc7f16d]{background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:var(--cg-space-0-5);display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast)}.info-button[data-v-6fc7f16d]:hover{color:var(--cg-color-accent);transform:scale(1.1)}.panel-header[data-v-55a62cd6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cg-space-4)}.panel-header.stacked[data-v-55a62cd6]{flex-direction:column;align-items:flex-start;gap:var(--cg-space-3)}.header-left[data-v-55a62cd6]{display:flex;align-items:center;gap:var(--cg-space-2)}.header-actions[data-v-55a62cd6]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.section-title[data-v-559361eb]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0;font-weight:var(--cg-font-weight-normal);text-shadow:var(--cg-text-shadow-accent)}.section-title[data-v-559361eb]:before{content:var(--cg-decoration-label-prefix)}.section-title[data-v-559361eb]:after{content:var(--cg-decoration-label-suffix)}.section-title.clickable[data-v-559361eb]{cursor:pointer;-webkit-user-select:none;user-select:none}.section-title.clickable[data-v-559361eb]:hover{color:var(--cg-color-accent)}.section-title-count[data-v-559361eb]{margin-left:var(--cg-space-1)}.section-title-icon[data-v-559361eb]{margin-left:var(--cg-space-2);font-size:var(--cg-font-size-xs)}.status-grid[data-v-73b7ba3f]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-md);overflow:hidden}.status-grid__columns[data-v-73b7ba3f]{display:grid;grid-template-columns:1fr 1fr;gap:0}.status-grid__column[data-v-73b7ba3f]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-3) var(--cg-space-4)}.status-grid__column--right[data-v-73b7ba3f]{border-left:1px solid var(--cg-color-border-subtle)}.status-grid__title[data-v-73b7ba3f]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;color:var(--cg-color-text-muted);margin:0 0 var(--cg-space-2) 0;letter-spacing:var(--cg-letter-spacing-wide)}.status-grid__footer[data-v-73b7ba3f]{border-top:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3) var(--cg-space-4)}.status-item[data-v-6f929183]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);line-height:1.4}.status-item.is-separator[data-v-6f929183]{margin-top:var(--cg-space-1);padding-top:var(--cg-space-1);border-top:1px solid var(--cg-color-border-subtle)}.status-item__icon[data-v-6f929183]{font-size:var(--cg-font-size-xs);opacity:.7;flex-shrink:0}.status-item__count[data-v-6f929183]{font-weight:var(--cg-font-weight-semibold);min-width:16px;flex-shrink:0}.status-item__label[data-v-6f929183]{color:var(--cg-color-text-secondary);flex:1}.status-item--new .status-item__count[data-v-6f929183]{color:var(--cg-color-success)}.status-item--modified .status-item__count[data-v-6f929183]{color:var(--cg-color-warning)}.status-item--deleted .status-item__count[data-v-6f929183]{color:var(--cg-color-error)}.status-item--synced .status-item__count[data-v-6f929183],.status-item--synced .status-item__icon[data-v-6f929183]{color:var(--cg-color-text-muted)}.status-item--ok[data-v-6f929183]{color:var(--cg-color-success)}.status-item--ok .status-item__icon[data-v-6f929183]{opacity:1}.status-item--ok .status-item__label[data-v-6f929183]{color:var(--cg-color-success)}.issue-card[data-v-df6aa348]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3) var(--cg-space-4);border-radius:var(--cg-radius-md);border:1px solid;margin-bottom:var(--cg-space-3)}.issue-card--info[data-v-df6aa348]{background:var(--cg-color-info-muted);border-color:var(--cg-color-accent);color:var(--cg-color-text-primary)}.issue-card--warning[data-v-df6aa348]{background:var(--cg-color-warning-muted);border-color:var(--cg-color-warning);color:var(--cg-color-text-primary)}.issue-card--error[data-v-df6aa348]{background:var(--cg-color-error-muted);border-color:var(--cg-color-error);color:var(--cg-color-text-primary)}.issue-card__header[data-v-df6aa348]{display:flex;align-items:center;gap:var(--cg-space-2)}.issue-card__icon[data-v-df6aa348]{font-size:var(--cg-font-size-lg);flex-shrink:0}.issue-card--warning .issue-card__icon[data-v-df6aa348]{color:var(--cg-color-warning)}.issue-card--error .issue-card__icon[data-v-df6aa348]{color:var(--cg-color-error)}.issue-card--info .issue-card__icon[data-v-df6aa348]{color:var(--cg-color-accent)}.issue-card__title[data-v-df6aa348]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.issue-card__content[data-v-df6aa348]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.issue-card__description[data-v-df6aa348]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin:0;line-height:1.5}.issue-card__items[data-v-df6aa348]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-2)}.issue-card__item[data-v-df6aa348]{display:flex;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);line-height:1.5}.issue-card__bullet[data-v-df6aa348]{color:var(--cg-color-text-muted);flex-shrink:0}.issue-card__actions[data-v-df6aa348]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.action-btn[data-v-772abe47]{font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);cursor:pointer;transition:all var(--cg-transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--cg-space-1);white-space:nowrap;border:1px solid}.action-btn[data-v-772abe47]:disabled{opacity:.5;cursor:not-allowed}.action-btn.loading[data-v-772abe47]{pointer-events:none}.spinner[data-v-772abe47]{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-772abe47 .6s linear infinite}@keyframes spin-772abe47{to{transform:rotate(360deg)}}.action-btn.xs[data-v-772abe47]{padding:var(--cg-space-1) var(--cg-space-2);font-size:var(--cg-font-size-xs)}.action-btn.sm[data-v-772abe47]{padding:var(--cg-space-1) var(--cg-space-3);font-size:var(--cg-font-size-xs)}.action-btn.md[data-v-772abe47]{padding:var(--cg-space-2) var(--cg-space-4);font-size:var(--cg-font-size-sm)}.action-btn.primary[data-v-772abe47]{background:transparent;color:var(--cg-color-accent);border-color:var(--cg-color-accent)}.action-btn.primary[data-v-772abe47]:hover:not(:disabled){background:var(--cg-color-bg-hover);box-shadow:0 0 8px var(--cg-shadow-accent)}.action-btn.secondary[data-v-772abe47]{background:transparent;color:var(--cg-color-text-secondary);border-color:var(--cg-color-border)}.action-btn.secondary[data-v-772abe47]:hover:not(:disabled){color:var(--cg-color-text-primary);border-color:var(--cg-color-text-primary)}.action-btn.destructive[data-v-772abe47]{background:transparent;color:var(--cg-color-error);border-color:var(--cg-color-error)}.action-btn.destructive[data-v-772abe47]:hover:not(:disabled){background:var(--cg-color-bg-hover);box-shadow:0 0 8px var(--cg-shadow-error)}.action-btn.ghost[data-v-772abe47]{background:transparent;color:var(--cg-color-text-muted);border-color:transparent}.action-btn.ghost[data-v-772abe47]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle);color:var(--cg-color-accent)}.action-btn.link[data-v-772abe47]{background:transparent;color:var(--cg-color-info);border:none;text-decoration:underline;padding:0}.action-btn.link[data-v-772abe47]:hover:not(:disabled){color:var(--cg-color-accent)}.empty-state[data-v-4466284f]{text-align:center;padding:var(--cg-space-8) var(--cg-space-6);color:var(--cg-color-text-muted)}.empty-icon[data-v-4466284f]{font-size:var(--cg-font-size-2xl);margin-bottom:var(--cg-space-3);opacity:.5}.empty-message[data-v-4466284f]{font-size:var(--cg-font-size-sm);margin:0 0 var(--cg-space-4) 0}.detail-label[data-v-75e9eeb8]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-normal)}.detail-value[data-v-2f186e4c]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);flex:1;word-break:break-word}.detail-value.mono[data-v-2f186e4c]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.detail-value.hash[data-v-2f186e4c]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);word-break:break-all}.detail-value.warning[data-v-2f186e4c]{color:var(--cg-color-warning)}.detail-value.error[data-v-2f186e4c]{color:var(--cg-color-error)}.detail-value.truncate[data-v-2f186e4c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-row[data-v-ef15664a]{display:flex;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);align-items:baseline}.modal-overlay[data-v-e2b37122]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-e2b37122]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:700px;width:90%;max-height:85vh;display:flex;flex-direction:column}.modal-header[data-v-e2b37122]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle);flex-shrink:0}.modal-title[data-v-e2b37122]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-e2b37122]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.modal-close[data-v-e2b37122]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-e2b37122]{padding:var(--cg-space-4);overflow-y:auto;flex:1;min-height:0}.modal-actions[data-v-e2b37122]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end;flex-shrink:0}.status-section[data-v-e2b37122]{margin-bottom:var(--cg-space-5)}.status-section[data-v-e2b37122]:last-child{margin-bottom:0}.section-header-row[data-v-e2b37122]{display:flex;justify-content:space-between;align-items:center}.link-btn[data-v-e2b37122]{background:transparent;border:none;color:var(--cg-color-accent);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);cursor:pointer;padding:4px 8px;text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);transition:opacity var(--cg-transition-fast)}.link-btn[data-v-e2b37122]:hover{opacity:.8;text-decoration:underline}.workflow-group[data-v-e2b37122]{margin-bottom:var(--cg-space-3)}.workflow-group-header[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.workflow-group-header.clickable[data-v-e2b37122]{cursor:pointer;-webkit-user-select:none;user-select:none}.workflow-group-header.clickable[data-v-e2b37122]:hover{color:var(--cg-color-accent)}.workflow-status-icon[data-v-e2b37122]{font-size:var(--cg-font-size-base);flex-shrink:0}.workflow-status-icon.new[data-v-e2b37122]{color:var(--cg-color-info)}.workflow-status-icon.modified[data-v-e2b37122]{color:var(--cg-color-warning)}.workflow-status-icon.deleted[data-v-e2b37122]{color:var(--cg-color-error)}.workflow-status-icon.synced[data-v-e2b37122]{color:var(--cg-color-success)}.workflow-status-icon.broken[data-v-e2b37122]{color:var(--cg-color-error)}.workflow-group-title[data-v-e2b37122]{font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);flex:1}.expand-icon[data-v-e2b37122]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.workflow-list[data-v-e2b37122]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-5)}.workflow-item[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2)}.workflow-name[data-v-e2b37122]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.workflow-issue[data-v-e2b37122]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-left:var(--cg-space-2);font-style:italic}.change-group[data-v-e2b37122]{margin-bottom:var(--cg-space-3)}.change-group-header[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.change-icon[data-v-e2b37122]{font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-bold);font-family:var(--cg-font-mono);flex-shrink:0}.change-icon.add[data-v-e2b37122]{color:var(--cg-color-info)}.change-icon.remove[data-v-e2b37122]{color:var(--cg-color-error)}.change-icon.modified[data-v-e2b37122]{color:var(--cg-color-warning)}.change-group-title[data-v-e2b37122]{font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.change-list[data-v-e2b37122]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-5)}.change-item[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2)}.node-name[data-v-e2b37122]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.dev-badge[data-v-e2b37122]{display:inline-block;padding:2px 6px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;font-weight:var(--cg-font-weight-semibold)}.drift-item[data-v-e2b37122]{margin-bottom:var(--cg-space-3)}.drift-list[data-v-e2b37122]{margin-top:var(--cg-space-2);padding-left:var(--cg-space-4);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.drift-list-item[data-v-e2b37122]{margin-bottom:var(--cg-space-1)}.drift-list-more[data-v-e2b37122]{margin-top:var(--cg-space-1);color:var(--cg-color-text-muted);font-style:italic}.warning-box[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning);margin-bottom:var(--cg-space-3)}.warning-icon[data-v-e2b37122]{font-size:var(--cg-font-size-lg);flex-shrink:0}.info-box[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin-bottom:var(--cg-space-3)}.info-icon[data-v-e2b37122]{font-size:var(--cg-font-size-lg);flex-shrink:0;color:var(--cg-color-info)}.help-text[data-v-e2b37122]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);line-height:1.5}.empty-state-inline[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm)}.empty-icon[data-v-e2b37122]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.empty-message[data-v-e2b37122]{flex:1}.empty-message strong[data-v-e2b37122]{display:block;color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);margin-bottom:var(--cg-space-1)}.empty-message p[data-v-e2b37122]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);line-height:1.5}.version-mismatch[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-1)}.version-actual[data-v-e2b37122]{color:var(--cg-color-error);text-decoration:line-through}.version-expected[data-v-e2b37122]{color:var(--cg-color-success)}.repair-action[data-v-e2b37122]{margin-top:var(--cg-space-4);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle)}.repair-action .help-text[data-v-e2b37122]{margin-top:var(--cg-space-2)}.health-section-wrapper[data-v-55fcd77f]{position:relative}.health-section-header[data-v-55fcd77f]{position:relative;display:flex;justify-content:space-between;align-items:flex-start}.show-all-button[data-v-55fcd77f]{position:absolute;top:0;right:0}.footer-title[data-v-55fcd77f]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;color:var(--cg-color-text-muted);margin:0 0 var(--cg-space-2) 0;letter-spacing:var(--cg-letter-spacing-wide)}.suggestions-content[data-v-55fcd77f]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-3)}.suggestions-text[data-v-55fcd77f]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.fade-enter-active[data-v-55fcd77f],.fade-leave-active[data-v-55fcd77f]{transition:opacity var(--cg-transition-fast)}.fade-enter-from[data-v-55fcd77f],.fade-leave-to[data-v-55fcd77f]{opacity:0}.no-issues-text[data-v-55fcd77f]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.text-input[data-v-0380d08f]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);transition:border-color var(--cg-transition-fast),box-shadow var(--cg-transition-fast)}.text-input.monospace[data-v-0380d08f]{font-family:var(--cg-font-mono)}.text-input[data-v-0380d08f]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 8px var(--cg-shadow-accent)}.text-input[data-v-0380d08f]:disabled{opacity:.5;cursor:not-allowed}.text-input.error[data-v-0380d08f]{border-color:var(--cg-color-error)}.text-input.error[data-v-0380d08f]:focus{box-shadow:0 0 8px var(--cg-shadow-error)}.text-input[data-v-0380d08f]::placeholder{color:var(--cg-color-text-muted)}.branch-create-form[data-v-7c500394]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);margin-bottom:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.form-actions[data-v-7c500394]{display:flex;gap:var(--cg-space-2)}.branch-list-item[data-v-c6581a24]{display:flex;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle);font-size:var(--cg-font-size-sm);transition:background var(--cg-transition-fast)}.branch-list-item[data-v-c6581a24]:last-child{border-bottom:none}.branch-list-item[data-v-c6581a24]:hover{background:var(--cg-color-bg-hover)}.branch-list-item.clickable[data-v-c6581a24]{cursor:pointer}.branch-list-item.current[data-v-c6581a24]{background:var(--cg-color-accent-muted);border-left:3px solid var(--cg-color-accent);padding-left:calc(var(--cg-space-3) - 3px)}.branch-list-item__indicator[data-v-c6581a24]{font-size:10px;margin-right:var(--cg-space-2);color:var(--cg-color-text-muted);flex-shrink:0}.branch-list-item.current .branch-list-item__indicator[data-v-c6581a24]{color:var(--cg-color-accent)}.branch-list-item__name[data-v-c6581a24]{flex:1;color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branch-list-item__actions[data-v-c6581a24]{display:flex;align-items:center;gap:var(--cg-space-2);flex-shrink:0}.branch-list-item__current-label[data-v-c6581a24]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);padding:var(--cg-space-1) var(--cg-space-2);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-family:var(--cg-font-mono)}.branch-list[data-v-86784ddd]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.commit-list[data-v-8c5ee761]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);overflow-y:auto}.commit-list[data-v-8c5ee761]::-webkit-scrollbar{width:8px}.commit-list[data-v-8c5ee761]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.commit-list[data-v-8c5ee761]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.commit-list[data-v-8c5ee761]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.commit-hash[data-v-7c333cc6]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);font-weight:var(--cg-font-weight-medium, 500);flex-shrink:0}.commit-item[data-v-dd7c621b]{display:flex;align-items:baseline;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle);position:relative;transition:background var(--cg-transition-fast),border-color var(--cg-transition-fast)}.commit-item[data-v-dd7c621b]:last-child{border-bottom:none}.commit-item.clickable[data-v-dd7c621b]{cursor:pointer}.commit-item.clickable[data-v-dd7c621b]:hover{background:var(--cg-color-bg-hover)}.commit-item:hover .commit-actions[data-v-dd7c621b]{opacity:1}.commit-message[data-v-dd7c621b]{flex:1;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.commit-date[data-v-dd7c621b]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);white-space:nowrap;flex-shrink:0;margin-right:32px}.commit-actions[data-v-dd7c621b]{position:absolute;right:var(--cg-space-2);top:50%;transform:translateY(-50%);opacity:0;transition:opacity .15s;display:flex;gap:var(--cg-space-1)}.base-modal-overlay[data-v-8dab1081]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10003;animation:fadeIn-8dab1081 .15s ease}@keyframes fadeIn-8dab1081{0%{opacity:0}to{opacity:1}}.base-modal-content[data-v-8dab1081]{background:var(--cg-color-bg-primary);border:2px solid var(--cg-color-border);box-shadow:var(--cg-shadow-xl);max-height:80vh;width:90vw;display:flex;flex-direction:column;animation:slideIn-8dab1081 .2s ease}@keyframes slideIn-8dab1081{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.base-modal-content.sm[data-v-8dab1081]{max-width:400px}.base-modal-content.md[data-v-8dab1081]{max-width:600px}.base-modal-content.lg[data-v-8dab1081]{max-width:800px}.base-modal-content.xl[data-v-8dab1081]{max-width:1000px}.base-modal-content.fixed-height[data-v-8dab1081]{height:70vh;max-height:70vh}.base-modal-header[data-v-8dab1081]{padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-2)}.base-modal-title[data-v-8dab1081]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;flex:1}.base-modal-close[data-v-8dab1081]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.base-modal-close[data-v-8dab1081]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.base-modal-body[data-v-8dab1081]{flex:1;overflow-y:auto;padding:var(--cg-space-4)}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar{width:8px}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.base-modal-loading[data-v-8dab1081],.base-modal-error[data-v-8dab1081]{text-align:center;padding:var(--cg-space-4);color:var(--cg-color-text-muted)}.base-modal-error[data-v-8dab1081]{color:var(--cg-color-error);border:1px solid var(--cg-color-error);background:var(--cg-color-error-muted)}.base-modal-footer[data-v-8dab1081]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:flex-end;gap:8px}.base-btn[data-v-f3452606]{border-radius:var(--cg-radius-md);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-weight:var(--cg-font-weight-medium);cursor:pointer;transition:all var(--cg-transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative}.base-btn[data-v-f3452606]:disabled{opacity:.5;cursor:not-allowed}.base-btn.loading[data-v-f3452606]{pointer-events:none}.spinner[data-v-f3452606]{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-f3452606 .6s linear infinite}@keyframes spin-f3452606{to{transform:rotate(360deg)}}.base-btn.sm[data-v-f3452606]{padding:6px 12px;font-size:var(--cg-font-size-xs)}.base-btn.md[data-v-f3452606]{padding:8px 16px;font-size:var(--cg-font-size-sm)}.base-btn.lg[data-v-f3452606]{padding:10px 20px;font-size:var(--cg-font-size-base)}.base-btn.full-width[data-v-f3452606]{width:100%}.base-btn.primary[data-v-f3452606]{background:var(--cg-color-accent);color:var(--cg-color-text-inverse);border:none}.base-btn.primary[data-v-f3452606]:hover:not(:disabled){background:var(--cg-color-accent-hover);transform:translateY(-1px);box-shadow:0 2px 8px var(--cg-color-accent-muted)}.base-btn.secondary[data-v-f3452606]{background:transparent;color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border)}.base-btn.secondary[data-v-f3452606]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-strong);color:var(--cg-color-text-primary)}.base-btn.danger[data-v-f3452606]{background:var(--cg-color-error);color:var(--cg-color-text-inverse);border:none}.base-btn.danger[data-v-f3452606]:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.base-btn.ghost[data-v-f3452606]{background:transparent;color:var(--cg-color-text-muted);border:1px solid transparent}.base-btn.ghost[data-v-f3452606]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle);color:var(--cg-color-accent)}.base-btn.link[data-v-f3452606]{background:transparent;color:var(--cg-color-info);border:none;text-decoration:underline;padding:0}.base-btn.link[data-v-f3452606]:hover:not(:disabled){color:var(--cg-color-accent)}.base-title[data-v-5a01561d]{font-weight:var(--cg-font-weight-normal)}.base-title.view[data-v-5a01561d]{color:var(--cg-color-accent);font-size:var(--cg-font-size-lg);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-weight:var(--cg-font-weight-semibold);margin:0 0 var(--cg-space-4) 0}.base-title.section[data-v-5a01561d]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-2) 0}.base-title.group[data-v-5a01561d]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-weight:var(--cg-font-weight-medium);margin:0 0 var(--cg-space-2) 0}.base-title.dialog[data-v-5a01561d]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0}.base-title-count[data-v-5a01561d]{margin-left:4px}.base-select-wrapper[data-v-7436d745]{display:inline-flex;flex-direction:column;gap:4px}.base-select-wrapper.full-width[data-v-7436d745]{width:100%}.base-select[data-v-7436d745]{padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);transition:all var(--cg-transition-fast);cursor:pointer;width:100%}.base-select[data-v-7436d745]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-select[data-v-7436d745]:disabled{opacity:.5;cursor:not-allowed}.base-select.error[data-v-7436d745]{border-color:var(--cg-color-error)}.base-select-error[data-v-7436d745]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.base-select[data-v-7436d745]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4L6 8L10 4' stroke='%2300d9ff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.popover-overlay[data-v-42815ace]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10004}.popover[data-v-42815ace]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);box-shadow:var(--cg-shadow-lg);width:90%;animation:popoverFadeIn-42815ace var(--cg-transition-normal)}@keyframes popoverFadeIn-42815ace{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.popover-header[data-v-42815ace]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-3) var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.popover-title[data-v-42815ace]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);margin:0}.popover-close[data-v-42815ace]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-lg);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast)}.popover-close[data-v-42815ace]:hover{color:var(--cg-color-text-primary)}.popover-content[data-v-42815ace]{padding:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);line-height:var(--cg-line-height-normal)}.popover-content[data-v-42815ace] p{margin:0 0 var(--cg-space-3) 0}.popover-content[data-v-42815ace] p:last-child{margin-bottom:0}.popover-content[data-v-42815ace] strong{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-semibold)}.popover-actions[data-v-42815ace]{padding:var(--cg-space-3) var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.empty-message[data-v-668728e6]{text-align:center;padding:var(--cg-space-4);color:var(--cg-color-text-muted)}.detail-section[data-v-668728e6]{margin-bottom:var(--cg-space-5)}.model-card[data-v-668728e6]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-3);margin-bottom:var(--cg-space-3)}.model-header[data-v-668728e6]{display:flex;align-items:center;gap:8px;margin-bottom:var(--cg-space-2)}.model-icon[data-v-668728e6]{font-size:var(--cg-font-size-lg)}.model-name[data-v-668728e6]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.model-details[data-v-668728e6]{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--cg-space-2)}.model-row[data-v-668728e6]{display:flex;align-items:center;gap:8px;font-size:var(--cg-font-size-sm)}.model-row .label[data-v-668728e6]{color:var(--cg-color-text-muted);min-width:80px;display:inline-flex;align-items:center;gap:4px}.model-row .value[data-v-668728e6]{color:var(--cg-color-text-secondary)}.model-row .value.success[data-v-668728e6]{color:var(--cg-color-success)}.model-row .value.error[data-v-668728e6]{color:var(--cg-color-error)}.model-row .value.warning[data-v-668728e6]{color:var(--cg-color-warning, #f59e0b)}.model-row .value.info[data-v-668728e6]{color:var(--cg-color-info, #3b82f6)}.model-row code[data-v-668728e6]{background:var(--cg-color-bg-secondary);padding:0 var(--cg-space-1);border-radius:var(--cg-radius-sm, 2px);font-family:var(--cg-font-mono, monospace);font-size:var(--cg-font-size-xs, 11px)}.model-row-nodes[data-v-668728e6]{align-items:flex-start}.node-list[data-v-668728e6]{display:flex;flex-direction:column;gap:4px;flex:1}.node-reference[data-v-668728e6]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);padding:2px 0}.expand-toggle[data-v-668728e6]{background:none;border:none;color:var(--cg-color-accent);cursor:pointer;font-size:var(--cg-font-size-sm);padding:4px 0;text-align:left;margin-top:2px}.expand-toggle[data-v-668728e6]:hover{text-decoration:underline}.model-actions[data-v-668728e6]{margin-top:var(--cg-space-2)}.importance-info-list[data-v-668728e6]{margin:0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);list-style-type:"• "}.importance-info-list li[data-v-668728e6]{margin-bottom:var(--cg-space-2)}.importance-info-list strong[data-v-668728e6]{color:var(--cg-color-accent)}.node-item[data-v-668728e6]{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);margin-bottom:4px;font-size:var(--cg-font-size-sm)}.node-status[data-v-668728e6]{font-weight:700;font-size:var(--cg-font-size-base)}.node-status.installed[data-v-668728e6]{color:var(--cg-color-success)}.node-status.missing[data-v-668728e6]{color:var(--cg-color-error)}.node-name[data-v-668728e6]{color:var(--cg-color-text-primary);flex:1}.node-version[data-v-668728e6]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.resolution-stepper[data-v-2a7b3af8]{display:flex;flex-direction:column;gap:0}.stepper-header[data-v-2a7b3af8]{display:flex;align-items:center;justify-content:space-between;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border-bottom:1px solid var(--cg-color-border)}.step[data-v-2a7b3af8]{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;position:relative;cursor:pointer;transition:opacity .2s}.step.disabled[data-v-2a7b3af8]{cursor:not-allowed;pointer-events:none}.step.disabled .step-indicator[data-v-2a7b3af8],.step.disabled .step-label[data-v-2a7b3af8]{opacity:.4}.step-indicator[data-v-2a7b3af8]{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cg-color-bg-tertiary);border:2px solid var(--cg-color-border);color:var(--cg-color-text-muted);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-xs);transition:all .2s;position:relative;z-index:2}.step-indicator.state-pending[data-v-2a7b3af8]{background:var(--cg-color-bg-tertiary);border-color:var(--cg-color-border);color:var(--cg-color-text-muted)}.step-indicator.state-partial[data-v-2a7b3af8]{background:var(--cg-color-warning-muted);border-color:var(--cg-color-warning);color:var(--cg-color-warning)}.step-indicator.state-complete[data-v-2a7b3af8]{background:var(--cg-color-success);border-color:var(--cg-color-success);color:#fff}.step.active .step-indicator[data-v-2a7b3af8]{box-shadow:0 0 0 2px var(--cg-color-accent-muted);border-color:var(--cg-color-accent)}.step-label[data-v-2a7b3af8]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-align:center;font-weight:var(--cg-font-weight-medium)}.step.active .step-label[data-v-2a7b3af8]{color:var(--cg-color-text);font-weight:var(--cg-font-weight-semibold)}.step-connector[data-v-2a7b3af8]{position:absolute;top:14px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--cg-color-border);z-index:1}.stepper-content[data-v-2a7b3af8]{padding:var(--cg-space-2) var(--cg-space-3)}.confidence-badge[data-v-17ec4b80]{display:inline-flex;align-items:center;justify-content:center;padding:var(--cg-spacing-xs) var(--cg-spacing-sm);border-radius:var(--cg-border-radius-sm);font-weight:var(--cg-font-weight-semibold);white-space:nowrap}.confidence-badge.sm[data-v-17ec4b80]{font-size:var(--cg-font-size-xs);padding:2px var(--cg-spacing-xs)}.confidence-badge.md[data-v-17ec4b80]{font-size:var(--cg-font-size-sm)}.confidence-high[data-v-17ec4b80]{background-color:var(--cg-color-success-bg);color:var(--cg-color-success);border:1px solid var(--cg-color-success)}.confidence-medium[data-v-17ec4b80]{background-color:var(--cg-color-warning-bg);color:var(--cg-color-warning);border:1px solid var(--cg-color-warning)}.confidence-low[data-v-17ec4b80]{background-color:var(--cg-color-error-bg);color:var(--cg-color-error);border:1px solid var(--cg-color-error)}.node-resolution-item[data-v-c2997d1d]{border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);background:var(--cg-color-bg-secondary);overflow:hidden;transition:all var(--cg-transition-fast)}.node-resolution-item.ambiguous[data-v-c2997d1d]{border-color:var(--cg-color-warning)}.node-resolution-item.resolved[data-v-c2997d1d]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.node-info[data-v-c2997d1d]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);background:var(--cg-color-bg-tertiary);border-bottom:1px solid var(--cg-color-border-subtle)}.node-info-text[data-v-c2997d1d]{flex:1;min-width:0}.node-info code[data-v-c2997d1d]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.status-badge[data-v-c2997d1d]{padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);white-space:nowrap;flex-shrink:0}.status-badge.unresolved[data-v-c2997d1d]{background:var(--cg-color-error-muted);color:var(--cg-color-error)}.status-badge.ambiguous[data-v-c2997d1d]{background:var(--cg-color-warning-muted);color:var(--cg-color-warning)}.status-badge.resolved[data-v-c2997d1d]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.status-badge.optional[data-v-c2997d1d]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.status-badge.skip[data-v-c2997d1d]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.item-body[data-v-c2997d1d]{padding:var(--cg-space-3)}.resolved-state[data-v-c2997d1d]{display:flex;justify-content:center}.multiple-options[data-v-c2997d1d]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.options-prompt[data-v-c2997d1d]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.options-list[data-v-c2997d1d]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.option-card[data-v-c2997d1d]{display:flex;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-md);background:var(--cg-color-bg-primary);cursor:pointer;transition:all var(--cg-transition-fast)}.option-card[data-v-c2997d1d]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.option-card.selected[data-v-c2997d1d]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.option-card input[type=radio][data-v-c2997d1d]{margin-top:4px;accent-color:var(--cg-color-accent)}.option-content[data-v-c2997d1d]{flex:1;min-width:0}.option-header[data-v-c2997d1d]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.option-package-id[data-v-c2997d1d]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.option-title[data-v-c2997d1d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.option-meta[data-v-c2997d1d]{display:flex;gap:var(--cg-space-2);align-items:center;margin-top:var(--cg-space-1)}.installed-badge[data-v-c2997d1d]{padding:2px var(--cg-space-2);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);background:var(--cg-color-success-muted);color:var(--cg-color-success)}.action-buttons[data-v-c2997d1d]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);justify-content:flex-start;padding-top:var(--cg-space-2);border-top:1px solid var(--cg-color-border-subtle)}.unresolved[data-v-c2997d1d]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.unresolved-message[data-v-c2997d1d]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning);font-size:var(--cg-font-size-sm)}.warning-icon[data-v-c2997d1d]{font-size:var(--cg-font-size-lg)}.searching-state[data-v-c2997d1d]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.searching-spinner[data-v-c2997d1d]{width:16px;height:16px;border:2px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-c2997d1d .8s linear infinite}@keyframes spin-c2997d1d{to{transform:rotate(360deg)}}.option-description[data-v-c2997d1d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-top:2px}.item-navigator[data-v-74af7920]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-3);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);border:1px solid var(--cg-color-border-subtle)}.nav-item-info[data-v-74af7920]{display:flex;align-items:center;gap:var(--cg-space-2);flex:1;min-width:0;overflow:hidden}.item-name[data-v-74af7920]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-accent);background:var(--cg-color-bg-primary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.nav-controls[data-v-74af7920]{display:flex;align-items:center;gap:var(--cg-space-2);flex-shrink:0}.nav-arrows[data-v-74af7920]{display:flex;gap:4px}.nav-arrow[data-v-74af7920]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);width:48px;height:24px;border-radius:var(--cg-radius-sm);cursor:pointer;font-size:var(--cg-font-size-sm);display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast)}.nav-arrow[data-v-74af7920]:first-child{border-radius:var(--cg-radius-sm) 0 0 var(--cg-radius-sm)}.nav-arrow[data-v-74af7920]:last-child{border-radius:0 var(--cg-radius-sm) var(--cg-radius-sm) 0}.nav-arrow[data-v-74af7920]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.nav-arrow[data-v-74af7920]:disabled{opacity:.4;cursor:not-allowed}.nav-position[data-v-74af7920]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);color:var(--cg-color-text-muted);min-width:36px;text-align:right}.base-input-wrapper[data-v-9ba02cdc]{display:inline-flex;flex-direction:column;gap:4px}.base-input-wrapper.full-width[data-v-9ba02cdc]{width:100%}.base-input[data-v-9ba02cdc]{padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);transition:all var(--cg-transition-fast);width:100%}.base-input[data-v-9ba02cdc]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-input[data-v-9ba02cdc]:disabled{opacity:.5;cursor:not-allowed}.base-input.error[data-v-9ba02cdc]{border-color:var(--cg-color-error)}.base-input-error[data-v-9ba02cdc]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.node-resolution-step[data-v-281581bc]{display:flex;flex-direction:column;gap:var(--cg-space-2);min-height:400px}.auto-resolved-section[data-v-281581bc]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-header[data-v-281581bc]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3)}.section-info[data-v-281581bc]{flex:1}.section-title[data-v-281581bc]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.section-description[data-v-281581bc]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:2px 0 0}.resolved-packages-list[data-v-281581bc]{display:flex;flex-direction:column;gap:var(--cg-space-1);max-height:200px;overflow-y:auto}.resolved-package-item[data-v-281581bc]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);border-left:3px solid var(--cg-color-success)}.package-info[data-v-281581bc]{display:flex;align-items:center;gap:var(--cg-space-3)}.package-id[data-v-281581bc]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-accent)}.node-count[data-v-281581bc]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.package-actions[data-v-281581bc]{display:flex;align-items:center;gap:var(--cg-space-2)}.status-badge[data-v-281581bc]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);padding:2px 6px;border-radius:var(--cg-radius-sm);text-transform:uppercase;letter-spacing:.05em}.status-badge.install[data-v-281581bc]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.status-badge.skip[data-v-281581bc]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.toggle-skip-btn[data-v-281581bc]{font-size:var(--cg-font-size-xs);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-sm);color:var(--cg-color-text-secondary);cursor:pointer;transition:all var(--cg-transition-fast)}.toggle-skip-btn[data-v-281581bc]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-text-primary)}.section-divider[data-v-281581bc]{height:1px;background:var(--cg-color-border);margin:var(--cg-space-2) 0}.step-header[data-v-281581bc]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.step-info[data-v-281581bc]{flex:1}.step-title[data-v-281581bc]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.step-description[data-v-281581bc]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:2px 0 0}.stat-badge[data-v-281581bc]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);padding:4px 8px;border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border-subtle);white-space:nowrap}.step-body[data-v-281581bc]{flex:1;overflow-y:auto}.empty-state[data-v-281581bc]{flex:1;display:flex;align-items:center;justify-content:center;color:var(--cg-color-text-muted)}.node-resolution-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10010}.node-search-modal{width:90%;max-width:500px;height:75vh;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.node-manual-entry-modal{width:90%;max-width:500px;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.node-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.node-modal-header h4{margin:0;font-size:14px;font-weight:600;color:var(--cg-color-text-primary, #fff)}.node-modal-close-btn{background:none;border:none;font-size:18px;color:var(--cg-color-text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.node-modal-close-btn:hover{color:var(--cg-color-text-primary, #fff);background:var(--cg-color-bg-hover, #333)}.node-modal-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.node-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.node-search-result-item{padding:8px 12px;border:1px solid var(--cg-color-border-subtle, #444);border-radius:6px;background:var(--cg-color-bg-secondary, #252542);cursor:pointer;transition:all .15s ease}.node-search-result-item:hover{border-color:var(--cg-color-accent, #7c3aed);background:var(--cg-color-bg-hover, #333)}.node-result-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.node-result-package-id{font-family:var(--cg-font-mono, monospace);font-weight:600;font-size:13px;color:var(--cg-color-accent, #7c3aed)}.node-result-description{font-size:12px;color:var(--cg-color-text-muted, #888)}.node-search-results-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.node-search-results{flex:1;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.node-empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--cg-color-text-muted, #888);font-size:13px}.model-resolution-item[data-v-8a82fefa]{border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);background:var(--cg-color-bg-secondary);overflow:hidden;transition:all var(--cg-transition-fast)}.model-resolution-item.ambiguous[data-v-8a82fefa]{border-color:var(--cg-color-warning)}.model-resolution-item.resolved[data-v-8a82fefa]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.node-info[data-v-8a82fefa]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);background:var(--cg-color-bg-tertiary);border-bottom:1px solid var(--cg-color-border-subtle)}.node-info-text[data-v-8a82fefa]{flex:1;min-width:0}.node-info code[data-v-8a82fefa]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.status-badge[data-v-8a82fefa]{padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);white-space:nowrap;flex-shrink:0}.status-badge.unresolved[data-v-8a82fefa]{background:var(--cg-color-error-muted);color:var(--cg-color-error)}.status-badge.ambiguous[data-v-8a82fefa]{background:var(--cg-color-warning-muted);color:var(--cg-color-warning)}.status-badge.resolved[data-v-8a82fefa]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.status-badge.optional[data-v-8a82fefa]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.status-badge.skip[data-v-8a82fefa]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.item-body[data-v-8a82fefa]{padding:var(--cg-space-3)}.resolved-state[data-v-8a82fefa]{display:flex;justify-content:center}.multiple-options[data-v-8a82fefa]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.options-prompt[data-v-8a82fefa]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.options-list[data-v-8a82fefa]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.option-card[data-v-8a82fefa]{display:flex;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-md);background:var(--cg-color-bg-primary);cursor:pointer;transition:all var(--cg-transition-fast)}.option-card[data-v-8a82fefa]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.option-card.selected[data-v-8a82fefa]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.option-card input[type=radio][data-v-8a82fefa]{margin-top:4px;accent-color:var(--cg-color-accent)}.option-content[data-v-8a82fefa]{flex:1;min-width:0}.option-header[data-v-8a82fefa]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.option-filename[data-v-8a82fefa]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.option-meta[data-v-8a82fefa]{display:flex;gap:var(--cg-space-2);align-items:center;margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs)}.option-size[data-v-8a82fefa]{font-family:var(--cg-font-mono);color:var(--cg-color-text-muted)}.option-category[data-v-8a82fefa]{color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.option-path[data-v-8a82fefa]{margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);color:var(--cg-color-text-muted)}.action-buttons[data-v-8a82fefa]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);justify-content:flex-start;padding-top:var(--cg-space-2);border-top:1px solid var(--cg-color-border-subtle)}.unresolved[data-v-8a82fefa]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.unresolved-message[data-v-8a82fefa]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning);font-size:var(--cg-font-size-sm)}.warning-icon[data-v-8a82fefa]{font-size:var(--cg-font-size-lg)}.model-resolution-step[data-v-c6acbada]{display:flex;flex-direction:column;gap:var(--cg-space-2);min-height:400px}.step-header[data-v-c6acbada]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.step-info[data-v-c6acbada]{flex:1}.step-title[data-v-c6acbada]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.step-description[data-v-c6acbada]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:2px 0 0}.stat-badge[data-v-c6acbada]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);padding:4px 8px;border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border-subtle);white-space:nowrap}.step-body[data-v-c6acbada]{flex:1;overflow-y:auto}.empty-state[data-v-c6acbada]{flex:1;display:flex;align-items:center;justify-content:center;color:var(--cg-color-text-muted)}.model-resolution-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10010}.model-search-modal,.model-download-url-modal{width:90%;max-width:500px;max-height:80vh;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.model-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.model-modal-header h4{margin:0;font-size:14px;font-weight:600;color:var(--cg-color-text-primary, #fff)}.model-modal-close-btn{background:none;border:none;font-size:18px;color:var(--cg-color-text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.model-modal-close-btn:hover{color:var(--cg-color-text-primary, #fff);background:var(--cg-color-bg-hover, #333)}.model-modal-body{padding:16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.model-input-group{display:flex;flex-direction:column;gap:4px}.model-input-label{font-size:12px;font-weight:500;color:var(--cg-color-text-secondary, #aaa)}.model-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.model-search-results{display:flex;flex-direction:column;gap:8px}.model-search-result-item{padding:8px 12px;border:1px solid var(--cg-color-border-subtle, #444);border-radius:6px;background:var(--cg-color-bg-secondary, #252542);cursor:pointer;transition:all .15s ease}.model-search-result-item:hover{border-color:var(--cg-color-accent, #7c3aed);background:var(--cg-color-bg-hover, #333)}.model-result-header{margin-bottom:4px}.model-result-filename{font-family:var(--cg-font-mono, monospace);font-weight:600;font-size:13px;color:var(--cg-color-accent, #7c3aed)}.model-result-meta{display:flex;gap:8px;font-size:12px;color:var(--cg-color-text-muted, #888);margin-bottom:4px}.model-result-category{text-transform:uppercase;letter-spacing:.05em}.model-result-size{font-family:var(--cg-font-mono, monospace)}.model-result-path{font-size:12px;font-family:var(--cg-font-mono, monospace);color:var(--cg-color-text-muted, #888)}.model-no-results,.model-searching{padding:16px;text-align:center;color:var(--cg-color-text-muted, #888);font-size:13px}.applying-step[data-v-5efaae58]{padding:var(--cg-space-4)}.phase-content[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.phase-header[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-3)}.phase-icon[data-v-5efaae58]{font-size:var(--cg-font-size-xl)}.phase-icon.success[data-v-5efaae58]{color:var(--cg-color-success)}.phase-icon.error[data-v-5efaae58]{color:var(--cg-color-error)}.phase-icon.warning[data-v-5efaae58]{color:var(--cg-color-warning)}.phase-title[data-v-5efaae58]{margin:0;font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.phase-description[data-v-5efaae58]{margin:0;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.loading-spinner[data-v-5efaae58]{width:24px;height:24px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-5efaae58 .8s linear infinite}@keyframes spin-5efaae58{to{transform:rotate(360deg)}}.completion-summary[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.summary-item[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm)}.summary-item.success[data-v-5efaae58]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.summary-item.info[data-v-5efaae58]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.summary-note[data-v-5efaae58]{margin:0;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.summary-icon[data-v-5efaae58]{font-size:var(--cg-font-size-base)}.phase-content.error .error-message[data-v-5efaae58]{margin:0;padding:var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md);color:var(--cg-color-error);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.summary-item.error[data-v-5efaae58]{background:var(--cg-color-error-muted);color:var(--cg-color-error)}.overall-progress[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-3);margin-bottom:var(--cg-space-2)}.progress-bar[data-v-5efaae58]{flex:1;height:6px;background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-full);overflow:hidden}.progress-fill[data-v-5efaae58]{height:100%;background:var(--cg-color-accent);border-radius:var(--cg-radius-full);transition:width var(--cg-transition-fast)}.progress-label[data-v-5efaae58]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);color:var(--cg-color-text-muted);white-space:nowrap}.install-list[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);max-height:150px;overflow-y:auto}.install-item[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);border-left:3px solid transparent}.install-item.pending[data-v-5efaae58]{border-left-color:var(--cg-color-border)}.install-item.installing[data-v-5efaae58]{border-left-color:var(--cg-color-accent);background:var(--cg-color-bg-tertiary)}.install-item.complete[data-v-5efaae58]{border-left-color:var(--cg-color-success)}.install-item.failed[data-v-5efaae58]{border-left-color:var(--cg-color-error)}.install-icon[data-v-5efaae58]{width:16px;text-align:center}.install-item.pending .install-icon[data-v-5efaae58]{color:var(--cg-color-text-muted)}.install-item.installing .install-icon[data-v-5efaae58]{color:var(--cg-color-accent)}.install-item.complete .install-icon[data-v-5efaae58]{color:var(--cg-color-success)}.install-item.failed .install-icon[data-v-5efaae58]{color:var(--cg-color-error)}.install-icon .spinner[data-v-5efaae58]{display:inline-block;animation:spin-5efaae58 1s linear infinite}.install-item code[data-v-5efaae58]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary)}.install-error[data-v-5efaae58]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error);margin-left:auto}.restart-prompt[data-v-5efaae58]{margin-top:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.restart-warning[data-v-5efaae58]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning)}.restart-warning .warning-icon[data-v-5efaae58]{font-size:var(--cg-font-size-lg);flex-shrink:0}.restart-warning .warning-content[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.restart-warning .warning-content strong[data-v-5efaae58]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold)}.restart-warning .warning-content p[data-v-5efaae58]{margin:0;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.restart-button[data-v-5efaae58]{align-self:flex-end;padding:var(--cg-space-2) var(--cg-space-4);background:var(--cg-color-warning);color:var(--cg-color-bg-primary);border:none;border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);cursor:pointer;transition:all var(--cg-transition-fast)}.restart-button[data-v-5efaae58]:hover{filter:brightness(1.1)}.failed-list[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-2);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md);max-height:150px;overflow-y:auto}.failed-item[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-primary);border-radius:var(--cg-radius-sm)}.failed-node-id[data-v-5efaae58]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-error)}.failed-error[data-v-5efaae58]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);word-break:break-word}.retry-button[data-v-5efaae58]{align-self:flex-start;margin-top:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-4);background:var(--cg-color-accent);color:var(--cg-color-bg-primary);border:none;border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);cursor:pointer;transition:all var(--cg-transition-fast)}.retry-button[data-v-5efaae58]:hover{filter:brightness(1.1)}.loading-state[data-v-40d8d5a8]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--cg-space-8);gap:var(--cg-space-3);color:var(--cg-color-text-muted)}.loading-spinner[data-v-40d8d5a8]{width:32px;height:32px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-40d8d5a8 .8s linear infinite}@keyframes spin-40d8d5a8{to{transform:rotate(360deg)}}.wizard-content[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:0}.step-content[data-v-40d8d5a8]{padding:var(--cg-space-3)}.analysis-summary[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.analysis-header[data-v-40d8d5a8],.review-header[data-v-40d8d5a8]{margin-bottom:var(--cg-space-2)}.summary-title[data-v-40d8d5a8]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-semibold);margin:0 0 var(--cg-space-1) 0}.summary-description[data-v-40d8d5a8]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin:0}.stats-grid[data-v-40d8d5a8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--cg-space-3)}.stat-card[data-v-40d8d5a8]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);padding:var(--cg-space-3)}.stat-header[data-v-40d8d5a8]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin-bottom:var(--cg-space-2)}.stat-items[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.stat-item[data-v-40d8d5a8]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.stat-item.success[data-v-40d8d5a8]{color:var(--cg-color-success)}.stat-item.warning[data-v-40d8d5a8]{color:var(--cg-color-warning)}.stat-item.error[data-v-40d8d5a8]{color:var(--cg-color-error)}.stat-item.info[data-v-40d8d5a8]{color:var(--cg-color-info)}.stat-icon[data-v-40d8d5a8]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-bold)}.stat-count[data-v-40d8d5a8]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold)}.stat-label[data-v-40d8d5a8]{color:inherit;opacity:.8}.status-message[data-v-40d8d5a8]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm)}.status-message.warning[data-v-40d8d5a8]{background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);color:var(--cg-color-warning)}.status-message.success[data-v-40d8d5a8]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);color:var(--cg-color-success)}.status-message.info[data-v-40d8d5a8]{background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);color:var(--cg-color-info)}.status-icon[data-v-40d8d5a8]{font-size:var(--cg-font-size-lg)}.category-mismatch-section[data-v-40d8d5a8]{margin-top:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md)}.section-subtitle[data-v-40d8d5a8]{color:var(--cg-color-warning);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);margin:0 0 var(--cg-space-2) 0}.mismatch-list[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.mismatch-item[data-v-40d8d5a8]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);flex-wrap:wrap}.mismatch-path[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-error)}.mismatch-arrow[data-v-40d8d5a8]{color:var(--cg-color-text-muted)}.mismatch-target[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-success)}.review-summary[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.review-stats[data-v-40d8d5a8]{display:flex;gap:var(--cg-space-4);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-lg)}.review-stat[data-v-40d8d5a8]{display:flex;flex-direction:column;align-items:center;flex:1}.review-stat .stat-value[data-v-40d8d5a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);color:var(--cg-color-text-primary)}.review-stat .stat-label[data-v-40d8d5a8]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.review-section[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-40d8d5a8]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0;padding-bottom:var(--cg-space-1);border-bottom:1px solid var(--cg-color-border-subtle)}.review-items[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.review-item[data-v-40d8d5a8]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.item-name[data-v-40d8d5a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.item-choice[data-v-40d8d5a8]{display:flex;gap:var(--cg-space-2)}.choice-badge[data-v-40d8d5a8]{padding:var(--cg-space-1) var(--cg-space-2);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);border-radius:var(--cg-radius-sm)}.choice-badge.install[data-v-40d8d5a8],.choice-badge.download[data-v-40d8d5a8]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.choice-badge.optional[data-v-40d8d5a8]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.choice-badge.skip[data-v-40d8d5a8]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.choice-badge.pending[data-v-40d8d5a8]{background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-muted);font-style:italic}.no-choices[data-v-40d8d5a8]{padding:var(--cg-space-4);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-md);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center}.download-details .download-item[data-v-40d8d5a8]{flex-direction:column;align-items:flex-start;gap:var(--cg-space-2)}.download-info[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-1);width:100%}.download-meta[data-v-40d8d5a8]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.download-path[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.download-url[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-info);cursor:help;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.footer-spacer[data-v-40d8d5a8]{flex:1}.search-input-wrapper[data-v-266f857a]{position:relative;width:100%}.search-input[data-v-266f857a]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);padding-right:var(--cg-space-8);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.search-input[data-v-266f857a]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 8px var(--cg-shadow-accent)}.clear-button[data-v-266f857a]{position:absolute;right:var(--cg-space-2);top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:var(--cg-space-1);font-size:var(--cg-font-size-sm);display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.clear-button[data-v-266f857a]:hover{color:var(--cg-color-text-primary)}.search-bar[data-v-3d51bbfd]{margin-bottom:var(--cg-space-2)}.section-group[data-v-c48e33ed]{margin-bottom:var(--cg-space-4)}.section-content[data-v-c48e33ed]{margin-top:var(--cg-space-2)}.item-card[data-v-cc435e0e]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-3);margin-bottom:var(--cg-space-2);border-left-width:3px;border-left-color:transparent}.item-card.compact[data-v-cc435e0e]{padding:var(--cg-space-2)}.item-card.clickable[data-v-cc435e0e]{cursor:pointer}.item-card.clickable[data-v-cc435e0e]:hover{background:var(--cg-color-bg-hover)}.item-card.status-broken[data-v-cc435e0e]{border-left-color:var(--cg-color-error)}.item-card.status-new[data-v-cc435e0e]{border-left-color:var(--cg-color-info)}.item-card.status-modified[data-v-cc435e0e]{border-left-color:var(--cg-color-warning)}.item-card.status-synced[data-v-cc435e0e]{border-left-color:var(--cg-color-success)}.item-card.status-missing[data-v-cc435e0e]{border-left-color:var(--cg-color-warning)}.item-card.status-deleted[data-v-cc435e0e]{border-left-color:var(--cg-color-error)}.item-header[data-v-cc435e0e]{display:flex;align-items:flex-start;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.item-header[data-v-cc435e0e]:last-child{margin-bottom:0}.item-icon[data-v-cc435e0e]{font-size:var(--cg-font-size-xl);flex-shrink:0}.item-info[data-v-cc435e0e]{flex:1;min-width:0}.item-title[data-v-cc435e0e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);margin-bottom:var(--cg-space-1)}.item-subtitle[data-v-cc435e0e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.item-details[data-v-cc435e0e]{display:flex;flex-direction:column;gap:var(--cg-space-1);margin-bottom:var(--cg-space-2)}.item-details[data-v-cc435e0e]:last-child{margin-bottom:0}.item-actions[data-v-cc435e0e]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.loading-state[data-v-ad8436c9]{text-align:center;padding:var(--cg-space-8) var(--cg-space-6);color:var(--cg-color-text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-3)}.spinner[data-v-ad8436c9]{width:32px;height:32px;border:3px solid var(--cg-color-border-subtle);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-ad8436c9 .8s linear infinite}@keyframes spin-ad8436c9{to{transform:rotate(360deg)}}.loading-message[data-v-ad8436c9]{font-size:var(--cg-font-size-sm);margin:0}.error-state[data-v-5397be48]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-error);border:1px solid var(--cg-color-error);background:transparent;display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-3)}.error-icon[data-v-5397be48]{font-size:var(--cg-font-size-2xl)}.error-message[data-v-5397be48]{font-size:var(--cg-font-size-sm);margin:0}.summary-bar[data-v-ccb7816e]{padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin-bottom:var(--cg-space-4)}.summary-bar.compact[data-v-ccb7816e]{padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-xs)}.model-details[data-v-f15cbb56]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.detail-section[data-v-f15cbb56]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);padding:var(--cg-space-3)}.section-header[data-v-f15cbb56]{color:var(--cg-color-accent);text-transform:uppercase;font-size:var(--cg-font-size-xs);letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-2) 0;padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.detail-row[data-v-f15cbb56]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-1) 0}.detail-label[data-v-f15cbb56]{color:var(--cg-color-text-muted);min-width:100px;font-size:var(--cg-font-size-sm)}.detail-value[data-v-f15cbb56]{color:var(--cg-color-text-primary);flex:1;word-break:break-all}.detail-value.mono[data-v-f15cbb56]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.copy-btn[data-v-f15cbb56]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);padding:2px 8px;font-size:var(--cg-font-size-xs);cursor:pointer}.copy-btn[data-v-f15cbb56]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent);border-color:var(--cg-color-accent)}.locations-list[data-v-f15cbb56],.sources-list[data-v-f15cbb56]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.location-item[data-v-f15cbb56]{display:flex;flex-direction:column;gap:2px;padding:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border-left:2px solid var(--cg-color-accent)}.location-path[data-v-f15cbb56]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);word-break:break-all}.location-modified[data-v-f15cbb56]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.source-item[data-v-f15cbb56]{display:flex;gap:var(--cg-space-2);align-items:center}.source-type[data-v-f15cbb56]{color:var(--cg-color-text-muted);text-transform:capitalize;flex-shrink:0}.source-url[data-v-f15cbb56]{color:var(--cg-color-accent);word-break:break-all;font-size:var(--cg-font-size-sm);flex:1}.remove-source-btn[data-v-f15cbb56]{background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.remove-source-btn[data-v-f15cbb56]:hover:not(:disabled){background:var(--cg-color-error, #ef4444);border-color:var(--cg-color-error, #ef4444);color:#fff}.remove-source-btn[data-v-f15cbb56]:disabled{opacity:.5;cursor:not-allowed}.empty-state[data-v-f15cbb56]{color:var(--cg-color-text-muted);font-style:italic;padding:var(--cg-space-2)}.add-source-form[data-v-f15cbb56]{display:flex;gap:var(--cg-space-2);margin-top:var(--cg-space-3)}.source-input[data-v-f15cbb56]{flex:1;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);padding:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.source-input[data-v-f15cbb56]::placeholder{color:var(--cg-color-text-muted)}.source-input[data-v-f15cbb56]:focus{outline:none;border-color:var(--cg-color-accent)}.add-source-btn[data-v-f15cbb56]{background:var(--cg-color-accent);border:none;color:var(--cg-color-bg-primary);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm);cursor:pointer;white-space:nowrap}.add-source-btn[data-v-f15cbb56]:disabled{opacity:.5;cursor:not-allowed}.add-source-btn[data-v-f15cbb56]:not(:disabled):hover{filter:brightness(1.1)}.source-error[data-v-f15cbb56]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin-top:var(--cg-space-2)}.source-success[data-v-f15cbb56]{color:var(--cg-color-success);font-size:var(--cg-font-size-sm);margin-top:var(--cg-space-2)}.btn-secondary[data-v-f15cbb56]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);padding:var(--cg-space-2) var(--cg-space-4);cursor:pointer}.btn-secondary[data-v-f15cbb56]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent)}.open-location-btn[data-v-f15cbb56]{margin-top:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);padding:4px 12px;font-size:var(--cg-font-size-xs);cursor:pointer;align-self:flex-start}.open-location-btn[data-v-f15cbb56]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent);border-color:var(--cg-color-accent)}.toast[data-v-f15cbb56]{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-accent);color:var(--cg-color-text-primary);padding:10px 20px;font-size:var(--cg-font-size-sm);z-index:10010;animation:toastSlideIn-f15cbb56 .2s ease}.toast.success[data-v-f15cbb56]{border-color:var(--cg-color-success, #4ade80)}.toast.error[data-v-f15cbb56]{border-color:var(--cg-color-error, #ef4444)}.toast.info[data-v-f15cbb56]{border-color:var(--cg-color-accent)}@keyframes toastSlideIn-f15cbb56{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.indexing-progress[data-v-73b78d84]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);padding:var(--cg-space-2) var(--cg-space-3);margin-bottom:var(--cg-space-2)}.progress-info[data-v-73b78d84]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cg-space-1)}.progress-label[data-v-73b78d84]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.progress-count[data-v-73b78d84]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.progress-bar[data-v-73b78d84]{height:4px;background:var(--cg-color-bg-hover);border-radius:2px;overflow:hidden}.progress-fill[data-v-73b78d84]{height:100%;background:var(--cg-color-accent);transition:width .2s ease}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10010}.modal-content{width:90%;max-width:500px;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.modal-header h3{margin:0;font-size:14px;font-weight:600;color:var(--cg-color-text-primary, #fff)}.modal-close{background:none;border:none;font-size:18px;color:var(--cg-color-text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.modal-close:hover{color:var(--cg-color-text-primary, #fff);background:var(--cg-color-bg-hover, #333)}.modal-body{padding:16px;display:flex;flex-direction:column;gap:12px}.input-group{display:flex;flex-direction:column;gap:4px}.input-group label{font-size:12px;font-weight:500;color:var(--cg-color-text-secondary, #aaa)}.current-path{font-family:var(--cg-font-mono, monospace);font-size:13px;padding:8px 12px;background:var(--cg-color-bg-tertiary, #333);border-radius:4px;color:var(--cg-color-accent, #7c3aed);word-break:break-all;overflow-wrap:anywhere}.modal-note{font-size:12px;color:var(--cg-color-text-muted, #888);margin:0;padding:8px;background:var(--cg-color-bg-secondary, #252542);border-radius:4px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.node-details[data-v-b342f626]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.status-row[data-v-b342f626]{display:flex;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.status-badge[data-v-b342f626]{padding:4px 12px;border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.status-badge.installed[data-v-b342f626]{background:var(--cg-color-success-muted, rgba(34, 197, 94, .15));color:var(--cg-color-success);border:1px solid var(--cg-color-success)}.status-badge.dev[data-v-b342f626]{background:var(--cg-color-accent-muted);color:var(--cg-color-accent);border:1px solid var(--cg-color-accent)}.status-badge.missing[data-v-b342f626]{background:var(--cg-color-error-muted);color:var(--cg-color-error);border:1px solid var(--cg-color-error)}.status-badge.warning[data-v-b342f626]{background:#f59e0b26;color:var(--cg-color-warning, #f59e0b);border:1px solid var(--cg-color-warning, #f59e0b)}.detail-row[data-v-b342f626]{display:flex;align-items:flex-start;gap:var(--cg-space-3);font-size:var(--cg-font-size-sm)}.label[data-v-b342f626]{color:var(--cg-color-text-muted);min-width:100px;flex-shrink:0}.value[data-v-b342f626]{color:var(--cg-color-text-secondary);word-break:break-word}.value.mono[data-v-b342f626]{font-family:var(--cg-font-mono)}.value.small[data-v-b342f626]{font-size:var(--cg-font-size-xs)}.repo-link[data-v-b342f626]{color:var(--cg-color-accent);text-decoration:none;display:inline-flex;align-items:center;gap:6px;word-break:break-all}.repo-link[data-v-b342f626]:hover{text-decoration:underline}.external-icon[data-v-b342f626]{flex-shrink:0;opacity:.7}.section-divider[data-v-b342f626]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) 0}.workflow-list[data-v-b342f626]{display:flex;flex-wrap:wrap;gap:6px}.workflow-tag[data-v-b342f626]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:2px 8px;border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.dialog-message[data-v-3670b9f5]{margin:0 0 12px;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);line-height:var(--cg-line-height-normal)}.dialog-details[data-v-3670b9f5]{background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-md);padding:8px 12px;margin-bottom:12px}.detail-item[data-v-3670b9f5]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);padding:2px 0}.dialog-warning[data-v-3670b9f5]{display:flex;align-items:flex-start;gap:8px;margin:0;padding:8px 10px;background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-xs);color:var(--cg-color-warning)}.warning-icon[data-v-3670b9f5]{flex-shrink:0}.mismatch-warning[data-v-1555a802]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning);margin-bottom:var(--cg-space-3)}.warning-icon[data-v-1555a802]{font-size:var(--cg-font-size-lg);flex-shrink:0}.version-mismatch[data-v-1555a802]{display:flex;align-items:center;gap:var(--cg-space-1);font-family:var(--cg-font-mono)}.version-actual[data-v-1555a802]{color:var(--cg-color-error);text-decoration:line-through}.version-arrow[data-v-1555a802]{color:var(--cg-color-text-muted)}.version-expected[data-v-1555a802]{color:var(--cg-color-success)}.remote-url-display[data-v-7768a58d]{display:inline-flex;align-items:center;gap:var(--cg-space-2);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.url-text[data-v-7768a58d]{color:var(--cg-color-text-secondary);word-break:break-all}.copy-btn[data-v-7768a58d]{background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast);flex-shrink:0}.copy-btn[data-v-7768a58d]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.copy-btn.copied[data-v-7768a58d]{color:var(--cg-color-success);border-color:var(--cg-color-success)}.remote-title[data-v-8310f3a8]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.default-badge[data-v-8310f3a8]{display:inline-block;padding:2px 6px;background:transparent;border:1px solid var(--cg-color-success);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.sync-badge[data-v-8310f3a8]{display:inline-flex;align-items:center;gap:var(--cg-space-1);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.sync-badge .ahead[data-v-8310f3a8]{color:var(--cg-color-info)}.sync-badge .behind[data-v-8310f3a8]{color:var(--cg-color-warning)}.sync-badge .synced[data-v-8310f3a8]{color:var(--cg-color-success)}.remote-url-link[data-v-8310f3a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);text-decoration:none}.remote-url-link[data-v-8310f3a8]:hover{text-decoration:underline}.remote-url-text[data-v-8310f3a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.base-form-field[data-v-9a1cf296]{display:flex;flex-direction:column;gap:6px}.base-form-field.full-width[data-v-9a1cf296]{width:100%}.base-form-field-label[data-v-9a1cf296]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.base-form-field-required[data-v-9a1cf296]{color:var(--cg-color-error);margin-left:2px}.base-form-field-input[data-v-9a1cf296]{width:100%}.base-form-field-error[data-v-9a1cf296]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.base-form-field-hint[data-v-9a1cf296]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.remote-form[data-v-56021b18]{border:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-4);margin-bottom:var(--cg-space-4)}.form-header[data-v-56021b18]{margin-bottom:var(--cg-space-4)}.form-body[data-v-56021b18]{display:flex;flex-direction:column;gap:var(--cg-space-3);margin-bottom:var(--cg-space-4)}.form-error[data-v-56021b18]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);color:var(--cg-color-error);font-size:var(--cg-font-size-sm)}.form-actions[data-v-56021b18]{display:flex;gap:var(--cg-space-2)}.conflict-summary-box[data-v-4e9e6cc9]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md)}.summary-header[data-v-4e9e6cc9]{display:flex;align-items:flex-start;gap:var(--cg-space-2)}.summary-icon[data-v-4e9e6cc9]{font-size:var(--cg-font-size-lg);color:var(--cg-color-warning)}.summary-text[data-v-4e9e6cc9]{flex:1}.summary-text strong[data-v-4e9e6cc9]{color:var(--cg-color-warning);font-size:var(--cg-font-size-sm)}.summary-text p[data-v-4e9e6cc9]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.summary-text p.all-resolved[data-v-4e9e6cc9]{color:var(--cg-color-success)}.summary-progress[data-v-4e9e6cc9]{display:flex;align-items:center;gap:var(--cg-space-2)}.progress-bar[data-v-4e9e6cc9]{flex:1;height:6px;background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);overflow:hidden}.progress-fill[data-v-4e9e6cc9]{height:100%;background:var(--cg-color-warning);border-radius:var(--cg-radius-sm);transition:width .3s ease}.progress-text[data-v-4e9e6cc9]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);white-space:nowrap}.modal-overlay[data-v-300c7b2f]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-300c7b2f]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-300c7b2f]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-300c7b2f]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-300c7b2f]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.modal-close[data-v-300c7b2f]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-300c7b2f]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.loading-state[data-v-300c7b2f]{display:flex;align-items:center;gap:var(--cg-space-2);justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.spinner[data-v-300c7b2f]{animation:spin-300c7b2f 1s linear infinite}.error-box[data-v-300c7b2f]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-sm);color:var(--cg-color-error)}.error-icon[data-v-300c7b2f]{font-size:var(--cg-font-size-xl);flex-shrink:0}.error-box p[data-v-300c7b2f]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.error-hint[data-v-300c7b2f]{margin-top:var(--cg-space-2)!important;opacity:.9}@keyframes spin-300c7b2f{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.commit-summary[data-v-300c7b2f]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary)}.commit-summary .icon[data-v-300c7b2f]{font-size:var(--cg-font-size-lg)}.warning-box[data-v-300c7b2f]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);color:var(--cg-color-warning)}.warning-icon[data-v-300c7b2f]{font-size:var(--cg-font-size-xl);flex-shrink:0}.warning-box p[data-v-300c7b2f]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.options-section[data-v-300c7b2f]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.options-section ul[data-v-300c7b2f]{margin:var(--cg-space-2) 0 0 var(--cg-space-4);padding:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.changes-section[data-v-300c7b2f]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-300c7b2f]{margin:0;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.change-group[data-v-300c7b2f]{background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);overflow:hidden}.change-group summary[data-v-300c7b2f]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.change-group summary[data-v-300c7b2f]:hover{background:var(--cg-color-bg-hover)}.change-type[data-v-300c7b2f]{font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary)}.change-count[data-v-300c7b2f]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.change-list[data-v-300c7b2f]{padding:var(--cg-space-2) var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle);max-height:150px;overflow-y:auto}.change-item[data-v-300c7b2f]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);padding:var(--cg-space-1) 0}.change-item.add[data-v-300c7b2f]{color:var(--cg-color-success)}.change-item.modify[data-v-300c7b2f]{color:var(--cg-color-info)}.change-item.delete[data-v-300c7b2f]{color:var(--cg-color-error)}.conflict-badge[data-v-300c7b2f]{margin-left:var(--cg-space-2);padding:1px var(--cg-space-2);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-xs);color:var(--cg-color-warning)}.strategy-section[data-v-300c7b2f]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.radio-group[data-v-300c7b2f]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.radio-option[data-v-300c7b2f]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm)}.radio-option input[data-v-300c7b2f]{margin:0}.default-badge[data-v-300c7b2f]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);background:var(--cg-color-bg-tertiary);padding:1px 4px;border-radius:var(--cg-radius-xs)}.strategy-hint[data-v-300c7b2f]{margin:0;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.up-to-date[data-v-300c7b2f]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-4);color:var(--cg-color-success);justify-content:center}.modal-actions[data-v-300c7b2f]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.modal-overlay[data-v-ae86b6a7]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-ae86b6a7]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-ae86b6a7]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-ae86b6a7]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-ae86b6a7]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.modal-close[data-v-ae86b6a7]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-ae86b6a7]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.loading-state[data-v-ae86b6a7]{display:flex;align-items:center;gap:var(--cg-space-2);justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.spinner[data-v-ae86b6a7]{animation:spin-ae86b6a7 1s linear infinite}@keyframes spin-ae86b6a7{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.commit-summary[data-v-ae86b6a7]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary)}.commit-summary .icon[data-v-ae86b6a7]{font-size:var(--cg-font-size-lg)}.warning-box[data-v-ae86b6a7]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);color:var(--cg-color-warning)}.warning-icon[data-v-ae86b6a7]{font-size:var(--cg-font-size-xl);flex-shrink:0}.warning-box p[data-v-ae86b6a7]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.info-box[data-v-ae86b6a7]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);border-radius:var(--cg-radius-sm);color:var(--cg-color-info);font-size:var(--cg-font-size-sm)}.info-icon[data-v-ae86b6a7]{flex-shrink:0}.commits-section[data-v-ae86b6a7]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-ae86b6a7]{margin:0;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.commit-list[data-v-ae86b6a7]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);max-height:200px;overflow-y:auto}.commit-item[data-v-ae86b6a7]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.commit-hash[data-v-ae86b6a7]{font-family:var(--cg-font-mono);color:var(--cg-color-info);flex-shrink:0}.commit-message[data-v-ae86b6a7]{color:var(--cg-color-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commit-date[data-v-ae86b6a7]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);flex-shrink:0}.force-option[data-v-ae86b6a7]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.checkbox-option[data-v-ae86b6a7]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm)}.checkbox-option input[data-v-ae86b6a7]{margin:0}.option-hint[data-v-ae86b6a7]{margin:var(--cg-space-1) 0 0 var(--cg-space-5);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.up-to-date[data-v-ae86b6a7]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-4);color:var(--cg-color-success);justify-content:center}.modal-actions[data-v-ae86b6a7]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.resolution-choice-group[data-v-985715ed]{display:flex;gap:var(--cg-space-2)}.choice-btn[data-v-985715ed]{display:flex;align-items:center;gap:var(--cg-space-1);padding:var(--cg-space-2) var(--cg-space-3);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-secondary);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);cursor:pointer;transition:all .15s ease}.choice-btn[data-v-985715ed]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-text-muted)}.choice-btn[data-v-985715ed]:disabled{opacity:.5;cursor:not-allowed}.choice-btn.selected[data-v-985715ed]{border-color:var(--cg-color-accent);background:var(--cg-color-accent-muted);color:var(--cg-color-accent)}.choice-btn.mine.selected[data-v-985715ed]{border-color:var(--cg-color-info);background:var(--cg-color-info-muted);color:var(--cg-color-info)}.choice-btn.theirs.selected[data-v-985715ed]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted);color:var(--cg-color-success)}.choice-icon[data-v-985715ed]{font-size:var(--cg-font-size-xs)}.conflict-item[data-v-506d3bbf]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);transition:all .2s ease}.conflict-item.resolved[data-v-506d3bbf]{background:var(--cg-color-bg-secondary);border-color:var(--cg-color-border)}.conflict-header[data-v-506d3bbf]{display:flex;align-items:flex-start;gap:var(--cg-space-3)}.conflict-icon[data-v-506d3bbf]{font-size:var(--cg-font-size-lg);color:var(--cg-color-warning);flex-shrink:0}.conflict-item.resolved .conflict-icon[data-v-506d3bbf]{color:var(--cg-color-text-muted)}.conflict-info[data-v-506d3bbf]{flex:1;min-width:0}.workflow-name[data-v-506d3bbf]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-description[data-v-506d3bbf]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin-top:var(--cg-space-1)}.resolved-badge[data-v-506d3bbf]{display:flex;align-items:center;gap:var(--cg-space-1);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-success-muted);border-radius:var(--cg-radius-sm);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);flex-shrink:0}.conflict-hashes[data-v-506d3bbf]{display:flex;gap:var(--cg-space-4);padding:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.hash-item code[data-v-506d3bbf]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.conflict-actions[data-v-506d3bbf]{display:flex;justify-content:flex-end}.resolution-content[data-v-c58d150d]{display:flex;flex-direction:column;gap:var(--cg-space-4);height:100%;min-height:0}.error-box[data-v-c58d150d]{flex-shrink:0;display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-sm);color:var(--cg-color-error)}.error-icon[data-v-c58d150d]{font-size:var(--cg-font-size-xl);flex-shrink:0}.error-box p[data-v-c58d150d]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.resolution-header[data-v-c58d150d]{flex-shrink:0;padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.header-stats[data-v-c58d150d]{display:flex;gap:var(--cg-space-4);margin-bottom:var(--cg-space-2)}.stat[data-v-c58d150d]{display:flex;flex-direction:column;align-items:center}.stat-value[data-v-c58d150d]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);color:var(--cg-color-text-primary)}.stat.resolved .stat-value[data-v-c58d150d]{color:var(--cg-color-success)}.stat.pending .stat-value[data-v-c58d150d]{color:var(--cg-color-warning)}.stat-label[data-v-c58d150d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.header-hint[data-v-c58d150d]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin:0;line-height:1.5}.conflicts-list[data-v-c58d150d]{display:flex;flex-direction:column;gap:var(--cg-space-3);flex:1;min-height:0;overflow-y:auto;padding-right:var(--cg-space-2)}.all-resolved-message[data-v-c58d150d]{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);border-radius:var(--cg-radius-md);color:var(--cg-color-success);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium)}.resolved-icon[data-v-c58d150d]{font-size:var(--cg-font-size-lg)}.footer-spacer[data-v-c58d150d]{flex:1}.node-conflict-item[data-v-8b626725]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md)}.node-header[data-v-8b626725]{display:flex;align-items:baseline;gap:var(--cg-space-2)}.node-name[data-v-8b626725]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.node-id[data-v-8b626725]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.version-comparison[data-v-8b626725]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm)}.version[data-v-8b626725]{display:flex;flex-direction:column;gap:2px}.version .label[data-v-8b626725]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.version code[data-v-8b626725]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary)}.version.yours code[data-v-8b626725]{color:var(--cg-color-info)}.version.theirs code[data-v-8b626725]{color:var(--cg-color-success)}.arrow[data-v-8b626725]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-lg)}.chosen-version[data-v-8b626725]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-accent-muted);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm)}.chosen-version .label[data-v-8b626725]{color:var(--cg-color-text-muted)}.chosen-version .chosen[data-v-8b626725]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent)}.chosen-reason[data-v-8b626725]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);margin-left:auto}.affected-workflows[data-v-8b626725]{font-size:var(--cg-font-size-sm)}.affected-workflows summary[data-v-8b626725]{cursor:pointer;color:var(--cg-color-text-secondary);-webkit-user-select:none;user-select:none}.affected-workflows summary[data-v-8b626725]:hover{color:var(--cg-color-text-primary)}.affected-workflows ul[data-v-8b626725]{margin:var(--cg-space-2) 0 0 var(--cg-space-4);padding:0;list-style:none}.affected-workflows li[data-v-8b626725]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-1) 0;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.affected-workflows li code[data-v-8b626725]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary)}.wf-source[data-v-8b626725]{color:var(--cg-color-text-muted)}.wf-version[data-v-8b626725]{margin-left:auto;color:var(--cg-color-text-muted)}.validation-content[data-v-fefd26ed]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.compatible-message[data-v-fefd26ed]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);border-radius:var(--cg-radius-md);color:var(--cg-color-success)}.compatible-message .icon[data-v-fefd26ed]{font-size:var(--cg-font-size-xl)}.compatible-message p[data-v-fefd26ed]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.warning-header[data-v-fefd26ed]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning)}.warning-header .icon[data-v-fefd26ed]{font-size:var(--cg-font-size-xl)}.warning-header p[data-v-fefd26ed]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.conflicts-list[data-v-fefd26ed]{display:flex;flex-direction:column;gap:var(--cg-space-3);max-height:300px;overflow-y:auto}.info-box[data-v-fefd26ed]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm)}.info-box strong[data-v-fefd26ed]{display:block;margin-bottom:var(--cg-space-1);color:var(--cg-color-text-primary)}.info-box p[data-v-fefd26ed]{margin:0;color:var(--cg-color-text-secondary)}.warnings-section[data-v-fefd26ed]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.warnings-section h4[data-v-fefd26ed]{margin:0 0 var(--cg-space-2) 0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.warnings-section ul[data-v-fefd26ed]{margin:0;padding:0 0 0 var(--cg-space-4);list-style:disc}.warnings-section li[data-v-fefd26ed]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);padding:var(--cg-space-1) 0}.footer-spacer[data-v-fefd26ed]{flex:1}.setting-row[data-v-cb5d236c]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-4);padding:var(--cg-space-3) 0;border-bottom:1px solid var(--cg-color-border-subtle)}.setting-row[data-v-cb5d236c]:last-child{border-bottom:none}.setting-row.disabled[data-v-cb5d236c]{opacity:.5;pointer-events:none}.setting-info[data-v-cb5d236c]{flex:1;min-width:0}.setting-label[data-v-cb5d236c]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);margin-bottom:var(--cg-space-1)}.required-marker[data-v-cb5d236c]{color:var(--cg-color-error);margin-left:2px}.setting-description[data-v-cb5d236c]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);line-height:var(--cg-line-height-normal)}.setting-control[data-v-cb5d236c]{flex-shrink:0;display:flex;align-items:center;gap:var(--cg-space-2)}.toggle[data-v-71c0f550]{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.toggle-input[data-v-71c0f550]{opacity:0;width:0;height:0;position:absolute}.toggle-slider[data-v-71c0f550]{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);transition:all var(--cg-transition-fast);border-radius:var(--cg-radius-full)}.toggle-slider[data-v-71c0f550]:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background:var(--cg-color-text-muted);transition:all var(--cg-transition-fast);border-radius:50%}.toggle-input:checked+.toggle-slider[data-v-71c0f550]{background:var(--cg-color-accent);border-color:var(--cg-color-accent)}.toggle-input:checked+.toggle-slider[data-v-71c0f550]:before{transform:translate(18px);background:var(--cg-color-text-primary)}.toggle-input:disabled+.toggle-slider[data-v-71c0f550]{opacity:.5;cursor:not-allowed}.toggle-input:focus+.toggle-slider[data-v-71c0f550]{box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.toggle-input:not(:disabled)+.toggle-slider[data-v-71c0f550]:hover{border-color:var(--cg-color-accent)}.workspace-settings-content[data-v-004ef04f]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.settings-section[data-v-004ef04f]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3)}.path-setting[data-v-004ef04f]{padding:var(--cg-space-3) 0;border-bottom:1px solid var(--cg-color-border-subtle)}.path-setting[data-v-004ef04f]:last-child{border-bottom:none}.path-label[data-v-004ef04f]{font-size:var(--cg-font-size-sm);font-weight:500;color:var(--cg-color-text-primary);margin-bottom:var(--cg-space-1)}.path-description[data-v-004ef04f]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);margin-bottom:var(--cg-space-2)}.path-value[data-v-004ef04f]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-primary);background:var(--cg-color-bg-primary);padding:var(--cg-space-2);border-radius:var(--cg-border-radius-sm);border:1px solid var(--cg-color-border-subtle);word-break:break-all}.setting-hint[data-v-004ef04f]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);margin-top:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-bg-primary);border-radius:var(--cg-border-radius-sm)}.setting-hint code[data-v-004ef04f]{font-family:var(--cg-font-mono);background:var(--cg-color-bg-secondary);padding:0 var(--cg-space-1);border-radius:var(--cg-border-radius-sm)}.base-tabs[data-v-ad5e6cad]{display:flex;gap:var(--cg-space-1);border-bottom:1px solid var(--cg-color-border-subtle);margin-bottom:var(--cg-space-3)}.base-tabs__tab[data-v-ad5e6cad]{padding:var(--cg-space-2) var(--cg-space-3);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--cg-color-text-secondary);font-family:var(--cg-font-body);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);cursor:pointer;transition:all var(--cg-transition-fast);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.base-tabs__tab[data-v-ad5e6cad]:hover:not(.disabled){color:var(--cg-color-text-primary)}.base-tabs__tab.active[data-v-ad5e6cad]{color:var(--cg-color-accent);border-bottom-color:var(--cg-color-accent)}.base-tabs__tab.disabled[data-v-ad5e6cad]{opacity:.5;cursor:not-allowed}.base-tabs__badge[data-v-ad5e6cad]{margin-left:var(--cg-space-1);padding:1px 6px;background:var(--cg-color-accent-muted);color:var(--cg-color-accent);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs)}.log-viewer-wrapper[data-v-c0cc6d21]{position:relative}.log-output[data-v-c0cc6d21]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3);margin:0;user-select:text!important;-webkit-user-select:text!important;cursor:text}.copy-overlay-btn[data-v-c0cc6d21]{position:sticky;top:8px;float:right;margin-left:8px;margin-bottom:4px;padding:4px 8px;font-size:10px;font-family:var(--cg-font-body);line-height:1.2;background:var(--cg-color-bg-secondary);color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border);border-radius:4px;cursor:pointer;opacity:.4;transition:opacity .15s ease;z-index:2}.log-viewer-wrapper:hover .copy-overlay-btn[data-v-c0cc6d21]{opacity:1}.copy-overlay-btn[data-v-c0cc6d21]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-text-primary)}.copy-overlay-btn[data-v-c0cc6d21]:disabled{cursor:default}.log-line[data-v-c0cc6d21]{line-height:1.5;white-space:pre-wrap;word-wrap:break-word;user-select:text!important;-webkit-user-select:text!important}.log-level-error[data-v-c0cc6d21]{color:#f55}.log-level-warning[data-v-c0cc6d21]{color:#ffb86c}.log-level-info[data-v-c0cc6d21]{color:#50fa7b}.log-level-debug[data-v-c0cc6d21]{color:#6272a4}.env-title[data-v-9231917a]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.current-badge[data-v-9231917a]{display:inline-block;padding:2px 6px;background:transparent;border:1px solid var(--cg-color-success);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);border-radius:var(--cg-radius-sm)}.branch-info[data-v-9231917a]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);display:flex;align-items:center;gap:var(--cg-space-1)}.branch-icon[data-v-9231917a]{opacity:.7}.env-details[data-v-59855453]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.status-row[data-v-59855453]{display:flex;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.status-badge[data-v-59855453]{padding:4px 12px;border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.status-badge.current[data-v-59855453]{background:var(--cg-color-success-muted, rgba(34, 197, 94, .15));color:var(--cg-color-success);border:1px solid var(--cg-color-success)}.status-badge.inactive[data-v-59855453]{background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-muted);border:1px solid var(--cg-color-border-subtle)}.detail-row[data-v-59855453]{display:flex;align-items:flex-start;gap:var(--cg-space-3);font-size:var(--cg-font-size-sm)}.label[data-v-59855453]{color:var(--cg-color-text-muted);min-width:100px;flex-shrink:0}.value[data-v-59855453]{color:var(--cg-color-text-secondary);word-break:break-word}.value.mono[data-v-59855453]{font-family:var(--cg-font-mono)}.value.small[data-v-59855453]{font-size:var(--cg-font-size-xs)}.section-divider[data-v-59855453]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) 0}.footer-actions[data-v-59855453]{display:flex;width:100%;align-items:center}.footer-spacer[data-v-59855453]{flex:1}.progress-bar[data-v-1beb0512]{width:100%;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:2px;overflow:hidden;position:relative}.progress-fill[data-v-1beb0512]{height:100%;transition:width .3s ease;position:relative}.progress-fill[data-v-1beb0512]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);animation:shimmer-1beb0512 2s infinite}@keyframes shimmer-1beb0512{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-fill.default[data-v-1beb0512]{background:var(--cg-color-accent);box-shadow:0 0 8px #00ff4166}.progress-fill.success[data-v-1beb0512]{background:var(--cg-color-success);box-shadow:0 0 8px #4ade8066}.progress-fill.warning[data-v-1beb0512]{background:var(--cg-color-warning);box-shadow:0 0 8px #fbbf2466}.progress-fill.error[data-v-1beb0512]{background:var(--cg-color-error);box-shadow:0 0 8px #ef444466}.progress-bar[data-v-1beb0512]{height:var(--cg-space-2)}.task-progress[data-v-9d1de66c]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.progress-info[data-v-9d1de66c]{display:flex;justify-content:space-between;align-items:center;font-size:var(--cg-font-size-sm)}.progress-percentage[data-v-9d1de66c]{font-weight:var(--cg-font-weight-bold);color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.progress-message[data-v-9d1de66c]{color:var(--cg-color-text-secondary);text-align:right;flex:1;margin-left:var(--cg-space-2)}.progress-steps[data-v-9d1de66c]{display:flex;flex-direction:column;gap:var(--cg-space-1);margin-top:var(--cg-space-2);padding-top:var(--cg-space-2);border-top:1px solid var(--cg-color-border-subtle)}.step[data-v-9d1de66c]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);transition:all var(--cg-transition-fast)}.step.pending[data-v-9d1de66c]{color:var(--cg-color-text-muted)}.step.active[data-v-9d1de66c]{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-medium)}.step.completed[data-v-9d1de66c]{color:var(--cg-color-success)}.step.active .step-icon[data-v-9d1de66c]{animation:spin-9d1de66c 1s linear infinite}@keyframes spin-9d1de66c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-icon[data-v-9d1de66c]{width:14px;text-align:center}.create-env-form[data-v-f37eaa42]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.form-field[data-v-f37eaa42]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-field--checkbox[data-v-f37eaa42]{flex-direction:row;align-items:center;margin-top:var(--cg-space-2)}.form-label[data-v-f37eaa42]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-f37eaa42],.form-select[data-v-f37eaa42]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);padding:var(--cg-space-2) var(--cg-space-3);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-f37eaa42]:hover,.form-select[data-v-f37eaa42]:hover{border-color:var(--cg-color-border)}.form-input[data-v-f37eaa42]:focus,.form-select[data-v-f37eaa42]:focus{outline:none;border-color:var(--cg-color-accent)}.form-select[data-v-f37eaa42]{cursor:pointer}.form-select[data-v-f37eaa42]:disabled{opacity:.5;cursor:not-allowed}.form-checkbox[data-v-f37eaa42]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.form-checkbox input[type=checkbox][data-v-f37eaa42]{width:16px;height:16px;accent-color:var(--cg-color-accent);cursor:pointer}.creating-intro[data-v-f37eaa42]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);margin-bottom:var(--cg-space-4);text-align:center}.progress-warning[data-v-f37eaa42]{margin-top:var(--cg-space-3);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);text-align:center}.create-error[data-v-f37eaa42]{margin-top:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-sm)}.error-message[data-v-f37eaa42]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin:0}.footer-status[data-v-f37eaa42]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.file-path[data-v-f0982173]{display:inline-flex;align-items:center;gap:var(--cg-space-2);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-1) var(--cg-space-2);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);max-width:100%;overflow:hidden}.file-path-icon[data-v-f0982173]{flex-shrink:0;font-size:var(--cg-font-size-sm)}.file-path-text[data-v-f0982173]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:inherit}.copy-btn[data-v-f0982173]{flex-shrink:0;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:0;font-size:var(--cg-font-size-sm);transition:color var(--cg-transition-fast)}.copy-btn[data-v-f0982173]:hover{color:var(--cg-color-accent)}.export-blocked[data-v-b52f5e32]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.error-header[data-v-b52f5e32]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md)}.error-icon[data-v-b52f5e32]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-error);color:var(--cg-color-bg-primary);border-radius:50%;flex-shrink:0}.error-summary[data-v-b52f5e32]{flex:1}.error-title[data-v-b52f5e32]{margin:0 0 var(--cg-space-1) 0;font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.error-description[data-v-b52f5e32]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.issues-list[data-v-b52f5e32]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.issue-item[data-v-b52f5e32]{padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md)}.issue-message[data-v-b52f5e32]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary);margin-bottom:var(--cg-space-2)}.issue-details[data-v-b52f5e32]{margin-bottom:var(--cg-space-2);padding-left:var(--cg-space-3)}.issue-detail[data-v-b52f5e32]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);padding:var(--cg-space-1) 0}.issue-detail[data-v-b52f5e32]:before{content:"•";margin-right:var(--cg-space-2);color:var(--cg-color-text-muted)}.show-more-inline[data-v-b52f5e32]{background:none;border:none;color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);cursor:pointer;padding:0;margin-top:var(--cg-space-1)}.issue-fix[data-v-b52f5e32]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.export-warnings[data-v-b698d882]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.warning-header[data-v-b698d882]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md)}.warning-icon[data-v-b698d882]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-warning);color:var(--cg-color-bg-primary);border-radius:50%;flex-shrink:0}.warning-summary[data-v-b698d882]{flex:1}.warning-title[data-v-b698d882]{margin:0 0 var(--cg-space-1) 0;font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.warning-description[data-v-b698d882]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.models-section[data-v-b698d882]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);overflow:hidden}.models-list[data-v-b698d882]{max-height:240px;overflow-y:auto}.model-item[data-v-b698d882]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--cg-space-3);padding:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.model-item[data-v-b698d882]:last-child{border-bottom:none}.model-info[data-v-b698d882]{flex:1;min-width:0}.model-filename[data-v-b698d882]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);word-break:break-all}.model-workflows[data-v-b698d882]{margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.add-source-btn[data-v-b698d882]{flex-shrink:0;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-accent);padding:4px 10px;font-size:var(--cg-font-size-xs);cursor:pointer;white-space:nowrap}.add-source-btn[data-v-b698d882]:hover{background:var(--cg-color-accent);color:var(--cg-color-bg-primary);border-color:var(--cg-color-accent)}.show-more-btn[data-v-b698d882]{width:100%;padding:var(--cg-space-2);background:transparent;border:none;border-top:1px solid var(--cg-color-border-subtle);color:var(--cg-color-accent);font-size:var(--cg-font-size-sm);cursor:pointer;transition:background var(--cg-transition-base)}.show-more-btn[data-v-b698d882]:hover{background:var(--cg-color-bg-secondary)}.success-header[data-v-b698d882]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);border-radius:var(--cg-radius-md)}.success-icon[data-v-b698d882]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-success);color:var(--cg-color-bg-primary);border-radius:50%;flex-shrink:0}.success-summary[data-v-b698d882]{flex:1}.success-title[data-v-b698d882]{margin:0 0 var(--cg-space-1) 0;font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.success-description[data-v-b698d882]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.export-card[data-v-f4d120f2]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.export-card-header[data-v-f4d120f2]{display:flex;gap:var(--cg-space-3);align-items:flex-start}.export-icon[data-v-f4d120f2]{font-size:var(--cg-font-size-xl)}.export-header-text[data-v-f4d120f2]{flex:1}.export-title[data-v-f4d120f2]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.export-subtitle[data-v-f4d120f2]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.export-path-row[data-v-f4d120f2]{display:flex;gap:var(--cg-space-2);align-items:center}.export-path-row .path-input[data-v-f4d120f2]{flex:1}.export-actions[data-v-f4d120f2]{display:flex;gap:var(--cg-space-3);align-items:center;padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle)}.export-warning[data-v-f4d120f2]{display:flex;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);margin-top:var(--cg-space-2)}.warning-icon[data-v-f4d120f2]{color:var(--cg-color-warning);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.warning-text[data-v-f4d120f2]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.4}.export-info[data-v-f4d120f2]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.info-section strong[data-v-f4d120f2]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.info-section ul[data-v-f4d120f2]{margin:var(--cg-space-2) 0 0 0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.6}.info-section li[data-v-f4d120f2]{margin-bottom:var(--cg-space-1)}.info-section li strong[data-v-f4d120f2]{font-size:var(--cg-font-size-xs)}.info-note[data-v-f4d120f2]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0;padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border-left:2px solid var(--cg-color-warning)}.file-input-wrapper[data-v-cd192091]{display:inline-block}.file-input-hidden[data-v-cd192091]{display:none}.file-drop-zone[data-v-0f79cb86]{border:2px dashed var(--cg-color-border);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-4);text-align:center;transition:all var(--cg-transition-base);min-height:140px;display:flex;align-items:center;justify-content:center}.file-drop-zone.drop-active[data-v-0f79cb86]{border-color:var(--cg-color-accent);background:var(--cg-color-accent-muted);box-shadow:0 0 16px var(--cg-shadow-accent)}.file-drop-zone.has-file[data-v-0f79cb86]{border-style:solid;border-color:var(--cg-color-success);background:var(--cg-color-success-muted);min-height:auto;padding:var(--cg-space-4)}.drop-zone-empty[data-v-0f79cb86]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2);width:100%}.drop-zone-icon[data-v-0f79cb86]{color:var(--cg-color-text-muted);opacity:.5}.drop-zone-text[data-v-0f79cb86]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.drop-zone-primary[data-v-0f79cb86]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-medium);margin:0}.drop-zone-secondary[data-v-0f79cb86]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin:0}.drop-zone-actions[data-v-0f79cb86]{margin-top:0}.drop-zone-file[data-v-0f79cb86]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--cg-space-3)}.file-info[data-v-0f79cb86]{display:flex;align-items:center;gap:var(--cg-space-3);flex:1;min-width:0}.file-icon[data-v-0f79cb86]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.file-details[data-v-0f79cb86]{flex:1;min-width:0;text-align:left}.file-name[data-v-0f79cb86]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size[data-v-0f79cb86]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.import-preview[data-v-182fe113]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.preview-header[data-v-182fe113]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cg-space-4);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.source-env[data-v-182fe113]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.preview-content[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.preview-section[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-header[data-v-182fe113]{display:flex;align-items:center;gap:var(--cg-space-3)}.section-icon[data-v-182fe113]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.section-info[data-v-182fe113]{flex:1}.section-title[data-v-182fe113]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.section-count[data-v-182fe113]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.item-list[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-6)}.preview-item[data-v-182fe113]{display:flex;align-items:flex-start;gap:var(--cg-space-2);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.item-bullet[data-v-182fe113]{color:var(--cg-color-accent);flex-shrink:0}.item-name[data-v-182fe113]{font-family:var(--cg-font-mono);word-break:break-all}.item-details[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-1);min-width:0}.item-meta[data-v-182fe113]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono)}.item-more[data-v-182fe113]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-style:italic;padding-left:var(--cg-space-3)}.git-info[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding-left:var(--cg-space-6)}.import-config[data-v-89ea06a1]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.config-container[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-4);margin-top:var(--cg-space-3)}.config-field[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.input-wrapper[data-v-89ea06a1]{position:relative;display:flex;align-items:center}.name-input[data-v-89ea06a1]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);padding-right:var(--cg-space-8);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-family:var(--cg-font-mono)}.name-input[data-v-89ea06a1]:focus{outline:none;border-color:var(--cg-color-accent)}.name-input.error[data-v-89ea06a1]{border-color:var(--cg-color-error)}.name-input.valid[data-v-89ea06a1]{border-color:var(--cg-color-success)}.validating-indicator[data-v-89ea06a1],.valid-indicator[data-v-89ea06a1]{position:absolute;right:var(--cg-space-3);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.valid-indicator[data-v-89ea06a1]{color:var(--cg-color-success)}.field-error[data-v-89ea06a1]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm)}.field-hint[data-v-89ea06a1]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.strategy-options[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.strategy-option[data-v-89ea06a1]{display:flex;align-items:flex-start;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);cursor:pointer;transition:all var(--cg-transition-fast)}.strategy-option[data-v-89ea06a1]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border)}.strategy-option.active[data-v-89ea06a1]{border-color:var(--cg-color-accent);background:var(--cg-color-accent-muted)}.strategy-option input[type=radio][data-v-89ea06a1]{margin-top:2px;flex-shrink:0;cursor:pointer;accent-color:var(--cg-color-accent)}.strategy-content[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-1);flex:1}.strategy-label[data-v-89ea06a1]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-medium)}.strategy-description[data-v-89ea06a1]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.advanced-section[data-v-89ea06a1]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-secondary)}.advanced-toggle[data-v-89ea06a1]{padding:var(--cg-space-3);cursor:pointer;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.advanced-toggle[data-v-89ea06a1]:hover{color:var(--cg-color-text-primary)}.advanced-content[data-v-89ea06a1]{padding:var(--cg-space-3);padding-top:0}.backend-select[data-v-89ea06a1]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);cursor:pointer}.backend-select[data-v-89ea06a1]:focus{outline:none;border-color:var(--cg-color-accent)}.switch-field[data-v-89ea06a1]{padding-top:var(--cg-space-2)}.switch-label[data-v-89ea06a1]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.switch-label input[type=checkbox][data-v-89ea06a1]{width:16px;height:16px;cursor:pointer;accent-color:var(--cg-color-accent)}.import-flow[data-v-72cbc04e]{display:flex;flex-direction:column}.import-empty[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.import-configure[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.selected-file-bar[data-v-72cbc04e]{display:flex;justify-content:space-between;align-items:center;background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);padding:var(--cg-space-3)}.file-bar-content[data-v-72cbc04e]{display:flex;align-items:center;gap:var(--cg-space-3)}.file-bar-icon[data-v-72cbc04e]{font-size:var(--cg-font-size-2xl)}.file-bar-info[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.file-bar-name[data-v-72cbc04e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.file-bar-size[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.import-actions[data-v-72cbc04e]{display:flex;justify-content:flex-end;gap:var(--cg-space-3);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle)}.import-progress[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-4);padding:var(--cg-space-4)}.creating-intro[data-v-72cbc04e]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base);margin:0;text-align:center}.creating-intro strong[data-v-72cbc04e]{color:var(--cg-color-text-primary)}.progress-warning[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center;margin:0}.import-error[data-v-72cbc04e]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);padding:var(--cg-space-3)}.error-message[data-v-72cbc04e]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin:0}.import-complete[data-v-72cbc04e]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-4);padding:var(--cg-space-8) var(--cg-space-4)}.complete-icon[data-v-72cbc04e]{width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;border:3px solid;border-radius:50%}.complete-icon.success[data-v-72cbc04e]{color:var(--cg-color-success);border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.complete-icon.error[data-v-72cbc04e]{color:var(--cg-color-error);border-color:var(--cg-color-error);background:var(--cg-color-error-muted)}.complete-message[data-v-72cbc04e]{text-align:center;max-width:500px}.complete-title[data-v-72cbc04e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);margin-bottom:var(--cg-space-2)}.complete-details[data-v-72cbc04e]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base)}.complete-actions[data-v-72cbc04e]{display:flex;gap:var(--cg-space-3);margin-top:var(--cg-space-2)}.preview-loading[data-v-72cbc04e]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-3);padding:var(--cg-space-6);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.loading-spinner[data-v-72cbc04e]{width:32px;height:32px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-72cbc04e .8s linear infinite}@keyframes spin-72cbc04e{to{transform:rotate(360deg)}}.loading-text[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.import-divider[data-v-72cbc04e]{display:flex;align-items:center;gap:var(--cg-space-4);margin:var(--cg-space-2) 0}.import-divider[data-v-72cbc04e]:before,.import-divider[data-v-72cbc04e]:after{content:"";flex:1;height:1px;background:var(--cg-color-border-subtle)}.import-divider span[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:lowercase}.git-import-section[data-v-72cbc04e]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.git-import-header[data-v-72cbc04e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);margin-bottom:var(--cg-space-3)}.git-url-input-row[data-v-72cbc04e]{display:flex;gap:var(--cg-space-2)}.git-url-input[data-v-72cbc04e]{flex:1;padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);height:28px}.git-url-input[data-v-72cbc04e]:focus{outline:none;border-color:var(--cg-color-accent)}.git-url-input[data-v-72cbc04e]:disabled{opacity:.6;cursor:not-allowed}.git-url-hint[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-2)}.git-error[data-v-72cbc04e]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin-top:var(--cg-space-2)}.help-steps[data-v-e13bfe76]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.help-step[data-v-e13bfe76]{display:flex;gap:var(--cg-space-3);align-items:flex-start}.step-number[data-v-e13bfe76]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-accent-muted);color:var(--cg-color-accent);border:1px solid var(--cg-color-accent);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.step-content[data-v-e13bfe76]{flex:1}.step-content strong[data-v-e13bfe76]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);display:block;margin-bottom:var(--cg-space-1)}.step-content p[data-v-e13bfe76]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);margin:0}.instance-card[data-v-746c3894]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-3);margin-bottom:var(--cg-space-2);border-left-width:3px;border-left-color:transparent}.instance-card.status-running[data-v-746c3894]{border-left-color:var(--cg-color-success)}.instance-card.status-deploying[data-v-746c3894],.instance-card.status-starting[data-v-746c3894]{border-left-color:var(--cg-color-info)}.instance-card.status-stopped[data-v-746c3894]{border-left-color:var(--cg-color-text-muted)}.instance-card.status-error[data-v-746c3894]{border-left-color:var(--cg-color-error)}.instance-card.status-terminated[data-v-746c3894]{border-left-color:var(--cg-color-border-subtle);opacity:.6}.instance-header[data-v-746c3894]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.provider-badge[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-hover);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-secondary)}.instance-name[data-v-746c3894]{flex:1;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-indicator[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);display:flex;align-items:center;gap:var(--cg-space-1)}.status-indicator.running[data-v-746c3894]{color:var(--cg-color-success)}.status-indicator.deploying[data-v-746c3894],.status-indicator.starting[data-v-746c3894]{color:var(--cg-color-info)}.status-indicator.stopped[data-v-746c3894]{color:var(--cg-color-text-muted)}.status-indicator.error[data-v-746c3894]{color:var(--cg-color-error)}.status-indicator.terminated[data-v-746c3894]{color:var(--cg-color-text-muted)}.status-indicator .spinner[data-v-746c3894]{width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-746c3894 .8s linear infinite}@keyframes spin-746c3894{to{transform:rotate(360deg)}}.instance-details[data-v-746c3894]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.instance-details .detail[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.instance-details .total-cost[data-v-746c3894]{color:var(--cg-color-text-secondary)}.instance-details .instance-url[data-v-746c3894]{color:var(--cg-color-accent);word-break:break-all;flex-basis:100%}.deployment-progress[data-v-746c3894]{margin-bottom:var(--cg-space-2)}.progress-message[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);margin-bottom:var(--cg-space-1)}.instance-actions[data-v-746c3894]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.instances-tab[data-v-ba614fc3]{padding:var(--cg-space-3)}.instances-header[data-v-ba614fc3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cg-space-3)}.loading-state[data-v-ba614fc3],.empty-state[data-v-ba614fc3]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted);text-align:center}.loading-state .spinner[data-v-ba614fc3]{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-ba614fc3 .8s linear infinite;margin-bottom:var(--cg-space-2)}@keyframes spin-ba614fc3{to{transform:rotate(360deg)}}.empty-icon[data-v-ba614fc3]{font-size:var(--cg-font-size-2xl);margin-bottom:var(--cg-space-2)}.empty-text[data-v-ba614fc3]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin-bottom:var(--cg-space-2)}.empty-help[data-v-ba614fc3]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.instances-list[data-v-ba614fc3]{display:flex;flex-direction:column}.deploy-remote-card[data-v-d687d161]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);transition:border-color var(--cg-transition-fast)}.deploy-remote-card.selected[data-v-d687d161]{border-color:var(--cg-color-accent);background:var(--cg-color-bg-secondary)}.remote-header[data-v-d687d161]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.remote-info[data-v-d687d161]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.remote-icon[data-v-d687d161]{font-size:var(--cg-font-size-sm)}.remote-name[data-v-d687d161]{font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.default-badge[data-v-d687d161]{display:inline-block;padding:2px 6px;background:transparent;border:1px solid var(--cg-color-success);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.sync-badge[data-v-d687d161]{display:inline-flex;align-items:center;gap:var(--cg-space-1);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.sync-badge .ahead[data-v-d687d161]{color:var(--cg-color-info)}.sync-badge .behind[data-v-d687d161]{color:var(--cg-color-warning)}.sync-badge .synced[data-v-d687d161]{color:var(--cg-color-success)}.remote-url[data-v-d687d161]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);text-decoration:none}.remote-url[data-v-d687d161]:hover{text-decoration:underline}.remote-url-text[data-v-d687d161]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.remote-actions[data-v-d687d161]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.runpod-tab[data-v-522cd4d9]{padding:var(--cg-space-3)}.api-key-card[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.api-key-row[data-v-522cd4d9]{display:flex;gap:var(--cg-space-2);align-items:center}.api-key-input-wrapper[data-v-522cd4d9]{flex:1;position:relative;display:flex;align-items:center}.api-key-input[data-v-522cd4d9]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);padding-right:40px;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.api-key-input[data-v-522cd4d9]:focus{outline:none;border-color:var(--cg-color-accent)}.api-key-input[data-v-522cd4d9]:disabled{opacity:.7;cursor:not-allowed}.toggle-visibility-btn[data-v-522cd4d9]{position:absolute;right:8px;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;font-size:14px}.toggle-visibility-btn[data-v-522cd4d9]:hover{color:var(--cg-color-text-primary)}.connection-status[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);font-size:var(--cg-font-size-xs)}.connection-status.success[data-v-522cd4d9]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.connection-status.error[data-v-522cd4d9]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.status-icon[data-v-522cd4d9]{font-weight:700}.connection-status.success .status-icon[data-v-522cd4d9]{color:var(--cg-color-success)}.connection-status.error .status-icon[data-v-522cd4d9]{color:var(--cg-color-error)}.status-text[data-v-522cd4d9]{flex:1;color:var(--cg-color-text-primary)}.credit-balance[data-v-522cd4d9]{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-semibold)}.api-key-help[data-v-522cd4d9]{display:flex;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.help-icon[data-v-522cd4d9]{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border:1px solid var(--cg-color-border-subtle);border-radius:50%;font-size:10px}.help-text a[data-v-522cd4d9]{color:var(--cg-color-accent);text-decoration:none}.help-text a[data-v-522cd4d9]:hover{text-decoration:underline}.config-card[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.config-row[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.loading-inline[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.no-volumes-state[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning)}.no-volumes-icon[data-v-522cd4d9]{color:var(--cg-color-warning)}.no-volumes-text[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.volume-help[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:var(--cg-space-2) 0;line-height:1.4}.create-volume-link[data-v-522cd4d9]{display:inline-block;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-accent);color:var(--cg-color-bg-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);text-decoration:none;text-align:center}.create-volume-link[data-v-522cd4d9]:hover{background:var(--cg-color-accent-hover)}.create-volume-inline-link[data-v-522cd4d9]{display:inline-block;margin-top:var(--cg-space-2);color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);text-decoration:none;width:fit-content}.create-volume-inline-link[data-v-522cd4d9]:hover{text-decoration:underline}.config-label[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.config-select[data-v-522cd4d9],.config-input[data-v-522cd4d9]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.config-select[data-v-522cd4d9]:focus,.config-input[data-v-522cd4d9]:focus{outline:none;border-color:var(--cg-color-accent)}.config-select[data-v-522cd4d9]:disabled{opacity:.5}.radio-group[data-v-522cd4d9]{display:flex;gap:var(--cg-space-4)}.radio-option[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer}.radio-option input[data-v-522cd4d9]{accent-color:var(--cg-color-accent)}.radio-option.disabled[data-v-522cd4d9]{cursor:not-allowed;opacity:.5}.radio-option.disabled input[data-v-522cd4d9]{cursor:not-allowed}.radio-label[data-v-522cd4d9]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.summary-card[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-2)}.summary-row[data-v-522cd4d9]{display:flex;justify-content:space-between;align-items:center}.summary-label[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.summary-value[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.summary-sub-row[data-v-522cd4d9]{padding-left:var(--cg-space-4)}.summary-sub-label[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.summary-sub-row.warning .summary-sub-label[data-v-522cd4d9]{color:var(--cg-color-warning)}.deploy-actions[data-v-522cd4d9]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-4) 0}.deployment-summary[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.summary-columns[data-v-522cd4d9]{display:grid;grid-template-columns:1fr 1fr;gap:var(--cg-space-4)}.summary-column[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.column-header[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border-subtle);margin-bottom:var(--cg-space-1)}.pricing-row[data-v-522cd4d9]{display:flex;justify-content:space-between;align-items:center}.pricing-label[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.pricing-value[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.pricing-divider[data-v-522cd4d9]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-1) 0}.pricing-row.total .pricing-label[data-v-522cd4d9],.pricing-row.total .pricing-value[data-v-522cd4d9]{font-weight:var(--cg-font-weight-semibold)}.pricing-row.total .pricing-value[data-v-522cd4d9]{color:var(--cg-color-accent)}.spec-row[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.spec-row.spot-warning[data-v-522cd4d9]{color:var(--cg-color-warning);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-2)}.info-tooltip[data-v-522cd4d9]{cursor:help;color:var(--cg-color-text-muted);font-size:12px;margin-left:var(--cg-space-1)}.loading-text[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center;padding:var(--cg-space-4)}.empty-remotes[data-v-522cd4d9]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-4);padding:var(--cg-space-6);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);text-align:center}.empty-message[data-v-522cd4d9]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2)}.empty-icon[data-v-522cd4d9]{font-size:var(--cg-font-size-2xl)}.empty-text[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium)}.empty-help[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0}.remotes-list[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.sync-warning[data-v-522cd4d9]{display:flex;gap:var(--cg-space-3);align-items:flex-start;padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);margin-top:var(--cg-space-3)}.sync-warning .warning-icon[data-v-522cd4d9]{flex-shrink:0;font-size:var(--cg-font-size-lg)}.sync-warning .warning-content[data-v-522cd4d9]{flex:1}.sync-warning .warning-content strong[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.sync-warning .warning-content p[data-v-522cd4d9]{margin:var(--cg-space-1) 0 0 0;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.remotes-footer[data-v-522cd4d9]{margin-top:var(--cg-space-3);text-align:right}.progress-content[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.phase-indicator[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-3)}.phase-icon[data-v-522cd4d9]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:50%;background:var(--cg-color-bg-tertiary);border:2px solid var(--cg-color-border)}.phase-icon.ready[data-v-522cd4d9]{background:var(--cg-color-success-muted);border-color:var(--cg-color-success);color:var(--cg-color-success)}.phase-icon.error[data-v-522cd4d9]{background:var(--cg-color-error-muted);border-color:var(--cg-color-error);color:var(--cg-color-error)}.phase-icon.stopped[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border-color:var(--cg-color-border);color:var(--cg-color-text-muted)}.phase-icon .spinner[data-v-522cd4d9]{animation:spin-522cd4d9 1s linear infinite}@keyframes spin-522cd4d9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.phase-text[data-v-522cd4d9]{flex:1}.phase-name[data-v-522cd4d9]{font-size:var(--cg-font-size-md);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.phase-detail[data-v-522cd4d9]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);margin-top:var(--cg-space-1)}.ready-actions[data-v-522cd4d9]{display:flex;justify-content:center;padding:var(--cg-space-2) 0}.console-link[data-v-522cd4d9]{text-align:center}.console-link a[data-v-522cd4d9]{color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);text-decoration:none}.console-link a[data-v-522cd4d9]:hover{text-decoration:underline}.worker-card[data-v-b1be7134]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3);display:flex;flex-direction:column;gap:var(--cg-space-2)}.worker-card.offline[data-v-b1be7134]{opacity:.7}.worker-header[data-v-b1be7134]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2)}.worker-status[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-2)}.status-dot[data-v-b1be7134]{width:8px;height:8px;border-radius:50%}.status-dot.online[data-v-b1be7134]{background:var(--cg-color-success);box-shadow:0 0 4px var(--cg-color-success)}.status-dot.offline[data-v-b1be7134]{background:var(--cg-color-text-muted)}.status-dot.unknown[data-v-b1be7134]{background:var(--cg-color-warning)}.worker-name[data-v-b1be7134]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary)}.worker-actions[data-v-b1be7134]{display:flex;gap:var(--cg-space-1)}.worker-details[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.detail-item[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-1)}.detail-label[data-v-b1be7134]{color:var(--cg-color-text-muted)}.detail-value[data-v-b1be7134]{font-family:var(--cg-font-mono)}.mode-badge[data-v-b1be7134]{text-transform:capitalize;padding:1px 6px;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border)}.worker-stats[data-v-b1be7134]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);display:flex;align-items:center;gap:var(--cg-space-1)}.stat-item[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-1)}.stat-value[data-v-b1be7134]{font-weight:var(--cg-font-weight-medium)}.stat-value.online[data-v-b1be7134]{color:var(--cg-color-success)}.stat-value.offline[data-v-b1be7134]{color:var(--cg-color-text-muted)}.add-worker-content[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.manual-form[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.form-row[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-row-inline[data-v-07a00732]{display:flex;gap:var(--cg-space-3)}.form-field[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.flex-1[data-v-07a00732]{flex:1}.flex-2[data-v-07a00732]{flex:2}.form-label[data-v-07a00732]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-07a00732]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-07a00732]:focus{outline:none;border-color:var(--cg-color-accent)}.api-key-wrapper[data-v-07a00732]{position:relative;display:flex;align-items:center}.api-key-wrapper .form-input[data-v-07a00732]{width:100%;padding-right:40px}.toggle-visibility[data-v-07a00732]{position:absolute;right:8px;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;font-size:14px}.toggle-visibility[data-v-07a00732]:hover{color:var(--cg-color-text-primary)}.form-help[data-v-07a00732]{display:flex;align-items:center;gap:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.help-icon[data-v-07a00732]{font-size:10px}.form-help code[data-v-07a00732]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);color:var(--cg-color-accent)}.test-result[data-v-07a00732]{display:flex;align-items:flex-start;gap:var(--cg-space-2);padding:var(--cg-space-3)}.test-result.success[data-v-07a00732]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.test-result.error[data-v-07a00732]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.result-icon[data-v-07a00732]{font-weight:700}.test-result.success .result-icon[data-v-07a00732]{color:var(--cg-color-success)}.test-result.error .result-icon[data-v-07a00732]{color:var(--cg-color-error)}.result-content[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.result-message[data-v-07a00732]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.result-detail[data-v-07a00732]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.modal-actions[data-v-07a00732]{display:flex;gap:var(--cg-space-2);justify-content:flex-end}.discovered-content[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.workers-list[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.worker-item[data-v-5a3e40a4]{display:flex;align-items:center;justify-content:space-between;padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border)}.worker-info[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.worker-name[data-v-5a3e40a4]{color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-medium);font-size:var(--cg-font-size-sm)}.worker-address[data-v-5a3e40a4]{color:var(--cg-color-text-muted);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.worker-gpu[data-v-5a3e40a4]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.empty-state[data-v-5a3e40a4]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-6);text-align:center}.empty-icon[data-v-5a3e40a4]{font-size:24px;opacity:.5}.empty-text[data-v-5a3e40a4]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.empty-help[data-v-5a3e40a4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.empty-help code[data-v-5a3e40a4]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);color:var(--cg-color-accent)}.api-key-section[data-v-5a3e40a4]{border-top:1px solid var(--cg-color-border-subtle);padding-top:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.selected-worker[data-v-5a3e40a4]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.selected-label[data-v-5a3e40a4]{color:var(--cg-color-text-muted)}.selected-name[data-v-5a3e40a4]{color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-medium)}.selected-address[data-v-5a3e40a4]{color:var(--cg-color-text-muted);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.form-row[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-label[data-v-5a3e40a4]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-5a3e40a4]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-5a3e40a4]:focus{outline:none;border-color:var(--cg-color-accent)}.api-key-wrapper[data-v-5a3e40a4]{position:relative;display:flex;align-items:center}.api-key-wrapper .form-input[data-v-5a3e40a4]{width:100%;padding-right:40px}.toggle-visibility[data-v-5a3e40a4]{position:absolute;right:8px;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;font-size:14px}.toggle-visibility[data-v-5a3e40a4]:hover{color:var(--cg-color-text-primary)}.form-help[data-v-5a3e40a4]{display:flex;align-items:center;gap:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.help-icon[data-v-5a3e40a4]{font-size:10px}.form-help code[data-v-5a3e40a4]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);color:var(--cg-color-accent)}.test-result[data-v-5a3e40a4]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm)}.test-result.success[data-v-5a3e40a4]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.test-result.error[data-v-5a3e40a4]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.result-icon[data-v-5a3e40a4]{font-weight:700}.test-result.success .result-icon[data-v-5a3e40a4]{color:var(--cg-color-success)}.test-result.error .result-icon[data-v-5a3e40a4]{color:var(--cg-color-error)}.result-message[data-v-5a3e40a4]{color:var(--cg-color-text-primary)}.modal-actions[data-v-5a3e40a4]{display:flex;gap:var(--cg-space-2);justify-content:flex-end}.deploy-content[data-v-c12720d3]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.section[data-v-c12720d3]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-label[data-v-c12720d3]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.loading-text[data-v-c12720d3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);padding:var(--cg-space-3);text-align:center}.empty-remotes[data-v-c12720d3]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-4);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);text-align:center}.empty-icon[data-v-c12720d3]{font-size:var(--cg-font-size-xl)}.empty-text[data-v-c12720d3]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.empty-help[data-v-c12720d3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0}.remotes-list[data-v-c12720d3],.mode-options[data-v-c12720d3]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.mode-option[data-v-c12720d3]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer}.mode-option input[data-v-c12720d3]{accent-color:var(--cg-color-accent)}.mode-option input[data-v-c12720d3]:disabled{opacity:.5}.mode-label[data-v-c12720d3]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.form-input[data-v-c12720d3]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-c12720d3]:focus{outline:none;border-color:var(--cg-color-accent)}.summary-row[data-v-c12720d3]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.sync-warning[data-v-c12720d3]{display:flex;gap:var(--cg-space-3);align-items:flex-start;padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning)}.sync-warning .warning-icon[data-v-c12720d3]{flex-shrink:0;font-size:var(--cg-font-size-lg)}.sync-warning .warning-content[data-v-c12720d3]{flex:1}.sync-warning .warning-content strong[data-v-c12720d3]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.sync-warning .warning-content p[data-v-c12720d3]{margin:var(--cg-space-1) 0 0 0;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.modal-actions[data-v-c12720d3]{display:flex;gap:var(--cg-space-2);justify-content:flex-end}.custom-tab[data-v-1637dead]{padding:var(--cg-space-3)}.section-header[data-v-1637dead]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cg-space-3)}.section-title[data-v-1637dead]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.section-actions[data-v-1637dead]{display:flex;gap:var(--cg-space-2)}.loading-state[data-v-1637dead]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.loading-state .spinner[data-v-1637dead]{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-1637dead .8s linear infinite;margin-bottom:var(--cg-space-2)}@keyframes spin-1637dead{to{transform:rotate(360deg)}}.empty-state[data-v-1637dead]{padding:var(--cg-space-2)}.empty-card[data-v-1637dead]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.empty-text[data-v-1637dead]{display:block;color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);margin-bottom:var(--cg-space-3)}.empty-help[data-v-1637dead]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0 0 var(--cg-space-2) 0}.setup-steps[data-v-1637dead]{margin:0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.6}.setup-steps li[data-v-1637dead]{margin-bottom:var(--cg-space-2)}.setup-steps code[data-v-1637dead]{display:inline-block;margin-top:var(--cg-space-1);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-accent)}.workers-list[data-v-1637dead]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.scan-result[data-v-1637dead]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);margin-top:var(--cg-space-3);font-size:var(--cg-font-size-xs)}.scan-result.success[data-v-1637dead]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.scan-result.info[data-v-1637dead]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border)}.scan-icon[data-v-1637dead]{flex-shrink:0}.scan-result.success .scan-icon[data-v-1637dead]{color:var(--cg-color-success)}.scan-message[data-v-1637dead]{flex:1;color:var(--cg-color-text-primary)}.dismiss-btn[data-v-1637dead]{background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:0 var(--cg-space-1);font-size:var(--cg-font-size-md)}.dismiss-btn[data-v-1637dead]:hover{color:var(--cg-color-text-primary)}.settings-content[data-v-b21588ad]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.settings-section[data-v-b21588ad]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.section-header[data-v-b21588ad]{display:flex;align-items:center;gap:var(--cg-space-2)}.section-title[data-v-b21588ad]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);color:var(--cg-color-text-primary)}.section-description[data-v-b21588ad]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:0;line-height:1.5}.ssh-warning[data-v-b21588ad]{display:flex;align-items:flex-start;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning)}.warning-icon[data-v-b21588ad]{color:var(--cg-color-warning);font-weight:700;font-size:var(--cg-font-size-sm)}.warning-content[data-v-b21588ad]{font-size:var(--cg-font-size-xs);line-height:1.5}.warning-content strong[data-v-b21588ad]{color:var(--cg-color-text-primary)}.warning-content p[data-v-b21588ad]{margin:var(--cg-space-1) 0 0 0;color:var(--cg-color-text-secondary)}.warning-content code[data-v-b21588ad]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.form-row[data-v-b21588ad]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-label[data-v-b21588ad]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.token-wrapper[data-v-b21588ad]{display:flex;align-items:center;gap:var(--cg-space-1)}.form-input[data-v-b21588ad]{flex:1;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-b21588ad]:focus{outline:none;border-color:var(--cg-color-accent)}.toggle-visibility[data-v-b21588ad]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;cursor:pointer}.toggle-visibility[data-v-b21588ad]:hover{color:var(--cg-color-text-primary);border-color:var(--cg-color-border-strong)}.form-help[data-v-b21588ad]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.test-result[data-v-b21588ad]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm)}.test-result.success[data-v-b21588ad]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.test-result.error[data-v-b21588ad]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.result-icon[data-v-b21588ad]{font-weight:700}.test-result.success .result-icon[data-v-b21588ad]{color:var(--cg-color-success)}.test-result.error .result-icon[data-v-b21588ad]{color:var(--cg-color-error)}.result-message[data-v-b21588ad]{color:var(--cg-color-text-primary)}.token-actions[data-v-b21588ad]{display:flex;gap:var(--cg-space-2)}.deploy-info[data-v-d4e32a10]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.info-section strong[data-v-d4e32a10]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.info-section p[data-v-d4e32a10]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);margin:var(--cg-space-1) 0 0 0;line-height:1.5}.info-section ul[data-v-d4e32a10]{margin:var(--cg-space-2) 0 0 0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.6}.info-section li[data-v-d4e32a10]{margin-bottom:var(--cg-space-1)}.info-section li strong[data-v-d4e32a10]{font-size:var(--cg-font-size-xs)}.header-info[data-v-d256ff6d]{flex:1;display:flex;flex-direction:column;gap:6px}.header-title[data-v-d256ff6d]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;font-weight:var(--cg-font-weight-normal)}.commit-hash[data-v-d256ff6d]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-base);color:var(--cg-color-info);font-weight:var(--cg-font-weight-semibold)}.commit-refs[data-v-d256ff6d]{display:flex;gap:6px;flex-wrap:wrap}.ref-badge[data-v-d256ff6d]{padding:2px 8px;background:transparent;border:1px solid var(--cg-color-accent);color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.commit-message[data-v-d256ff6d]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin-bottom:6px}.commit-date[data-v-d256ff6d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-bottom:var(--cg-space-4)}.loading[data-v-d256ff6d]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.changes-section[data-v-d256ff6d]{margin-top:var(--cg-space-2)}.stats-row[data-v-d256ff6d]{display:flex;gap:16px;padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);margin-bottom:var(--cg-space-4);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.stat[data-v-d256ff6d]{color:var(--cg-color-text-muted)}.stat.insertions[data-v-d256ff6d]{color:var(--cg-color-success)}.stat.deletions[data-v-d256ff6d]{color:var(--cg-color-error)}.change-group[data-v-d256ff6d]{margin-bottom:var(--cg-space-4)}.change-item[data-v-d256ff6d]{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);background:var(--cg-color-bg-tertiary);border-left:2px solid transparent;margin-bottom:2px}.change-icon[data-v-d256ff6d]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-bold);width:14px;text-align:center;font-size:var(--cg-font-size-base)}.change-item.added[data-v-d256ff6d]{border-left-color:var(--cg-color-success)}.change-item.added .change-icon[data-v-d256ff6d]{color:var(--cg-color-success)}.change-item.modified[data-v-d256ff6d]{border-left-color:var(--cg-color-warning)}.change-item.modified .change-icon[data-v-d256ff6d]{color:var(--cg-color-warning)}.change-item.deleted[data-v-d256ff6d]{border-left-color:var(--cg-color-error)}.change-item.deleted .change-icon[data-v-d256ff6d]{color:var(--cg-color-error)}.version[data-v-d256ff6d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.base-textarea-wrapper[data-v-c6d16c93]{display:flex;flex-direction:column;gap:4px}.base-textarea[data-v-c6d16c93]{width:100%;padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:inherit;resize:vertical;line-height:var(--cg-line-height-normal);transition:all var(--cg-transition-fast)}.base-textarea[data-v-c6d16c93]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-textarea[data-v-c6d16c93]:disabled{opacity:.5;cursor:not-allowed}.base-textarea-count[data-v-c6d16c93]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-align:right}.base-checkbox[data-v-bf17c831]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.base-checkbox.disabled[data-v-bf17c831]{opacity:.5;cursor:not-allowed}.base-checkbox-input[data-v-bf17c831]{position:absolute;opacity:0;pointer-events:none}.base-checkbox-box[data-v-bf17c831]{width:18px;height:18px;border:2px solid var(--cg-color-border);border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-tertiary);display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast);flex-shrink:0}.base-checkbox:hover:not(.disabled) .base-checkbox-box[data-v-bf17c831]{border-color:var(--cg-color-accent)}.base-checkbox-input:checked+.base-checkbox-box[data-v-bf17c831]{background:var(--cg-color-accent);border-color:var(--cg-color-accent);color:var(--cg-color-text-inverse)}.base-checkbox-input:focus+.base-checkbox-box[data-v-bf17c831]{box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-checkbox-label[data-v-bf17c831]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.modal-overlay[data-v-5f897631]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.commit-popover[data-v-5f897631]{background:var(--cg-color-bg-primary);border:2px solid var(--cg-color-border);box-shadow:var(--cg-shadow-xl);min-width:400px;max-width:500px;display:flex;flex-direction:column}.commit-popover.modal[data-v-5f897631]{border-radius:var(--cg-radius-lg);animation:modalSlideIn-5f897631 .2s ease}@keyframes modalSlideIn-5f897631{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.popover-header[data-v-5f897631]{padding:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:space-between;align-items:center}.popover-title[data-v-5f897631]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;flex:1}.close-btn[data-v-5f897631]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.close-btn[data-v-5f897631]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.popover-body[data-v-5f897631]{padding:var(--cg-space-3);max-height:400px;overflow-y:auto}.popover-footer[data-v-5f897631]{padding:var(--cg-space-3);border-top:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:flex-end;gap:8px}.changes-summary[data-v-5f897631]{background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-md);padding:8px;margin-bottom:12px;font-size:var(--cg-font-size-xs)}.change-item[data-v-5f897631]{display:flex;align-items:center;gap:6px;padding:2px 0}.change-icon[data-v-5f897631]{font-family:monospace;font-weight:600;width:12px;text-align:center}.change-icon.new[data-v-5f897631]{color:var(--cg-color-success)}.change-icon.modified[data-v-5f897631]{color:var(--cg-color-warning)}.change-icon.deleted[data-v-5f897631]{color:var(--cg-color-error)}.no-changes[data-v-5f897631],.loading[data-v-5f897631]{text-align:center;padding:12px;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.message-section[data-v-5f897631]{margin-bottom:8px}.issues-error[data-v-5f897631]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md);padding:10px;margin-bottom:12px}.error-header[data-v-5f897631]{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--cg-color-error)}.error-icon[data-v-5f897631]{font-size:14px;line-height:1}.error-title[data-v-5f897631]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium)}.issues-list[data-v-5f897631]{margin-bottom:10px;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.issue-item[data-v-5f897631]{padding:4px 0;line-height:1.4}.issue-item strong[data-v-5f897631]{color:var(--cg-color-text-primary)}.workflow-state[data-v-5f897631]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-left:4px}.allow-issues-toggle[data-v-5f897631]{margin-top:8px;font-size:var(--cg-font-size-xs)}.modal-overlay[data-v-e9c5253e]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-e9c5253e]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-e9c5253e]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-e9c5253e]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.modal-close[data-v-e9c5253e]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-e9c5253e]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.switch-message[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary);line-height:1.5}.switch-message strong[data-v-e9c5253e]{color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.warning-box[data-v-e9c5253e]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning)}.warning-icon[data-v-e9c5253e]{font-size:var(--cg-font-size-lg);flex-shrink:0}.switch-details[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);line-height:1.5}.switch-eta[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);font-style:italic}.modal-actions[data-v-e9c5253e]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.modal-overlay[data-v-768a5078]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10006;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-content[data-v-768a5078]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-accent);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-xl),0 0 20px var(--cg-color-accent-muted);max-width:500px;width:90%;animation:modalSlideIn-768a5078 .3s ease}@keyframes modalSlideIn-768a5078{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-768a5078]{padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle);text-align:center}.modal-title[data-v-768a5078]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-body[data-v-768a5078]{padding:var(--cg-space-5);display:flex;flex-direction:column;gap:var(--cg-space-4)}.progress-info[data-v-768a5078]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-2)}.progress-percentage[data-v-768a5078]{font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.progress-state[data-v-768a5078]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);text-align:right;flex:1}.switch-steps[data-v-768a5078]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm)}.switch-step[data-v-768a5078]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);transition:all var(--cg-transition-fast)}.switch-step.pending[data-v-768a5078],.switch-step.pending .step-icon[data-v-768a5078]{color:var(--cg-color-text-muted)}.switch-step.active[data-v-768a5078]{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-medium)}.switch-step.active .step-icon[data-v-768a5078]{color:var(--cg-color-accent);animation:spin-768a5078 1s linear infinite}@keyframes spin-768a5078{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.switch-step.completed[data-v-768a5078],.switch-step.completed .step-icon[data-v-768a5078]{color:var(--cg-color-success)}.step-icon[data-v-768a5078]{flex-shrink:0;font-size:var(--cg-font-size-base);width:16px;display:inline-block;text-align:center}.step-label[data-v-768a5078]{flex:1}.progress-warning[data-v-768a5078]{margin:0;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-info);text-align:center}.modal-overlay[data-v-7cad7518]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-7cad7518]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-7cad7518]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-7cad7518]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-7cad7518]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.modal-close[data-v-7cad7518]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-7cad7518]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.sync-message[data-v-7cad7518]{margin:0;font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary);line-height:1.5}.node-section[data-v-7cad7518]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-7cad7518]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.node-list[data-v-7cad7518]{display:flex;flex-direction:column;gap:var(--cg-space-1);max-height:200px;overflow-y:auto;padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.node-item[data-v-7cad7518]{font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);line-height:1.5}.node-item.add[data-v-7cad7518]{color:var(--cg-color-info)}.node-item.remove[data-v-7cad7518]{color:var(--cg-color-warning)}.warning-box[data-v-7cad7518]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning)}.warning-icon[data-v-7cad7518]{font-size:var(--cg-font-size-lg);flex-shrink:0}.modal-actions[data-v-7cad7518]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.social-buttons[data-v-4f846342]{display:flex;align-items:center;gap:4px}.icon-btn[data-v-4f846342]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-4f846342]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.sponsor-btn[data-v-4f846342]{gap:4px;padding:4px 8px;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);opacity:.7}.sponsor-btn[data-v-4f846342]:hover{opacity:1;border-color:#db61a2;color:#db61a2}.icon-btn.social-link[data-v-4f846342]{opacity:.7}.icon-btn.social-link[data-v-4f846342]:hover{opacity:1}.footer-info[data-v-8bc3db0a]{display:flex;align-items:center;gap:var(--cg-space-3);font-size:10px;color:var(--cg-color-text-muted)}.version[data-v-8bc3db0a]{opacity:.7}.made-by[data-v-8bc3db0a]{display:flex;align-items:center;gap:2px}.heart-icon[data-v-8bc3db0a]{color:#db61a2}[data-v-fac00ae7] .base-modal-overlay{z-index:10004}.base-modal-title[data-v-9a9aadc0]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;flex:1}.header-actions[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2)}.wizard-step[data-v-9a9aadc0]{min-height:300px}.wizard-intro[data-v-9a9aadc0]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);line-height:1.6;margin-bottom:var(--cg-space-4)}.form-field[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-1);margin-bottom:var(--cg-space-4)}.form-field--checkbox[data-v-9a9aadc0]{flex-direction:row;align-items:center}.form-label[data-v-9a9aadc0]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-9a9aadc0],.form-select[data-v-9a9aadc0]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);padding:var(--cg-space-2) var(--cg-space-3);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-9a9aadc0]:hover,.form-select[data-v-9a9aadc0]:hover{border-color:var(--cg-color-border)}.form-input[data-v-9a9aadc0]:focus,.form-select[data-v-9a9aadc0]:focus{outline:none;border-color:var(--cg-color-accent)}.form-select[data-v-9a9aadc0]{cursor:pointer}.form-select[data-v-9a9aadc0]:disabled{opacity:.5;cursor:not-allowed}.form-checkbox[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.form-checkbox input[type=checkbox][data-v-9a9aadc0]{width:16px;height:16px;accent-color:var(--cg-color-accent);cursor:pointer}.form-error[data-v-9a9aadc0]{color:var(--cg-color-error);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.form-info[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.form-suggestion[data-v-9a9aadc0]{color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.cli-warning[data-v-9a9aadc0]{background:#ffc1071a;border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);padding:var(--cg-space-3);margin-bottom:var(--cg-space-4)}.cli-warning-header[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.cli-warning-title[data-v-9a9aadc0]{flex:1}.cli-warning-close[data-v-9a9aadc0]{background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.7}.cli-warning-close[data-v-9a9aadc0]:hover{opacity:1;color:var(--cg-color-text-primary)}.cli-warning-icon[data-v-9a9aadc0]{color:var(--cg-color-warning);font-size:var(--cg-font-size-lg);font-weight:700}.cli-warning-title[data-v-9a9aadc0]{font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.cli-warning-text[data-v-9a9aadc0]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin:0 0 var(--cg-space-2) 0;line-height:1.5}.cli-warning-commands[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.cli-warning-commands code[data-v-9a9aadc0]{background:var(--cg-color-bg-primary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.cli-warning-or[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.env-landing[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.landing-option[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);cursor:pointer;text-align:left;width:100%;transition:all var(--cg-transition-fast)}.landing-option[data-v-9a9aadc0]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-tertiary)}.option-icon[data-v-9a9aadc0]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.option-content[data-v-9a9aadc0]{flex:1;display:flex;flex-direction:column;gap:var(--cg-space-1)}.option-title[data-v-9a9aadc0]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.option-description[data-v-9a9aadc0]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.option-arrow[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-lg)}.landing-divider[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-4);margin:var(--cg-space-2) 0}.landing-divider[data-v-9a9aadc0]:before,.landing-divider[data-v-9a9aadc0]:after{content:"";flex:1;height:1px;background:var(--cg-color-border-subtle)}.landing-divider span[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:lowercase}.env-list[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.env-option[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm);cursor:pointer;transition:all var(--cg-transition-fast)}.env-option[data-v-9a9aadc0]:hover{border-color:var(--cg-color-border)}.env-option.selected[data-v-9a9aadc0]{border-color:var(--cg-color-accent);background:var(--cg-color-bg-tertiary)}.env-option input[type=radio][data-v-9a9aadc0]{accent-color:var(--cg-color-accent)}.env-name[data-v-9a9aadc0]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.env-create[data-v-9a9aadc0],.env-import[data-v-9a9aadc0]{display:flex;flex-direction:column}.env-creating[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-4);padding:var(--cg-space-4)}.creating-intro[data-v-9a9aadc0]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base);margin:0;text-align:center}.creating-intro strong[data-v-9a9aadc0]{color:var(--cg-color-text-primary)}.progress-warning[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center;margin:0}.progress-check-loading[data-v-9a9aadc0]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--cg-space-3);padding:var(--cg-space-8);min-height:200px}.loading-spinner[data-v-9a9aadc0]{width:32px;height:32px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-9a9aadc0 .8s linear infinite}@keyframes spin-9a9aadc0{to{transform:rotate(360deg)}}.loading-text[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.icon-btn[data-v-9a9aadc0]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-9a9aadc0]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.header-divider[data-v-9a9aadc0]{width:1px;height:16px;background:var(--cg-color-border-subtle);margin:0 4px;align-self:center}.wizard-footer[data-v-9a9aadc0]{display:flex;justify-content:space-between;align-items:center;width:100%}.wizard-footer-actions[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2)}.comfygit-panel[data-v-037b3ee3]{display:flex;flex-direction:column;height:70vh;width:100%;background:var(--cg-color-bg-primary);color:var(--cg-color-text-primary);border:2px solid var(--cg-color-border);overflow:hidden;font-family:var(--cg-font-mono)}.panel-header[data-v-037b3ee3]{padding:var(--cg-space-3) var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);display:flex;justify-content:space-between;align-items:center;background:var(--cg-color-bg-tertiary);flex-shrink:0}.header-left[data-v-037b3ee3]{display:flex;align-items:center;gap:12px}.panel-title[data-v-037b3ee3]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);margin:0;color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.header-info[data-v-037b3ee3]{display:flex;align-items:center;gap:6px;font-size:var(--cg-font-size-xs)}.env-name[data-v-037b3ee3]{color:var(--cg-color-text-secondary)}.branch-name[data-v-037b3ee3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.status-dot[data-v-037b3ee3]{width:8px;height:8px;border-radius:50%}.status-dot.success[data-v-037b3ee3]{background:var(--cg-color-success)}.status-dot.warning[data-v-037b3ee3]{background:var(--cg-color-warning)}.status-dot.error[data-v-037b3ee3]{background:var(--cg-color-error)}.status-dot.neutral[data-v-037b3ee3]{background:var(--cg-color-text-muted)}.header-actions[data-v-037b3ee3]{display:flex;gap:4px}.icon-btn[data-v-037b3ee3]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-037b3ee3]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.icon-btn.spinning svg[data-v-037b3ee3]{animation:spin-037b3ee3 1s linear infinite}@keyframes spin-037b3ee3{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-divider[data-v-037b3ee3]{width:1px;height:16px;background:var(--cg-color-border-subtle);margin:0 4px;align-self:center}.env-switcher[data-v-037b3ee3]{padding:var(--cg-space-3) var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-secondary);flex-shrink:0}.env-switcher-header[data-v-037b3ee3]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.env-switcher-label[data-v-037b3ee3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.env-control-buttons[data-v-037b3ee3]{display:flex;gap:var(--cg-space-2)}.env-control-btn[data-v-037b3ee3]{padding:2px 8px;font-family:var(--cg-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);cursor:pointer;transition:all var(--cg-transition-fast)}.env-control-btn[data-v-037b3ee3]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.env-control-btn.stop[data-v-037b3ee3]{border-color:var(--cg-color-error);color:var(--cg-color-error);opacity:.7}.env-control-btn.stop[data-v-037b3ee3]:hover{opacity:1}.env-switcher-btn[data-v-037b3ee3]{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);padding:8px 12px;cursor:pointer;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.env-switcher-btn[data-v-037b3ee3]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.switch-indicator[data-v-037b3ee3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.panel-main[data-v-037b3ee3]{display:flex;flex:1;overflow:hidden}.sidebar[data-v-037b3ee3]{width:234px;background:var(--cg-color-bg-tertiary);border-right:1px solid var(--cg-color-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-content[data-v-037b3ee3]{flex:1;overflow-y:auto}.sidebar-footer[data-v-037b3ee3]{padding:var(--cg-space-2) var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle);flex-shrink:0}.sidebar-section[data-v-037b3ee3]{padding:var(--cg-space-3) 0}.sidebar-section-title[data-v-037b3ee3]{padding:0 var(--cg-space-3);margin-bottom:var(--cg-space-2);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.sidebar-item[data-v-037b3ee3]{width:100%;padding:8px var(--cg-space-3);background:transparent;border:none;border-left:2px solid transparent;color:var(--cg-color-text-secondary);text-align:left;cursor:pointer;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-normal)}.sidebar-item[data-v-037b3ee3]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent)}.sidebar-item.active[data-v-037b3ee3]{border-left-color:var(--cg-color-accent);color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.sidebar-badge[data-v-037b3ee3]{margin-left:auto;padding:1px 6px;background:var(--cg-color-success);color:var(--cg-color-bg-primary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold)}.sidebar-divider[data-v-037b3ee3]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) var(--cg-space-3)}.content-area[data-v-037b3ee3]{flex:1;overflow-y:auto;padding:var(--cg-space-4);-webkit-user-select:text;user-select:text}.loading[data-v-037b3ee3]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.error-message[data-v-037b3ee3]{background:transparent;border:1px solid var(--cg-color-error);padding:var(--cg-space-3);color:var(--cg-color-error);font-size:var(--cg-font-size-sm);-webkit-user-select:text;user-select:text;cursor:text}.view-placeholder[data-v-037b3ee3]{padding:var(--cg-space-4)}.view-title[data-v-037b3ee3]{color:var(--cg-color-accent);font-size:var(--cg-font-size-lg);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-4) 0}.view-placeholder p[data-v-037b3ee3]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base)}.dialog-overlay[data-v-037b3ee3]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10003}.dialog-content[data-v-037b3ee3]{background:var(--cg-color-bg-primary);border:2px solid var(--cg-color-border);box-shadow:0 0 16px #00ff4180;max-width:780px;width:90vw;max-height:80vh;display:flex;flex-direction:column}.env-selector-dialog[data-v-037b3ee3]{width:780px}.dialog-header[data-v-037b3ee3]{padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:space-between;align-items:center}.dialog-title[data-v-037b3ee3]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);text-shadow:0 0 8px var(--cg-color-accent);margin:0}.dialog-body[data-v-037b3ee3]{padding:var(--cg-space-4);overflow-y:auto}.dialog-message[data-v-037b3ee3]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);margin:0 0 var(--cg-space-4) 0}.env-list[data-v-037b3ee3]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.env-item[data-v-037b3ee3]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-3);border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary)}.env-item.current[data-v-037b3ee3]{border-color:var(--cg-color-accent)}.env-info[data-v-037b3ee3]{flex:1}.env-name-row[data-v-037b3ee3]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.env-indicator[data-v-037b3ee3]{color:var(--cg-color-accent)}.env-name[data-v-037b3ee3]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.env-branch[data-v-037b3ee3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.current-label[data-v-037b3ee3]{margin-left:auto;padding:2px 8px;background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.env-stats[data-v-037b3ee3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.switch-btn[data-v-037b3ee3]{padding:6px 12px;background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);cursor:pointer}.switch-btn[data-v-037b3ee3]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent);box-shadow:0 0 8px #00ff414d}.toast-container[data-v-037b3ee3]{position:fixed;bottom:16px;right:16px;z-index:10004;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast[data-v-037b3ee3]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);box-shadow:0 0 8px #00ff4166;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-primary);pointer-events:auto;min-width:234px;max-width:390px;font-family:var(--cg-font-mono)}.toast.info[data-v-037b3ee3]{border-left:3px solid var(--cg-color-info)}.toast.success[data-v-037b3ee3]{border-left:3px solid var(--cg-color-success)}.toast.warning[data-v-037b3ee3]{border-left:3px solid var(--cg-color-warning)}.toast.error[data-v-037b3ee3]{border-left:3px solid var(--cg-color-error)}.toast-message[data-v-037b3ee3]{flex:1}.toast-enter-active[data-v-037b3ee3],.toast-leave-active[data-v-037b3ee3]{transition:all .3s ease}.toast-enter-from[data-v-037b3ee3],.toast-leave-to[data-v-037b3ee3]{opacity:0;transform:translate(100%)}.toast-move[data-v-037b3ee3]{transition:transform .3s ease}.sidebar-content[data-v-037b3ee3]::-webkit-scrollbar,.content-area[data-v-037b3ee3]::-webkit-scrollbar{width:8px}.sidebar-content[data-v-037b3ee3]::-webkit-scrollbar-track,.content-area[data-v-037b3ee3]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.sidebar-content[data-v-037b3ee3]::-webkit-scrollbar-thumb,.content-area[data-v-037b3ee3]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.sidebar-content[data-v-037b3ee3]::-webkit-scrollbar-thumb:hover,.content-area[data-v-037b3ee3]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.download-item[data-v-2110df65]{padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle)}.download-item.status-downloading[data-v-2110df65]{border-color:var(--cg-color-accent)}.download-item.status-completed[data-v-2110df65]{border-color:var(--cg-color-success)}.download-item.status-failed[data-v-2110df65]{border-color:var(--cg-color-error)}.download-item.status-paused[data-v-2110df65]{border-color:var(--cg-color-warning)}.item-header[data-v-2110df65]{display:flex;justify-content:space-between;align-items:flex-start}.item-info[data-v-2110df65]{flex:1;min-width:0}.filename[data-v-2110df65]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metadata[data-v-2110df65]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-top:2px;display:flex;gap:var(--cg-space-2)}.item-actions[data-v-2110df65]{display:flex;gap:4px;flex-shrink:0}.action-icon[data-v-2110df65]{width:20px;height:20px;padding:0;background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.action-icon[data-v-2110df65]:hover{background:var(--cg-color-bg-hover)}.action-icon.cancel[data-v-2110df65]:hover,.action-icon.remove[data-v-2110df65]:hover{border-color:var(--cg-color-error);color:var(--cg-color-error)}.action-icon.retry[data-v-2110df65]:hover{border-color:var(--cg-color-warning);color:var(--cg-color-warning)}.action-icon.resume[data-v-2110df65]{font-size:10px}.action-icon.resume[data-v-2110df65]:hover{border-color:var(--cg-color-success);color:var(--cg-color-success)}.progress-section[data-v-2110df65]{margin-top:var(--cg-space-1)}.progress-bar[data-v-2110df65]{height:3px;background:var(--cg-color-bg-tertiary);border-radius:2px;overflow:hidden}.progress-fill[data-v-2110df65]{height:100%;background:var(--cg-color-accent);transition:width .2s ease}.progress-stats[data-v-2110df65]{display:flex;justify-content:space-between;margin-top:2px;font-size:10px;color:var(--cg-color-text-muted);font-family:var(--cg-font-mono)}.speed[data-v-2110df65]{color:var(--cg-color-accent)}.status-msg[data-v-2110df65]{font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.status-msg.paused[data-v-2110df65]{color:var(--cg-color-warning)}.status-msg.queued[data-v-2110df65]{color:var(--cg-color-text-muted)}.status-msg.completed[data-v-2110df65]{color:var(--cg-color-success)}.status-msg.failed[data-v-2110df65]{color:var(--cg-color-error)}.retries[data-v-2110df65]{opacity:.7}.model-download-queue[data-v-60751cfa]{position:fixed;bottom:16px;right:340px;width:360px;background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);box-shadow:0 2px 12px #0000004d;z-index:0;display:flex;flex-direction:column;overflow:hidden}.queue-header[data-v-60751cfa]{padding:var(--cg-space-2) var(--cg-space-3);border-bottom:1px solid var(--cg-color-border);display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--cg-color-bg-secondary)}.queue-header[data-v-60751cfa]:hover{background:var(--cg-color-bg-hover)}.queue-title[data-v-60751cfa]{display:flex;align-items:center;gap:var(--cg-space-2);color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-sm)}.icon[data-v-60751cfa]{font-size:var(--cg-font-size-base)}.count[data-v-60751cfa]{color:var(--cg-color-text-muted);font-weight:400;font-size:var(--cg-font-size-xs)}.action-label[data-v-60751cfa]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:lowercase;font-style:italic}.overall-progress[data-v-60751cfa]{padding:var(--cg-space-2) var(--cg-space-3)}.progress-bar[data-v-60751cfa]{height:4px;background:var(--cg-color-bg-tertiary);border-radius:2px;overflow:hidden}.progress-fill[data-v-60751cfa]{height:100%;background:var(--cg-color-accent);transition:width .3s ease}.current-mini[data-v-60751cfa]{display:flex;justify-content:space-between;margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.current-mini .filename[data-v-60751cfa]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-mini .speed[data-v-60751cfa]{color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.queue-content[data-v-60751cfa]{max-height:450px;overflow-y:auto;padding:var(--cg-space-2);display:flex;flex-direction:column;gap:var(--cg-space-2)}.section[data-v-60751cfa]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.section-header[data-v-60751cfa]{display:flex;justify-content:space-between;align-items:center}.section-label[data-v-60751cfa]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.section-label.failed[data-v-60751cfa]{color:var(--cg-color-error)}.section-label.paused[data-v-60751cfa]{color:var(--cg-color-warning)}.resume-all-btn[data-v-60751cfa]{padding:4px 10px;background:var(--cg-color-warning);border:none;color:#000;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);cursor:pointer}.resume-all-btn[data-v-60751cfa]:hover{filter:brightness(1.1)}.clear-btn[data-v-60751cfa]{padding:2px 6px;background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);cursor:pointer}.clear-btn[data-v-60751cfa]:hover{color:var(--cg-color-error);border-color:var(--cg-color-error)}.items-list[data-v-60751cfa]{display:flex;flex-direction:column;gap:var(--cg-space-1)}[data-comfygit-theme]{user-select:text;-webkit-user-select:text}:root{--cg-font-display: system-ui, sans-serif;--cg-font-body: system-ui, sans-serif;--cg-font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace;--cg-font-size-xs: 10px;--cg-font-size-sm: 12px;--cg-font-size-base: 14px;--cg-font-size-lg: 16px;--cg-font-size-xl: 20px;--cg-font-size-2xl: 24px;--cg-font-weight-normal: 400;--cg-font-weight-medium: 500;--cg-font-weight-semibold: 600;--cg-font-weight-bold: 700;--cg-line-height-tight: 1.2;--cg-line-height-normal: 1.5;--cg-line-height-relaxed: 1.75;--cg-letter-spacing-tight: -.02em;--cg-letter-spacing-normal: 0;--cg-letter-spacing-wide: .05em;--cg-letter-spacing-wider: .1em;--cg-color-bg-primary: #353535;--cg-color-bg-secondary: #2a2a2a;--cg-color-bg-tertiary: #222222;--cg-color-bg-hover: #404040;--cg-color-bg-overlay: rgba(0, 0, 0, .5);--cg-color-text-primary: #dddddd;--cg-color-text-secondary: #999999;--cg-color-text-muted: #666666;--cg-color-text-inverse: #111111;--cg-color-border: #4a4a4a;--cg-color-border-subtle: #3a3a3a;--cg-color-border-strong: #5a5a5a;--cg-color-accent: #f97316;--cg-color-accent-hover: #ea580c;--cg-color-accent-muted: rgba(249, 115, 22, .2);--cg-color-success: #22c55e;--cg-color-success-muted: rgba(34, 197, 94, .15);--cg-color-warning: #fbbf24;--cg-color-warning-muted: rgba(251, 191, 36, .15);--cg-color-error: #ef4444;--cg-color-error-muted: rgba(239, 68, 68, .15);--cg-color-info: #3b82f6;--cg-color-info-muted: rgba(59, 130, 246, .15);--cg-space-0-5: 2px;--cg-space-1: 4px;--cg-space-2: 8px;--cg-space-3: 12px;--cg-space-4: 16px;--cg-space-5: 20px;--cg-space-6: 24px;--cg-space-8: 32px;--cg-space-10: 40px;--cg-space-12: 48px;--cg-radius-none: 0;--cg-radius-sm: 2px;--cg-radius-md: 4px;--cg-radius-lg: 8px;--cg-radius-xl: 12px;--cg-radius-2xl: 16px;--cg-radius-full: 9999px;--cg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--cg-shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--cg-shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--cg-shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--cg-blur-sm: 4px;--cg-blur-md: 8px;--cg-blur-lg: 16px;--cg-transition-fast: .1s ease;--cg-transition-normal: .2s ease;--cg-transition-slow: .3s ease;--cg-z-dropdown: 100;--cg-z-modal: 1000;--cg-z-popover: 1001;--cg-z-tooltip: 1002;--cg-panel-width: 580px;--cg-panel-height: 70vh;--cg-panel-max-width: 90vw;--cg-panel-max-height: 85vh;--cg-btn-gradient-start: #fb923c;--cg-btn-gradient-end: #ea580c;--cg-btn-shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .15);--cg-decoration-title-prefix: "";--cg-decoration-label-prefix: "";--cg-decoration-label-suffix: "";--cg-decoration-status-animation: none;--cg-decoration-status-shape: circle;--cg-shadow-accent: rgba(249, 115, 22, .3);--cg-shadow-accent-strong: rgba(249, 115, 22, .5);--cg-shadow-error: rgba(239, 68, 68, .3);--cg-shadow-success: rgba(34, 197, 94, .3);--cg-text-shadow-title: none;--cg-text-shadow-accent: none}
+.panel-layout[data-v-21565df9]{display:flex;flex-direction:column;height:100%}.panel-layout-content[data-v-21565df9]{flex:1;overflow-y:auto;min-height:0}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar{width:8px}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.panel-layout-content[data-v-21565df9]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.panel-title[data-v-c3875efc]{margin:0;font-weight:var(--cg-font-weight-normal);text-shadow:var(--cg-text-shadow-title)}.panel-title.view[data-v-c3875efc]{color:var(--cg-color-accent);font-size:var(--cg-font-size-lg);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.panel-title.dialog[data-v-c3875efc]{color:var(--cg-color-accent);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.panel-title-prefix[data-v-c3875efc]{opacity:.7}.panel-title-prefix-theme[data-v-c3875efc]:before{content:var(--cg-decoration-title-prefix);opacity:.7}.info-button[data-v-6fc7f16d]{background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:var(--cg-space-0-5);display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast)}.info-button[data-v-6fc7f16d]:hover{color:var(--cg-color-accent);transform:scale(1.1)}.panel-header[data-v-55a62cd6]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cg-space-4)}.panel-header.stacked[data-v-55a62cd6]{flex-direction:column;align-items:flex-start;gap:var(--cg-space-3)}.header-left[data-v-55a62cd6]{display:flex;align-items:center;gap:var(--cg-space-2)}.header-actions[data-v-55a62cd6]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.section-title[data-v-559361eb]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0;font-weight:var(--cg-font-weight-normal);text-shadow:var(--cg-text-shadow-accent)}.section-title[data-v-559361eb]:before{content:var(--cg-decoration-label-prefix)}.section-title[data-v-559361eb]:after{content:var(--cg-decoration-label-suffix)}.section-title.clickable[data-v-559361eb]{cursor:pointer;-webkit-user-select:none;user-select:none}.section-title.clickable[data-v-559361eb]:hover{color:var(--cg-color-accent)}.section-title-count[data-v-559361eb]{margin-left:var(--cg-space-1)}.section-title-icon[data-v-559361eb]{margin-left:var(--cg-space-2);font-size:var(--cg-font-size-xs)}.status-grid[data-v-73b7ba3f]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-md);overflow:hidden}.status-grid__columns[data-v-73b7ba3f]{display:grid;grid-template-columns:1fr 1fr;gap:0}.status-grid__column[data-v-73b7ba3f]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-3) var(--cg-space-4)}.status-grid__column--right[data-v-73b7ba3f]{border-left:1px solid var(--cg-color-border-subtle)}.status-grid__title[data-v-73b7ba3f]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;color:var(--cg-color-text-muted);margin:0 0 var(--cg-space-2) 0;letter-spacing:var(--cg-letter-spacing-wide)}.status-grid__footer[data-v-73b7ba3f]{border-top:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3) var(--cg-space-4)}.status-item[data-v-6f929183]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);line-height:1.4}.status-item.is-separator[data-v-6f929183]{margin-top:var(--cg-space-1);padding-top:var(--cg-space-1);border-top:1px solid var(--cg-color-border-subtle)}.status-item__icon[data-v-6f929183]{font-size:var(--cg-font-size-xs);opacity:.7;flex-shrink:0}.status-item__count[data-v-6f929183]{font-weight:var(--cg-font-weight-semibold);min-width:16px;flex-shrink:0}.status-item__label[data-v-6f929183]{color:var(--cg-color-text-secondary);flex:1}.status-item--new .status-item__count[data-v-6f929183]{color:var(--cg-color-success)}.status-item--modified .status-item__count[data-v-6f929183]{color:var(--cg-color-warning)}.status-item--deleted .status-item__count[data-v-6f929183]{color:var(--cg-color-error)}.status-item--synced .status-item__count[data-v-6f929183],.status-item--synced .status-item__icon[data-v-6f929183]{color:var(--cg-color-text-muted)}.status-item--ok[data-v-6f929183]{color:var(--cg-color-success)}.status-item--ok .status-item__icon[data-v-6f929183]{opacity:1}.status-item--ok .status-item__label[data-v-6f929183]{color:var(--cg-color-success)}.issue-card[data-v-df6aa348]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3) var(--cg-space-4);border-radius:var(--cg-radius-md);border:1px solid;margin-bottom:var(--cg-space-3)}.issue-card--info[data-v-df6aa348]{background:var(--cg-color-info-muted);border-color:var(--cg-color-accent);color:var(--cg-color-text-primary)}.issue-card--warning[data-v-df6aa348]{background:var(--cg-color-warning-muted);border-color:var(--cg-color-warning);color:var(--cg-color-text-primary)}.issue-card--error[data-v-df6aa348]{background:var(--cg-color-error-muted);border-color:var(--cg-color-error);color:var(--cg-color-text-primary)}.issue-card__header[data-v-df6aa348]{display:flex;align-items:center;gap:var(--cg-space-2)}.issue-card__icon[data-v-df6aa348]{font-size:var(--cg-font-size-lg);flex-shrink:0}.issue-card--warning .issue-card__icon[data-v-df6aa348]{color:var(--cg-color-warning)}.issue-card--error .issue-card__icon[data-v-df6aa348]{color:var(--cg-color-error)}.issue-card--info .issue-card__icon[data-v-df6aa348]{color:var(--cg-color-accent)}.issue-card__title[data-v-df6aa348]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.issue-card__content[data-v-df6aa348]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.issue-card__description[data-v-df6aa348]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin:0;line-height:1.5}.issue-card__items[data-v-df6aa348]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-2)}.issue-card__item[data-v-df6aa348]{display:flex;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);line-height:1.5}.issue-card__bullet[data-v-df6aa348]{color:var(--cg-color-text-muted);flex-shrink:0}.issue-card__actions[data-v-df6aa348]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.action-btn[data-v-772abe47]{font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);cursor:pointer;transition:all var(--cg-transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--cg-space-1);white-space:nowrap;border:1px solid}.action-btn[data-v-772abe47]:disabled{opacity:.5;cursor:not-allowed}.action-btn.loading[data-v-772abe47]{pointer-events:none}.spinner[data-v-772abe47]{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-772abe47 .6s linear infinite}@keyframes spin-772abe47{to{transform:rotate(360deg)}}.action-btn.xs[data-v-772abe47]{padding:var(--cg-space-1) var(--cg-space-2);font-size:var(--cg-font-size-xs)}.action-btn.sm[data-v-772abe47]{padding:var(--cg-space-1) var(--cg-space-3);font-size:var(--cg-font-size-xs)}.action-btn.md[data-v-772abe47]{padding:var(--cg-space-2) var(--cg-space-4);font-size:var(--cg-font-size-sm)}.action-btn.primary[data-v-772abe47]{background:transparent;color:var(--cg-color-accent);border-color:var(--cg-color-accent)}.action-btn.primary[data-v-772abe47]:hover:not(:disabled){background:var(--cg-color-bg-hover);box-shadow:0 0 8px var(--cg-shadow-accent)}.action-btn.secondary[data-v-772abe47]{background:transparent;color:var(--cg-color-text-secondary);border-color:var(--cg-color-border)}.action-btn.secondary[data-v-772abe47]:hover:not(:disabled){color:var(--cg-color-text-primary);border-color:var(--cg-color-text-primary)}.action-btn.destructive[data-v-772abe47]{background:transparent;color:var(--cg-color-error);border-color:var(--cg-color-error)}.action-btn.destructive[data-v-772abe47]:hover:not(:disabled){background:var(--cg-color-bg-hover);box-shadow:0 0 8px var(--cg-shadow-error)}.action-btn.ghost[data-v-772abe47]{background:transparent;color:var(--cg-color-text-muted);border-color:transparent}.action-btn.ghost[data-v-772abe47]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle);color:var(--cg-color-accent)}.action-btn.link[data-v-772abe47]{background:transparent;color:var(--cg-color-info);border:none;text-decoration:underline;padding:0}.action-btn.link[data-v-772abe47]:hover:not(:disabled){color:var(--cg-color-accent)}.empty-state[data-v-4466284f]{text-align:center;padding:var(--cg-space-8) var(--cg-space-6);color:var(--cg-color-text-muted)}.empty-icon[data-v-4466284f]{font-size:var(--cg-font-size-2xl);margin-bottom:var(--cg-space-3);opacity:.5}.empty-message[data-v-4466284f]{font-size:var(--cg-font-size-sm);margin:0 0 var(--cg-space-4) 0}.detail-label[data-v-75e9eeb8]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-normal)}.detail-value[data-v-2f186e4c]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);flex:1;word-break:break-word}.detail-value.mono[data-v-2f186e4c]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.detail-value.hash[data-v-2f186e4c]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);word-break:break-all}.detail-value.warning[data-v-2f186e4c]{color:var(--cg-color-warning)}.detail-value.error[data-v-2f186e4c]{color:var(--cg-color-error)}.detail-value.truncate[data-v-2f186e4c]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-row[data-v-ef15664a]{display:flex;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);align-items:baseline}.modal-overlay[data-v-e2b37122]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-e2b37122]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:700px;width:90%;max-height:85vh;display:flex;flex-direction:column}.modal-header[data-v-e2b37122]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle);flex-shrink:0}.modal-title[data-v-e2b37122]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-e2b37122]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.modal-close[data-v-e2b37122]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-e2b37122]{padding:var(--cg-space-4);overflow-y:auto;flex:1;min-height:0}.modal-actions[data-v-e2b37122]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end;flex-shrink:0}.status-section[data-v-e2b37122]{margin-bottom:var(--cg-space-5)}.status-section[data-v-e2b37122]:last-child{margin-bottom:0}.section-header-row[data-v-e2b37122]{display:flex;justify-content:space-between;align-items:center}.link-btn[data-v-e2b37122]{background:transparent;border:none;color:var(--cg-color-accent);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);cursor:pointer;padding:4px 8px;text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);transition:opacity var(--cg-transition-fast)}.link-btn[data-v-e2b37122]:hover{opacity:.8;text-decoration:underline}.workflow-group[data-v-e2b37122]{margin-bottom:var(--cg-space-3)}.workflow-group-header[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.workflow-group-header.clickable[data-v-e2b37122]{cursor:pointer;-webkit-user-select:none;user-select:none}.workflow-group-header.clickable[data-v-e2b37122]:hover{color:var(--cg-color-accent)}.workflow-status-icon[data-v-e2b37122]{font-size:var(--cg-font-size-base);flex-shrink:0}.workflow-status-icon.new[data-v-e2b37122]{color:var(--cg-color-info)}.workflow-status-icon.modified[data-v-e2b37122]{color:var(--cg-color-warning)}.workflow-status-icon.deleted[data-v-e2b37122]{color:var(--cg-color-error)}.workflow-status-icon.synced[data-v-e2b37122]{color:var(--cg-color-success)}.workflow-status-icon.broken[data-v-e2b37122]{color:var(--cg-color-error)}.workflow-group-title[data-v-e2b37122]{font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);flex:1}.expand-icon[data-v-e2b37122]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.workflow-list[data-v-e2b37122]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-5)}.workflow-item[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2)}.workflow-name[data-v-e2b37122]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.workflow-issue[data-v-e2b37122]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-left:var(--cg-space-2);font-style:italic}.change-group[data-v-e2b37122]{margin-bottom:var(--cg-space-3)}.change-group-header[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.change-icon[data-v-e2b37122]{font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-bold);font-family:var(--cg-font-mono);flex-shrink:0}.change-icon.add[data-v-e2b37122]{color:var(--cg-color-info)}.change-icon.remove[data-v-e2b37122]{color:var(--cg-color-error)}.change-icon.modified[data-v-e2b37122]{color:var(--cg-color-warning)}.change-group-title[data-v-e2b37122]{font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.change-list[data-v-e2b37122]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-5)}.change-item[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2)}.node-name[data-v-e2b37122]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.dev-badge[data-v-e2b37122]{display:inline-block;padding:2px 6px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;font-weight:var(--cg-font-weight-semibold)}.drift-item[data-v-e2b37122]{margin-bottom:var(--cg-space-3)}.drift-list[data-v-e2b37122]{margin-top:var(--cg-space-2);padding-left:var(--cg-space-4);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.drift-list-item[data-v-e2b37122]{margin-bottom:var(--cg-space-1)}.drift-list-more[data-v-e2b37122]{margin-top:var(--cg-space-1);color:var(--cg-color-text-muted);font-style:italic}.warning-box[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning);margin-bottom:var(--cg-space-3)}.warning-icon[data-v-e2b37122]{font-size:var(--cg-font-size-lg);flex-shrink:0}.info-box[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin-bottom:var(--cg-space-3)}.info-icon[data-v-e2b37122]{font-size:var(--cg-font-size-lg);flex-shrink:0;color:var(--cg-color-info)}.help-text[data-v-e2b37122]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);line-height:1.5}.empty-state-inline[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm)}.empty-icon[data-v-e2b37122]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.empty-message[data-v-e2b37122]{flex:1}.empty-message strong[data-v-e2b37122]{display:block;color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);margin-bottom:var(--cg-space-1)}.empty-message p[data-v-e2b37122]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);line-height:1.5}.version-mismatch[data-v-e2b37122]{display:flex;align-items:center;gap:var(--cg-space-1)}.version-actual[data-v-e2b37122]{color:var(--cg-color-error);text-decoration:line-through}.version-expected[data-v-e2b37122]{color:var(--cg-color-success)}.repair-action[data-v-e2b37122]{margin-top:var(--cg-space-4);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle)}.repair-action .help-text[data-v-e2b37122]{margin-top:var(--cg-space-2)}.health-section-wrapper[data-v-55fcd77f]{position:relative}.health-section-header[data-v-55fcd77f]{position:relative;display:flex;justify-content:space-between;align-items:flex-start}.show-all-button[data-v-55fcd77f]{position:absolute;top:0;right:0}.footer-title[data-v-55fcd77f]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;color:var(--cg-color-text-muted);margin:0 0 var(--cg-space-2) 0;letter-spacing:var(--cg-letter-spacing-wide)}.suggestions-content[data-v-55fcd77f]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-3)}.suggestions-text[data-v-55fcd77f]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.fade-enter-active[data-v-55fcd77f],.fade-leave-active[data-v-55fcd77f]{transition:opacity var(--cg-transition-fast)}.fade-enter-from[data-v-55fcd77f],.fade-leave-to[data-v-55fcd77f]{opacity:0}.no-issues-text[data-v-55fcd77f]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.text-input[data-v-0380d08f]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);transition:border-color var(--cg-transition-fast),box-shadow var(--cg-transition-fast)}.text-input.monospace[data-v-0380d08f]{font-family:var(--cg-font-mono)}.text-input[data-v-0380d08f]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 8px var(--cg-shadow-accent)}.text-input[data-v-0380d08f]:disabled{opacity:.5;cursor:not-allowed}.text-input.error[data-v-0380d08f]{border-color:var(--cg-color-error)}.text-input.error[data-v-0380d08f]:focus{box-shadow:0 0 8px var(--cg-shadow-error)}.text-input[data-v-0380d08f]::placeholder{color:var(--cg-color-text-muted)}.branch-create-form[data-v-7c500394]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);margin-bottom:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.form-actions[data-v-7c500394]{display:flex;gap:var(--cg-space-2)}.branch-list-item[data-v-c6581a24]{display:flex;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle);font-size:var(--cg-font-size-sm);transition:background var(--cg-transition-fast)}.branch-list-item[data-v-c6581a24]:last-child{border-bottom:none}.branch-list-item[data-v-c6581a24]:hover{background:var(--cg-color-bg-hover)}.branch-list-item.clickable[data-v-c6581a24]{cursor:pointer}.branch-list-item.current[data-v-c6581a24]{background:var(--cg-color-accent-muted);border-left:3px solid var(--cg-color-accent);padding-left:calc(var(--cg-space-3) - 3px)}.branch-list-item__indicator[data-v-c6581a24]{font-size:10px;margin-right:var(--cg-space-2);color:var(--cg-color-text-muted);flex-shrink:0}.branch-list-item.current .branch-list-item__indicator[data-v-c6581a24]{color:var(--cg-color-accent)}.branch-list-item__name[data-v-c6581a24]{flex:1;color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.branch-list-item__actions[data-v-c6581a24]{display:flex;align-items:center;gap:var(--cg-space-2);flex-shrink:0}.branch-list-item__current-label[data-v-c6581a24]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);padding:var(--cg-space-1) var(--cg-space-2);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-family:var(--cg-font-mono)}.base-modal-overlay[data-v-8dab1081]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10003;animation:fadeIn-8dab1081 .15s ease}@keyframes fadeIn-8dab1081{0%{opacity:0}to{opacity:1}}.base-modal-content[data-v-8dab1081]{background:var(--cg-color-bg-primary);border:2px solid var(--cg-color-border);box-shadow:var(--cg-shadow-xl);max-height:80vh;width:90vw;display:flex;flex-direction:column;animation:slideIn-8dab1081 .2s ease}@keyframes slideIn-8dab1081{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.base-modal-content.sm[data-v-8dab1081]{max-width:400px}.base-modal-content.md[data-v-8dab1081]{max-width:600px}.base-modal-content.lg[data-v-8dab1081]{max-width:800px}.base-modal-content.xl[data-v-8dab1081]{max-width:1000px}.base-modal-content.fixed-height[data-v-8dab1081]{height:70vh;max-height:70vh}.base-modal-header[data-v-8dab1081]{padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-2)}.base-modal-title[data-v-8dab1081]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;flex:1}.base-modal-close[data-v-8dab1081]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.base-modal-close[data-v-8dab1081]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.base-modal-body[data-v-8dab1081]{flex:1;overflow-y:auto;padding:var(--cg-space-4)}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar{width:8px}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.base-modal-body[data-v-8dab1081]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.base-modal-loading[data-v-8dab1081],.base-modal-error[data-v-8dab1081]{text-align:center;padding:var(--cg-space-4);color:var(--cg-color-text-muted)}.base-modal-error[data-v-8dab1081]{color:var(--cg-color-error);border:1px solid var(--cg-color-error);background:var(--cg-color-error-muted)}.base-modal-footer[data-v-8dab1081]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:flex-end;gap:8px}.base-btn[data-v-f3452606]{border-radius:var(--cg-radius-md);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-weight:var(--cg-font-weight-medium);cursor:pointer;transition:all var(--cg-transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative}.base-btn[data-v-f3452606]:disabled{opacity:.5;cursor:not-allowed}.base-btn.loading[data-v-f3452606]{pointer-events:none}.spinner[data-v-f3452606]{width:12px;height:12px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-f3452606 .6s linear infinite}@keyframes spin-f3452606{to{transform:rotate(360deg)}}.base-btn.sm[data-v-f3452606]{padding:6px 12px;font-size:var(--cg-font-size-xs)}.base-btn.md[data-v-f3452606]{padding:8px 16px;font-size:var(--cg-font-size-sm)}.base-btn.lg[data-v-f3452606]{padding:10px 20px;font-size:var(--cg-font-size-base)}.base-btn.full-width[data-v-f3452606]{width:100%}.base-btn.primary[data-v-f3452606]{background:var(--cg-color-accent);color:var(--cg-color-text-inverse);border:none}.base-btn.primary[data-v-f3452606]:hover:not(:disabled){background:var(--cg-color-accent-hover);transform:translateY(-1px);box-shadow:0 2px 8px var(--cg-color-accent-muted)}.base-btn.secondary[data-v-f3452606]{background:transparent;color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border)}.base-btn.secondary[data-v-f3452606]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-strong);color:var(--cg-color-text-primary)}.base-btn.danger[data-v-f3452606]{background:var(--cg-color-error);color:var(--cg-color-text-inverse);border:none}.base-btn.danger[data-v-f3452606]:hover:not(:disabled){background:#dc2626;transform:translateY(-1px)}.base-btn.ghost[data-v-f3452606]{background:transparent;color:var(--cg-color-text-muted);border:1px solid transparent}.base-btn.ghost[data-v-f3452606]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle);color:var(--cg-color-accent)}.base-btn.link[data-v-f3452606]{background:transparent;color:var(--cg-color-info);border:none;text-decoration:underline;padding:0}.base-btn.link[data-v-f3452606]:hover:not(:disabled){color:var(--cg-color-accent)}.commit-list[data-v-8c5ee761]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);overflow-y:auto}.commit-list[data-v-8c5ee761]::-webkit-scrollbar{width:8px}.commit-list[data-v-8c5ee761]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.commit-list[data-v-8c5ee761]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.commit-list[data-v-8c5ee761]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.commit-hash[data-v-7c333cc6]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);font-weight:var(--cg-font-weight-medium, 500);flex-shrink:0}.commit-item[data-v-dd7c621b]{display:flex;align-items:baseline;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle);position:relative;transition:background var(--cg-transition-fast),border-color var(--cg-transition-fast)}.commit-item[data-v-dd7c621b]:last-child{border-bottom:none}.commit-item.clickable[data-v-dd7c621b]{cursor:pointer}.commit-item.clickable[data-v-dd7c621b]:hover{background:var(--cg-color-bg-hover)}.commit-item:hover .commit-actions[data-v-dd7c621b]{opacity:1}.commit-message[data-v-dd7c621b]{flex:1;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.commit-date[data-v-dd7c621b]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);white-space:nowrap;flex-shrink:0;margin-right:32px}.commit-actions[data-v-dd7c621b]{position:absolute;right:var(--cg-space-2);top:50%;transform:translateY(-50%);opacity:0;transition:opacity .15s;display:flex;gap:var(--cg-space-1)}.header-info[data-v-2e5437cc]{flex:1;display:flex;flex-direction:column;gap:6px}.header-title[data-v-2e5437cc]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;font-weight:var(--cg-font-weight-normal)}.branch-name[data-v-2e5437cc]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-base);color:var(--cg-color-info);font-weight:var(--cg-font-weight-semibold)}.current-badge[data-v-2e5437cc]{display:inline-block;padding:2px 8px;background:transparent;border:1px solid var(--cg-color-accent);color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);width:fit-content}.branch-meta[data-v-2e5437cc]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);margin-bottom:var(--cg-space-3);display:flex;gap:var(--cg-space-2)}.meta-note[data-v-2e5437cc]{color:var(--cg-color-text-muted);font-style:italic}.loading[data-v-2e5437cc],.empty-state[data-v-2e5437cc]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.branch-commits[data-v-2e5437cc]{max-height:300px;overflow-y:auto}.footer-spacer[data-v-2e5437cc]{flex:1}.branch-list[data-v-eefdcb00]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.base-title[data-v-5a01561d]{font-weight:var(--cg-font-weight-normal)}.base-title.view[data-v-5a01561d]{color:var(--cg-color-accent);font-size:var(--cg-font-size-lg);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-weight:var(--cg-font-weight-semibold);margin:0 0 var(--cg-space-4) 0}.base-title.section[data-v-5a01561d]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-2) 0}.base-title.group[data-v-5a01561d]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-weight:var(--cg-font-weight-medium);margin:0 0 var(--cg-space-2) 0}.base-title.dialog[data-v-5a01561d]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0}.base-title-count[data-v-5a01561d]{margin-left:4px}.base-select-wrapper[data-v-4996bfe0]{display:inline-flex;flex-direction:column;gap:4px}.base-select-wrapper.full-width[data-v-4996bfe0]{width:100%}.base-select[data-v-4996bfe0]{padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);transition:all var(--cg-transition-fast);cursor:pointer;width:100%;overscroll-behavior:contain;scrollbar-gutter:stable}.base-select[data-v-4996bfe0]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-select[data-v-4996bfe0]:disabled{opacity:.5;cursor:not-allowed}.base-select.error[data-v-4996bfe0]{border-color:var(--cg-color-error)}.base-select-error[data-v-4996bfe0]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.base-select[data-v-4996bfe0]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='12' viewBox='0 0 12 12' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M2 4L6 8L10 4' stroke='%2300d9ff' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.popover-overlay[data-v-42815ace]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10004}.popover[data-v-42815ace]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);box-shadow:var(--cg-shadow-lg);width:90%;animation:popoverFadeIn-42815ace var(--cg-transition-normal)}@keyframes popoverFadeIn-42815ace{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.popover-header[data-v-42815ace]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-3) var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.popover-title[data-v-42815ace]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);margin:0}.popover-close[data-v-42815ace]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-lg);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast)}.popover-close[data-v-42815ace]:hover{color:var(--cg-color-text-primary)}.popover-content[data-v-42815ace]{padding:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);line-height:var(--cg-line-height-normal)}.popover-content[data-v-42815ace] p{margin:0 0 var(--cg-space-3) 0}.popover-content[data-v-42815ace] p:last-child{margin-bottom:0}.popover-content[data-v-42815ace] strong{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-semibold)}.popover-actions[data-v-42815ace]{padding:var(--cg-space-3) var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.empty-message[data-v-668728e6]{text-align:center;padding:var(--cg-space-4);color:var(--cg-color-text-muted)}.detail-section[data-v-668728e6]{margin-bottom:var(--cg-space-5)}.model-card[data-v-668728e6]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-3);margin-bottom:var(--cg-space-3)}.model-header[data-v-668728e6]{display:flex;align-items:center;gap:8px;margin-bottom:var(--cg-space-2)}.model-icon[data-v-668728e6]{font-size:var(--cg-font-size-lg)}.model-name[data-v-668728e6]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.model-details[data-v-668728e6]{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--cg-space-2)}.model-row[data-v-668728e6]{display:flex;align-items:center;gap:8px;font-size:var(--cg-font-size-sm)}.model-row .label[data-v-668728e6]{color:var(--cg-color-text-muted);min-width:80px;display:inline-flex;align-items:center;gap:4px}.model-row .value[data-v-668728e6]{color:var(--cg-color-text-secondary)}.model-row .value.success[data-v-668728e6]{color:var(--cg-color-success)}.model-row .value.error[data-v-668728e6]{color:var(--cg-color-error)}.model-row .value.warning[data-v-668728e6]{color:var(--cg-color-warning, #f59e0b)}.model-row .value.info[data-v-668728e6]{color:var(--cg-color-info, #3b82f6)}.model-row code[data-v-668728e6]{background:var(--cg-color-bg-secondary);padding:0 var(--cg-space-1);border-radius:var(--cg-radius-sm, 2px);font-family:var(--cg-font-mono, monospace);font-size:var(--cg-font-size-xs, 11px)}.model-row-nodes[data-v-668728e6]{align-items:flex-start}.node-list[data-v-668728e6]{display:flex;flex-direction:column;gap:4px;flex:1}.node-reference[data-v-668728e6]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);padding:2px 0}.expand-toggle[data-v-668728e6]{background:none;border:none;color:var(--cg-color-accent);cursor:pointer;font-size:var(--cg-font-size-sm);padding:4px 0;text-align:left;margin-top:2px}.expand-toggle[data-v-668728e6]:hover{text-decoration:underline}.model-actions[data-v-668728e6]{margin-top:var(--cg-space-2)}.importance-info-list[data-v-668728e6]{margin:0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);list-style-type:"• "}.importance-info-list li[data-v-668728e6]{margin-bottom:var(--cg-space-2)}.importance-info-list strong[data-v-668728e6]{color:var(--cg-color-accent)}.node-item[data-v-668728e6]{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);margin-bottom:4px;font-size:var(--cg-font-size-sm)}.node-status[data-v-668728e6]{font-weight:700;font-size:var(--cg-font-size-base)}.node-status.installed[data-v-668728e6]{color:var(--cg-color-success)}.node-status.missing[data-v-668728e6]{color:var(--cg-color-error)}.node-name[data-v-668728e6]{color:var(--cg-color-text-primary);flex:1}.node-version[data-v-668728e6]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.resolution-stepper[data-v-2a7b3af8]{display:flex;flex-direction:column;gap:0}.stepper-header[data-v-2a7b3af8]{display:flex;align-items:center;justify-content:space-between;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border-bottom:1px solid var(--cg-color-border)}.step[data-v-2a7b3af8]{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;position:relative;cursor:pointer;transition:opacity .2s}.step.disabled[data-v-2a7b3af8]{cursor:not-allowed;pointer-events:none}.step.disabled .step-indicator[data-v-2a7b3af8],.step.disabled .step-label[data-v-2a7b3af8]{opacity:.4}.step-indicator[data-v-2a7b3af8]{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--cg-color-bg-tertiary);border:2px solid var(--cg-color-border);color:var(--cg-color-text-muted);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-xs);transition:all .2s;position:relative;z-index:2}.step-indicator.state-pending[data-v-2a7b3af8]{background:var(--cg-color-bg-tertiary);border-color:var(--cg-color-border);color:var(--cg-color-text-muted)}.step-indicator.state-partial[data-v-2a7b3af8]{background:var(--cg-color-warning-muted);border-color:var(--cg-color-warning);color:var(--cg-color-warning)}.step-indicator.state-complete[data-v-2a7b3af8]{background:var(--cg-color-success);border-color:var(--cg-color-success);color:#fff}.step.active .step-indicator[data-v-2a7b3af8]{box-shadow:0 0 0 2px var(--cg-color-accent-muted);border-color:var(--cg-color-accent)}.step-label[data-v-2a7b3af8]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-align:center;font-weight:var(--cg-font-weight-medium)}.step.active .step-label[data-v-2a7b3af8]{color:var(--cg-color-text);font-weight:var(--cg-font-weight-semibold)}.step-connector[data-v-2a7b3af8]{position:absolute;top:14px;left:calc(50% + 14px);right:calc(-50% + 14px);height:2px;background:var(--cg-color-border);z-index:1}.stepper-content[data-v-2a7b3af8]{padding:var(--cg-space-2) var(--cg-space-3)}.confidence-badge[data-v-17ec4b80]{display:inline-flex;align-items:center;justify-content:center;padding:var(--cg-spacing-xs) var(--cg-spacing-sm);border-radius:var(--cg-border-radius-sm);font-weight:var(--cg-font-weight-semibold);white-space:nowrap}.confidence-badge.sm[data-v-17ec4b80]{font-size:var(--cg-font-size-xs);padding:2px var(--cg-spacing-xs)}.confidence-badge.md[data-v-17ec4b80]{font-size:var(--cg-font-size-sm)}.confidence-high[data-v-17ec4b80]{background-color:var(--cg-color-success-bg);color:var(--cg-color-success);border:1px solid var(--cg-color-success)}.confidence-medium[data-v-17ec4b80]{background-color:var(--cg-color-warning-bg);color:var(--cg-color-warning);border:1px solid var(--cg-color-warning)}.confidence-low[data-v-17ec4b80]{background-color:var(--cg-color-error-bg);color:var(--cg-color-error);border:1px solid var(--cg-color-error)}.node-resolution-item[data-v-c2997d1d]{border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);background:var(--cg-color-bg-secondary);overflow:hidden;transition:all var(--cg-transition-fast)}.node-resolution-item.ambiguous[data-v-c2997d1d]{border-color:var(--cg-color-warning)}.node-resolution-item.resolved[data-v-c2997d1d]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.node-info[data-v-c2997d1d]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);background:var(--cg-color-bg-tertiary);border-bottom:1px solid var(--cg-color-border-subtle)}.node-info-text[data-v-c2997d1d]{flex:1;min-width:0}.node-info code[data-v-c2997d1d]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.status-badge[data-v-c2997d1d]{padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);white-space:nowrap;flex-shrink:0}.status-badge.unresolved[data-v-c2997d1d]{background:var(--cg-color-error-muted);color:var(--cg-color-error)}.status-badge.ambiguous[data-v-c2997d1d]{background:var(--cg-color-warning-muted);color:var(--cg-color-warning)}.status-badge.resolved[data-v-c2997d1d]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.status-badge.optional[data-v-c2997d1d]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.status-badge.skip[data-v-c2997d1d]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.item-body[data-v-c2997d1d]{padding:var(--cg-space-3)}.resolved-state[data-v-c2997d1d]{display:flex;justify-content:center}.multiple-options[data-v-c2997d1d]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.options-prompt[data-v-c2997d1d]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.options-list[data-v-c2997d1d]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.option-card[data-v-c2997d1d]{display:flex;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-md);background:var(--cg-color-bg-primary);cursor:pointer;transition:all var(--cg-transition-fast)}.option-card[data-v-c2997d1d]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.option-card.selected[data-v-c2997d1d]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.option-card input[type=radio][data-v-c2997d1d]{margin-top:4px;accent-color:var(--cg-color-accent)}.option-content[data-v-c2997d1d]{flex:1;min-width:0}.option-header[data-v-c2997d1d]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.option-package-id[data-v-c2997d1d]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.option-title[data-v-c2997d1d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.option-meta[data-v-c2997d1d]{display:flex;gap:var(--cg-space-2);align-items:center;margin-top:var(--cg-space-1)}.installed-badge[data-v-c2997d1d]{padding:2px var(--cg-space-2);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);background:var(--cg-color-success-muted);color:var(--cg-color-success)}.action-buttons[data-v-c2997d1d]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);justify-content:flex-start;padding-top:var(--cg-space-2);border-top:1px solid var(--cg-color-border-subtle)}.unresolved[data-v-c2997d1d]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.unresolved-message[data-v-c2997d1d]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning);font-size:var(--cg-font-size-sm)}.warning-icon[data-v-c2997d1d]{font-size:var(--cg-font-size-lg)}.searching-state[data-v-c2997d1d]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.searching-spinner[data-v-c2997d1d]{width:16px;height:16px;border:2px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-c2997d1d .8s linear infinite}@keyframes spin-c2997d1d{to{transform:rotate(360deg)}}.option-description[data-v-c2997d1d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-top:2px}.item-navigator[data-v-74af7920]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-3);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);border:1px solid var(--cg-color-border-subtle)}.nav-item-info[data-v-74af7920]{display:flex;align-items:center;gap:var(--cg-space-2);flex:1;min-width:0;overflow:hidden}.item-name[data-v-74af7920]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-accent);background:var(--cg-color-bg-primary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default}.nav-controls[data-v-74af7920]{display:flex;align-items:center;gap:var(--cg-space-2);flex-shrink:0}.nav-arrows[data-v-74af7920]{display:flex;gap:4px}.nav-arrow[data-v-74af7920]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);width:48px;height:24px;border-radius:var(--cg-radius-sm);cursor:pointer;font-size:var(--cg-font-size-sm);display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast)}.nav-arrow[data-v-74af7920]:first-child{border-radius:var(--cg-radius-sm) 0 0 var(--cg-radius-sm)}.nav-arrow[data-v-74af7920]:last-child{border-radius:0 var(--cg-radius-sm) var(--cg-radius-sm) 0}.nav-arrow[data-v-74af7920]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.nav-arrow[data-v-74af7920]:disabled{opacity:.4;cursor:not-allowed}.nav-position[data-v-74af7920]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);color:var(--cg-color-text-muted);min-width:36px;text-align:right}.base-input-wrapper[data-v-9ba02cdc]{display:inline-flex;flex-direction:column;gap:4px}.base-input-wrapper.full-width[data-v-9ba02cdc]{width:100%}.base-input[data-v-9ba02cdc]{padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);transition:all var(--cg-transition-fast);width:100%}.base-input[data-v-9ba02cdc]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-input[data-v-9ba02cdc]:disabled{opacity:.5;cursor:not-allowed}.base-input.error[data-v-9ba02cdc]{border-color:var(--cg-color-error)}.base-input-error[data-v-9ba02cdc]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.node-resolution-step[data-v-6d7f8125]{display:flex;flex-direction:column;gap:var(--cg-space-2);min-height:400px}.auto-resolved-section[data-v-6d7f8125]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-header[data-v-6d7f8125]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3)}.section-info[data-v-6d7f8125]{flex:1}.section-title[data-v-6d7f8125]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.section-description[data-v-6d7f8125]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:2px 0 0}.resolved-packages-list[data-v-6d7f8125]{display:flex;flex-direction:column;gap:var(--cg-space-1);max-height:200px;overflow-y:auto}.resolved-package-item[data-v-6d7f8125]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);border-left:3px solid var(--cg-color-success)}.package-info[data-v-6d7f8125]{display:flex;align-items:center;gap:var(--cg-space-3)}.package-id[data-v-6d7f8125]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-accent)}.node-count[data-v-6d7f8125]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.package-actions[data-v-6d7f8125]{display:flex;align-items:center;gap:var(--cg-space-2)}.status-badge[data-v-6d7f8125]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);padding:2px 6px;border-radius:var(--cg-radius-sm);text-transform:uppercase;letter-spacing:.05em}.status-badge.install[data-v-6d7f8125]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.status-badge.skip[data-v-6d7f8125]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.toggle-skip-btn[data-v-6d7f8125]{font-size:var(--cg-font-size-xs);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-sm);color:var(--cg-color-text-secondary);cursor:pointer;transition:all var(--cg-transition-fast)}.toggle-skip-btn[data-v-6d7f8125]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-text-primary)}.section-divider[data-v-6d7f8125]{height:1px;background:var(--cg-color-border);margin:var(--cg-space-2) 0}.step-header[data-v-6d7f8125]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.step-info[data-v-6d7f8125]{flex:1}.step-title[data-v-6d7f8125]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.step-description[data-v-6d7f8125]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:2px 0 0}.stat-badge[data-v-6d7f8125]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);padding:4px 8px;border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border-subtle);white-space:nowrap}.step-body[data-v-6d7f8125]{flex:1;overflow-y:auto}.empty-state[data-v-6d7f8125]{flex:1;display:flex;align-items:center;justify-content:center;color:var(--cg-color-text-muted)}.node-resolution-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10010}.node-search-modal{width:90%;max-width:500px;height:75vh;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.node-manual-entry-modal{width:90%;max-width:500px;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.node-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.node-modal-header h4{margin:0;font-size:14px;font-weight:600;color:var(--cg-color-text-primary, #fff)}.node-modal-close-btn{background:none;border:none;font-size:18px;color:var(--cg-color-text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.node-modal-close-btn:hover{color:var(--cg-color-text-primary, #fff);background:var(--cg-color-bg-hover, #333)}.node-modal-body{padding:16px;flex:1;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}.node-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.node-search-result-item{padding:8px 12px;border:1px solid var(--cg-color-border-subtle, #444);border-radius:6px;background:var(--cg-color-bg-secondary, #252542);cursor:pointer;transition:all .15s ease}.node-search-result-item:hover{border-color:var(--cg-color-accent, #7c3aed);background:var(--cg-color-bg-hover, #333)}.node-result-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.node-result-package-id{font-family:var(--cg-font-mono, monospace);font-weight:600;font-size:13px;color:var(--cg-color-accent, #7c3aed)}.node-result-description{font-size:12px;color:var(--cg-color-text-muted, #888)}.node-search-results-container{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.node-search-results{flex:1;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.node-empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--cg-color-text-muted, #888);font-size:13px}.model-resolution-item[data-v-8a82fefa]{border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);background:var(--cg-color-bg-secondary);overflow:hidden;transition:all var(--cg-transition-fast)}.model-resolution-item.ambiguous[data-v-8a82fefa]{border-color:var(--cg-color-warning)}.model-resolution-item.resolved[data-v-8a82fefa]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.node-info[data-v-8a82fefa]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);background:var(--cg-color-bg-tertiary);border-bottom:1px solid var(--cg-color-border-subtle)}.node-info-text[data-v-8a82fefa]{flex:1;min-width:0}.node-info code[data-v-8a82fefa]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.status-badge[data-v-8a82fefa]{padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);white-space:nowrap;flex-shrink:0}.status-badge.unresolved[data-v-8a82fefa]{background:var(--cg-color-error-muted);color:var(--cg-color-error)}.status-badge.ambiguous[data-v-8a82fefa]{background:var(--cg-color-warning-muted);color:var(--cg-color-warning)}.status-badge.resolved[data-v-8a82fefa]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.status-badge.optional[data-v-8a82fefa]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.status-badge.skip[data-v-8a82fefa]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.item-body[data-v-8a82fefa]{padding:var(--cg-space-3)}.resolved-state[data-v-8a82fefa]{display:flex;justify-content:center}.multiple-options[data-v-8a82fefa]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.options-prompt[data-v-8a82fefa]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.options-list[data-v-8a82fefa]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.option-card[data-v-8a82fefa]{display:flex;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-md);background:var(--cg-color-bg-primary);cursor:pointer;transition:all var(--cg-transition-fast)}.option-card[data-v-8a82fefa]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.option-card.selected[data-v-8a82fefa]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.option-card input[type=radio][data-v-8a82fefa]{margin-top:4px;accent-color:var(--cg-color-accent)}.option-content[data-v-8a82fefa]{flex:1;min-width:0}.option-header[data-v-8a82fefa]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.option-filename[data-v-8a82fefa]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.option-meta[data-v-8a82fefa]{display:flex;gap:var(--cg-space-2);align-items:center;margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs)}.option-size[data-v-8a82fefa]{font-family:var(--cg-font-mono);color:var(--cg-color-text-muted)}.option-category[data-v-8a82fefa]{color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.option-path[data-v-8a82fefa]{margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);color:var(--cg-color-text-muted)}.action-buttons[data-v-8a82fefa]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);justify-content:flex-start;padding-top:var(--cg-space-2);border-top:1px solid var(--cg-color-border-subtle)}.unresolved[data-v-8a82fefa]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.unresolved-message[data-v-8a82fefa]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning);font-size:var(--cg-font-size-sm)}.warning-icon[data-v-8a82fefa]{font-size:var(--cg-font-size-lg)}.model-resolution-step[data-v-5c700bfa]{display:flex;flex-direction:column;gap:var(--cg-space-2);min-height:400px}.step-header[data-v-5c700bfa]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.step-info[data-v-5c700bfa]{flex:1}.step-title[data-v-5c700bfa]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin:0}.step-description[data-v-5c700bfa]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:2px 0 0}.stat-badge[data-v-5c700bfa]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);padding:4px 8px;border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border-subtle);white-space:nowrap}.step-body[data-v-5c700bfa]{flex:1;overflow-y:auto}.empty-state[data-v-5c700bfa]{flex:1;display:flex;align-items:center;justify-content:center;color:var(--cg-color-text-muted)}.model-resolution-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10010}.model-search-modal,.model-download-url-modal{width:90%;max-width:500px;max-height:80vh;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.model-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.model-modal-header h4{margin:0;font-size:14px;font-weight:600;color:var(--cg-color-text-primary, #fff)}.model-modal-close-btn{background:none;border:none;font-size:18px;color:var(--cg-color-text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.model-modal-close-btn:hover{color:var(--cg-color-text-primary, #fff);background:var(--cg-color-bg-hover, #333)}.model-modal-body{padding:16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:12px}.model-input-group{display:flex;flex-direction:column;gap:4px}.model-input-label{font-size:12px;font-weight:500;color:var(--cg-color-text-secondary, #aaa)}.model-modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.model-search-results{display:flex;flex-direction:column;gap:8px}.model-search-result-item{padding:8px 12px;border:1px solid var(--cg-color-border-subtle, #444);border-radius:6px;background:var(--cg-color-bg-secondary, #252542);cursor:pointer;transition:all .15s ease}.model-search-result-item:hover{border-color:var(--cg-color-accent, #7c3aed);background:var(--cg-color-bg-hover, #333)}.model-result-header{margin-bottom:4px}.model-result-filename{font-family:var(--cg-font-mono, monospace);font-weight:600;font-size:13px;color:var(--cg-color-accent, #7c3aed)}.model-result-meta{display:flex;gap:8px;font-size:12px;color:var(--cg-color-text-muted, #888);margin-bottom:4px}.model-result-category{text-transform:uppercase;letter-spacing:.05em}.model-result-size{font-family:var(--cg-font-mono, monospace)}.model-result-path{font-size:12px;font-family:var(--cg-font-mono, monospace);color:var(--cg-color-text-muted, #888)}.model-no-results,.model-searching{padding:16px;text-align:center;color:var(--cg-color-text-muted, #888);font-size:13px}.applying-step[data-v-5efaae58]{padding:var(--cg-space-4)}.phase-content[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.phase-header[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-3)}.phase-icon[data-v-5efaae58]{font-size:var(--cg-font-size-xl)}.phase-icon.success[data-v-5efaae58]{color:var(--cg-color-success)}.phase-icon.error[data-v-5efaae58]{color:var(--cg-color-error)}.phase-icon.warning[data-v-5efaae58]{color:var(--cg-color-warning)}.phase-title[data-v-5efaae58]{margin:0;font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.phase-description[data-v-5efaae58]{margin:0;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.loading-spinner[data-v-5efaae58]{width:24px;height:24px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-5efaae58 .8s linear infinite}@keyframes spin-5efaae58{to{transform:rotate(360deg)}}.completion-summary[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.summary-item[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm)}.summary-item.success[data-v-5efaae58]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.summary-item.info[data-v-5efaae58]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.summary-note[data-v-5efaae58]{margin:0;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.summary-icon[data-v-5efaae58]{font-size:var(--cg-font-size-base)}.phase-content.error .error-message[data-v-5efaae58]{margin:0;padding:var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md);color:var(--cg-color-error);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.summary-item.error[data-v-5efaae58]{background:var(--cg-color-error-muted);color:var(--cg-color-error)}.overall-progress[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-3);margin-bottom:var(--cg-space-2)}.progress-bar[data-v-5efaae58]{flex:1;height:6px;background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-full);overflow:hidden}.progress-fill[data-v-5efaae58]{height:100%;background:var(--cg-color-accent);border-radius:var(--cg-radius-full);transition:width var(--cg-transition-fast)}.progress-label[data-v-5efaae58]{font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);color:var(--cg-color-text-muted);white-space:nowrap}.install-list[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);max-height:150px;overflow-y:auto}.install-item[data-v-5efaae58]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);border-left:3px solid transparent}.install-item.pending[data-v-5efaae58]{border-left-color:var(--cg-color-border)}.install-item.installing[data-v-5efaae58]{border-left-color:var(--cg-color-accent);background:var(--cg-color-bg-tertiary)}.install-item.complete[data-v-5efaae58]{border-left-color:var(--cg-color-success)}.install-item.failed[data-v-5efaae58]{border-left-color:var(--cg-color-error)}.install-icon[data-v-5efaae58]{width:16px;text-align:center}.install-item.pending .install-icon[data-v-5efaae58]{color:var(--cg-color-text-muted)}.install-item.installing .install-icon[data-v-5efaae58]{color:var(--cg-color-accent)}.install-item.complete .install-icon[data-v-5efaae58]{color:var(--cg-color-success)}.install-item.failed .install-icon[data-v-5efaae58]{color:var(--cg-color-error)}.install-icon .spinner[data-v-5efaae58]{display:inline-block;animation:spin-5efaae58 1s linear infinite}.install-item code[data-v-5efaae58]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary)}.install-error[data-v-5efaae58]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error);margin-left:auto}.restart-prompt[data-v-5efaae58]{margin-top:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.restart-warning[data-v-5efaae58]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning)}.restart-warning .warning-icon[data-v-5efaae58]{font-size:var(--cg-font-size-lg);flex-shrink:0}.restart-warning .warning-content[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.restart-warning .warning-content strong[data-v-5efaae58]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold)}.restart-warning .warning-content p[data-v-5efaae58]{margin:0;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.restart-button[data-v-5efaae58]{align-self:flex-end;padding:var(--cg-space-2) var(--cg-space-4);background:var(--cg-color-warning);color:var(--cg-color-bg-primary);border:none;border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);cursor:pointer;transition:all var(--cg-transition-fast)}.restart-button[data-v-5efaae58]:hover{filter:brightness(1.1)}.failed-list[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-2);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md);max-height:150px;overflow-y:auto}.failed-item[data-v-5efaae58]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-primary);border-radius:var(--cg-radius-sm)}.failed-node-id[data-v-5efaae58]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-error)}.failed-error[data-v-5efaae58]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);word-break:break-word}.retry-button[data-v-5efaae58]{align-self:flex-start;margin-top:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-4);background:var(--cg-color-accent);color:var(--cg-color-bg-primary);border:none;border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);cursor:pointer;transition:all var(--cg-transition-fast)}.retry-button[data-v-5efaae58]:hover{filter:brightness(1.1)}.loading-state[data-v-40d8d5a8]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--cg-space-8);gap:var(--cg-space-3);color:var(--cg-color-text-muted)}.loading-spinner[data-v-40d8d5a8]{width:32px;height:32px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-40d8d5a8 .8s linear infinite}@keyframes spin-40d8d5a8{to{transform:rotate(360deg)}}.wizard-content[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:0}.step-content[data-v-40d8d5a8]{padding:var(--cg-space-3)}.analysis-summary[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.analysis-header[data-v-40d8d5a8],.review-header[data-v-40d8d5a8]{margin-bottom:var(--cg-space-2)}.summary-title[data-v-40d8d5a8]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-semibold);margin:0 0 var(--cg-space-1) 0}.summary-description[data-v-40d8d5a8]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin:0}.stats-grid[data-v-40d8d5a8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--cg-space-3)}.stat-card[data-v-40d8d5a8]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);padding:var(--cg-space-3)}.stat-header[data-v-40d8d5a8]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin-bottom:var(--cg-space-2)}.stat-items[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.stat-item[data-v-40d8d5a8]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.stat-item.success[data-v-40d8d5a8]{color:var(--cg-color-success)}.stat-item.warning[data-v-40d8d5a8]{color:var(--cg-color-warning)}.stat-item.error[data-v-40d8d5a8]{color:var(--cg-color-error)}.stat-item.info[data-v-40d8d5a8]{color:var(--cg-color-info)}.stat-icon[data-v-40d8d5a8]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-bold)}.stat-count[data-v-40d8d5a8]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold)}.stat-label[data-v-40d8d5a8]{color:inherit;opacity:.8}.status-message[data-v-40d8d5a8]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-sm)}.status-message.warning[data-v-40d8d5a8]{background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);color:var(--cg-color-warning)}.status-message.success[data-v-40d8d5a8]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);color:var(--cg-color-success)}.status-message.info[data-v-40d8d5a8]{background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);color:var(--cg-color-info)}.status-icon[data-v-40d8d5a8]{font-size:var(--cg-font-size-lg)}.category-mismatch-section[data-v-40d8d5a8]{margin-top:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md)}.section-subtitle[data-v-40d8d5a8]{color:var(--cg-color-warning);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);margin:0 0 var(--cg-space-2) 0}.mismatch-list[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.mismatch-item[data-v-40d8d5a8]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);flex-wrap:wrap}.mismatch-path[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-error)}.mismatch-arrow[data-v-40d8d5a8]{color:var(--cg-color-text-muted)}.mismatch-target[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-success)}.review-summary[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.review-stats[data-v-40d8d5a8]{display:flex;gap:var(--cg-space-4);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-lg)}.review-stat[data-v-40d8d5a8]{display:flex;flex-direction:column;align-items:center;flex:1}.review-stat .stat-value[data-v-40d8d5a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);color:var(--cg-color-text-primary)}.review-stat .stat-label[data-v-40d8d5a8]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.review-section[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-40d8d5a8]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0;padding-bottom:var(--cg-space-1);border-bottom:1px solid var(--cg-color-border-subtle)}.review-items[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.review-item[data-v-40d8d5a8]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.item-name[data-v-40d8d5a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:60%}.item-choice[data-v-40d8d5a8]{display:flex;gap:var(--cg-space-2)}.choice-badge[data-v-40d8d5a8]{padding:var(--cg-space-1) var(--cg-space-2);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);border-radius:var(--cg-radius-sm)}.choice-badge.install[data-v-40d8d5a8],.choice-badge.download[data-v-40d8d5a8]{background:var(--cg-color-success-muted);color:var(--cg-color-success)}.choice-badge.optional[data-v-40d8d5a8]{background:var(--cg-color-info-muted);color:var(--cg-color-info)}.choice-badge.skip[data-v-40d8d5a8]{background:var(--cg-color-bg-hover);color:var(--cg-color-text-muted)}.choice-badge.pending[data-v-40d8d5a8]{background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-muted);font-style:italic}.no-choices[data-v-40d8d5a8]{padding:var(--cg-space-4);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-md);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center}.download-details .download-item[data-v-40d8d5a8]{flex-direction:column;align-items:flex-start;gap:var(--cg-space-2)}.download-info[data-v-40d8d5a8]{display:flex;flex-direction:column;gap:var(--cg-space-1);width:100%}.download-meta[data-v-40d8d5a8]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.download-path[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.download-url[data-v-40d8d5a8]{font-family:var(--cg-font-mono);color:var(--cg-color-info);cursor:help;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.footer-spacer[data-v-40d8d5a8]{flex:1}.search-input-wrapper[data-v-266f857a]{position:relative;width:100%}.search-input[data-v-266f857a]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);padding-right:var(--cg-space-8);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.search-input[data-v-266f857a]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 8px var(--cg-shadow-accent)}.clear-button[data-v-266f857a]{position:absolute;right:var(--cg-space-2);top:50%;transform:translateY(-50%);background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:var(--cg-space-1);font-size:var(--cg-font-size-sm);display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.clear-button[data-v-266f857a]:hover{color:var(--cg-color-text-primary)}.search-bar[data-v-3d51bbfd]{margin-bottom:var(--cg-space-2)}.section-group[data-v-c48e33ed]{margin-bottom:var(--cg-space-4)}.section-content[data-v-c48e33ed]{margin-top:var(--cg-space-2)}.item-card[data-v-cc435e0e]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-3);margin-bottom:var(--cg-space-2);border-left-width:3px;border-left-color:transparent}.item-card.compact[data-v-cc435e0e]{padding:var(--cg-space-2)}.item-card.clickable[data-v-cc435e0e]{cursor:pointer}.item-card.clickable[data-v-cc435e0e]:hover{background:var(--cg-color-bg-hover)}.item-card.status-broken[data-v-cc435e0e]{border-left-color:var(--cg-color-error)}.item-card.status-new[data-v-cc435e0e]{border-left-color:var(--cg-color-info)}.item-card.status-modified[data-v-cc435e0e]{border-left-color:var(--cg-color-warning)}.item-card.status-synced[data-v-cc435e0e]{border-left-color:var(--cg-color-success)}.item-card.status-missing[data-v-cc435e0e]{border-left-color:var(--cg-color-warning)}.item-card.status-deleted[data-v-cc435e0e]{border-left-color:var(--cg-color-error)}.item-header[data-v-cc435e0e]{display:flex;align-items:flex-start;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.item-header[data-v-cc435e0e]:last-child{margin-bottom:0}.item-icon[data-v-cc435e0e]{font-size:var(--cg-font-size-xl);flex-shrink:0}.item-info[data-v-cc435e0e]{flex:1;min-width:0}.item-title[data-v-cc435e0e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);margin-bottom:var(--cg-space-1)}.item-subtitle[data-v-cc435e0e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.item-details[data-v-cc435e0e]{display:flex;flex-direction:column;gap:var(--cg-space-1);margin-bottom:var(--cg-space-2)}.item-details[data-v-cc435e0e]:last-child{margin-bottom:0}.item-actions[data-v-cc435e0e]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.loading-state[data-v-ad8436c9]{text-align:center;padding:var(--cg-space-8) var(--cg-space-6);color:var(--cg-color-text-muted);display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-3)}.spinner[data-v-ad8436c9]{width:32px;height:32px;border:3px solid var(--cg-color-border-subtle);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-ad8436c9 .8s linear infinite}@keyframes spin-ad8436c9{to{transform:rotate(360deg)}}.loading-message[data-v-ad8436c9]{font-size:var(--cg-font-size-sm);margin:0}.error-state[data-v-5397be48]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-error);border:1px solid var(--cg-color-error);background:transparent;display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-3)}.error-icon[data-v-5397be48]{font-size:var(--cg-font-size-2xl)}.error-message[data-v-5397be48]{font-size:var(--cg-font-size-sm);margin:0}.summary-bar[data-v-ccb7816e]{padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin-bottom:var(--cg-space-4)}.summary-bar.compact[data-v-ccb7816e]{padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-xs)}.model-details[data-v-f15cbb56]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.detail-section[data-v-f15cbb56]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);padding:var(--cg-space-3)}.section-header[data-v-f15cbb56]{color:var(--cg-color-accent);text-transform:uppercase;font-size:var(--cg-font-size-xs);letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-2) 0;padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.detail-row[data-v-f15cbb56]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-1) 0}.detail-label[data-v-f15cbb56]{color:var(--cg-color-text-muted);min-width:100px;font-size:var(--cg-font-size-sm)}.detail-value[data-v-f15cbb56]{color:var(--cg-color-text-primary);flex:1;word-break:break-all}.detail-value.mono[data-v-f15cbb56]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.copy-btn[data-v-f15cbb56]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);padding:2px 8px;font-size:var(--cg-font-size-xs);cursor:pointer}.copy-btn[data-v-f15cbb56]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent);border-color:var(--cg-color-accent)}.locations-list[data-v-f15cbb56],.sources-list[data-v-f15cbb56]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.location-item[data-v-f15cbb56]{display:flex;flex-direction:column;gap:2px;padding:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border-left:2px solid var(--cg-color-accent)}.location-path[data-v-f15cbb56]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);word-break:break-all}.location-modified[data-v-f15cbb56]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.source-item[data-v-f15cbb56]{display:flex;gap:var(--cg-space-2);align-items:center}.source-type[data-v-f15cbb56]{color:var(--cg-color-text-muted);text-transform:capitalize;flex-shrink:0}.source-url[data-v-f15cbb56]{color:var(--cg-color-accent);word-break:break-all;font-size:var(--cg-font-size-sm);flex:1}.remove-source-btn[data-v-f15cbb56]{background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);width:20px;height:20px;font-size:14px;line-height:1;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}.remove-source-btn[data-v-f15cbb56]:hover:not(:disabled){background:var(--cg-color-error, #ef4444);border-color:var(--cg-color-error, #ef4444);color:#fff}.remove-source-btn[data-v-f15cbb56]:disabled{opacity:.5;cursor:not-allowed}.empty-state[data-v-f15cbb56]{color:var(--cg-color-text-muted);font-style:italic;padding:var(--cg-space-2)}.add-source-form[data-v-f15cbb56]{display:flex;gap:var(--cg-space-2);margin-top:var(--cg-space-3)}.source-input[data-v-f15cbb56]{flex:1;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);padding:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.source-input[data-v-f15cbb56]::placeholder{color:var(--cg-color-text-muted)}.source-input[data-v-f15cbb56]:focus{outline:none;border-color:var(--cg-color-accent)}.add-source-btn[data-v-f15cbb56]{background:var(--cg-color-accent);border:none;color:var(--cg-color-bg-primary);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm);cursor:pointer;white-space:nowrap}.add-source-btn[data-v-f15cbb56]:disabled{opacity:.5;cursor:not-allowed}.add-source-btn[data-v-f15cbb56]:not(:disabled):hover{filter:brightness(1.1)}.source-error[data-v-f15cbb56]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin-top:var(--cg-space-2)}.source-success[data-v-f15cbb56]{color:var(--cg-color-success);font-size:var(--cg-font-size-sm);margin-top:var(--cg-space-2)}.btn-secondary[data-v-f15cbb56]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);padding:var(--cg-space-2) var(--cg-space-4);cursor:pointer}.btn-secondary[data-v-f15cbb56]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent)}.open-location-btn[data-v-f15cbb56]{margin-top:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);padding:4px 12px;font-size:var(--cg-font-size-xs);cursor:pointer;align-self:flex-start}.open-location-btn[data-v-f15cbb56]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent);border-color:var(--cg-color-accent)}.toast[data-v-f15cbb56]{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-accent);color:var(--cg-color-text-primary);padding:10px 20px;font-size:var(--cg-font-size-sm);z-index:10010;animation:toastSlideIn-f15cbb56 .2s ease}.toast.success[data-v-f15cbb56]{border-color:var(--cg-color-success, #4ade80)}.toast.error[data-v-f15cbb56]{border-color:var(--cg-color-error, #ef4444)}.toast.info[data-v-f15cbb56]{border-color:var(--cg-color-accent)}@keyframes toastSlideIn-f15cbb56{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.base-dropdown[data-v-857e085b]{position:relative;display:inline-flex;flex-direction:column;gap:4px}.dropdown-trigger[data-v-857e085b]{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);cursor:pointer;width:100%;text-align:left;transition:all var(--cg-transition-fast)}.dropdown-trigger[data-v-857e085b]:hover:not(:disabled){border-color:var(--cg-color-accent)}.dropdown-trigger[data-v-857e085b]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.dropdown-trigger[data-v-857e085b]:disabled{opacity:.5;cursor:not-allowed}.dropdown-trigger.open[data-v-857e085b]{border-color:var(--cg-color-accent)}.dropdown-trigger.error[data-v-857e085b]{border-color:var(--cg-color-error)}.dropdown-value[data-v-857e085b]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-arrow[data-v-857e085b]{font-size:10px;color:var(--cg-color-accent);transition:transform .15s ease}.dropdown-trigger.open .dropdown-arrow[data-v-857e085b]{transform:rotate(180deg)}.dropdown-overlay[data-v-857e085b]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10010}.dropdown-menu[data-v-857e085b]{position:fixed;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);box-shadow:var(--cg-shadow-lg);overflow-y:auto;overflow-x:hidden;z-index:10011;padding:4px 0}.dropdown-menu[data-v-857e085b]::-webkit-scrollbar{width:8px}.dropdown-menu[data-v-857e085b]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.dropdown-menu[data-v-857e085b]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border-radius:4px}.dropdown-menu[data-v-857e085b]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.dropdown-option[data-v-857e085b]{padding:8px 12px;cursor:pointer;font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);color:var(--cg-color-text-primary);transition:background-color .1s ease}.dropdown-option[data-v-857e085b]:hover{background:var(--cg-color-bg-hover)}.dropdown-option.selected[data-v-857e085b]{background:var(--cg-color-accent-muted);color:var(--cg-color-accent)}.dropdown-error[data-v-857e085b]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.hf-file-browser[data-v-183acebc]{display:flex;flex-direction:column;gap:var(--cg-space-3);height:100%}.browser-header[data-v-183acebc]{display:flex;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border)}.back-btn[data-v-183acebc]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-secondary);padding:6px 10px;font-size:var(--cg-font-size-sm);cursor:pointer;display:flex;align-items:center;justify-content:center}.back-btn[data-v-183acebc]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.repo-info[data-v-183acebc]{display:flex;align-items:center;gap:var(--cg-space-2);flex:1}.repo-id[data-v-183acebc]{color:var(--cg-color-accent);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium)}.revision-pill[data-v-183acebc]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);padding:2px 8px;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-family:var(--cg-font-mono)}.loading-state[data-v-183acebc],.error-state[data-v-183acebc]{padding:var(--cg-space-4);text-align:center;color:var(--cg-color-text-muted)}.error-state[data-v-183acebc]{color:var(--cg-color-error)}.toolbar[data-v-183acebc]{display:flex;gap:var(--cg-space-2);align-items:center;flex-wrap:wrap}.search-input[data-v-183acebc]{flex:1;min-width:200px}.toolbar-actions[data-v-183acebc]{display:flex;gap:var(--cg-space-2)}.toggle-btn[data-v-183acebc],.action-btn[data-v-183acebc]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-secondary);padding:6px 12px;font-size:var(--cg-font-size-xs);cursor:pointer;white-space:nowrap}.toggle-btn[data-v-183acebc]:hover,.action-btn[data-v-183acebc]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.toggle-btn.active[data-v-183acebc]{background:var(--cg-color-accent);color:var(--cg-color-text-inverse);border-color:var(--cg-color-accent)}.file-list-container[data-v-183acebc]{flex:1;min-height:0;max-height:300px;overflow-y:auto;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border)}.file-list-container[data-v-183acebc]::-webkit-scrollbar{width:8px}.file-list-container[data-v-183acebc]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.file-list-container[data-v-183acebc]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.file-list-container[data-v-183acebc]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.file-list-header[data-v-183acebc]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border-bottom:1px solid var(--cg-color-border);position:sticky;top:0;z-index:1}.header-name[data-v-183acebc],.header-size[data-v-183acebc]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--cg-space-1)}.header-name[data-v-183acebc]:hover,.header-size[data-v-183acebc]:hover{color:var(--cg-color-accent)}.header-name[data-v-183acebc]{flex:1}.header-size[data-v-183acebc]{white-space:nowrap}.sort-indicator[data-v-183acebc]{font-size:10px;color:var(--cg-color-accent);min-width:10px}.file-list[data-v-183acebc]{display:flex;flex-direction:column}.file-item[data-v-183acebc]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);cursor:pointer;border-bottom:1px solid var(--cg-color-border-subtle)}.file-item[data-v-183acebc]:last-child{border-bottom:none}.file-item[data-v-183acebc]:hover{background:var(--cg-color-bg-hover)}.file-item.selected[data-v-183acebc]{background:var(--cg-color-accent-muted)}.file-checkbox[data-v-183acebc]{cursor:pointer;accent-color:var(--cg-color-accent)}.file-path[data-v-183acebc]{flex:1;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);word-break:break-all;color:var(--cg-color-text-primary)}.file-size[data-v-183acebc]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);white-space:nowrap}.empty-state[data-v-183acebc]{padding:var(--cg-space-4);text-align:center;color:var(--cg-color-text-muted);font-style:italic}.destination-section[data-v-183acebc]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);padding:var(--cg-space-3)}.section-label[data-v-183acebc]{color:var(--cg-color-accent);text-transform:uppercase;font-size:var(--cg-font-size-xs);letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-2) 0}.destination-row[data-v-183acebc]{display:flex;align-items:center;gap:var(--cg-space-2)}.dest-select[data-v-183acebc]{min-width:220px}.path-separator[data-v-183acebc]{color:var(--cg-color-text-muted);font-family:var(--cg-font-mono)}.dest-subfolder[data-v-183acebc]{flex:1}.dest-custom[data-v-183acebc]{margin-top:var(--cg-space-2)}.action-bar[data-v-183acebc]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-3)}.summary-info[data-v-183acebc]{display:flex;align-items:center;gap:var(--cg-space-3)}.summary-count[data-v-183acebc]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.summary-size[data-v-183acebc]{color:var(--cg-color-accent);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.token-config-modal[data-v-0687d0ce]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.provider-info[data-v-0687d0ce]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-lg);font-weight:var(--cg-font-weight-medium)}.current-token[data-v-0687d0ce]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-border-radius)}.current-token .label[data-v-0687d0ce]{color:var(--cg-color-text-secondary)}.current-token .mask[data-v-0687d0ce]{font-family:var(--cg-font-mono);flex:1}.token-input-section[data-v-0687d0ce]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.input-label[data-v-0687d0ce]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.help-text[data-v-0687d0ce]{font-size:var(--cg-font-size-xs)}.help-text a[data-v-0687d0ce]{color:var(--cg-color-accent)}.modal-actions[data-v-0687d0ce]{display:flex;justify-content:flex-end;gap:var(--cg-space-2)}.huggingface-tab[data-v-e13209bf]{display:flex;flex-direction:column;gap:var(--cg-space-3);height:100%}.search-section[data-v-e13209bf]{flex-shrink:0}.search-header[data-v-e13209bf]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-2)}.search-bar[data-v-e13209bf]{display:flex;gap:var(--cg-space-2);flex:1}.search-bar[data-v-e13209bf] .base-input-wrapper{flex:1}.search-results[data-v-e13209bf]{flex:1;min-height:0;overflow-y:auto}.loading-state[data-v-e13209bf],.error-state[data-v-e13209bf],.empty-state[data-v-e13209bf],.hint-state[data-v-e13209bf]{padding:var(--cg-space-4);text-align:center;color:var(--cg-color-text-muted)}.error-state[data-v-e13209bf]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2)}.error-state p[data-v-e13209bf]{color:var(--cg-color-error);margin:0}.hint-state[data-v-e13209bf]{font-style:italic}.results-list[data-v-e13209bf]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.repo-card[data-v-e13209bf]{background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);padding:var(--cg-space-3);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.repo-card[data-v-e13209bf]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.repo-header[data-v-e13209bf]{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--cg-space-2);margin-bottom:var(--cg-space-1)}.repo-id[data-v-e13209bf]{color:var(--cg-color-accent);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);word-break:break-all}.repo-stats[data-v-e13209bf]{display:flex;gap:var(--cg-space-3);flex-shrink:0}.stat[data-v-e13209bf]{display:flex;align-items:center;gap:var(--cg-space-1);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);white-space:nowrap}.stat-icon[data-v-e13209bf]{font-size:var(--cg-font-size-xs)}.repo-desc[data-v-e13209bf]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);margin:0 0 var(--cg-space-2) 0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.repo-tags[data-v-e13209bf]{display:flex;flex-wrap:wrap;gap:var(--cg-space-1)}.tag[data-v-e13209bf]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);padding:2px 6px}.search-results[data-v-e13209bf]::-webkit-scrollbar{width:8px}.search-results[data-v-e13209bf]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.search-results[data-v-e13209bf]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.search-results[data-v-e13209bf]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.civitai-tab[data-v-44948051]{display:flex;align-items:center;justify-content:center;min-height:300px;padding:var(--cg-space-4)}.placeholder[data-v-44948051]{text-align:center;color:var(--cg-color-text-muted)}.placeholder .icon[data-v-44948051]{font-size:48px;margin-bottom:var(--cg-space-3)}.placeholder h3[data-v-44948051]{color:var(--cg-color-text-secondary);margin:0 0 var(--cg-space-2) 0}.placeholder p[data-v-44948051]{margin:0;font-size:var(--cg-font-size-sm)}.direct-url-tab[data-v-01def7aa]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.input-group[data-v-01def7aa]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.input-group label[data-v-01def7aa]{font-weight:var(--cg-font-weight-medium);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.error[data-v-01def7aa]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin:0}.note[data-v-01def7aa]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin:0}.actions[data-v-01def7aa]{display:flex;justify-content:flex-end;margin-top:var(--cg-space-2)}.download-modal[data-v-90a9f401]{display:flex;flex-direction:column;height:100%}.tab-bar[data-v-90a9f401]{display:flex;gap:var(--cg-space-1);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border);margin-bottom:var(--cg-space-3)}.tab-btn[data-v-90a9f401]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-secondary);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm);cursor:pointer;transition:all .15s ease}.tab-btn[data-v-90a9f401]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.tab-btn.active[data-v-90a9f401]{background:var(--cg-color-accent);border-color:var(--cg-color-accent);color:var(--cg-color-text-inverse)}.tab-content[data-v-90a9f401]{flex:1;min-height:0;overflow-y:auto}.indexing-progress[data-v-3705114c]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);padding:var(--cg-space-2) var(--cg-space-3);margin-bottom:var(--cg-space-2)}.progress-info[data-v-3705114c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cg-space-1)}.progress-label[data-v-3705114c]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.progress-count[data-v-3705114c]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.progress-bar[data-v-3705114c]{height:4px;background:var(--cg-color-bg-hover);border-radius:2px;overflow:hidden}.progress-fill[data-v-3705114c]{height:100%;background:var(--cg-color-accent);transition:width .2s ease}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10010}.modal-content{width:90%;max-width:500px;background:var(--cg-color-bg-primary, #1a1a2e);border:1px solid var(--cg-color-border, #333);border-radius:var(--cg-radius-lg, 8px);box-shadow:0 25px 50px -12px #00000080;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.modal-header h3{margin:0;font-size:14px;font-weight:600;color:var(--cg-color-text-primary, #fff)}.modal-close{background:none;border:none;font-size:18px;color:var(--cg-color-text-muted, #888);cursor:pointer;padding:4px;border-radius:4px;transition:all .15s ease}.modal-close:hover{color:var(--cg-color-text-primary, #fff);background:var(--cg-color-bg-hover, #333)}.modal-body{padding:16px;display:flex;flex-direction:column;gap:12px}.input-group{display:flex;flex-direction:column;gap:4px}.input-group label{font-size:12px;font-weight:500;color:var(--cg-color-text-secondary, #aaa)}.current-path{font-family:var(--cg-font-mono, monospace);font-size:13px;padding:8px 12px;background:var(--cg-color-bg-tertiary, #333);border-radius:4px;color:var(--cg-color-accent, #7c3aed);word-break:break-all;overflow-wrap:anywhere}.modal-note{font-size:12px;color:var(--cg-color-text-muted, #888);margin:0;padding:8px;background:var(--cg-color-bg-secondary, #252542);border-radius:4px}.modal-error{font-size:12px;color:var(--cg-color-error, #ef4444);margin-top:4px}.modal-footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--cg-color-border, #333);background:var(--cg-color-bg-secondary, #252542)}.node-details[data-v-b342f626]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.status-row[data-v-b342f626]{display:flex;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.status-badge[data-v-b342f626]{padding:4px 12px;border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.status-badge.installed[data-v-b342f626]{background:var(--cg-color-success-muted, rgba(34, 197, 94, .15));color:var(--cg-color-success);border:1px solid var(--cg-color-success)}.status-badge.dev[data-v-b342f626]{background:var(--cg-color-accent-muted);color:var(--cg-color-accent);border:1px solid var(--cg-color-accent)}.status-badge.missing[data-v-b342f626]{background:var(--cg-color-error-muted);color:var(--cg-color-error);border:1px solid var(--cg-color-error)}.status-badge.warning[data-v-b342f626]{background:#f59e0b26;color:var(--cg-color-warning, #f59e0b);border:1px solid var(--cg-color-warning, #f59e0b)}.detail-row[data-v-b342f626]{display:flex;align-items:flex-start;gap:var(--cg-space-3);font-size:var(--cg-font-size-sm)}.label[data-v-b342f626]{color:var(--cg-color-text-muted);min-width:100px;flex-shrink:0}.value[data-v-b342f626]{color:var(--cg-color-text-secondary);word-break:break-word}.value.mono[data-v-b342f626]{font-family:var(--cg-font-mono)}.value.small[data-v-b342f626]{font-size:var(--cg-font-size-xs)}.repo-link[data-v-b342f626]{color:var(--cg-color-accent);text-decoration:none;display:inline-flex;align-items:center;gap:6px;word-break:break-all}.repo-link[data-v-b342f626]:hover{text-decoration:underline}.external-icon[data-v-b342f626]{flex-shrink:0;opacity:.7}.section-divider[data-v-b342f626]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) 0}.workflow-list[data-v-b342f626]{display:flex;flex-wrap:wrap;gap:6px}.workflow-tag[data-v-b342f626]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:2px 8px;border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.dialog-message[data-v-3670b9f5]{margin:0 0 12px;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);line-height:var(--cg-line-height-normal)}.dialog-details[data-v-3670b9f5]{background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-md);padding:8px 12px;margin-bottom:12px}.detail-item[data-v-3670b9f5]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);padding:2px 0}.dialog-warning[data-v-3670b9f5]{display:flex;align-items:flex-start;gap:8px;margin:0;padding:8px 10px;background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);font-size:var(--cg-font-size-xs);color:var(--cg-color-warning)}.warning-icon[data-v-3670b9f5]{flex-shrink:0}.mismatch-warning[data-v-1555a802]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning);margin-bottom:var(--cg-space-3)}.warning-icon[data-v-1555a802]{font-size:var(--cg-font-size-lg);flex-shrink:0}.version-mismatch[data-v-1555a802]{display:flex;align-items:center;gap:var(--cg-space-1);font-family:var(--cg-font-mono)}.version-actual[data-v-1555a802]{color:var(--cg-color-error);text-decoration:line-through}.version-arrow[data-v-1555a802]{color:var(--cg-color-text-muted)}.version-expected[data-v-1555a802]{color:var(--cg-color-success)}.remote-url-display[data-v-7768a58d]{display:inline-flex;align-items:center;gap:var(--cg-space-2);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.url-text[data-v-7768a58d]{color:var(--cg-color-text-secondary);word-break:break-all}.copy-btn[data-v-7768a58d]{background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast);flex-shrink:0}.copy-btn[data-v-7768a58d]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.copy-btn.copied[data-v-7768a58d]{color:var(--cg-color-success);border-color:var(--cg-color-success)}.remote-title[data-v-8310f3a8]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.default-badge[data-v-8310f3a8]{display:inline-block;padding:2px 6px;background:transparent;border:1px solid var(--cg-color-success);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.sync-badge[data-v-8310f3a8]{display:inline-flex;align-items:center;gap:var(--cg-space-1);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.sync-badge .ahead[data-v-8310f3a8]{color:var(--cg-color-info)}.sync-badge .behind[data-v-8310f3a8]{color:var(--cg-color-warning)}.sync-badge .synced[data-v-8310f3a8]{color:var(--cg-color-success)}.remote-url-link[data-v-8310f3a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);text-decoration:none}.remote-url-link[data-v-8310f3a8]:hover{text-decoration:underline}.remote-url-text[data-v-8310f3a8]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.base-form-field[data-v-9a1cf296]{display:flex;flex-direction:column;gap:6px}.base-form-field.full-width[data-v-9a1cf296]{width:100%}.base-form-field-label[data-v-9a1cf296]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.base-form-field-required[data-v-9a1cf296]{color:var(--cg-color-error);margin-left:2px}.base-form-field-input[data-v-9a1cf296]{width:100%}.base-form-field-error[data-v-9a1cf296]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error)}.base-form-field-hint[data-v-9a1cf296]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.remote-form[data-v-56021b18]{border:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-4);margin-bottom:var(--cg-space-4)}.form-header[data-v-56021b18]{margin-bottom:var(--cg-space-4)}.form-body[data-v-56021b18]{display:flex;flex-direction:column;gap:var(--cg-space-3);margin-bottom:var(--cg-space-4)}.form-error[data-v-56021b18]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);color:var(--cg-color-error);font-size:var(--cg-font-size-sm)}.form-actions[data-v-56021b18]{display:flex;gap:var(--cg-space-2)}.conflict-summary-box[data-v-4e9e6cc9]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md)}.summary-header[data-v-4e9e6cc9]{display:flex;align-items:flex-start;gap:var(--cg-space-2)}.summary-icon[data-v-4e9e6cc9]{font-size:var(--cg-font-size-lg);color:var(--cg-color-warning)}.summary-text[data-v-4e9e6cc9]{flex:1}.summary-text strong[data-v-4e9e6cc9]{color:var(--cg-color-warning);font-size:var(--cg-font-size-sm)}.summary-text p[data-v-4e9e6cc9]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.summary-text p.all-resolved[data-v-4e9e6cc9]{color:var(--cg-color-success)}.summary-progress[data-v-4e9e6cc9]{display:flex;align-items:center;gap:var(--cg-space-2)}.progress-bar[data-v-4e9e6cc9]{flex:1;height:6px;background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);overflow:hidden}.progress-fill[data-v-4e9e6cc9]{height:100%;background:var(--cg-color-warning);border-radius:var(--cg-radius-sm);transition:width .3s ease}.progress-text[data-v-4e9e6cc9]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);white-space:nowrap}.modal-overlay[data-v-1d633bba]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-1d633bba]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-1d633bba]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-1d633bba]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-1d633bba]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.modal-close[data-v-1d633bba]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-1d633bba]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.loading-state[data-v-1d633bba]{display:flex;align-items:center;gap:var(--cg-space-2);justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.spinner[data-v-1d633bba]{animation:spin-1d633bba 1s linear infinite}.error-box[data-v-1d633bba]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-sm);color:var(--cg-color-error)}.error-icon[data-v-1d633bba]{font-size:var(--cg-font-size-xl);flex-shrink:0}.error-box p[data-v-1d633bba]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.error-hint[data-v-1d633bba]{margin-top:var(--cg-space-2)!important;opacity:.9}@keyframes spin-1d633bba{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.commit-summary[data-v-1d633bba]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary)}.commit-summary .icon[data-v-1d633bba]{font-size:var(--cg-font-size-lg)}.warning-box[data-v-1d633bba]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);color:var(--cg-color-warning)}.warning-icon[data-v-1d633bba]{font-size:var(--cg-font-size-xl);flex-shrink:0}.warning-box p[data-v-1d633bba]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.options-section[data-v-1d633bba]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.options-section ul[data-v-1d633bba]{margin:var(--cg-space-2) 0 0 var(--cg-space-4);padding:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.commits-section[data-v-1d633bba]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.commit-list[data-v-1d633bba]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);max-height:200px;overflow-y:auto}.commit-item[data-v-1d633bba]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.commit-hash[data-v-1d633bba]{font-family:var(--cg-font-mono);color:var(--cg-color-info);flex-shrink:0}.commit-message[data-v-1d633bba]{color:var(--cg-color-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commit-date[data-v-1d633bba]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);flex-shrink:0}.changes-section[data-v-1d633bba]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-1d633bba]{margin:0;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.change-group[data-v-1d633bba]{background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);overflow:hidden}.change-group summary[data-v-1d633bba]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-2) var(--cg-space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.change-group summary[data-v-1d633bba]:hover{background:var(--cg-color-bg-hover)}.change-type[data-v-1d633bba]{font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary)}.change-count[data-v-1d633bba]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.change-list[data-v-1d633bba]{padding:var(--cg-space-2) var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle);max-height:150px;overflow-y:auto}.change-item[data-v-1d633bba]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);padding:var(--cg-space-1) 0}.change-item.add[data-v-1d633bba]{color:var(--cg-color-success)}.change-item.modify[data-v-1d633bba]{color:var(--cg-color-info)}.change-item.delete[data-v-1d633bba]{color:var(--cg-color-error)}.conflict-badge[data-v-1d633bba]{margin-left:var(--cg-space-2);padding:1px var(--cg-space-2);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-xs);color:var(--cg-color-warning)}.strategy-section[data-v-1d633bba]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.radio-group[data-v-1d633bba]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.radio-option[data-v-1d633bba]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm)}.radio-option input[data-v-1d633bba]{margin:0}.default-badge[data-v-1d633bba]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);background:var(--cg-color-bg-tertiary);padding:1px 4px;border-radius:var(--cg-radius-xs)}.strategy-hint[data-v-1d633bba]{margin:0;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.up-to-date[data-v-1d633bba]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-4);color:var(--cg-color-success);justify-content:center}.modal-actions[data-v-1d633bba]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.modal-overlay[data-v-3c2e35ab]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-3c2e35ab]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-3c2e35ab]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-3c2e35ab]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-3c2e35ab]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.modal-close[data-v-3c2e35ab]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-3c2e35ab]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.loading-state[data-v-3c2e35ab]{display:flex;align-items:center;gap:var(--cg-space-2);justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.spinner[data-v-3c2e35ab]{animation:spin-3c2e35ab 1s linear infinite}@keyframes spin-3c2e35ab{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.commit-summary[data-v-3c2e35ab]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary)}.commit-summary .icon[data-v-3c2e35ab]{font-size:var(--cg-font-size-lg)}.warning-box[data-v-3c2e35ab]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);color:var(--cg-color-warning)}.warning-icon[data-v-3c2e35ab]{font-size:var(--cg-font-size-xl);flex-shrink:0}.warning-box p[data-v-3c2e35ab]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.info-box[data-v-3c2e35ab]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);border-radius:var(--cg-radius-sm);color:var(--cg-color-info);font-size:var(--cg-font-size-sm)}.info-icon[data-v-3c2e35ab]{flex-shrink:0}.commits-section[data-v-3c2e35ab]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-3c2e35ab]{margin:0;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.commit-list[data-v-3c2e35ab]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);max-height:200px;overflow-y:auto}.commit-item[data-v-3c2e35ab]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.commit-hash[data-v-3c2e35ab]{font-family:var(--cg-font-mono);color:var(--cg-color-info);flex-shrink:0}.commit-message[data-v-3c2e35ab]{color:var(--cg-color-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.commit-date[data-v-3c2e35ab]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);flex-shrink:0}.force-option[data-v-3c2e35ab]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.checkbox-option[data-v-3c2e35ab]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm)}.checkbox-option input[data-v-3c2e35ab]{margin:0}.option-hint[data-v-3c2e35ab]{margin:var(--cg-space-1) 0 0 var(--cg-space-5);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.up-to-date[data-v-3c2e35ab]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-4);color:var(--cg-color-success);justify-content:center}.modal-actions[data-v-3c2e35ab]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.resolution-choice-group[data-v-985715ed]{display:flex;gap:var(--cg-space-2)}.choice-btn[data-v-985715ed]{display:flex;align-items:center;gap:var(--cg-space-1);padding:var(--cg-space-2) var(--cg-space-3);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-secondary);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);cursor:pointer;transition:all .15s ease}.choice-btn[data-v-985715ed]:hover:not(:disabled){background:var(--cg-color-bg-hover);border-color:var(--cg-color-text-muted)}.choice-btn[data-v-985715ed]:disabled{opacity:.5;cursor:not-allowed}.choice-btn.selected[data-v-985715ed]{border-color:var(--cg-color-accent);background:var(--cg-color-accent-muted);color:var(--cg-color-accent)}.choice-btn.mine.selected[data-v-985715ed]{border-color:var(--cg-color-info);background:var(--cg-color-info-muted);color:var(--cg-color-info)}.choice-btn.theirs.selected[data-v-985715ed]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted);color:var(--cg-color-success)}.choice-icon[data-v-985715ed]{font-size:var(--cg-font-size-xs)}.conflict-item[data-v-506d3bbf]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);transition:all .2s ease}.conflict-item.resolved[data-v-506d3bbf]{background:var(--cg-color-bg-secondary);border-color:var(--cg-color-border)}.conflict-header[data-v-506d3bbf]{display:flex;align-items:flex-start;gap:var(--cg-space-3)}.conflict-icon[data-v-506d3bbf]{font-size:var(--cg-font-size-lg);color:var(--cg-color-warning);flex-shrink:0}.conflict-item.resolved .conflict-icon[data-v-506d3bbf]{color:var(--cg-color-text-muted)}.conflict-info[data-v-506d3bbf]{flex:1;min-width:0}.workflow-name[data-v-506d3bbf]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.conflict-description[data-v-506d3bbf]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin-top:var(--cg-space-1)}.resolved-badge[data-v-506d3bbf]{display:flex;align-items:center;gap:var(--cg-space-1);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-success-muted);border-radius:var(--cg-radius-sm);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);flex-shrink:0}.conflict-hashes[data-v-506d3bbf]{display:flex;gap:var(--cg-space-4);padding:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.hash-item code[data-v-506d3bbf]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary)}.conflict-actions[data-v-506d3bbf]{display:flex;justify-content:flex-end}.resolution-content[data-v-c58d150d]{display:flex;flex-direction:column;gap:var(--cg-space-4);height:100%;min-height:0}.error-box[data-v-c58d150d]{flex-shrink:0;display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-sm);color:var(--cg-color-error)}.error-icon[data-v-c58d150d]{font-size:var(--cg-font-size-xl);flex-shrink:0}.error-box p[data-v-c58d150d]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.resolution-header[data-v-c58d150d]{flex-shrink:0;padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.header-stats[data-v-c58d150d]{display:flex;gap:var(--cg-space-4);margin-bottom:var(--cg-space-2)}.stat[data-v-c58d150d]{display:flex;flex-direction:column;align-items:center}.stat-value[data-v-c58d150d]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);color:var(--cg-color-text-primary)}.stat.resolved .stat-value[data-v-c58d150d]{color:var(--cg-color-success)}.stat.pending .stat-value[data-v-c58d150d]{color:var(--cg-color-warning)}.stat-label[data-v-c58d150d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.header-hint[data-v-c58d150d]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin:0;line-height:1.5}.conflicts-list[data-v-c58d150d]{display:flex;flex-direction:column;gap:var(--cg-space-3);flex:1;min-height:0;overflow-y:auto;padding-right:var(--cg-space-2)}.all-resolved-message[data-v-c58d150d]{flex-shrink:0;display:flex;align-items:center;justify-content:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);border-radius:var(--cg-radius-md);color:var(--cg-color-success);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium)}.resolved-icon[data-v-c58d150d]{font-size:var(--cg-font-size-lg)}.footer-spacer[data-v-c58d150d]{flex:1}.node-conflict-item[data-v-8b626725]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md)}.node-header[data-v-8b626725]{display:flex;align-items:baseline;gap:var(--cg-space-2)}.node-name[data-v-8b626725]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.node-id[data-v-8b626725]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.version-comparison[data-v-8b626725]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm)}.version[data-v-8b626725]{display:flex;flex-direction:column;gap:2px}.version .label[data-v-8b626725]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.version code[data-v-8b626725]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary)}.version.yours code[data-v-8b626725]{color:var(--cg-color-info)}.version.theirs code[data-v-8b626725]{color:var(--cg-color-success)}.arrow[data-v-8b626725]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-lg)}.chosen-version[data-v-8b626725]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-accent-muted);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm)}.chosen-version .label[data-v-8b626725]{color:var(--cg-color-text-muted)}.chosen-version .chosen[data-v-8b626725]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent)}.chosen-reason[data-v-8b626725]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);margin-left:auto}.affected-workflows[data-v-8b626725]{font-size:var(--cg-font-size-sm)}.affected-workflows summary[data-v-8b626725]{cursor:pointer;color:var(--cg-color-text-secondary);-webkit-user-select:none;user-select:none}.affected-workflows summary[data-v-8b626725]:hover{color:var(--cg-color-text-primary)}.affected-workflows ul[data-v-8b626725]{margin:var(--cg-space-2) 0 0 var(--cg-space-4);padding:0;list-style:none}.affected-workflows li[data-v-8b626725]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-1) 0;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.affected-workflows li code[data-v-8b626725]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary)}.wf-source[data-v-8b626725]{color:var(--cg-color-text-muted)}.wf-version[data-v-8b626725]{margin-left:auto;color:var(--cg-color-text-muted)}.validation-content[data-v-fefd26ed]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.compatible-message[data-v-fefd26ed]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);border-radius:var(--cg-radius-md);color:var(--cg-color-success)}.compatible-message .icon[data-v-fefd26ed]{font-size:var(--cg-font-size-xl)}.compatible-message p[data-v-fefd26ed]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.warning-header[data-v-fefd26ed]{display:flex;align-items:flex-start;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);color:var(--cg-color-warning)}.warning-header .icon[data-v-fefd26ed]{font-size:var(--cg-font-size-xl)}.warning-header p[data-v-fefd26ed]{margin:var(--cg-space-1) 0 0 0;font-size:var(--cg-font-size-sm)}.conflicts-list[data-v-fefd26ed]{display:flex;flex-direction:column;gap:var(--cg-space-3);max-height:300px;overflow-y:auto}.info-box[data-v-fefd26ed]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm)}.info-box strong[data-v-fefd26ed]{display:block;margin-bottom:var(--cg-space-1);color:var(--cg-color-text-primary)}.info-box p[data-v-fefd26ed]{margin:0;color:var(--cg-color-text-secondary)}.warnings-section[data-v-fefd26ed]{padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.warnings-section h4[data-v-fefd26ed]{margin:0 0 var(--cg-space-2) 0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.warnings-section ul[data-v-fefd26ed]{margin:0;padding:0 0 0 var(--cg-space-4);list-style:disc}.warnings-section li[data-v-fefd26ed]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);padding:var(--cg-space-1) 0}.footer-spacer[data-v-fefd26ed]{flex:1}.setting-row[data-v-cb5d236c]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-4);padding:var(--cg-space-3) 0;border-bottom:1px solid var(--cg-color-border-subtle)}.setting-row[data-v-cb5d236c]:last-child{border-bottom:none}.setting-row.disabled[data-v-cb5d236c]{opacity:.5;pointer-events:none}.setting-info[data-v-cb5d236c]{flex:1;min-width:0}.setting-label[data-v-cb5d236c]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);margin-bottom:var(--cg-space-1)}.required-marker[data-v-cb5d236c]{color:var(--cg-color-error);margin-left:2px}.setting-description[data-v-cb5d236c]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);line-height:var(--cg-line-height-normal)}.setting-control[data-v-cb5d236c]{flex-shrink:0;display:flex;align-items:center;gap:var(--cg-space-2)}.toggle[data-v-71c0f550]{position:relative;display:inline-block;width:40px;height:22px;cursor:pointer}.toggle-input[data-v-71c0f550]{opacity:0;width:0;height:0;position:absolute}.toggle-slider[data-v-71c0f550]{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);transition:all var(--cg-transition-fast);border-radius:var(--cg-radius-full)}.toggle-slider[data-v-71c0f550]:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background:var(--cg-color-text-muted);transition:all var(--cg-transition-fast);border-radius:50%}.toggle-input:checked+.toggle-slider[data-v-71c0f550]{background:var(--cg-color-accent);border-color:var(--cg-color-accent)}.toggle-input:checked+.toggle-slider[data-v-71c0f550]:before{transform:translate(18px);background:var(--cg-color-text-primary)}.toggle-input:disabled+.toggle-slider[data-v-71c0f550]{opacity:.5;cursor:not-allowed}.toggle-input:focus+.toggle-slider[data-v-71c0f550]{box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.toggle-input:not(:disabled)+.toggle-slider[data-v-71c0f550]:hover{border-color:var(--cg-color-accent)}.workspace-settings-content[data-v-9c5b427b]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.settings-section[data-v-9c5b427b]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3)}.path-setting[data-v-9c5b427b]{padding:var(--cg-space-3) 0;border-bottom:1px solid var(--cg-color-border-subtle)}.path-setting[data-v-9c5b427b]:last-child{border-bottom:none}.path-label[data-v-9c5b427b]{font-size:var(--cg-font-size-sm);font-weight:500;color:var(--cg-color-text-primary);margin-bottom:var(--cg-space-1)}.path-description[data-v-9c5b427b]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);margin-bottom:var(--cg-space-2)}.path-value[data-v-9c5b427b]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-primary);background:var(--cg-color-bg-primary);padding:var(--cg-space-2);border-radius:var(--cg-border-radius-sm);border:1px solid var(--cg-color-border-subtle);word-break:break-all}.setting-hint[data-v-9c5b427b]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);margin-top:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-bg-primary);border-radius:var(--cg-border-radius-sm)}.setting-hint code[data-v-9c5b427b]{font-family:var(--cg-font-mono);background:var(--cg-color-bg-secondary);padding:0 var(--cg-space-1);border-radius:var(--cg-border-radius-sm)}.base-tabs[data-v-ad5e6cad]{display:flex;gap:var(--cg-space-1);border-bottom:1px solid var(--cg-color-border-subtle);margin-bottom:var(--cg-space-3)}.base-tabs__tab[data-v-ad5e6cad]{padding:var(--cg-space-2) var(--cg-space-3);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--cg-color-text-secondary);font-family:var(--cg-font-body);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);cursor:pointer;transition:all var(--cg-transition-fast);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.base-tabs__tab[data-v-ad5e6cad]:hover:not(.disabled){color:var(--cg-color-text-primary)}.base-tabs__tab.active[data-v-ad5e6cad]{color:var(--cg-color-accent);border-bottom-color:var(--cg-color-accent)}.base-tabs__tab.disabled[data-v-ad5e6cad]{opacity:.5;cursor:not-allowed}.base-tabs__badge[data-v-ad5e6cad]{margin-left:var(--cg-space-1);padding:1px 6px;background:var(--cg-color-accent-muted);color:var(--cg-color-accent);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs)}.log-viewer-wrapper[data-v-c0cc6d21]{position:relative}.log-output[data-v-c0cc6d21]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3);margin:0;user-select:text!important;-webkit-user-select:text!important;cursor:text}.copy-overlay-btn[data-v-c0cc6d21]{position:sticky;top:8px;float:right;margin-left:8px;margin-bottom:4px;padding:4px 8px;font-size:10px;font-family:var(--cg-font-body);line-height:1.2;background:var(--cg-color-bg-secondary);color:var(--cg-color-text-secondary);border:1px solid var(--cg-color-border);border-radius:4px;cursor:pointer;opacity:.4;transition:opacity .15s ease;z-index:2}.log-viewer-wrapper:hover .copy-overlay-btn[data-v-c0cc6d21]{opacity:1}.copy-overlay-btn[data-v-c0cc6d21]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-text-primary)}.copy-overlay-btn[data-v-c0cc6d21]:disabled{cursor:default}.log-line[data-v-c0cc6d21]{line-height:1.5;white-space:pre-wrap;word-wrap:break-word;user-select:text!important;-webkit-user-select:text!important}.log-level-error[data-v-c0cc6d21]{color:#f55}.log-level-warning[data-v-c0cc6d21]{color:#ffb86c}.log-level-info[data-v-c0cc6d21]{color:#50fa7b}.log-level-debug[data-v-c0cc6d21]{color:#6272a4}.env-title[data-v-9231917a]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.current-badge[data-v-9231917a]{display:inline-block;padding:2px 6px;background:transparent;border:1px solid var(--cg-color-success);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);border-radius:var(--cg-radius-sm)}.branch-info[data-v-9231917a]{font-family:var(--cg-font-mono);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);display:flex;align-items:center;gap:var(--cg-space-1)}.branch-icon[data-v-9231917a]{opacity:.7}.env-details[data-v-92e68b76]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.status-row[data-v-92e68b76]{display:flex;align-items:center;gap:var(--cg-space-3);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.status-badge[data-v-92e68b76]{padding:4px 12px;border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.status-badge.current[data-v-92e68b76]{background:var(--cg-color-success-muted, rgba(34, 197, 94, .15));color:var(--cg-color-success);border:1px solid var(--cg-color-success)}.status-badge.inactive[data-v-92e68b76]{background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-muted);border:1px solid var(--cg-color-border-subtle)}.detail-row[data-v-92e68b76]{display:flex;align-items:flex-start;gap:var(--cg-space-3);font-size:var(--cg-font-size-sm)}.label[data-v-92e68b76]{color:var(--cg-color-text-muted);min-width:100px;flex-shrink:0}.value[data-v-92e68b76]{color:var(--cg-color-text-secondary);word-break:break-word}.value.mono[data-v-92e68b76]{font-family:var(--cg-font-mono)}.value.small[data-v-92e68b76]{font-size:var(--cg-font-size-xs)}.section-divider[data-v-92e68b76]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) 0}.collapsible-section[data-v-92e68b76]{font-size:var(--cg-font-size-sm)}.collapsible-header[data-v-92e68b76]{display:flex;align-items:center;gap:var(--cg-space-3);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--cg-space-1) 0;border-radius:var(--cg-radius-sm)}.collapsible-header[data-v-92e68b76]:hover{opacity:.8}.chevron[data-v-92e68b76]{margin-left:auto;font-size:10px;color:var(--cg-color-text-muted);transition:transform .15s ease}.chevron.expanded[data-v-92e68b76]{transform:rotate(90deg)}.collapsible-body[data-v-92e68b76]{max-height:200px;overflow-y:auto;margin-top:var(--cg-space-2);padding-left:var(--cg-space-3);border-left:2px solid var(--cg-color-border-subtle)}.item-list[data-v-92e68b76]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.list-item[data-v-92e68b76]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-1) var(--cg-space-2);font-size:var(--cg-font-size-xs);border-radius:var(--cg-radius-sm)}.list-item[data-v-92e68b76]:hover{background:var(--cg-color-bg-tertiary)}.item-name[data-v-92e68b76]{color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.item-meta[data-v-92e68b76]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);flex-shrink:0}.empty-list[data-v-92e68b76]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);font-style:italic;padding:var(--cg-space-1) var(--cg-space-2)}.sync-badge[data-v-92e68b76]{padding:1px 6px;border-radius:var(--cg-radius-sm);font-size:10px;font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.sync-badge.synced[data-v-92e68b76]{background:var(--cg-color-success-muted, rgba(34, 197, 94, .15));color:var(--cg-color-success)}.sync-badge.new[data-v-92e68b76]{background:var(--cg-color-info-muted, rgba(59, 130, 246, .15));color:var(--cg-color-info)}.sync-badge.modified[data-v-92e68b76]{background:var(--cg-color-warning-muted, rgba(245, 158, 11, .15));color:var(--cg-color-warning)}.sync-badge.deleted[data-v-92e68b76]{background:var(--cg-color-error-muted, rgba(239, 68, 68, .15));color:var(--cg-color-error)}.criticality-badge[data-v-92e68b76]{padding:1px 6px;border-radius:var(--cg-radius-sm);font-size:10px;font-weight:var(--cg-font-weight-semibold);text-transform:uppercase;letter-spacing:.3px;flex-shrink:0}.criticality-badge.required[data-v-92e68b76]{background:var(--cg-color-error-muted, rgba(239, 68, 68, .15));color:var(--cg-color-error)}.criticality-badge.flexible[data-v-92e68b76]{background:var(--cg-color-warning-muted, rgba(245, 158, 11, .15));color:var(--cg-color-warning)}.criticality-badge.optional[data-v-92e68b76]{background:var(--cg-color-bg-tertiary);color:var(--cg-color-text-muted)}.model-item[data-v-92e68b76]{flex-direction:column;align-items:flex-start;gap:var(--cg-space-1)}.model-row[data-v-92e68b76]{display:flex;align-items:center;gap:var(--cg-space-2);width:100%}.model-meta[data-v-92e68b76]{display:flex;gap:var(--cg-space-2);padding-left:var(--cg-space-1)}.missing-count[data-v-92e68b76]{color:var(--cg-color-warning);font-size:var(--cg-font-size-xs)}.footer-actions[data-v-92e68b76]{display:flex;width:100%;align-items:center}.footer-spacer[data-v-92e68b76]{flex:1}.progress-bar[data-v-1beb0512]{width:100%;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:2px;overflow:hidden;position:relative}.progress-fill[data-v-1beb0512]{height:100%;transition:width .3s ease;position:relative}.progress-fill[data-v-1beb0512]:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);animation:shimmer-1beb0512 2s infinite}@keyframes shimmer-1beb0512{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-fill.default[data-v-1beb0512]{background:var(--cg-color-accent);box-shadow:0 0 8px #00ff4166}.progress-fill.success[data-v-1beb0512]{background:var(--cg-color-success);box-shadow:0 0 8px #4ade8066}.progress-fill.warning[data-v-1beb0512]{background:var(--cg-color-warning);box-shadow:0 0 8px #fbbf2466}.progress-fill.error[data-v-1beb0512]{background:var(--cg-color-error);box-shadow:0 0 8px #ef444466}.progress-bar[data-v-1beb0512]{height:var(--cg-space-2)}.task-progress[data-v-9d1de66c]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.progress-info[data-v-9d1de66c]{display:flex;justify-content:space-between;align-items:center;font-size:var(--cg-font-size-sm)}.progress-percentage[data-v-9d1de66c]{font-weight:var(--cg-font-weight-bold);color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.progress-message[data-v-9d1de66c]{color:var(--cg-color-text-secondary);text-align:right;flex:1;margin-left:var(--cg-space-2)}.progress-steps[data-v-9d1de66c]{display:flex;flex-direction:column;gap:var(--cg-space-1);margin-top:var(--cg-space-2);padding-top:var(--cg-space-2);border-top:1px solid var(--cg-color-border-subtle)}.step[data-v-9d1de66c]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);transition:all var(--cg-transition-fast)}.step.pending[data-v-9d1de66c]{color:var(--cg-color-text-muted)}.step.active[data-v-9d1de66c]{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-medium)}.step.completed[data-v-9d1de66c]{color:var(--cg-color-success)}.step.active .step-icon[data-v-9d1de66c]{animation:spin-9d1de66c 1s linear infinite}@keyframes spin-9d1de66c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.step-icon[data-v-9d1de66c]{width:14px;text-align:center}.create-env-form[data-v-f37eaa42]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.form-field[data-v-f37eaa42]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-field--checkbox[data-v-f37eaa42]{flex-direction:row;align-items:center;margin-top:var(--cg-space-2)}.form-label[data-v-f37eaa42]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-f37eaa42],.form-select[data-v-f37eaa42]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);padding:var(--cg-space-2) var(--cg-space-3);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-f37eaa42]:hover,.form-select[data-v-f37eaa42]:hover{border-color:var(--cg-color-border)}.form-input[data-v-f37eaa42]:focus,.form-select[data-v-f37eaa42]:focus{outline:none;border-color:var(--cg-color-accent)}.form-select[data-v-f37eaa42]{cursor:pointer}.form-select[data-v-f37eaa42]:disabled{opacity:.5;cursor:not-allowed}.form-checkbox[data-v-f37eaa42]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.form-checkbox input[type=checkbox][data-v-f37eaa42]{width:16px;height:16px;accent-color:var(--cg-color-accent);cursor:pointer}.creating-intro[data-v-f37eaa42]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);margin-bottom:var(--cg-space-4);text-align:center}.progress-warning[data-v-f37eaa42]{margin-top:var(--cg-space-3);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);text-align:center}.create-error[data-v-f37eaa42]{margin-top:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-sm)}.error-message[data-v-f37eaa42]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin:0}.footer-status[data-v-f37eaa42]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.file-path[data-v-f0982173]{display:inline-flex;align-items:center;gap:var(--cg-space-2);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-1) var(--cg-space-2);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);max-width:100%;overflow:hidden}.file-path-icon[data-v-f0982173]{flex-shrink:0;font-size:var(--cg-font-size-sm)}.file-path-text[data-v-f0982173]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:none;border:none;padding:0;font-family:inherit;font-size:inherit;color:inherit}.copy-btn[data-v-f0982173]{flex-shrink:0;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:0;font-size:var(--cg-font-size-sm);transition:color var(--cg-transition-fast)}.copy-btn[data-v-f0982173]:hover{color:var(--cg-color-accent)}.export-blocked[data-v-b52f5e32]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.error-header[data-v-b52f5e32]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md)}.error-icon[data-v-b52f5e32]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-error);color:var(--cg-color-bg-primary);border-radius:50%;flex-shrink:0}.error-summary[data-v-b52f5e32]{flex:1}.error-title[data-v-b52f5e32]{margin:0 0 var(--cg-space-1) 0;font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.error-description[data-v-b52f5e32]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.issues-list[data-v-b52f5e32]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.issue-item[data-v-b52f5e32]{padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md)}.issue-message[data-v-b52f5e32]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary);margin-bottom:var(--cg-space-2)}.issue-details[data-v-b52f5e32]{margin-bottom:var(--cg-space-2);padding-left:var(--cg-space-3)}.issue-detail[data-v-b52f5e32]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);padding:var(--cg-space-1) 0}.issue-detail[data-v-b52f5e32]:before{content:"•";margin-right:var(--cg-space-2);color:var(--cg-color-text-muted)}.show-more-inline[data-v-b52f5e32]{background:none;border:none;color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);cursor:pointer;padding:0;margin-top:var(--cg-space-1)}.issue-fix[data-v-b52f5e32]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.export-warnings[data-v-b698d882]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.warning-header[data-v-b698d882]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md)}.warning-icon[data-v-b698d882]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-warning);color:var(--cg-color-bg-primary);border-radius:50%;flex-shrink:0}.warning-summary[data-v-b698d882]{flex:1}.warning-title[data-v-b698d882]{margin:0 0 var(--cg-space-1) 0;font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.warning-description[data-v-b698d882]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.models-section[data-v-b698d882]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);overflow:hidden}.models-list[data-v-b698d882]{max-height:240px;overflow-y:auto}.model-item[data-v-b698d882]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--cg-space-3);padding:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.model-item[data-v-b698d882]:last-child{border-bottom:none}.model-info[data-v-b698d882]{flex:1;min-width:0}.model-filename[data-v-b698d882]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);word-break:break-all}.model-workflows[data-v-b698d882]{margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.add-source-btn[data-v-b698d882]{flex-shrink:0;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-accent);padding:4px 10px;font-size:var(--cg-font-size-xs);cursor:pointer;white-space:nowrap}.add-source-btn[data-v-b698d882]:hover{background:var(--cg-color-accent);color:var(--cg-color-bg-primary);border-color:var(--cg-color-accent)}.show-more-btn[data-v-b698d882]{width:100%;padding:var(--cg-space-2);background:transparent;border:none;border-top:1px solid var(--cg-color-border-subtle);color:var(--cg-color-accent);font-size:var(--cg-font-size-sm);cursor:pointer;transition:background var(--cg-transition-base)}.show-more-btn[data-v-b698d882]:hover{background:var(--cg-color-bg-secondary)}.success-header[data-v-b698d882]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);border-radius:var(--cg-radius-md)}.success-icon[data-v-b698d882]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-success);color:var(--cg-color-bg-primary);border-radius:50%;flex-shrink:0}.success-summary[data-v-b698d882]{flex:1}.success-title[data-v-b698d882]{margin:0 0 var(--cg-space-1) 0;font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.success-description[data-v-b698d882]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.export-card[data-v-f4d120f2]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.export-card-header[data-v-f4d120f2]{display:flex;gap:var(--cg-space-3);align-items:flex-start}.export-icon[data-v-f4d120f2]{font-size:var(--cg-font-size-xl)}.export-header-text[data-v-f4d120f2]{flex:1}.export-title[data-v-f4d120f2]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.export-subtitle[data-v-f4d120f2]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.export-path-row[data-v-f4d120f2]{display:flex;gap:var(--cg-space-2);align-items:center}.export-path-row .path-input[data-v-f4d120f2]{flex:1}.export-actions[data-v-f4d120f2]{display:flex;gap:var(--cg-space-3);align-items:center;padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle)}.export-warning[data-v-f4d120f2]{display:flex;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);margin-top:var(--cg-space-2)}.warning-icon[data-v-f4d120f2]{color:var(--cg-color-warning);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.warning-text[data-v-f4d120f2]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.4}.export-info[data-v-f4d120f2]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.info-section strong[data-v-f4d120f2]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.info-section ul[data-v-f4d120f2]{margin:var(--cg-space-2) 0 0 0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.6}.info-section li[data-v-f4d120f2]{margin-bottom:var(--cg-space-1)}.info-section li strong[data-v-f4d120f2]{font-size:var(--cg-font-size-xs)}.info-note[data-v-f4d120f2]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0;padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border-left:2px solid var(--cg-color-warning)}.file-input-wrapper[data-v-cd192091]{display:inline-block}.file-input-hidden[data-v-cd192091]{display:none}.file-drop-zone[data-v-0f79cb86]{border:2px dashed var(--cg-color-border);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-4);text-align:center;transition:all var(--cg-transition-base);min-height:140px;display:flex;align-items:center;justify-content:center}.file-drop-zone.drop-active[data-v-0f79cb86]{border-color:var(--cg-color-accent);background:var(--cg-color-accent-muted);box-shadow:0 0 16px var(--cg-shadow-accent)}.file-drop-zone.has-file[data-v-0f79cb86]{border-style:solid;border-color:var(--cg-color-success);background:var(--cg-color-success-muted);min-height:auto;padding:var(--cg-space-4)}.drop-zone-empty[data-v-0f79cb86]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2);width:100%}.drop-zone-icon[data-v-0f79cb86]{color:var(--cg-color-text-muted);opacity:.5}.drop-zone-text[data-v-0f79cb86]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.drop-zone-primary[data-v-0f79cb86]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-medium);margin:0}.drop-zone-secondary[data-v-0f79cb86]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);margin:0}.drop-zone-actions[data-v-0f79cb86]{margin-top:0}.drop-zone-file[data-v-0f79cb86]{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--cg-space-3)}.file-info[data-v-0f79cb86]{display:flex;align-items:center;gap:var(--cg-space-3);flex:1;min-width:0}.file-icon[data-v-0f79cb86]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.file-details[data-v-0f79cb86]{flex:1;min-width:0;text-align:left}.file-name[data-v-0f79cb86]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size[data-v-0f79cb86]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.import-preview[data-v-182fe113]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.preview-header[data-v-182fe113]{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--cg-space-4);padding-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.source-env[data-v-182fe113]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.preview-content[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.preview-section[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-header[data-v-182fe113]{display:flex;align-items:center;gap:var(--cg-space-3)}.section-icon[data-v-182fe113]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.section-info[data-v-182fe113]{flex:1}.section-title[data-v-182fe113]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.section-count[data-v-182fe113]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.item-list[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-1);padding-left:var(--cg-space-6)}.preview-item[data-v-182fe113]{display:flex;align-items:flex-start;gap:var(--cg-space-2);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.item-bullet[data-v-182fe113]{color:var(--cg-color-accent);flex-shrink:0}.item-name[data-v-182fe113]{font-family:var(--cg-font-mono);word-break:break-all}.item-details[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-1);min-width:0}.item-meta[data-v-182fe113]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono)}.item-more[data-v-182fe113]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-style:italic;padding-left:var(--cg-space-3)}.git-info[data-v-182fe113]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding-left:var(--cg-space-6)}.import-config[data-v-89ea06a1]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.config-container[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-4);margin-top:var(--cg-space-3)}.config-field[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.input-wrapper[data-v-89ea06a1]{position:relative;display:flex;align-items:center}.name-input[data-v-89ea06a1]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);padding-right:var(--cg-space-8);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-family:var(--cg-font-mono)}.name-input[data-v-89ea06a1]:focus{outline:none;border-color:var(--cg-color-accent)}.name-input.error[data-v-89ea06a1]{border-color:var(--cg-color-error)}.name-input.valid[data-v-89ea06a1]{border-color:var(--cg-color-success)}.validating-indicator[data-v-89ea06a1],.valid-indicator[data-v-89ea06a1]{position:absolute;right:var(--cg-space-3);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.valid-indicator[data-v-89ea06a1]{color:var(--cg-color-success)}.field-error[data-v-89ea06a1]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm)}.field-hint[data-v-89ea06a1]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.strategy-options[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.strategy-option[data-v-89ea06a1]{display:flex;align-items:flex-start;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);cursor:pointer;transition:all var(--cg-transition-fast)}.strategy-option[data-v-89ea06a1]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border)}.strategy-option.active[data-v-89ea06a1]{border-color:var(--cg-color-accent);background:var(--cg-color-accent-muted)}.strategy-option input[type=radio][data-v-89ea06a1]{margin-top:2px;flex-shrink:0;cursor:pointer;accent-color:var(--cg-color-accent)}.strategy-content[data-v-89ea06a1]{display:flex;flex-direction:column;gap:var(--cg-space-1);flex:1}.strategy-label[data-v-89ea06a1]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-medium)}.strategy-description[data-v-89ea06a1]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.advanced-section[data-v-89ea06a1]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-secondary)}.advanced-toggle[data-v-89ea06a1]{padding:var(--cg-space-3);cursor:pointer;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.advanced-toggle[data-v-89ea06a1]:hover{color:var(--cg-color-text-primary)}.advanced-content[data-v-89ea06a1]{padding:var(--cg-space-3);padding-top:0}.backend-select[data-v-89ea06a1]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);cursor:pointer}.backend-select[data-v-89ea06a1]:focus{outline:none;border-color:var(--cg-color-accent)}.switch-field[data-v-89ea06a1]{padding-top:var(--cg-space-2)}.switch-label[data-v-89ea06a1]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.switch-label input[type=checkbox][data-v-89ea06a1]{width:16px;height:16px;cursor:pointer;accent-color:var(--cg-color-accent)}.import-flow[data-v-72cbc04e]{display:flex;flex-direction:column}.import-empty[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.import-configure[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.selected-file-bar[data-v-72cbc04e]{display:flex;justify-content:space-between;align-items:center;background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success);padding:var(--cg-space-3)}.file-bar-content[data-v-72cbc04e]{display:flex;align-items:center;gap:var(--cg-space-3)}.file-bar-icon[data-v-72cbc04e]{font-size:var(--cg-font-size-2xl)}.file-bar-info[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.file-bar-name[data-v-72cbc04e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.file-bar-size[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.import-actions[data-v-72cbc04e]{display:flex;justify-content:flex-end;gap:var(--cg-space-3);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle)}.import-progress[data-v-72cbc04e]{display:flex;flex-direction:column;gap:var(--cg-space-4);padding:var(--cg-space-4)}.creating-intro[data-v-72cbc04e]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base);margin:0;text-align:center}.creating-intro strong[data-v-72cbc04e]{color:var(--cg-color-text-primary)}.progress-warning[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center;margin:0}.import-error[data-v-72cbc04e]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);padding:var(--cg-space-3)}.error-message[data-v-72cbc04e]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin:0}.import-complete[data-v-72cbc04e]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-4);padding:var(--cg-space-8) var(--cg-space-4)}.complete-icon[data-v-72cbc04e]{width:64px;height:64px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700;border:3px solid;border-radius:50%}.complete-icon.success[data-v-72cbc04e]{color:var(--cg-color-success);border-color:var(--cg-color-success);background:var(--cg-color-success-muted)}.complete-icon.error[data-v-72cbc04e]{color:var(--cg-color-error);border-color:var(--cg-color-error);background:var(--cg-color-error-muted)}.complete-message[data-v-72cbc04e]{text-align:center;max-width:500px}.complete-title[data-v-72cbc04e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);margin-bottom:var(--cg-space-2)}.complete-details[data-v-72cbc04e]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base)}.complete-actions[data-v-72cbc04e]{display:flex;gap:var(--cg-space-3);margin-top:var(--cg-space-2)}.preview-loading[data-v-72cbc04e]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-3);padding:var(--cg-space-6);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.loading-spinner[data-v-72cbc04e]{width:32px;height:32px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-72cbc04e .8s linear infinite}@keyframes spin-72cbc04e{to{transform:rotate(360deg)}}.loading-text[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.import-divider[data-v-72cbc04e]{display:flex;align-items:center;gap:var(--cg-space-4);margin:var(--cg-space-2) 0}.import-divider[data-v-72cbc04e]:before,.import-divider[data-v-72cbc04e]:after{content:"";flex:1;height:1px;background:var(--cg-color-border-subtle)}.import-divider span[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:lowercase}.git-import-section[data-v-72cbc04e]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.git-import-header[data-v-72cbc04e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);margin-bottom:var(--cg-space-3)}.git-url-input-row[data-v-72cbc04e]{display:flex;gap:var(--cg-space-2)}.git-url-input[data-v-72cbc04e]{flex:1;padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);height:28px}.git-url-input[data-v-72cbc04e]:focus{outline:none;border-color:var(--cg-color-accent)}.git-url-input[data-v-72cbc04e]:disabled{opacity:.6;cursor:not-allowed}.git-url-hint[data-v-72cbc04e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-2)}.git-error[data-v-72cbc04e]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin-top:var(--cg-space-2)}.help-steps[data-v-e13bfe76]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.help-step[data-v-e13bfe76]{display:flex;gap:var(--cg-space-3);align-items:flex-start}.step-number[data-v-e13bfe76]{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--cg-color-accent-muted);color:var(--cg-color-accent);border:1px solid var(--cg-color-accent);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.step-content[data-v-e13bfe76]{flex:1}.step-content strong[data-v-e13bfe76]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);display:block;margin-bottom:var(--cg-space-1)}.step-content p[data-v-e13bfe76]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);margin:0}.instance-card[data-v-746c3894]{border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary);padding:var(--cg-space-3);margin-bottom:var(--cg-space-2);border-left-width:3px;border-left-color:transparent}.instance-card.status-running[data-v-746c3894]{border-left-color:var(--cg-color-success)}.instance-card.status-deploying[data-v-746c3894],.instance-card.status-starting[data-v-746c3894]{border-left-color:var(--cg-color-info)}.instance-card.status-stopped[data-v-746c3894]{border-left-color:var(--cg-color-text-muted)}.instance-card.status-error[data-v-746c3894]{border-left-color:var(--cg-color-error)}.instance-card.status-terminated[data-v-746c3894]{border-left-color:var(--cg-color-border-subtle);opacity:.6}.instance-header[data-v-746c3894]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.provider-badge[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-hover);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-secondary)}.instance-name[data-v-746c3894]{flex:1;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-indicator[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);display:flex;align-items:center;gap:var(--cg-space-1)}.status-indicator.running[data-v-746c3894]{color:var(--cg-color-success)}.status-indicator.deploying[data-v-746c3894],.status-indicator.starting[data-v-746c3894]{color:var(--cg-color-info)}.status-indicator.stopped[data-v-746c3894]{color:var(--cg-color-text-muted)}.status-indicator.error[data-v-746c3894]{color:var(--cg-color-error)}.status-indicator.terminated[data-v-746c3894]{color:var(--cg-color-text-muted)}.status-indicator .spinner[data-v-746c3894]{width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-746c3894 .8s linear infinite}@keyframes spin-746c3894{to{transform:rotate(360deg)}}.instance-details[data-v-746c3894]{display:flex;flex-wrap:wrap;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.instance-details .detail[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.instance-details .total-cost[data-v-746c3894]{color:var(--cg-color-text-secondary)}.instance-details .instance-url[data-v-746c3894]{color:var(--cg-color-accent);word-break:break-all;flex-basis:100%}.deployment-progress[data-v-746c3894]{margin-bottom:var(--cg-space-2)}.progress-message[data-v-746c3894]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);margin-bottom:var(--cg-space-1)}.instance-actions[data-v-746c3894]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.instances-tab[data-v-ba614fc3]{padding:var(--cg-space-3)}.instances-header[data-v-ba614fc3]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cg-space-3)}.loading-state[data-v-ba614fc3],.empty-state[data-v-ba614fc3]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted);text-align:center}.loading-state .spinner[data-v-ba614fc3]{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-ba614fc3 .8s linear infinite;margin-bottom:var(--cg-space-2)}@keyframes spin-ba614fc3{to{transform:rotate(360deg)}}.empty-icon[data-v-ba614fc3]{font-size:var(--cg-font-size-2xl);margin-bottom:var(--cg-space-2)}.empty-text[data-v-ba614fc3]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin-bottom:var(--cg-space-2)}.empty-help[data-v-ba614fc3]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.instances-list[data-v-ba614fc3]{display:flex;flex-direction:column}.deploy-remote-card[data-v-d687d161]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);transition:border-color var(--cg-transition-fast)}.deploy-remote-card.selected[data-v-d687d161]{border-color:var(--cg-color-accent);background:var(--cg-color-bg-secondary)}.remote-header[data-v-d687d161]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.remote-info[data-v-d687d161]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.remote-icon[data-v-d687d161]{font-size:var(--cg-font-size-sm)}.remote-name[data-v-d687d161]{font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.default-badge[data-v-d687d161]{display:inline-block;padding:2px 6px;background:transparent;border:1px solid var(--cg-color-success);color:var(--cg-color-success);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.sync-badge[data-v-d687d161]{display:inline-flex;align-items:center;gap:var(--cg-space-1);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.sync-badge .ahead[data-v-d687d161]{color:var(--cg-color-info)}.sync-badge .behind[data-v-d687d161]{color:var(--cg-color-warning)}.sync-badge .synced[data-v-d687d161]{color:var(--cg-color-success)}.remote-url[data-v-d687d161]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-info);text-decoration:none}.remote-url[data-v-d687d161]:hover{text-decoration:underline}.remote-url-text[data-v-d687d161]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.remote-actions[data-v-d687d161]{display:flex;gap:var(--cg-space-2);flex-wrap:wrap}.runpod-tab[data-v-522cd4d9]{padding:var(--cg-space-3)}.api-key-card[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.api-key-row[data-v-522cd4d9]{display:flex;gap:var(--cg-space-2);align-items:center}.api-key-input-wrapper[data-v-522cd4d9]{flex:1;position:relative;display:flex;align-items:center}.api-key-input[data-v-522cd4d9]{width:100%;padding:var(--cg-space-2) var(--cg-space-3);padding-right:40px;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.api-key-input[data-v-522cd4d9]:focus{outline:none;border-color:var(--cg-color-accent)}.api-key-input[data-v-522cd4d9]:disabled{opacity:.7;cursor:not-allowed}.toggle-visibility-btn[data-v-522cd4d9]{position:absolute;right:8px;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;font-size:14px}.toggle-visibility-btn[data-v-522cd4d9]:hover{color:var(--cg-color-text-primary)}.connection-status[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);font-size:var(--cg-font-size-xs)}.connection-status.success[data-v-522cd4d9]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.connection-status.error[data-v-522cd4d9]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.status-icon[data-v-522cd4d9]{font-weight:700}.connection-status.success .status-icon[data-v-522cd4d9]{color:var(--cg-color-success)}.connection-status.error .status-icon[data-v-522cd4d9]{color:var(--cg-color-error)}.status-text[data-v-522cd4d9]{flex:1;color:var(--cg-color-text-primary)}.credit-balance[data-v-522cd4d9]{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-semibold)}.api-key-help[data-v-522cd4d9]{display:flex;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.help-icon[data-v-522cd4d9]{flex-shrink:0;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border:1px solid var(--cg-color-border-subtle);border-radius:50%;font-size:10px}.help-text a[data-v-522cd4d9]{color:var(--cg-color-accent);text-decoration:none}.help-text a[data-v-522cd4d9]:hover{text-decoration:underline}.config-card[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-4)}.config-row[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.loading-inline[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.no-volumes-state[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning)}.no-volumes-icon[data-v-522cd4d9]{color:var(--cg-color-warning)}.no-volumes-text[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.volume-help[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:var(--cg-space-2) 0;line-height:1.4}.create-volume-link[data-v-522cd4d9]{display:inline-block;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-accent);color:var(--cg-color-bg-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);text-decoration:none;text-align:center}.create-volume-link[data-v-522cd4d9]:hover{background:var(--cg-color-accent-hover)}.create-volume-inline-link[data-v-522cd4d9]{display:inline-block;margin-top:var(--cg-space-2);color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);text-decoration:none;width:fit-content}.create-volume-inline-link[data-v-522cd4d9]:hover{text-decoration:underline}.config-label[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.config-select[data-v-522cd4d9],.config-input[data-v-522cd4d9]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.config-select[data-v-522cd4d9]:focus,.config-input[data-v-522cd4d9]:focus{outline:none;border-color:var(--cg-color-accent)}.config-select[data-v-522cd4d9]:disabled{opacity:.5}.radio-group[data-v-522cd4d9]{display:flex;gap:var(--cg-space-4)}.radio-option[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer}.radio-option input[data-v-522cd4d9]{accent-color:var(--cg-color-accent)}.radio-option.disabled[data-v-522cd4d9]{cursor:not-allowed;opacity:.5}.radio-option.disabled input[data-v-522cd4d9]{cursor:not-allowed}.radio-label[data-v-522cd4d9]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.summary-card[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-2)}.summary-row[data-v-522cd4d9]{display:flex;justify-content:space-between;align-items:center}.summary-label[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.summary-value[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.summary-sub-row[data-v-522cd4d9]{padding-left:var(--cg-space-4)}.summary-sub-label[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.summary-sub-row.warning .summary-sub-label[data-v-522cd4d9]{color:var(--cg-color-warning)}.deploy-actions[data-v-522cd4d9]{display:flex;gap:var(--cg-space-3);padding:var(--cg-space-4) 0}.deployment-summary[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.summary-columns[data-v-522cd4d9]{display:grid;grid-template-columns:1fr 1fr;gap:var(--cg-space-4)}.summary-column[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.column-header[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);padding-bottom:var(--cg-space-2);border-bottom:1px solid var(--cg-color-border-subtle);margin-bottom:var(--cg-space-1)}.pricing-row[data-v-522cd4d9]{display:flex;justify-content:space-between;align-items:center}.pricing-label[data-v-522cd4d9]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.pricing-value[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.pricing-divider[data-v-522cd4d9]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-1) 0}.pricing-row.total .pricing-label[data-v-522cd4d9],.pricing-row.total .pricing-value[data-v-522cd4d9]{font-weight:var(--cg-font-weight-semibold)}.pricing-row.total .pricing-value[data-v-522cd4d9]{color:var(--cg-color-accent)}.spec-row[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.spec-row.spot-warning[data-v-522cd4d9]{color:var(--cg-color-warning);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-2)}.info-tooltip[data-v-522cd4d9]{cursor:help;color:var(--cg-color-text-muted);font-size:12px;margin-left:var(--cg-space-1)}.loading-text[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center;padding:var(--cg-space-4)}.empty-remotes[data-v-522cd4d9]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-4);padding:var(--cg-space-6);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);text-align:center}.empty-message[data-v-522cd4d9]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2)}.empty-icon[data-v-522cd4d9]{font-size:var(--cg-font-size-2xl)}.empty-text[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium)}.empty-help[data-v-522cd4d9]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0}.remotes-list[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.sync-warning[data-v-522cd4d9]{display:flex;gap:var(--cg-space-3);align-items:flex-start;padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);margin-top:var(--cg-space-3)}.sync-warning .warning-icon[data-v-522cd4d9]{flex-shrink:0;font-size:var(--cg-font-size-lg)}.sync-warning .warning-content[data-v-522cd4d9]{flex:1}.sync-warning .warning-content strong[data-v-522cd4d9]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.sync-warning .warning-content p[data-v-522cd4d9]{margin:var(--cg-space-1) 0 0 0;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.remotes-footer[data-v-522cd4d9]{margin-top:var(--cg-space-3);text-align:right}.progress-content[data-v-522cd4d9]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.phase-indicator[data-v-522cd4d9]{display:flex;align-items:center;gap:var(--cg-space-3)}.phase-icon[data-v-522cd4d9]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;font-size:20px;border-radius:50%;background:var(--cg-color-bg-tertiary);border:2px solid var(--cg-color-border)}.phase-icon.ready[data-v-522cd4d9]{background:var(--cg-color-success-muted);border-color:var(--cg-color-success);color:var(--cg-color-success)}.phase-icon.error[data-v-522cd4d9]{background:var(--cg-color-error-muted);border-color:var(--cg-color-error);color:var(--cg-color-error)}.phase-icon.stopped[data-v-522cd4d9]{background:var(--cg-color-bg-tertiary);border-color:var(--cg-color-border);color:var(--cg-color-text-muted)}.phase-icon .spinner[data-v-522cd4d9]{animation:spin-522cd4d9 1s linear infinite}@keyframes spin-522cd4d9{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.phase-text[data-v-522cd4d9]{flex:1}.phase-name[data-v-522cd4d9]{font-size:var(--cg-font-size-md);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.phase-detail[data-v-522cd4d9]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);margin-top:var(--cg-space-1)}.ready-actions[data-v-522cd4d9]{display:flex;justify-content:center;padding:var(--cg-space-2) 0}.console-link[data-v-522cd4d9]{text-align:center}.console-link a[data-v-522cd4d9]{color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);text-decoration:none}.console-link a[data-v-522cd4d9]:hover{text-decoration:underline}.worker-card[data-v-b1be7134]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-3);display:flex;flex-direction:column;gap:var(--cg-space-2)}.worker-card.offline[data-v-b1be7134]{opacity:.7}.worker-header[data-v-b1be7134]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2)}.worker-status[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-2)}.status-dot[data-v-b1be7134]{width:8px;height:8px;border-radius:50%}.status-dot.online[data-v-b1be7134]{background:var(--cg-color-success);box-shadow:0 0 4px var(--cg-color-success)}.status-dot.offline[data-v-b1be7134]{background:var(--cg-color-text-muted)}.status-dot.unknown[data-v-b1be7134]{background:var(--cg-color-warning)}.worker-name[data-v-b1be7134]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary)}.worker-actions[data-v-b1be7134]{display:flex;gap:var(--cg-space-1)}.worker-details[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.detail-item[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-1)}.detail-label[data-v-b1be7134]{color:var(--cg-color-text-muted)}.detail-value[data-v-b1be7134]{font-family:var(--cg-font-mono)}.mode-badge[data-v-b1be7134]{text-transform:capitalize;padding:1px 6px;background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border)}.worker-stats[data-v-b1be7134]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);display:flex;align-items:center;gap:var(--cg-space-1)}.stat-item[data-v-b1be7134]{display:flex;align-items:center;gap:var(--cg-space-1)}.stat-value[data-v-b1be7134]{font-weight:var(--cg-font-weight-medium)}.stat-value.online[data-v-b1be7134]{color:var(--cg-color-success)}.stat-value.offline[data-v-b1be7134]{color:var(--cg-color-text-muted)}.add-worker-content[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.manual-form[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.form-row[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-row-inline[data-v-07a00732]{display:flex;gap:var(--cg-space-3)}.form-field[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.flex-1[data-v-07a00732]{flex:1}.flex-2[data-v-07a00732]{flex:2}.form-label[data-v-07a00732]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-07a00732]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-07a00732]:focus{outline:none;border-color:var(--cg-color-accent)}.api-key-wrapper[data-v-07a00732]{position:relative;display:flex;align-items:center}.api-key-wrapper .form-input[data-v-07a00732]{width:100%;padding-right:40px}.toggle-visibility[data-v-07a00732]{position:absolute;right:8px;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;font-size:14px}.toggle-visibility[data-v-07a00732]:hover{color:var(--cg-color-text-primary)}.form-help[data-v-07a00732]{display:flex;align-items:center;gap:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.help-icon[data-v-07a00732]{font-size:10px}.form-help code[data-v-07a00732]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);color:var(--cg-color-accent)}.test-result[data-v-07a00732]{display:flex;align-items:flex-start;gap:var(--cg-space-2);padding:var(--cg-space-3)}.test-result.success[data-v-07a00732]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.test-result.error[data-v-07a00732]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.result-icon[data-v-07a00732]{font-weight:700}.test-result.success .result-icon[data-v-07a00732]{color:var(--cg-color-success)}.test-result.error .result-icon[data-v-07a00732]{color:var(--cg-color-error)}.result-content[data-v-07a00732]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.result-message[data-v-07a00732]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.result-detail[data-v-07a00732]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.modal-actions[data-v-07a00732]{display:flex;gap:var(--cg-space-2);justify-content:flex-end}.discovered-content[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.workers-list[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.worker-item[data-v-5a3e40a4]{display:flex;align-items:center;justify-content:space-between;padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border)}.worker-info[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.worker-name[data-v-5a3e40a4]{color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-medium);font-size:var(--cg-font-size-sm)}.worker-address[data-v-5a3e40a4]{color:var(--cg-color-text-muted);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.worker-gpu[data-v-5a3e40a4]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.empty-state[data-v-5a3e40a4]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-6);text-align:center}.empty-icon[data-v-5a3e40a4]{font-size:24px;opacity:.5}.empty-text[data-v-5a3e40a4]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.empty-help[data-v-5a3e40a4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.empty-help code[data-v-5a3e40a4]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);color:var(--cg-color-accent)}.api-key-section[data-v-5a3e40a4]{border-top:1px solid var(--cg-color-border-subtle);padding-top:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.selected-worker[data-v-5a3e40a4]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm)}.selected-label[data-v-5a3e40a4]{color:var(--cg-color-text-muted)}.selected-name[data-v-5a3e40a4]{color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-medium)}.selected-address[data-v-5a3e40a4]{color:var(--cg-color-text-muted);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.form-row[data-v-5a3e40a4]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-label[data-v-5a3e40a4]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-5a3e40a4]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-5a3e40a4]:focus{outline:none;border-color:var(--cg-color-accent)}.api-key-wrapper[data-v-5a3e40a4]{position:relative;display:flex;align-items:center}.api-key-wrapper .form-input[data-v-5a3e40a4]{width:100%;padding-right:40px}.toggle-visibility[data-v-5a3e40a4]{position:absolute;right:8px;background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;font-size:14px}.toggle-visibility[data-v-5a3e40a4]:hover{color:var(--cg-color-text-primary)}.form-help[data-v-5a3e40a4]{display:flex;align-items:center;gap:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.help-icon[data-v-5a3e40a4]{font-size:10px}.form-help code[data-v-5a3e40a4]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);color:var(--cg-color-accent)}.test-result[data-v-5a3e40a4]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm)}.test-result.success[data-v-5a3e40a4]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.test-result.error[data-v-5a3e40a4]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.result-icon[data-v-5a3e40a4]{font-weight:700}.test-result.success .result-icon[data-v-5a3e40a4]{color:var(--cg-color-success)}.test-result.error .result-icon[data-v-5a3e40a4]{color:var(--cg-color-error)}.result-message[data-v-5a3e40a4]{color:var(--cg-color-text-primary)}.modal-actions[data-v-5a3e40a4]{display:flex;gap:var(--cg-space-2);justify-content:flex-end}.deploy-content[data-v-c12720d3]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.section[data-v-c12720d3]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-label[data-v-c12720d3]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.loading-text[data-v-c12720d3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);padding:var(--cg-space-3);text-align:center}.empty-remotes[data-v-c12720d3]{display:flex;flex-direction:column;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-4);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);text-align:center}.empty-icon[data-v-c12720d3]{font-size:var(--cg-font-size-xl)}.empty-text[data-v-c12720d3]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.empty-help[data-v-c12720d3]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0}.remotes-list[data-v-c12720d3],.mode-options[data-v-c12720d3]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.mode-option[data-v-c12720d3]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer}.mode-option input[data-v-c12720d3]{accent-color:var(--cg-color-accent)}.mode-option input[data-v-c12720d3]:disabled{opacity:.5}.mode-label[data-v-c12720d3]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.form-input[data-v-c12720d3]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-c12720d3]:focus{outline:none;border-color:var(--cg-color-accent)}.summary-row[data-v-c12720d3]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle)}.sync-warning[data-v-c12720d3]{display:flex;gap:var(--cg-space-3);align-items:flex-start;padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning)}.sync-warning .warning-icon[data-v-c12720d3]{flex-shrink:0;font-size:var(--cg-font-size-lg)}.sync-warning .warning-content[data-v-c12720d3]{flex:1}.sync-warning .warning-content strong[data-v-c12720d3]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.sync-warning .warning-content p[data-v-c12720d3]{margin:var(--cg-space-1) 0 0 0;color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs)}.modal-actions[data-v-c12720d3]{display:flex;gap:var(--cg-space-2);justify-content:flex-end}.custom-tab[data-v-1637dead]{padding:var(--cg-space-3)}.section-header[data-v-1637dead]{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cg-space-3)}.section-title[data-v-1637dead]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.section-actions[data-v-1637dead]{display:flex;gap:var(--cg-space-2)}.loading-state[data-v-1637dead]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.loading-state .spinner[data-v-1637dead]{width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-1637dead .8s linear infinite;margin-bottom:var(--cg-space-2)}@keyframes spin-1637dead{to{transform:rotate(360deg)}}.empty-state[data-v-1637dead]{padding:var(--cg-space-2)}.empty-card[data-v-1637dead]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);padding:var(--cg-space-4)}.empty-text[data-v-1637dead]{display:block;color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);margin-bottom:var(--cg-space-3)}.empty-help[data-v-1637dead]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin:0 0 var(--cg-space-2) 0}.setup-steps[data-v-1637dead]{margin:0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.6}.setup-steps li[data-v-1637dead]{margin-bottom:var(--cg-space-2)}.setup-steps code[data-v-1637dead]{display:inline-block;margin-top:var(--cg-space-1);padding:var(--cg-space-1) var(--cg-space-2);background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);color:var(--cg-color-accent)}.workers-list[data-v-1637dead]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.scan-result[data-v-1637dead]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);margin-top:var(--cg-space-3);font-size:var(--cg-font-size-xs)}.scan-result.success[data-v-1637dead]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.scan-result.info[data-v-1637dead]{background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border)}.scan-icon[data-v-1637dead]{flex-shrink:0}.scan-result.success .scan-icon[data-v-1637dead]{color:var(--cg-color-success)}.scan-message[data-v-1637dead]{flex:1;color:var(--cg-color-text-primary)}.dismiss-btn[data-v-1637dead]{background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:0 var(--cg-space-1);font-size:var(--cg-font-size-md)}.dismiss-btn[data-v-1637dead]:hover{color:var(--cg-color-text-primary)}.settings-content[data-v-b21588ad]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.settings-section[data-v-b21588ad]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.section-header[data-v-b21588ad]{display:flex;align-items:center;gap:var(--cg-space-2)}.section-title[data-v-b21588ad]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-medium);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);color:var(--cg-color-text-primary)}.section-description[data-v-b21588ad]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin:0;line-height:1.5}.ssh-warning[data-v-b21588ad]{display:flex;align-items:flex-start;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning)}.warning-icon[data-v-b21588ad]{color:var(--cg-color-warning);font-weight:700;font-size:var(--cg-font-size-sm)}.warning-content[data-v-b21588ad]{font-size:var(--cg-font-size-xs);line-height:1.5}.warning-content strong[data-v-b21588ad]{color:var(--cg-color-text-primary)}.warning-content p[data-v-b21588ad]{margin:var(--cg-space-1) 0 0 0;color:var(--cg-color-text-secondary)}.warning-content code[data-v-b21588ad]{padding:1px 4px;background:var(--cg-color-bg-secondary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs)}.form-row[data-v-b21588ad]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-label[data-v-b21588ad]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.token-wrapper[data-v-b21588ad]{display:flex;align-items:center;gap:var(--cg-space-1)}.form-input[data-v-b21588ad]{flex:1;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-b21588ad]:focus{outline:none;border-color:var(--cg-color-accent)}.toggle-visibility[data-v-b21588ad]{padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;cursor:pointer}.toggle-visibility[data-v-b21588ad]:hover{color:var(--cg-color-text-primary);border-color:var(--cg-color-border-strong)}.form-help[data-v-b21588ad]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.test-result[data-v-b21588ad]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);font-size:var(--cg-font-size-sm)}.test-result.success[data-v-b21588ad]{background:var(--cg-color-success-muted);border:1px solid var(--cg-color-success)}.test-result.error[data-v-b21588ad]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error)}.result-icon[data-v-b21588ad]{font-weight:700}.test-result.success .result-icon[data-v-b21588ad]{color:var(--cg-color-success)}.test-result.error .result-icon[data-v-b21588ad]{color:var(--cg-color-error)}.result-message[data-v-b21588ad]{color:var(--cg-color-text-primary)}.token-actions[data-v-b21588ad]{display:flex;gap:var(--cg-space-2)}.deploy-info[data-v-d4e32a10]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.info-section strong[data-v-d4e32a10]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.info-section p[data-v-d4e32a10]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);margin:var(--cg-space-1) 0 0 0;line-height:1.5}.info-section ul[data-v-d4e32a10]{margin:var(--cg-space-2) 0 0 0;padding-left:var(--cg-space-4);color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.6}.info-section li[data-v-d4e32a10]{margin-bottom:var(--cg-space-1)}.info-section li strong[data-v-d4e32a10]{font-size:var(--cg-font-size-xs)}.header-info[data-v-d256ff6d]{flex:1;display:flex;flex-direction:column;gap:6px}.header-title[data-v-d256ff6d]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;font-weight:var(--cg-font-weight-normal)}.commit-hash[data-v-d256ff6d]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-base);color:var(--cg-color-info);font-weight:var(--cg-font-weight-semibold)}.commit-refs[data-v-d256ff6d]{display:flex;gap:6px;flex-wrap:wrap}.ref-badge[data-v-d256ff6d]{padding:2px 8px;background:transparent;border:1px solid var(--cg-color-accent);color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);font-family:var(--cg-font-mono);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.commit-message[data-v-d256ff6d]{font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary);margin-bottom:6px}.commit-date[data-v-d256ff6d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-bottom:var(--cg-space-4)}.loading[data-v-d256ff6d]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.changes-section[data-v-d256ff6d]{margin-top:var(--cg-space-2)}.stats-row[data-v-d256ff6d]{display:flex;gap:16px;padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);margin-bottom:var(--cg-space-4);font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono)}.stat[data-v-d256ff6d]{color:var(--cg-color-text-muted)}.stat.insertions[data-v-d256ff6d]{color:var(--cg-color-success)}.stat.deletions[data-v-d256ff6d]{color:var(--cg-color-error)}.change-group[data-v-d256ff6d]{margin-bottom:var(--cg-space-4)}.change-item[data-v-d256ff6d]{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);background:var(--cg-color-bg-tertiary);border-left:2px solid transparent;margin-bottom:2px}.change-icon[data-v-d256ff6d]{font-family:var(--cg-font-mono);font-weight:var(--cg-font-weight-bold);width:14px;text-align:center;font-size:var(--cg-font-size-base)}.change-item.added[data-v-d256ff6d]{border-left-color:var(--cg-color-success)}.change-item.added .change-icon[data-v-d256ff6d]{color:var(--cg-color-success)}.change-item.modified[data-v-d256ff6d]{border-left-color:var(--cg-color-warning)}.change-item.modified .change-icon[data-v-d256ff6d]{color:var(--cg-color-warning)}.change-item.deleted[data-v-d256ff6d]{border-left-color:var(--cg-color-error)}.change-item.deleted .change-icon[data-v-d256ff6d]{color:var(--cg-color-error)}.version[data-v-d256ff6d]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.base-textarea-wrapper[data-v-c6d16c93]{display:flex;flex-direction:column;gap:4px}.base-textarea[data-v-c6d16c93]{width:100%;padding:10px 12px;background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm);font-family:inherit;resize:vertical;line-height:var(--cg-line-height-normal);transition:all var(--cg-transition-fast)}.base-textarea[data-v-c6d16c93]:focus{outline:none;border-color:var(--cg-color-accent);box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-textarea[data-v-c6d16c93]:disabled{opacity:.5;cursor:not-allowed}.base-textarea-count[data-v-c6d16c93]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-align:right}.base-checkbox[data-v-bf17c831]{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.base-checkbox.disabled[data-v-bf17c831]{opacity:.5;cursor:not-allowed}.base-checkbox-input[data-v-bf17c831]{position:absolute;opacity:0;pointer-events:none}.base-checkbox-box[data-v-bf17c831]{width:18px;height:18px;border:2px solid var(--cg-color-border);border-radius:var(--cg-radius-sm);background:var(--cg-color-bg-tertiary);display:flex;align-items:center;justify-content:center;transition:all var(--cg-transition-fast);flex-shrink:0}.base-checkbox:hover:not(.disabled) .base-checkbox-box[data-v-bf17c831]{border-color:var(--cg-color-accent)}.base-checkbox-input:checked+.base-checkbox-box[data-v-bf17c831]{background:var(--cg-color-accent);border-color:var(--cg-color-accent);color:var(--cg-color-text-inverse)}.base-checkbox-input:focus+.base-checkbox-box[data-v-bf17c831]{box-shadow:0 0 0 2px var(--cg-color-accent-muted)}.base-checkbox-label[data-v-bf17c831]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.modal-overlay[data-v-5f897631]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.commit-popover[data-v-5f897631]{background:var(--cg-color-bg-primary);border:2px solid var(--cg-color-border);box-shadow:var(--cg-shadow-xl);min-width:400px;max-width:500px;display:flex;flex-direction:column}.commit-popover.modal[data-v-5f897631]{border-radius:var(--cg-radius-lg);animation:modalSlideIn-5f897631 .2s ease}@keyframes modalSlideIn-5f897631{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.popover-header[data-v-5f897631]{padding:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:space-between;align-items:center}.popover-title[data-v-5f897631]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;flex:1}.close-btn[data-v-5f897631]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.close-btn[data-v-5f897631]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.popover-body[data-v-5f897631]{padding:var(--cg-space-3);max-height:400px;overflow-y:auto}.popover-footer[data-v-5f897631]{padding:var(--cg-space-3);border-top:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:flex-end;gap:8px}.changes-summary[data-v-5f897631]{background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-md);padding:8px;margin-bottom:12px;font-size:var(--cg-font-size-xs)}.change-item[data-v-5f897631]{display:flex;align-items:center;gap:6px;padding:2px 0}.change-icon[data-v-5f897631]{font-family:monospace;font-weight:600;width:12px;text-align:center}.change-icon.new[data-v-5f897631]{color:var(--cg-color-success)}.change-icon.modified[data-v-5f897631]{color:var(--cg-color-warning)}.change-icon.deleted[data-v-5f897631]{color:var(--cg-color-error)}.no-changes[data-v-5f897631],.loading[data-v-5f897631]{text-align:center;padding:12px;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.message-section[data-v-5f897631]{margin-bottom:8px}.issues-error[data-v-5f897631]{background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md);padding:10px;margin-bottom:12px}.error-header[data-v-5f897631]{display:flex;align-items:center;gap:6px;margin-bottom:8px;color:var(--cg-color-error)}.error-icon[data-v-5f897631]{font-size:14px;line-height:1}.error-title[data-v-5f897631]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium)}.issues-list[data-v-5f897631]{margin-bottom:10px;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.issue-item[data-v-5f897631]{padding:4px 0;line-height:1.4}.issue-item strong[data-v-5f897631]{color:var(--cg-color-text-primary)}.workflow-state[data-v-5f897631]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-left:4px}.allow-issues-toggle[data-v-5f897631]{margin-top:8px;font-size:var(--cg-font-size-xs)}.modal-overlay[data-v-e9c5253e]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-e9c5253e]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:500px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-e9c5253e]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-e9c5253e]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.modal-close[data-v-e9c5253e]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-e9c5253e]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.switch-message[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary);line-height:1.5}.switch-message strong[data-v-e9c5253e]{color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.warning-box[data-v-e9c5253e]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning)}.warning-icon[data-v-e9c5253e]{font-size:var(--cg-font-size-lg);flex-shrink:0}.switch-details[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);line-height:1.5}.switch-eta[data-v-e9c5253e]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-muted);font-style:italic}.modal-actions[data-v-e9c5253e]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.modal-overlay[data-v-768a5078]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10006;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-content[data-v-768a5078]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-accent);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-xl),0 0 20px var(--cg-color-accent-muted);max-width:500px;width:90%;animation:modalSlideIn-768a5078 .3s ease}@keyframes modalSlideIn-768a5078{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header[data-v-768a5078]{padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle);text-align:center}.modal-title[data-v-768a5078]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-body[data-v-768a5078]{padding:var(--cg-space-5);display:flex;flex-direction:column;gap:var(--cg-space-4)}.progress-info[data-v-768a5078]{display:flex;justify-content:space-between;align-items:center;gap:var(--cg-space-2)}.progress-percentage[data-v-768a5078]{font-size:var(--cg-font-size-xl);font-weight:var(--cg-font-weight-bold);color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.progress-state[data-v-768a5078]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);text-align:right;flex:1}.switch-steps[data-v-768a5078]{display:flex;flex-direction:column;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-bg-tertiary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm)}.switch-step[data-v-768a5078]{display:flex;align-items:center;gap:var(--cg-space-2);font-size:var(--cg-font-size-sm);transition:all var(--cg-transition-fast)}.switch-step.pending[data-v-768a5078],.switch-step.pending .step-icon[data-v-768a5078]{color:var(--cg-color-text-muted)}.switch-step.active[data-v-768a5078]{color:var(--cg-color-accent);font-weight:var(--cg-font-weight-medium)}.switch-step.active .step-icon[data-v-768a5078]{color:var(--cg-color-accent);animation:spin-768a5078 1s linear infinite}@keyframes spin-768a5078{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.switch-step.completed[data-v-768a5078],.switch-step.completed .step-icon[data-v-768a5078]{color:var(--cg-color-success)}.step-icon[data-v-768a5078]{flex-shrink:0;font-size:var(--cg-font-size-base);width:16px;display:inline-block;text-align:center}.step-label[data-v-768a5078]{flex:1}.progress-warning[data-v-768a5078]{margin:0;padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-info-muted);border:1px solid var(--cg-color-info);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-info);text-align:center}.modal-overlay[data-v-7cad7518]{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10005;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-content[data-v-7cad7518]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-lg);box-shadow:var(--cg-shadow-lg);max-width:600px;width:90%;max-height:80vh;overflow-y:auto}.modal-header[data-v-7cad7518]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border-subtle)}.modal-title[data-v-7cad7518]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.modal-close[data-v-7cad7518]{background:transparent;border:none;color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xl);cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color var(--cg-transition-fast)}.modal-close[data-v-7cad7518]:hover{color:var(--cg-color-text-primary)}.modal-body[data-v-7cad7518]{padding:var(--cg-space-4);display:flex;flex-direction:column;gap:var(--cg-space-3)}.sync-message[data-v-7cad7518]{margin:0;font-size:var(--cg-font-size-base);color:var(--cg-color-text-primary);line-height:1.5}.node-section[data-v-7cad7518]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.section-title[data-v-7cad7518]{margin:0;font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-secondary);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.node-list[data-v-7cad7518]{display:flex;flex-direction:column;gap:var(--cg-space-1);max-height:200px;overflow-y:auto;padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border-radius:var(--cg-radius-sm)}.node-item[data-v-7cad7518]{font-size:var(--cg-font-size-sm);font-family:var(--cg-font-mono);line-height:1.5}.node-item.add[data-v-7cad7518]{color:var(--cg-color-info)}.node-item.remove[data-v-7cad7518]{color:var(--cg-color-warning)}.warning-box[data-v-7cad7518]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-3);background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-sm);color:var(--cg-color-warning)}.warning-icon[data-v-7cad7518]{font-size:var(--cg-font-size-lg);flex-shrink:0}.modal-actions[data-v-7cad7518]{padding:var(--cg-space-4);border-top:1px solid var(--cg-color-border-subtle);display:flex;gap:var(--cg-space-2);justify-content:flex-end}.social-buttons[data-v-4f846342]{display:flex;align-items:center;gap:4px}.icon-btn[data-v-4f846342]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-4f846342]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.sponsor-btn[data-v-4f846342]{gap:4px;padding:4px 8px;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-secondary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);opacity:.7}.sponsor-btn[data-v-4f846342]:hover{opacity:1;border-color:#db61a2;color:#db61a2}.icon-btn.social-link[data-v-4f846342]{opacity:.7}.icon-btn.social-link[data-v-4f846342]:hover{opacity:1}.footer-info[data-v-8bc3db0a]{display:flex;align-items:center;gap:var(--cg-space-3);font-size:10px;color:var(--cg-color-text-muted)}.version[data-v-8bc3db0a]{opacity:.7}.made-by[data-v-8bc3db0a]{display:flex;align-items:center;gap:2px}.heart-icon[data-v-8bc3db0a]{color:#db61a2}[data-v-fac00ae7] .base-modal-overlay{z-index:10004}.base-modal-title[data-v-9a9aadc0]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);margin:0;flex:1}.header-actions[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2)}.wizard-step[data-v-9a9aadc0]{min-height:300px}.wizard-intro[data-v-9a9aadc0]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm);line-height:1.6;margin-bottom:var(--cg-space-4)}.form-field[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-1);margin-bottom:var(--cg-space-4)}.form-field--checkbox[data-v-9a9aadc0]{flex-direction:row;align-items:center}.form-label[data-v-9a9aadc0]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.form-input[data-v-9a9aadc0],.form-select[data-v-9a9aadc0]{background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);padding:var(--cg-space-2) var(--cg-space-3);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.form-input[data-v-9a9aadc0]:hover,.form-select[data-v-9a9aadc0]:hover{border-color:var(--cg-color-border)}.form-input[data-v-9a9aadc0]:focus,.form-select[data-v-9a9aadc0]:focus{outline:none;border-color:var(--cg-color-accent)}.form-select[data-v-9a9aadc0]{cursor:pointer}.form-select[data-v-9a9aadc0]:disabled{opacity:.5;cursor:not-allowed}.form-checkbox[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);cursor:pointer;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.form-checkbox input[type=checkbox][data-v-9a9aadc0]{width:16px;height:16px;accent-color:var(--cg-color-accent);cursor:pointer}.form-error[data-v-9a9aadc0]{color:var(--cg-color-error);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.form-info[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.form-suggestion[data-v-9a9aadc0]{color:var(--cg-color-accent);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.cli-warning[data-v-9a9aadc0]{background:#ffc1071a;border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);padding:var(--cg-space-3);margin-bottom:var(--cg-space-4)}.cli-warning-header[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.cli-warning-title[data-v-9a9aadc0]{flex:1}.cli-warning-close[data-v-9a9aadc0]{background:transparent;border:none;color:var(--cg-color-text-muted);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;opacity:.7}.cli-warning-close[data-v-9a9aadc0]:hover{opacity:1;color:var(--cg-color-text-primary)}.cli-warning-icon[data-v-9a9aadc0]{color:var(--cg-color-warning);font-size:var(--cg-font-size-lg);font-weight:700}.cli-warning-title[data-v-9a9aadc0]{font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.cli-warning-text[data-v-9a9aadc0]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary);margin:0 0 var(--cg-space-2) 0;line-height:1.5}.cli-warning-commands[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);flex-wrap:wrap}.cli-warning-commands code[data-v-9a9aadc0]{background:var(--cg-color-bg-primary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.cli-warning-or[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.env-landing[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.landing-option[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-3);padding:var(--cg-space-4);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);cursor:pointer;text-align:left;width:100%;transition:all var(--cg-transition-fast)}.landing-option[data-v-9a9aadc0]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-tertiary)}.option-icon[data-v-9a9aadc0]{font-size:var(--cg-font-size-2xl);flex-shrink:0}.option-content[data-v-9a9aadc0]{flex:1;display:flex;flex-direction:column;gap:var(--cg-space-1)}.option-title[data-v-9a9aadc0]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.option-description[data-v-9a9aadc0]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-sm)}.option-arrow[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-lg)}.landing-divider[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-4);margin:var(--cg-space-2) 0}.landing-divider[data-v-9a9aadc0]:before,.landing-divider[data-v-9a9aadc0]:after{content:"";flex:1;height:1px;background:var(--cg-color-border-subtle)}.landing-divider span[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-transform:lowercase}.env-list[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-2)}.env-option[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-2) var(--cg-space-3);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle);border-radius:var(--cg-radius-sm);cursor:pointer;transition:all var(--cg-transition-fast)}.env-option[data-v-9a9aadc0]:hover{border-color:var(--cg-color-border)}.env-option.selected[data-v-9a9aadc0]{border-color:var(--cg-color-accent);background:var(--cg-color-bg-tertiary)}.env-option input[type=radio][data-v-9a9aadc0]{accent-color:var(--cg-color-accent)}.env-name[data-v-9a9aadc0]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary)}.env-create[data-v-9a9aadc0],.env-import[data-v-9a9aadc0]{display:flex;flex-direction:column}.env-creating[data-v-9a9aadc0]{display:flex;flex-direction:column;gap:var(--cg-space-4);padding:var(--cg-space-4)}.creating-intro[data-v-9a9aadc0]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base);margin:0;text-align:center}.creating-intro strong[data-v-9a9aadc0]{color:var(--cg-color-text-primary)}.progress-warning[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm);text-align:center;margin:0}.progress-check-loading[data-v-9a9aadc0]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--cg-space-3);padding:var(--cg-space-8);min-height:200px}.loading-spinner[data-v-9a9aadc0]{width:32px;height:32px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-9a9aadc0 .8s linear infinite}@keyframes spin-9a9aadc0{to{transform:rotate(360deg)}}.loading-text[data-v-9a9aadc0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.icon-btn[data-v-9a9aadc0]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-9a9aadc0]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.header-divider[data-v-9a9aadc0]{width:1px;height:16px;background:var(--cg-color-border-subtle);margin:0 4px;align-self:center}.wizard-footer[data-v-9a9aadc0]{display:flex;justify-content:space-between;align-items:center;width:100%}.wizard-footer-actions[data-v-9a9aadc0]{display:flex;align-items:center;gap:var(--cg-space-2)}.comfygit-panel[data-v-45a711b4]{display:flex;flex-direction:column;height:70vh;width:100%;background:var(--cg-color-bg-primary);color:var(--cg-color-text-primary);border:2px solid var(--cg-color-border);overflow:hidden;font-family:var(--cg-font-mono)}.panel-header[data-v-45a711b4]{padding:var(--cg-space-3) var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);display:flex;justify-content:space-between;align-items:center;background:var(--cg-color-bg-tertiary);flex-shrink:0}.header-left[data-v-45a711b4]{display:flex;align-items:center;gap:12px}.panel-title[data-v-45a711b4]{font-size:var(--cg-font-size-sm);font-weight:var(--cg-font-weight-semibold);margin:0;color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.header-info[data-v-45a711b4]{display:flex;align-items:center;gap:6px;font-size:var(--cg-font-size-xs)}.env-name[data-v-45a711b4]{color:var(--cg-color-text-secondary)}.branch-name[data-v-45a711b4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.status-dot[data-v-45a711b4]{width:8px;height:8px;border-radius:50%}.status-dot.success[data-v-45a711b4]{background:var(--cg-color-success)}.status-dot.warning[data-v-45a711b4]{background:var(--cg-color-warning)}.status-dot.error[data-v-45a711b4]{background:var(--cg-color-error)}.status-dot.neutral[data-v-45a711b4]{background:var(--cg-color-text-muted)}.header-actions[data-v-45a711b4]{display:flex;gap:4px}.icon-btn[data-v-45a711b4]{background:transparent;border:1px solid transparent;color:var(--cg-color-text-primary);cursor:pointer;padding:6px;display:flex;align-items:center;justify-content:center}.icon-btn[data-v-45a711b4]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.icon-btn.spinning svg[data-v-45a711b4]{animation:spin-45a711b4 1s linear infinite}@keyframes spin-45a711b4{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-divider[data-v-45a711b4]{width:1px;height:16px;background:var(--cg-color-border-subtle);margin:0 4px;align-self:center}.env-switcher[data-v-45a711b4]{padding:var(--cg-space-3) var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-secondary);flex-shrink:0}.env-switcher-header[data-v-45a711b4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.env-switcher-label[data-v-45a711b4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.env-control-buttons[data-v-45a711b4]{display:flex;gap:var(--cg-space-2)}.env-control-btn[data-v-45a711b4]{padding:2px 8px;font-family:var(--cg-font-mono);font-size:10px;text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-muted);cursor:pointer;transition:all var(--cg-transition-fast)}.env-control-btn[data-v-45a711b4]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.env-control-btn.stop[data-v-45a711b4]{border-color:var(--cg-color-error);color:var(--cg-color-error);opacity:.7}.env-control-btn.stop[data-v-45a711b4]:hover{opacity:1}.env-switcher-btn[data-v-45a711b4]{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-primary);padding:8px 12px;cursor:pointer;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-sm)}.env-switcher-btn[data-v-45a711b4]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.switch-indicator[data-v-45a711b4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.panel-main[data-v-45a711b4]{display:flex;flex:1;overflow:hidden}.sidebar[data-v-45a711b4]{width:234px;background:var(--cg-color-bg-tertiary);border-right:1px solid var(--cg-color-border);display:flex;flex-direction:column;flex-shrink:0}.sidebar-content[data-v-45a711b4]{flex:1;overflow-y:auto}.sidebar-footer[data-v-45a711b4]{padding:var(--cg-space-2) var(--cg-space-3);border-top:1px solid var(--cg-color-border-subtle);flex-shrink:0}.sidebar-section[data-v-45a711b4]{padding:var(--cg-space-3) 0}.sidebar-section-title[data-v-45a711b4]{padding:0 var(--cg-space-3);margin-bottom:var(--cg-space-2);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.sidebar-item[data-v-45a711b4]{width:100%;padding:8px var(--cg-space-3);background:transparent;border:none;border-left:2px solid transparent;color:var(--cg-color-text-secondary);text-align:left;cursor:pointer;font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-normal)}.sidebar-item[data-v-45a711b4]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent)}.sidebar-item.active[data-v-45a711b4]{border-left-color:var(--cg-color-accent);color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.sidebar-badge[data-v-45a711b4]{margin-left:auto;padding:1px 6px;background:var(--cg-color-success);color:var(--cg-color-bg-primary);border-radius:var(--cg-radius-sm);font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold)}.sidebar-divider[data-v-45a711b4]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) var(--cg-space-3)}.content-area[data-v-45a711b4]{flex:1;overflow-y:auto;padding:var(--cg-space-4);-webkit-user-select:text;user-select:text}.loading[data-v-45a711b4]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.error-message[data-v-45a711b4]{background:transparent;border:1px solid var(--cg-color-error);padding:var(--cg-space-3);color:var(--cg-color-error);font-size:var(--cg-font-size-sm);-webkit-user-select:text;user-select:text;cursor:text}.view-placeholder[data-v-45a711b4]{padding:var(--cg-space-4)}.view-title[data-v-45a711b4]{color:var(--cg-color-accent);font-size:var(--cg-font-size-lg);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);margin:0 0 var(--cg-space-4) 0}.view-placeholder p[data-v-45a711b4]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base)}.dialog-overlay[data-v-45a711b4]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--cg-color-bg-overlay);display:flex;align-items:center;justify-content:center;z-index:10003}.dialog-content[data-v-45a711b4]{background:var(--cg-color-bg-primary);border:2px solid var(--cg-color-border);box-shadow:0 0 16px #00ff4180;max-width:780px;width:90vw;max-height:80vh;display:flex;flex-direction:column}.env-selector-dialog[data-v-45a711b4]{width:780px}.dialog-header[data-v-45a711b4]{padding:var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:var(--cg-color-bg-tertiary);display:flex;justify-content:space-between;align-items:center}.dialog-title[data-v-45a711b4]{color:var(--cg-color-accent);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);font-size:var(--cg-font-size-sm);text-shadow:0 0 8px var(--cg-color-accent);margin:0}.dialog-body[data-v-45a711b4]{padding:var(--cg-space-4);overflow-y:auto}.dialog-message[data-v-45a711b4]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);margin:0 0 var(--cg-space-4) 0}.env-list[data-v-45a711b4]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.env-item[data-v-45a711b4]{display:flex;justify-content:space-between;align-items:center;padding:var(--cg-space-3);border:1px solid var(--cg-color-border-subtle);background:var(--cg-color-bg-tertiary)}.env-item.current[data-v-45a711b4]{border-color:var(--cg-color-accent)}.env-info[data-v-45a711b4]{flex:1}.env-name-row[data-v-45a711b4]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.env-indicator[data-v-45a711b4]{color:var(--cg-color-accent)}.env-name[data-v-45a711b4]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.env-branch[data-v-45a711b4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.current-label[data-v-45a711b4]{margin-left:auto;padding:2px 8px;background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.env-stats[data-v-45a711b4]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.switch-btn[data-v-45a711b4]{padding:6px 12px;background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide);cursor:pointer}.switch-btn[data-v-45a711b4]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent);box-shadow:0 0 8px #00ff414d}.toast-container[data-v-45a711b4]{position:fixed;bottom:16px;right:16px;z-index:10004;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast[data-v-45a711b4]{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);box-shadow:0 0 8px #00ff4166;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-primary);pointer-events:auto;min-width:234px;max-width:390px;font-family:var(--cg-font-mono)}.toast.info[data-v-45a711b4]{border-left:3px solid var(--cg-color-info)}.toast.success[data-v-45a711b4]{border-left:3px solid var(--cg-color-success)}.toast.warning[data-v-45a711b4]{border-left:3px solid var(--cg-color-warning)}.toast.error[data-v-45a711b4]{border-left:3px solid var(--cg-color-error)}.toast-message[data-v-45a711b4]{flex:1}.toast-enter-active[data-v-45a711b4],.toast-leave-active[data-v-45a711b4]{transition:all .3s ease}.toast-enter-from[data-v-45a711b4],.toast-leave-to[data-v-45a711b4]{opacity:0;transform:translate(100%)}.toast-move[data-v-45a711b4]{transition:transform .3s ease}.sidebar-content[data-v-45a711b4]::-webkit-scrollbar,.content-area[data-v-45a711b4]::-webkit-scrollbar{width:8px}.sidebar-content[data-v-45a711b4]::-webkit-scrollbar-track,.content-area[data-v-45a711b4]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.sidebar-content[data-v-45a711b4]::-webkit-scrollbar-thumb,.content-area[data-v-45a711b4]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.sidebar-content[data-v-45a711b4]::-webkit-scrollbar-thumb:hover,.content-area[data-v-45a711b4]::-webkit-scrollbar-thumb:hover{background:var(--cg-color-accent)}.download-item[data-v-2110df65]{padding:var(--cg-space-2);background:var(--cg-color-bg-secondary);border:1px solid var(--cg-color-border-subtle)}.download-item.status-downloading[data-v-2110df65]{border-color:var(--cg-color-accent)}.download-item.status-completed[data-v-2110df65]{border-color:var(--cg-color-success)}.download-item.status-failed[data-v-2110df65]{border-color:var(--cg-color-error)}.download-item.status-paused[data-v-2110df65]{border-color:var(--cg-color-warning)}.item-header[data-v-2110df65]{display:flex;justify-content:space-between;align-items:flex-start}.item-info[data-v-2110df65]{flex:1;min-width:0}.filename[data-v-2110df65]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metadata[data-v-2110df65]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);margin-top:2px;display:flex;gap:var(--cg-space-2)}.item-actions[data-v-2110df65]{display:flex;gap:4px;flex-shrink:0}.action-icon[data-v-2110df65]{width:20px;height:20px;padding:0;background:transparent;border:1px solid var(--cg-color-border);color:var(--cg-color-text-primary);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center}.action-icon[data-v-2110df65]:hover{background:var(--cg-color-bg-hover)}.action-icon.cancel[data-v-2110df65]:hover,.action-icon.remove[data-v-2110df65]:hover{border-color:var(--cg-color-error);color:var(--cg-color-error)}.action-icon.retry[data-v-2110df65]:hover{border-color:var(--cg-color-warning);color:var(--cg-color-warning)}.action-icon.resume[data-v-2110df65]{font-size:10px}.action-icon.resume[data-v-2110df65]:hover{border-color:var(--cg-color-success);color:var(--cg-color-success)}.progress-section[data-v-2110df65]{margin-top:var(--cg-space-1)}.progress-bar[data-v-2110df65]{height:3px;background:var(--cg-color-bg-tertiary);border-radius:2px;overflow:hidden}.progress-fill[data-v-2110df65]{height:100%;background:var(--cg-color-accent);transition:width .2s ease}.progress-stats[data-v-2110df65]{display:flex;justify-content:space-between;margin-top:2px;font-size:10px;color:var(--cg-color-text-muted);font-family:var(--cg-font-mono)}.speed[data-v-2110df65]{color:var(--cg-color-accent)}.status-msg[data-v-2110df65]{font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.status-msg.paused[data-v-2110df65]{color:var(--cg-color-warning)}.status-msg.queued[data-v-2110df65]{color:var(--cg-color-text-muted)}.status-msg.completed[data-v-2110df65]{color:var(--cg-color-success)}.status-msg.failed[data-v-2110df65]{color:var(--cg-color-error)}.retries[data-v-2110df65]{opacity:.7}.model-download-queue[data-v-60751cfa]{position:fixed;bottom:16px;right:340px;width:360px;background:var(--cg-color-bg-primary);border:1px solid var(--cg-color-border);border-radius:var(--cg-radius-md);box-shadow:0 2px 12px #0000004d;z-index:0;display:flex;flex-direction:column;overflow:hidden}.queue-header[data-v-60751cfa]{padding:var(--cg-space-2) var(--cg-space-3);border-bottom:1px solid var(--cg-color-border);display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--cg-color-bg-secondary)}.queue-header[data-v-60751cfa]:hover{background:var(--cg-color-bg-hover)}.queue-title[data-v-60751cfa]{display:flex;align-items:center;gap:var(--cg-space-2);color:var(--cg-color-text-primary);font-weight:var(--cg-font-weight-semibold);font-size:var(--cg-font-size-sm)}.icon[data-v-60751cfa]{font-size:var(--cg-font-size-base)}.count[data-v-60751cfa]{color:var(--cg-color-text-muted);font-weight:400;font-size:var(--cg-font-size-xs)}.action-label[data-v-60751cfa]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);text-transform:lowercase;font-style:italic}.overall-progress[data-v-60751cfa]{padding:var(--cg-space-2) var(--cg-space-3)}.progress-bar[data-v-60751cfa]{height:4px;background:var(--cg-color-bg-tertiary);border-radius:2px;overflow:hidden}.progress-fill[data-v-60751cfa]{height:100%;background:var(--cg-color-accent);transition:width .3s ease}.current-mini[data-v-60751cfa]{display:flex;justify-content:space-between;margin-top:var(--cg-space-1);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted)}.current-mini .filename[data-v-60751cfa]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.current-mini .speed[data-v-60751cfa]{color:var(--cg-color-accent);font-family:var(--cg-font-mono)}.queue-content[data-v-60751cfa]{max-height:450px;overflow-y:auto;padding:var(--cg-space-2);display:flex;flex-direction:column;gap:var(--cg-space-2)}.section[data-v-60751cfa]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.section-header[data-v-60751cfa]{display:flex;justify-content:space-between;align-items:center}.section-label[data-v-60751cfa]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.section-label.failed[data-v-60751cfa]{color:var(--cg-color-error)}.section-label.paused[data-v-60751cfa]{color:var(--cg-color-warning)}.resume-all-btn[data-v-60751cfa]{padding:4px 10px;background:var(--cg-color-warning);border:none;color:#000;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-semibold);cursor:pointer}.resume-all-btn[data-v-60751cfa]:hover{filter:brightness(1.1)}.clear-btn[data-v-60751cfa]{padding:2px 6px;background:transparent;border:1px solid var(--cg-color-border-subtle);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);cursor:pointer}.clear-btn[data-v-60751cfa]:hover{color:var(--cg-color-error);border-color:var(--cg-color-error)}.items-list[data-v-60751cfa]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.detail-header[data-v-fac0fef0]{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--cg-space-3);margin-bottom:var(--cg-space-3);border-bottom:1px solid var(--cg-color-border-subtle)}.item-count[data-v-fac0fef0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.resource-list[data-v-fac0fef0]{display:flex;flex-direction:column;background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-md);padding:var(--cg-space-2)}.resource-item[data-v-fac0fef0]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);padding:var(--cg-space-2)}.resource-item[data-v-fac0fef0]:not(:last-child){border-bottom:1px solid var(--cg-color-border)}.item-info[data-v-fac0fef0]{display:flex;align-items:center;gap:var(--cg-space-2);flex:1;min-width:0}.item-name[data-v-fac0fef0]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-subtitle[data-v-fac0fef0]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);flex-shrink:0}.no-action[data-v-fac0fef0]{color:var(--cg-color-warning);font-style:italic;font-size:var(--cg-font-size-xs);white-space:nowrap}.queued-badge[data-v-fac0fef0],.installing-badge[data-v-fac0fef0],.failed-badge[data-v-fac0fef0],.installed-badge[data-v-fac0fef0]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);white-space:nowrap}.queued-badge[data-v-fac0fef0]{color:var(--cg-color-warning);background:color-mix(in srgb,var(--cg-color-warning) 15%,transparent)}.installing-badge[data-v-fac0fef0]{color:var(--cg-color-accent);background:color-mix(in srgb,var(--cg-color-accent) 15%,transparent)}.failed-badge[data-v-fac0fef0]{color:var(--cg-color-error);background:color-mix(in srgb,var(--cg-color-error) 15%,transparent);cursor:help}.installed-badge[data-v-fac0fef0]{color:var(--cg-color-success);background:color-mix(in srgb,var(--cg-color-success) 15%,transparent)}.loading-state[data-v-512ff6ab]{display:flex;align-items:center;justify-content:center;padding:var(--cg-space-8);gap:var(--cg-space-3);color:var(--cg-color-text-muted)}.loading-spinner[data-v-512ff6ab]{width:24px;height:24px;border:3px solid var(--cg-color-border);border-top-color:var(--cg-color-accent);border-radius:50%;animation:spin-512ff6ab .8s linear infinite}@keyframes spin-512ff6ab{to{transform:rotate(360deg)}}.section[data-v-512ff6ab]{margin-bottom:var(--cg-space-4)}.section-header[data-v-512ff6ab]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2)}.section-title[data-v-512ff6ab]{font-weight:var(--cg-font-weight-semibold);color:var(--cg-color-text-primary)}.item-list[data-v-512ff6ab]{background:var(--cg-color-bg-tertiary);border-radius:var(--cg-radius-md);padding:var(--cg-space-2)}.item[data-v-512ff6ab]{display:flex;align-items:center;gap:var(--cg-space-2);padding:var(--cg-space-1) var(--cg-space-2);font-size:var(--cg-font-size-sm)}.package-item[data-v-512ff6ab],.model-item[data-v-512ff6ab]{display:flex;align-items:center;justify-content:space-between;gap:var(--cg-space-2);padding:var(--cg-space-2)}.package-item[data-v-512ff6ab]:not(:last-child),.model-item[data-v-512ff6ab]:not(:last-child){border-bottom:1px solid var(--cg-color-border)}.package-info[data-v-512ff6ab],.model-info[data-v-512ff6ab]{display:flex;align-items:center;gap:var(--cg-space-2);flex:1;min-width:0}.package-name[data-v-512ff6ab]{font-weight:var(--cg-font-weight-medium);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.node-count[data-v-512ff6ab]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.node-type[data-v-512ff6ab]{font-family:var(--cg-font-mono);background:var(--cg-color-bg-secondary);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm);color:var(--cg-color-accent);font-size:var(--cg-font-size-xs)}.model-name[data-v-512ff6ab]{font-family:var(--cg-font-mono);color:var(--cg-color-text-primary);font-size:var(--cg-font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.not-found[data-v-512ff6ab],.no-url[data-v-512ff6ab]{color:var(--cg-color-warning);font-style:italic;font-size:var(--cg-font-size-xs);white-space:nowrap}.queued-badge[data-v-512ff6ab],.installing-badge[data-v-512ff6ab],.failed-badge[data-v-512ff6ab],.installed-badge[data-v-512ff6ab]{font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-medium);padding:var(--cg-space-1) var(--cg-space-2);border-radius:var(--cg-radius-sm)}.queued-badge[data-v-512ff6ab]{color:var(--cg-color-warning);background:color-mix(in srgb,var(--cg-color-warning) 15%,transparent)}.installing-badge[data-v-512ff6ab]{color:var(--cg-color-accent);background:color-mix(in srgb,var(--cg-color-accent) 15%,transparent)}.failed-badge[data-v-512ff6ab]{color:var(--cg-color-error);background:color-mix(in srgb,var(--cg-color-error) 15%,transparent);cursor:help}.installed-badge[data-v-512ff6ab]{color:var(--cg-color-success);background:color-mix(in srgb,var(--cg-color-success) 15%,transparent)}.show-all-row[data-v-512ff6ab]{display:flex;align-items:center;justify-content:space-between;padding:var(--cg-space-2);color:var(--cg-color-accent);cursor:pointer;font-size:var(--cg-font-size-sm);border-top:1px solid var(--cg-color-border)}.show-all-row[data-v-512ff6ab]:hover{background:var(--cg-color-bg-hover)}.show-all-arrow[data-v-512ff6ab]{opacity:.6}.overflow-note[data-v-512ff6ab]{padding:var(--cg-space-1) var(--cg-space-2);color:var(--cg-color-text-muted);font-style:italic;font-size:var(--cg-font-size-xs)}.dont-show-again[data-v-512ff6ab]{margin-top:var(--cg-space-4);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border)}[data-comfygit-theme]{user-select:text;-webkit-user-select:text}:root{--cg-font-display: system-ui, sans-serif;--cg-font-body: system-ui, sans-serif;--cg-font-mono: ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, monospace;--cg-font-size-xs: 10px;--cg-font-size-sm: 12px;--cg-font-size-base: 14px;--cg-font-size-lg: 16px;--cg-font-size-xl: 20px;--cg-font-size-2xl: 24px;--cg-font-weight-normal: 400;--cg-font-weight-medium: 500;--cg-font-weight-semibold: 600;--cg-font-weight-bold: 700;--cg-line-height-tight: 1.2;--cg-line-height-normal: 1.5;--cg-line-height-relaxed: 1.75;--cg-letter-spacing-tight: -.02em;--cg-letter-spacing-normal: 0;--cg-letter-spacing-wide: .05em;--cg-letter-spacing-wider: .1em;--cg-color-bg-primary: #353535;--cg-color-bg-secondary: #2a2a2a;--cg-color-bg-tertiary: #222222;--cg-color-bg-hover: #404040;--cg-color-bg-overlay: rgba(0, 0, 0, .5);--cg-color-text-primary: #dddddd;--cg-color-text-secondary: #999999;--cg-color-text-muted: #666666;--cg-color-text-inverse: #111111;--cg-color-border: #4a4a4a;--cg-color-border-subtle: #3a3a3a;--cg-color-border-strong: #5a5a5a;--cg-color-accent: #f97316;--cg-color-accent-hover: #ea580c;--cg-color-accent-muted: rgba(249, 115, 22, .2);--cg-color-success: #22c55e;--cg-color-success-muted: rgba(34, 197, 94, .15);--cg-color-warning: #fbbf24;--cg-color-warning-muted: rgba(251, 191, 36, .15);--cg-color-error: #ef4444;--cg-color-error-muted: rgba(239, 68, 68, .15);--cg-color-info: #3b82f6;--cg-color-info-muted: rgba(59, 130, 246, .15);--cg-space-0-5: 2px;--cg-space-1: 4px;--cg-space-2: 8px;--cg-space-3: 12px;--cg-space-4: 16px;--cg-space-5: 20px;--cg-space-6: 24px;--cg-space-8: 32px;--cg-space-10: 40px;--cg-space-12: 48px;--cg-radius-none: 0;--cg-radius-sm: 2px;--cg-radius-md: 4px;--cg-radius-lg: 8px;--cg-radius-xl: 12px;--cg-radius-2xl: 16px;--cg-radius-full: 9999px;--cg-shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--cg-shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--cg-shadow-lg: 0 8px 32px rgba(0, 0, 0, .4);--cg-shadow-xl: 0 16px 48px rgba(0, 0, 0, .5);--cg-blur-sm: 4px;--cg-blur-md: 8px;--cg-blur-lg: 16px;--cg-transition-fast: .1s ease;--cg-transition-normal: .2s ease;--cg-transition-slow: .3s ease;--cg-z-dropdown: 100;--cg-z-modal: 1000;--cg-z-popover: 1001;--cg-z-tooltip: 1002;--cg-panel-width: 580px;--cg-panel-height: 70vh;--cg-panel-max-width: 90vw;--cg-panel-max-height: 85vh;--cg-btn-gradient-start: #fb923c;--cg-btn-gradient-end: #ea580c;--cg-btn-shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .2), inset 0 -1px 0 rgba(0, 0, 0, .15);--cg-decoration-title-prefix: "";--cg-decoration-label-prefix: "";--cg-decoration-label-suffix: "";--cg-decoration-status-animation: none;--cg-decoration-status-shape: circle;--cg-shadow-accent: rgba(249, 115, 22, .3);--cg-shadow-accent-strong: rgba(249, 115, 22, .5);--cg-shadow-error: rgba(239, 68, 68, .3);--cg-shadow-success: rgba(34, 197, 94, .3);--cg-text-shadow-title: none;--cg-text-shadow-accent: none}
diff --git a/js/comfygit-panel.js b/js/comfygit-panel.js
index 1e37494..ad52168 100644
--- a/js/comfygit-panel.js
+++ b/js/comfygit-panel.js
@@ -1,70 +1,70 @@
-import { app as Os } from "../../scripts/app.js";
+import { app as Wt } from "../../scripts/app.js";
/**
* @vue/shared v3.5.25
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
// @__NO_SIDE_EFFECTS__
-function Ia(e) {
+function za(e) {
const s = /* @__PURE__ */ Object.create(null);
for (const o of e.split(",")) s[o] = 1;
return (o) => o in s;
}
-const st = {}, ro = [], ms = () => {
-}, Xl = () => !1, Rn = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && // uppercase letter
-(e.charCodeAt(2) > 122 || e.charCodeAt(2) < 97), Ea = (e) => e.startsWith("onUpdate:"), pt = Object.assign, Ta = (e, s) => {
+const nt = {}, po = [], gs = () => {
+}, ci = () => !1, Wn = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && // uppercase letter
+(e.charCodeAt(2) > 122 || e.charCodeAt(2) < 97), Fa = (e) => e.startsWith("onUpdate:"), pt = Object.assign, Ba = (e, s) => {
const o = e.indexOf(s);
o > -1 && e.splice(o, 1);
-}, Fr = Object.prototype.hasOwnProperty, Ze = (e, s) => Fr.call(e, s), Ue = Array.isArray, co = (e) => Jo(e) === "[object Map]", yo = (e) => Jo(e) === "[object Set]", sl = (e) => Jo(e) === "[object Date]", Be = (e) => typeof e == "function", ut = (e) => typeof e == "string", Zt = (e) => typeof e == "symbol", tt = (e) => e !== null && typeof e == "object", Ql = (e) => (tt(e) || Be(e)) && Be(e.then) && Be(e.catch), Zl = Object.prototype.toString, Jo = (e) => Zl.call(e), Br = (e) => Jo(e).slice(8, -1), ei = (e) => Jo(e) === "[object Object]", Pa = (e) => ut(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, Mo = /* @__PURE__ */ Ia(
+}, oc = Object.prototype.hasOwnProperty, et = (e, s) => oc.call(e, s), Be = Array.isArray, go = (e) => an(e) === "[object Map]", Co = (e) => an(e) === "[object Set]", dl = (e) => an(e) === "[object Date]", Ge = (e) => typeof e == "function", ut = (e) => typeof e == "string", ts = (e) => typeof e == "symbol", ot = (e) => e !== null && typeof e == "object", ui = (e) => (ot(e) || Ge(e)) && Ge(e.then) && Ge(e.catch), di = Object.prototype.toString, an = (e) => di.call(e), nc = (e) => an(e).slice(8, -1), fi = (e) => an(e) === "[object Object]", Va = (e) => ut(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, Fo = /* @__PURE__ */ za(
// the leading comma is intentional so empty string "" is also included
",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
-), Mn = (e) => {
+), Gn = (e) => {
const s = /* @__PURE__ */ Object.create(null);
return ((o) => s[o] || (s[o] = e(o)));
-}, Vr = /-\w/g, Wt = Mn(
- (e) => e.replace(Vr, (s) => s.slice(1).toUpperCase())
-), Wr = /\B([A-Z])/g, zs = Mn(
- (e) => e.replace(Wr, "-$1").toLowerCase()
-), Dn = Mn((e) => e.charAt(0).toUpperCase() + e.slice(1)), Hn = Mn(
- (e) => e ? `on${Dn(e)}` : ""
-), As = (e, s) => !Object.is(e, s), fn = (e, ...s) => {
+}, ac = /-\w/g, Kt = Gn(
+ (e) => e.replace(ac, (s) => s.slice(1).toUpperCase())
+), lc = /\B([A-Z])/g, Vs = Gn(
+ (e) => e.replace(lc, "-$1").toLowerCase()
+), jn = Gn((e) => e.charAt(0).toUpperCase() + e.slice(1)), na = Gn(
+ (e) => e ? `on${jn(e)}` : ""
+), zs = (e, s) => !Object.is(e, s), xn = (e, ...s) => {
for (let o = 0; o < e.length; o++)
e[o](...s);
-}, ti = (e, s, o, n = !1) => {
+}, mi = (e, s, o, n = !1) => {
Object.defineProperty(e, s, {
configurable: !0,
enumerable: !1,
writable: n,
value: o
});
-}, Ln = (e) => {
+}, Hn = (e) => {
const s = parseFloat(e);
return isNaN(s) ? e : s;
-}, Gr = (e) => {
+}, ic = (e) => {
const s = ut(e) ? Number(e) : NaN;
return isNaN(s) ? e : s;
};
-let ol;
-const On = () => ol || (ol = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {});
-function Gt(e) {
- if (Ue(e)) {
+let fl;
+const Kn = () => fl || (fl = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {});
+function Ft(e) {
+ if (Be(e)) {
const s = {};
for (let o = 0; o < e.length; o++) {
- const n = e[o], l = ut(n) ? qr(n) : Gt(n);
+ const n = e[o], l = ut(n) ? dc(n) : Ft(n);
if (l)
- for (const i in l)
- s[i] = l[i];
+ for (const r in l)
+ s[r] = l[r];
}
return s;
- } else if (ut(e) || tt(e))
+ } else if (ut(e) || ot(e))
return e;
}
-const jr = /;(?![^(]*\))/g, Hr = /:([^]+)/, Kr = /\/\*[^]*?\*\//g;
-function qr(e) {
+const rc = /;(?![^(]*\))/g, cc = /:([^]+)/, uc = /\/\*[^]*?\*\//g;
+function dc(e) {
const s = {};
- return e.replace(Kr, "").split(jr).forEach((o) => {
+ return e.replace(uc, "").split(rc).forEach((o) => {
if (o) {
- const n = o.split(Hr);
+ const n = o.split(cc);
n.length > 1 && (s[n[0].trim()] = n[1].trim());
}
}), s;
@@ -73,66 +73,66 @@ function Se(e) {
let s = "";
if (ut(e))
s = e;
- else if (Ue(e))
+ else if (Be(e))
for (let o = 0; o < e.length; o++) {
const n = Se(e[o]);
n && (s += n + " ");
}
- else if (tt(e))
+ else if (ot(e))
for (const o in e)
e[o] && (s += o + " ");
return s.trim();
}
-const Yr = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", Jr = /* @__PURE__ */ Ia(Yr);
-function si(e) {
+const fc = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", mc = /* @__PURE__ */ za(fc);
+function vi(e) {
return !!e || e === "";
}
-function Xr(e, s) {
+function vc(e, s) {
if (e.length !== s.length) return !1;
let o = !0;
for (let n = 0; o && n < e.length; n++)
- o = Qs(e[n], s[n]);
+ o = so(e[n], s[n]);
return o;
}
-function Qs(e, s) {
+function so(e, s) {
if (e === s) return !0;
- let o = sl(e), n = sl(s);
+ let o = dl(e), n = dl(s);
if (o || n)
return o && n ? e.getTime() === s.getTime() : !1;
- if (o = Zt(e), n = Zt(s), o || n)
+ if (o = ts(e), n = ts(s), o || n)
return e === s;
- if (o = Ue(e), n = Ue(s), o || n)
- return o && n ? Xr(e, s) : !1;
- if (o = tt(e), n = tt(s), o || n) {
+ if (o = Be(e), n = Be(s), o || n)
+ return o && n ? vc(e, s) : !1;
+ if (o = ot(e), n = ot(s), o || n) {
if (!o || !n)
return !1;
- const l = Object.keys(e).length, i = Object.keys(s).length;
- if (l !== i)
+ const l = Object.keys(e).length, r = Object.keys(s).length;
+ if (l !== r)
return !1;
- for (const r in e) {
- const u = e.hasOwnProperty(r), d = s.hasOwnProperty(r);
- if (u && !d || !u && d || !Qs(e[r], s[r]))
+ for (const c in e) {
+ const u = e.hasOwnProperty(c), d = s.hasOwnProperty(c);
+ if (u && !d || !u && d || !so(e[c], s[c]))
return !1;
}
}
return String(e) === String(s);
}
-function Ra(e, s) {
- return e.findIndex((o) => Qs(o, s));
+function Wa(e, s) {
+ return e.findIndex((o) => so(o, s));
}
-const oi = (e) => !!(e && e.__v_isRef === !0), f = (e) => ut(e) ? e : e == null ? "" : Ue(e) || tt(e) && (e.toString === Zl || !Be(e.toString)) ? oi(e) ? f(e.value) : JSON.stringify(e, ni, 2) : String(e), ni = (e, s) => oi(s) ? ni(e, s.value) : co(s) ? {
+const pi = (e) => !!(e && e.__v_isRef === !0), f = (e) => ut(e) ? e : e == null ? "" : Be(e) || ot(e) && (e.toString === di || !Ge(e.toString)) ? pi(e) ? f(e.value) : JSON.stringify(e, gi, 2) : String(e), gi = (e, s) => pi(s) ? gi(e, s.value) : go(s) ? {
[`Map(${s.size})`]: [...s.entries()].reduce(
- (o, [n, l], i) => (o[Kn(n, i) + " =>"] = l, o),
+ (o, [n, l], r) => (o[aa(n, r) + " =>"] = l, o),
{}
)
-} : yo(s) ? {
- [`Set(${s.size})`]: [...s.values()].map((o) => Kn(o))
-} : Zt(s) ? Kn(s) : tt(s) && !Ue(s) && !ei(s) ? String(s) : s, Kn = (e, s = "") => {
+} : Co(s) ? {
+ [`Set(${s.size})`]: [...s.values()].map((o) => aa(o))
+} : ts(s) ? aa(s) : ot(s) && !Be(s) && !fi(s) ? String(s) : s, aa = (e, s = "") => {
var o;
return (
// Symbol.description in es2019+ so we need to cast here to pass
// the lib: es2016 check
- Zt(e) ? `Symbol(${(o = e.description) != null ? o : s})` : e
+ ts(e) ? `Symbol(${(o = e.description) != null ? o : s})` : e
);
};
/**
@@ -140,10 +140,10 @@ const oi = (e) => !!(e && e.__v_isRef === !0), f = (e) => ut(e) ? e : e == null
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
-let Dt;
-class Qr {
+let At;
+class pc {
constructor(s = !1) {
- this.detached = s, this._active = !0, this._on = 0, this.effects = [], this.cleanups = [], this._isPaused = !1, this.parent = Dt, !s && Dt && (this.index = (Dt.scopes || (Dt.scopes = [])).push(
+ this.detached = s, this._active = !0, this._on = 0, this.effects = [], this.cleanups = [], this._isPaused = !1, this.parent = At, !s && At && (this.index = (At.scopes || (At.scopes = [])).push(
this
) - 1);
}
@@ -177,11 +177,11 @@ class Qr {
}
run(s) {
if (this._active) {
- const o = Dt;
+ const o = At;
try {
- return Dt = this, s();
+ return At = this, s();
} finally {
- Dt = o;
+ At = o;
}
}
}
@@ -190,14 +190,14 @@ class Qr {
* @internal
*/
on() {
- ++this._on === 1 && (this.prevScope = Dt, Dt = this);
+ ++this._on === 1 && (this.prevScope = At, At = this);
}
/**
* This should only be called on non-detached scopes
* @internal
*/
off() {
- this._on > 0 && --this._on === 0 && (Dt = this.prevScope, this.prevScope = void 0);
+ this._on > 0 && --this._on === 0 && (At = this.prevScope, this.prevScope = void 0);
}
stop(s) {
if (this._active) {
@@ -220,84 +220,84 @@ class Qr {
}
}
}
-function Zr() {
- return Dt;
+function gc() {
+ return At;
}
-let nt;
-const qn = /* @__PURE__ */ new WeakSet();
-class ai {
+let lt;
+const la = /* @__PURE__ */ new WeakSet();
+class hi {
constructor(s) {
- this.fn = s, this.deps = void 0, this.depsTail = void 0, this.flags = 5, this.next = void 0, this.cleanup = void 0, this.scheduler = void 0, Dt && Dt.active && Dt.effects.push(this);
+ this.fn = s, this.deps = void 0, this.depsTail = void 0, this.flags = 5, this.next = void 0, this.cleanup = void 0, this.scheduler = void 0, At && At.active && At.effects.push(this);
}
pause() {
this.flags |= 64;
}
resume() {
- this.flags & 64 && (this.flags &= -65, qn.has(this) && (qn.delete(this), this.trigger()));
+ this.flags & 64 && (this.flags &= -65, la.has(this) && (la.delete(this), this.trigger()));
}
/**
* @internal
*/
notify() {
- this.flags & 2 && !(this.flags & 32) || this.flags & 8 || ii(this);
+ this.flags & 2 && !(this.flags & 32) || this.flags & 8 || wi(this);
}
run() {
if (!(this.flags & 1))
return this.fn();
- this.flags |= 2, nl(this), ri(this);
- const s = nt, o = Jt;
- nt = this, Jt = !0;
+ this.flags |= 2, ml(this), ki(this);
+ const s = lt, o = es;
+ lt = this, es = !0;
try {
return this.fn();
} finally {
- ci(this), nt = s, Jt = o, this.flags &= -3;
+ _i(this), lt = s, es = o, this.flags &= -3;
}
}
stop() {
if (this.flags & 1) {
for (let s = this.deps; s; s = s.nextDep)
- La(s);
- this.deps = this.depsTail = void 0, nl(this), this.onStop && this.onStop(), this.flags &= -2;
+ Ha(s);
+ this.deps = this.depsTail = void 0, ml(this), this.onStop && this.onStop(), this.flags &= -2;
}
}
trigger() {
- this.flags & 64 ? qn.add(this) : this.scheduler ? this.scheduler() : this.runIfDirty();
+ this.flags & 64 ? la.add(this) : this.scheduler ? this.scheduler() : this.runIfDirty();
}
/**
* @internal
*/
runIfDirty() {
- da(this) && this.run();
+ ba(this) && this.run();
}
get dirty() {
- return da(this);
+ return ba(this);
}
}
-let li = 0, Do, Lo;
-function ii(e, s = !1) {
+let yi = 0, Bo, Vo;
+function wi(e, s = !1) {
if (e.flags |= 8, s) {
- e.next = Lo, Lo = e;
+ e.next = Vo, Vo = e;
return;
}
- e.next = Do, Do = e;
+ e.next = Bo, Bo = e;
}
-function Ma() {
- li++;
+function Ga() {
+ yi++;
}
-function Da() {
- if (--li > 0)
+function ja() {
+ if (--yi > 0)
return;
- if (Lo) {
- let s = Lo;
- for (Lo = void 0; s; ) {
+ if (Vo) {
+ let s = Vo;
+ for (Vo = void 0; s; ) {
const o = s.next;
s.next = void 0, s.flags &= -9, s = o;
}
}
let e;
- for (; Do; ) {
- let s = Do;
- for (Do = void 0; s; ) {
+ for (; Bo; ) {
+ let s = Bo;
+ for (Bo = void 0; s; ) {
const o = s.next;
if (s.next = void 0, s.flags &= -9, s.flags & 1)
try {
@@ -310,365 +310,365 @@ function Da() {
}
if (e) throw e;
}
-function ri(e) {
+function ki(e) {
for (let s = e.deps; s; s = s.nextDep)
s.version = -1, s.prevActiveLink = s.dep.activeLink, s.dep.activeLink = s;
}
-function ci(e) {
+function _i(e) {
let s, o = e.depsTail, n = o;
for (; n; ) {
const l = n.prevDep;
- n.version === -1 ? (n === o && (o = l), La(n), ec(n)) : s = n, n.dep.activeLink = n.prevActiveLink, n.prevActiveLink = void 0, n = l;
+ n.version === -1 ? (n === o && (o = l), Ha(n), hc(n)) : s = n, n.dep.activeLink = n.prevActiveLink, n.prevActiveLink = void 0, n = l;
}
e.deps = s, e.depsTail = o;
}
-function da(e) {
+function ba(e) {
for (let s = e.deps; s; s = s.nextDep)
- if (s.dep.version !== s.version || s.dep.computed && (ui(s.dep.computed) || s.dep.version !== s.version))
+ if (s.dep.version !== s.version || s.dep.computed && (bi(s.dep.computed) || s.dep.version !== s.version))
return !0;
return !!e._dirty;
}
-function ui(e) {
- if (e.flags & 4 && !(e.flags & 16) || (e.flags &= -17, e.globalVersion === Vo) || (e.globalVersion = Vo, !e.isSSR && e.flags & 128 && (!e.deps && !e._dirty || !da(e))))
+function bi(e) {
+ if (e.flags & 4 && !(e.flags & 16) || (e.flags &= -17, e.globalVersion === Qo) || (e.globalVersion = Qo, !e.isSSR && e.flags & 128 && (!e.deps && !e._dirty || !ba(e))))
return;
e.flags |= 2;
- const s = e.dep, o = nt, n = Jt;
- nt = e, Jt = !0;
+ const s = e.dep, o = lt, n = es;
+ lt = e, es = !0;
try {
- ri(e);
+ ki(e);
const l = e.fn(e._value);
- (s.version === 0 || As(l, e._value)) && (e.flags |= 128, e._value = l, s.version++);
+ (s.version === 0 || zs(l, e._value)) && (e.flags |= 128, e._value = l, s.version++);
} catch (l) {
throw s.version++, l;
} finally {
- nt = o, Jt = n, ci(e), e.flags &= -3;
+ lt = o, es = n, _i(e), e.flags &= -3;
}
}
-function La(e, s = !1) {
+function Ha(e, s = !1) {
const { dep: o, prevSub: n, nextSub: l } = e;
if (n && (n.nextSub = l, e.prevSub = void 0), l && (l.prevSub = n, e.nextSub = void 0), o.subs === e && (o.subs = n, !n && o.computed)) {
o.computed.flags &= -5;
- for (let i = o.computed.deps; i; i = i.nextDep)
- La(i, !0);
+ for (let r = o.computed.deps; r; r = r.nextDep)
+ Ha(r, !0);
}
!s && !--o.sc && o.map && o.map.delete(o.key);
}
-function ec(e) {
+function hc(e) {
const { prevDep: s, nextDep: o } = e;
s && (s.nextDep = o, e.prevDep = void 0), o && (o.prevDep = s, e.nextDep = void 0);
}
-let Jt = !0;
-const di = [];
-function $s() {
- di.push(Jt), Jt = !1;
+let es = !0;
+const $i = [];
+function Es() {
+ $i.push(es), es = !1;
}
-function Cs() {
- const e = di.pop();
- Jt = e === void 0 ? !0 : e;
+function Ts() {
+ const e = $i.pop();
+ es = e === void 0 ? !0 : e;
}
-function nl(e) {
+function ml(e) {
const { cleanup: s } = e;
if (e.cleanup = void 0, s) {
- const o = nt;
- nt = void 0;
+ const o = lt;
+ lt = void 0;
try {
s();
} finally {
- nt = o;
+ lt = o;
}
}
}
-let Vo = 0;
-class tc {
+let Qo = 0;
+class yc {
constructor(s, o) {
this.sub = s, this.dep = o, this.version = o.version, this.nextDep = this.prevDep = this.nextSub = this.prevSub = this.prevActiveLink = void 0;
}
}
-class Oa {
+class Ka {
// TODO isolatedDeclarations "__v_skip"
constructor(s) {
this.computed = s, this.version = 0, this.activeLink = void 0, this.subs = void 0, this.map = void 0, this.key = void 0, this.sc = 0, this.__v_skip = !0;
}
track(s) {
- if (!nt || !Jt || nt === this.computed)
+ if (!lt || !es || lt === this.computed)
return;
let o = this.activeLink;
- if (o === void 0 || o.sub !== nt)
- o = this.activeLink = new tc(nt, this), nt.deps ? (o.prevDep = nt.depsTail, nt.depsTail.nextDep = o, nt.depsTail = o) : nt.deps = nt.depsTail = o, fi(o);
+ if (o === void 0 || o.sub !== lt)
+ o = this.activeLink = new yc(lt, this), lt.deps ? (o.prevDep = lt.depsTail, lt.depsTail.nextDep = o, lt.depsTail = o) : lt.deps = lt.depsTail = o, Ci(o);
else if (o.version === -1 && (o.version = this.version, o.nextDep)) {
const n = o.nextDep;
- n.prevDep = o.prevDep, o.prevDep && (o.prevDep.nextDep = n), o.prevDep = nt.depsTail, o.nextDep = void 0, nt.depsTail.nextDep = o, nt.depsTail = o, nt.deps === o && (nt.deps = n);
+ n.prevDep = o.prevDep, o.prevDep && (o.prevDep.nextDep = n), o.prevDep = lt.depsTail, o.nextDep = void 0, lt.depsTail.nextDep = o, lt.depsTail = o, lt.deps === o && (lt.deps = n);
}
return o;
}
trigger(s) {
- this.version++, Vo++, this.notify(s);
+ this.version++, Qo++, this.notify(s);
}
notify(s) {
- Ma();
+ Ga();
try {
for (let o = this.subs; o; o = o.prevSub)
o.sub.notify() && o.sub.dep.notify();
} finally {
- Da();
+ ja();
}
}
}
-function fi(e) {
+function Ci(e) {
if (e.dep.sc++, e.sub.flags & 4) {
const s = e.dep.computed;
if (s && !e.dep.subs) {
s.flags |= 20;
for (let n = s.deps; n; n = n.nextDep)
- fi(n);
+ Ci(n);
}
const o = e.dep.subs;
o !== e && (e.prevSub = o, o && (o.nextSub = e)), e.dep.subs = e;
}
}
-const fa = /* @__PURE__ */ new WeakMap(), Js = Symbol(
+const $a = /* @__PURE__ */ new WeakMap(), eo = Symbol(
""
-), ma = Symbol(
+), Ca = Symbol(
""
-), Wo = Symbol(
+), Xo = Symbol(
""
);
-function bt(e, s, o) {
- if (Jt && nt) {
- let n = fa.get(e);
- n || fa.set(e, n = /* @__PURE__ */ new Map());
+function _t(e, s, o) {
+ if (es && lt) {
+ let n = $a.get(e);
+ n || $a.set(e, n = /* @__PURE__ */ new Map());
let l = n.get(o);
- l || (n.set(o, l = new Oa()), l.map = n, l.key = o), l.track();
+ l || (n.set(o, l = new Ka()), l.map = n, l.key = o), l.track();
}
}
-function bs(e, s, o, n, l, i) {
- const r = fa.get(e);
- if (!r) {
- Vo++;
+function xs(e, s, o, n, l, r) {
+ const c = $a.get(e);
+ if (!c) {
+ Qo++;
return;
}
const u = (d) => {
d && d.trigger();
};
- if (Ma(), s === "clear")
- r.forEach(u);
+ if (Ga(), s === "clear")
+ c.forEach(u);
else {
- const d = Ue(e), m = d && Pa(o);
+ const d = Be(e), m = d && Va(o);
if (d && o === "length") {
const v = Number(n);
- r.forEach((h, w) => {
- (w === "length" || w === Wo || !Zt(w) && w >= v) && u(h);
+ c.forEach((g, w) => {
+ (w === "length" || w === Xo || !ts(w) && w >= v) && u(g);
});
} else
- switch ((o !== void 0 || r.has(void 0)) && u(r.get(o)), m && u(r.get(Wo)), s) {
+ switch ((o !== void 0 || c.has(void 0)) && u(c.get(o)), m && u(c.get(Xo)), s) {
case "add":
- d ? m && u(r.get("length")) : (u(r.get(Js)), co(e) && u(r.get(ma)));
+ d ? m && u(c.get("length")) : (u(c.get(eo)), go(e) && u(c.get(Ca)));
break;
case "delete":
- d || (u(r.get(Js)), co(e) && u(r.get(ma)));
+ d || (u(c.get(eo)), go(e) && u(c.get(Ca)));
break;
case "set":
- co(e) && u(r.get(Js));
+ go(e) && u(c.get(eo));
break;
}
}
- Da();
+ ja();
}
-function so(e) {
- const s = Je(e);
- return s === e ? s : (bt(s, "iterate", Wo), Bt(e) ? s : s.map(es));
+function ro(e) {
+ const s = Xe(e);
+ return s === e ? s : (_t(s, "iterate", Xo), Gt(e) ? s : s.map(ss));
}
-function An(e) {
- return bt(e = Je(e), "iterate", Wo), e;
+function qn(e) {
+ return _t(e = Xe(e), "iterate", Xo), e;
}
-function Ms(e, s) {
- return xs(e) ? Xs(e) ? po(es(s)) : po(s) : es(s);
+function Os(e, s) {
+ return Rs(e) ? to(e) ? _o(ss(s)) : _o(s) : ss(s);
}
-const sc = {
+const wc = {
__proto__: null,
[Symbol.iterator]() {
- return Yn(this, Symbol.iterator, (e) => Ms(this, e));
+ return ia(this, Symbol.iterator, (e) => Os(this, e));
},
concat(...e) {
- return so(this).concat(
- ...e.map((s) => Ue(s) ? so(s) : s)
+ return ro(this).concat(
+ ...e.map((s) => Be(s) ? ro(s) : s)
);
},
entries() {
- return Yn(this, "entries", (e) => (e[1] = Ms(this, e[1]), e));
+ return ia(this, "entries", (e) => (e[1] = Os(this, e[1]), e));
},
every(e, s) {
- return hs(this, "every", e, s, void 0, arguments);
+ return bs(this, "every", e, s, void 0, arguments);
},
filter(e, s) {
- return hs(
+ return bs(
this,
"filter",
e,
s,
- (o) => o.map((n) => Ms(this, n)),
+ (o) => o.map((n) => Os(this, n)),
arguments
);
},
find(e, s) {
- return hs(
+ return bs(
this,
"find",
e,
s,
- (o) => Ms(this, o),
+ (o) => Os(this, o),
arguments
);
},
findIndex(e, s) {
- return hs(this, "findIndex", e, s, void 0, arguments);
+ return bs(this, "findIndex", e, s, void 0, arguments);
},
findLast(e, s) {
- return hs(
+ return bs(
this,
"findLast",
e,
s,
- (o) => Ms(this, o),
+ (o) => Os(this, o),
arguments
);
},
findLastIndex(e, s) {
- return hs(this, "findLastIndex", e, s, void 0, arguments);
+ return bs(this, "findLastIndex", e, s, void 0, arguments);
},
// flat, flatMap could benefit from ARRAY_ITERATE but are not straight-forward to implement
forEach(e, s) {
- return hs(this, "forEach", e, s, void 0, arguments);
+ return bs(this, "forEach", e, s, void 0, arguments);
},
includes(...e) {
- return Jn(this, "includes", e);
+ return ra(this, "includes", e);
},
indexOf(...e) {
- return Jn(this, "indexOf", e);
+ return ra(this, "indexOf", e);
},
join(e) {
- return so(this).join(e);
+ return ro(this).join(e);
},
// keys() iterator only reads `length`, no optimization required
lastIndexOf(...e) {
- return Jn(this, "lastIndexOf", e);
+ return ra(this, "lastIndexOf", e);
},
map(e, s) {
- return hs(this, "map", e, s, void 0, arguments);
+ return bs(this, "map", e, s, void 0, arguments);
},
pop() {
- return xo(this, "pop");
+ return Po(this, "pop");
},
push(...e) {
- return xo(this, "push", e);
+ return Po(this, "push", e);
},
reduce(e, ...s) {
- return al(this, "reduce", e, s);
+ return vl(this, "reduce", e, s);
},
reduceRight(e, ...s) {
- return al(this, "reduceRight", e, s);
+ return vl(this, "reduceRight", e, s);
},
shift() {
- return xo(this, "shift");
+ return Po(this, "shift");
},
// slice could use ARRAY_ITERATE but also seems to beg for range tracking
some(e, s) {
- return hs(this, "some", e, s, void 0, arguments);
+ return bs(this, "some", e, s, void 0, arguments);
},
splice(...e) {
- return xo(this, "splice", e);
+ return Po(this, "splice", e);
},
toReversed() {
- return so(this).toReversed();
+ return ro(this).toReversed();
},
toSorted(e) {
- return so(this).toSorted(e);
+ return ro(this).toSorted(e);
},
toSpliced(...e) {
- return so(this).toSpliced(...e);
+ return ro(this).toSpliced(...e);
},
unshift(...e) {
- return xo(this, "unshift", e);
+ return Po(this, "unshift", e);
},
values() {
- return Yn(this, "values", (e) => Ms(this, e));
+ return ia(this, "values", (e) => Os(this, e));
}
};
-function Yn(e, s, o) {
- const n = An(e), l = n[s]();
- return n !== e && !Bt(e) && (l._next = l.next, l.next = () => {
- const i = l._next();
- return i.done || (i.value = o(i.value)), i;
+function ia(e, s, o) {
+ const n = qn(e), l = n[s]();
+ return n !== e && !Gt(e) && (l._next = l.next, l.next = () => {
+ const r = l._next();
+ return r.done || (r.value = o(r.value)), r;
}), l;
}
-const oc = Array.prototype;
-function hs(e, s, o, n, l, i) {
- const r = An(e), u = r !== e && !Bt(e), d = r[s];
- if (d !== oc[s]) {
- const h = d.apply(e, i);
- return u ? es(h) : h;
+const kc = Array.prototype;
+function bs(e, s, o, n, l, r) {
+ const c = qn(e), u = c !== e && !Gt(e), d = c[s];
+ if (d !== kc[s]) {
+ const g = d.apply(e, r);
+ return u ? ss(g) : g;
}
let m = o;
- r !== e && (u ? m = function(h, w) {
- return o.call(this, Ms(e, h), w, e);
- } : o.length > 2 && (m = function(h, w) {
- return o.call(this, h, w, e);
+ c !== e && (u ? m = function(g, w) {
+ return o.call(this, Os(e, g), w, e);
+ } : o.length > 2 && (m = function(g, w) {
+ return o.call(this, g, w, e);
}));
- const v = d.call(r, m, n);
+ const v = d.call(c, m, n);
return u && l ? l(v) : v;
}
-function al(e, s, o, n) {
- const l = An(e);
- let i = o;
- return l !== e && (Bt(e) ? o.length > 3 && (i = function(r, u, d) {
- return o.call(this, r, u, d, e);
- }) : i = function(r, u, d) {
- return o.call(this, r, Ms(e, u), d, e);
- }), l[s](i, ...n);
-}
-function Jn(e, s, o) {
- const n = Je(e);
- bt(n, "iterate", Wo);
+function vl(e, s, o, n) {
+ const l = qn(e);
+ let r = o;
+ return l !== e && (Gt(e) ? o.length > 3 && (r = function(c, u, d) {
+ return o.call(this, c, u, d, e);
+ }) : r = function(c, u, d) {
+ return o.call(this, c, Os(e, u), d, e);
+ }), l[s](r, ...n);
+}
+function ra(e, s, o) {
+ const n = Xe(e);
+ _t(n, "iterate", Xo);
const l = n[s](...o);
- return (l === -1 || l === !1) && Ua(o[0]) ? (o[0] = Je(o[0]), n[s](...o)) : l;
+ return (l === -1 || l === !1) && Ja(o[0]) ? (o[0] = Xe(o[0]), n[s](...o)) : l;
}
-function xo(e, s, o = []) {
- $s(), Ma();
- const n = Je(e)[s].apply(e, o);
- return Da(), Cs(), n;
+function Po(e, s, o = []) {
+ Es(), Ga();
+ const n = Xe(e)[s].apply(e, o);
+ return ja(), Ts(), n;
}
-const nc = /* @__PURE__ */ Ia("__proto__,__v_isRef,__isVue"), mi = new Set(
- /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(Zt)
+const _c = /* @__PURE__ */ za("__proto__,__v_isRef,__isVue"), xi = new Set(
+ /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(ts)
);
-function ac(e) {
- Zt(e) || (e = String(e));
- const s = Je(this);
- return bt(s, "has", e), s.hasOwnProperty(e);
+function bc(e) {
+ ts(e) || (e = String(e));
+ const s = Xe(this);
+ return _t(s, "has", e), s.hasOwnProperty(e);
}
-class vi {
+class Si {
constructor(s = !1, o = !1) {
this._isReadonly = s, this._isShallow = o;
}
get(s, o, n) {
if (o === "__v_skip") return s.__v_skip;
- const l = this._isReadonly, i = this._isShallow;
+ const l = this._isReadonly, r = this._isShallow;
if (o === "__v_isReactive")
return !l;
if (o === "__v_isReadonly")
return l;
if (o === "__v_isShallow")
- return i;
+ return r;
if (o === "__v_raw")
- return n === (l ? i ? pc : yi : i ? hi : gi).get(s) || // receiver is not the reactive proxy, but has the same prototype
+ return n === (l ? r ? Mc : Ri : r ? Ti : Ei).get(s) || // receiver is not the reactive proxy, but has the same prototype
// this means the receiver is a user proxy of the reactive proxy
Object.getPrototypeOf(s) === Object.getPrototypeOf(n) ? s : void 0;
- const r = Ue(s);
+ const c = Be(s);
if (!l) {
let d;
- if (r && (d = sc[o]))
+ if (c && (d = wc[o]))
return d;
if (o === "hasOwnProperty")
- return ac;
+ return bc;
}
const u = Reflect.get(
s,
@@ -676,56 +676,56 @@ class vi {
// if this is a proxy wrapping a ref, return methods using the raw ref
// as receiver so that we don't have to call `toRaw` on the ref in all
// its class methods
- $t(s) ? s : n
+ Ct(s) ? s : n
);
- if ((Zt(o) ? mi.has(o) : nc(o)) || (l || bt(s, "get", o), i))
+ if ((ts(o) ? xi.has(o) : _c(o)) || (l || _t(s, "get", o), r))
return u;
- if ($t(u)) {
- const d = r && Pa(o) ? u : u.value;
- return l && tt(d) ? wn(d) : d;
+ if (Ct(u)) {
+ const d = c && Va(o) ? u : u.value;
+ return l && ot(d) ? Mn(d) : d;
}
- return tt(u) ? l ? wn(u) : Fs(u) : u;
+ return ot(u) ? l ? Mn(u) : Ws(u) : u;
}
}
-class pi extends vi {
+class Ii extends Si {
constructor(s = !1) {
super(!1, s);
}
set(s, o, n, l) {
- let i = s[o];
- const r = Ue(s) && Pa(o);
+ let r = s[o];
+ const c = Be(s) && Va(o);
if (!this._isShallow) {
- const m = xs(i);
- if (!Bt(n) && !xs(n) && (i = Je(i), n = Je(n)), !r && $t(i) && !$t(n))
- return m || (i.value = n), !0;
+ const m = Rs(r);
+ if (!Gt(n) && !Rs(n) && (r = Xe(r), n = Xe(n)), !c && Ct(r) && !Ct(n))
+ return m || (r.value = n), !0;
}
- const u = r ? Number(o) < s.length : Ze(s, o), d = Reflect.set(
+ const u = c ? Number(o) < s.length : et(s, o), d = Reflect.set(
s,
o,
n,
- $t(s) ? s : l
+ Ct(s) ? s : l
);
- return s === Je(l) && (u ? As(n, i) && bs(s, "set", o, n) : bs(s, "add", o, n)), d;
+ return s === Xe(l) && (u ? zs(n, r) && xs(s, "set", o, n) : xs(s, "add", o, n)), d;
}
deleteProperty(s, o) {
- const n = Ze(s, o);
+ const n = et(s, o);
s[o];
const l = Reflect.deleteProperty(s, o);
- return l && n && bs(s, "delete", o, void 0), l;
+ return l && n && xs(s, "delete", o, void 0), l;
}
has(s, o) {
const n = Reflect.has(s, o);
- return (!Zt(o) || !mi.has(o)) && bt(s, "has", o), n;
+ return (!ts(o) || !xi.has(o)) && _t(s, "has", o), n;
}
ownKeys(s) {
- return bt(
+ return _t(
s,
"iterate",
- Ue(s) ? "length" : Js
+ Be(s) ? "length" : eo
), Reflect.ownKeys(s);
}
}
-class lc extends vi {
+class $c extends Si {
constructor(s = !1) {
super(!0, s);
}
@@ -736,21 +736,21 @@ class lc extends vi {
return !0;
}
}
-const ic = /* @__PURE__ */ new pi(), rc = /* @__PURE__ */ new lc(), cc = /* @__PURE__ */ new pi(!0);
-const va = (e) => e, sn = (e) => Reflect.getPrototypeOf(e);
-function uc(e, s, o) {
+const Cc = /* @__PURE__ */ new Ii(), xc = /* @__PURE__ */ new $c(), Sc = /* @__PURE__ */ new Ii(!0);
+const xa = (e) => e, pn = (e) => Reflect.getPrototypeOf(e);
+function Ic(e, s, o) {
return function(...n) {
- const l = this.__v_raw, i = Je(l), r = co(i), u = e === "entries" || e === Symbol.iterator && r, d = e === "keys" && r, m = l[e](...n), v = o ? va : s ? po : es;
- return !s && bt(
- i,
+ const l = this.__v_raw, r = Xe(l), c = go(r), u = e === "entries" || e === Symbol.iterator && c, d = e === "keys" && c, m = l[e](...n), v = o ? xa : s ? _o : ss;
+ return !s && _t(
+ r,
"iterate",
- d ? ma : Js
+ d ? Ca : eo
), {
// iterator protocol
next() {
- const { value: h, done: w } = m.next();
- return w ? { value: h, done: w } : {
- value: u ? [v(h[0]), v(h[1])] : v(h),
+ const { value: g, done: w } = m.next();
+ return w ? { value: g, done: w } : {
+ value: u ? [v(g[0]), v(g[1])] : v(g),
done: w
};
},
@@ -761,72 +761,72 @@ function uc(e, s, o) {
};
};
}
-function on(e) {
+function gn(e) {
return function(...s) {
return e === "delete" ? !1 : e === "clear" ? void 0 : this;
};
}
-function dc(e, s) {
+function Ec(e, s) {
const o = {
get(l) {
- const i = this.__v_raw, r = Je(i), u = Je(l);
- e || (As(l, u) && bt(r, "get", l), bt(r, "get", u));
- const { has: d } = sn(r), m = s ? va : e ? po : es;
- if (d.call(r, l))
- return m(i.get(l));
- if (d.call(r, u))
- return m(i.get(u));
- i !== r && i.get(l);
+ const r = this.__v_raw, c = Xe(r), u = Xe(l);
+ e || (zs(l, u) && _t(c, "get", l), _t(c, "get", u));
+ const { has: d } = pn(c), m = s ? xa : e ? _o : ss;
+ if (d.call(c, l))
+ return m(r.get(l));
+ if (d.call(c, u))
+ return m(r.get(u));
+ r !== c && r.get(l);
},
get size() {
const l = this.__v_raw;
- return !e && bt(Je(l), "iterate", Js), l.size;
+ return !e && _t(Xe(l), "iterate", eo), l.size;
},
has(l) {
- const i = this.__v_raw, r = Je(i), u = Je(l);
- return e || (As(l, u) && bt(r, "has", l), bt(r, "has", u)), l === u ? i.has(l) : i.has(l) || i.has(u);
+ const r = this.__v_raw, c = Xe(r), u = Xe(l);
+ return e || (zs(l, u) && _t(c, "has", l), _t(c, "has", u)), l === u ? r.has(l) : r.has(l) || r.has(u);
},
- forEach(l, i) {
- const r = this, u = r.__v_raw, d = Je(u), m = s ? va : e ? po : es;
- return !e && bt(d, "iterate", Js), u.forEach((v, h) => l.call(i, m(v), m(h), r));
+ forEach(l, r) {
+ const c = this, u = c.__v_raw, d = Xe(u), m = s ? xa : e ? _o : ss;
+ return !e && _t(d, "iterate", eo), u.forEach((v, g) => l.call(r, m(v), m(g), c));
}
};
return pt(
o,
e ? {
- add: on("add"),
- set: on("set"),
- delete: on("delete"),
- clear: on("clear")
+ add: gn("add"),
+ set: gn("set"),
+ delete: gn("delete"),
+ clear: gn("clear")
} : {
add(l) {
- !s && !Bt(l) && !xs(l) && (l = Je(l));
- const i = Je(this);
- return sn(i).has.call(i, l) || (i.add(l), bs(i, "add", l, l)), this;
+ !s && !Gt(l) && !Rs(l) && (l = Xe(l));
+ const r = Xe(this);
+ return pn(r).has.call(r, l) || (r.add(l), xs(r, "add", l, l)), this;
},
- set(l, i) {
- !s && !Bt(i) && !xs(i) && (i = Je(i));
- const r = Je(this), { has: u, get: d } = sn(r);
- let m = u.call(r, l);
- m || (l = Je(l), m = u.call(r, l));
- const v = d.call(r, l);
- return r.set(l, i), m ? As(i, v) && bs(r, "set", l, i) : bs(r, "add", l, i), this;
+ set(l, r) {
+ !s && !Gt(r) && !Rs(r) && (r = Xe(r));
+ const c = Xe(this), { has: u, get: d } = pn(c);
+ let m = u.call(c, l);
+ m || (l = Xe(l), m = u.call(c, l));
+ const v = d.call(c, l);
+ return c.set(l, r), m ? zs(r, v) && xs(c, "set", l, r) : xs(c, "add", l, r), this;
},
delete(l) {
- const i = Je(this), { has: r, get: u } = sn(i);
- let d = r.call(i, l);
- d || (l = Je(l), d = r.call(i, l)), u && u.call(i, l);
- const m = i.delete(l);
- return d && bs(i, "delete", l, void 0), m;
+ const r = Xe(this), { has: c, get: u } = pn(r);
+ let d = c.call(r, l);
+ d || (l = Xe(l), d = c.call(r, l)), u && u.call(r, l);
+ const m = r.delete(l);
+ return d && xs(r, "delete", l, void 0), m;
},
clear() {
- const l = Je(this), i = l.size !== 0, r = l.clear();
- return i && bs(
+ const l = Xe(this), r = l.size !== 0, c = l.clear();
+ return r && xs(
l,
"clear",
void 0,
void 0
- ), r;
+ ), c;
}
}
), [
@@ -835,26 +835,26 @@ function dc(e, s) {
"entries",
Symbol.iterator
].forEach((l) => {
- o[l] = uc(l, e, s);
+ o[l] = Ic(l, e, s);
}), o;
}
-function Aa(e, s) {
- const o = dc(e, s);
- return (n, l, i) => l === "__v_isReactive" ? !e : l === "__v_isReadonly" ? e : l === "__v_raw" ? n : Reflect.get(
- Ze(o, l) && l in n ? o : n,
+function qa(e, s) {
+ const o = Ec(e, s);
+ return (n, l, r) => l === "__v_isReactive" ? !e : l === "__v_isReadonly" ? e : l === "__v_raw" ? n : Reflect.get(
+ et(o, l) && l in n ? o : n,
l,
- i
+ r
);
}
-const fc = {
- get: /* @__PURE__ */ Aa(!1, !1)
-}, mc = {
- get: /* @__PURE__ */ Aa(!1, !0)
-}, vc = {
- get: /* @__PURE__ */ Aa(!0, !1)
+const Tc = {
+ get: /* @__PURE__ */ qa(!1, !1)
+}, Rc = {
+ get: /* @__PURE__ */ qa(!1, !0)
+}, Pc = {
+ get: /* @__PURE__ */ qa(!0, !1)
};
-const gi = /* @__PURE__ */ new WeakMap(), hi = /* @__PURE__ */ new WeakMap(), yi = /* @__PURE__ */ new WeakMap(), pc = /* @__PURE__ */ new WeakMap();
-function gc(e) {
+const Ei = /* @__PURE__ */ new WeakMap(), Ti = /* @__PURE__ */ new WeakMap(), Ri = /* @__PURE__ */ new WeakMap(), Mc = /* @__PURE__ */ new WeakMap();
+function Dc(e) {
switch (e) {
case "Object":
case "Array":
@@ -868,231 +868,231 @@ function gc(e) {
return 0;
}
}
-function hc(e) {
- return e.__v_skip || !Object.isExtensible(e) ? 0 : gc(Br(e));
+function Lc(e) {
+ return e.__v_skip || !Object.isExtensible(e) ? 0 : Dc(nc(e));
}
-function Fs(e) {
- return xs(e) ? e : Na(
+function Ws(e) {
+ return Rs(e) ? e : Ya(
e,
!1,
- ic,
- fc,
- gi
+ Cc,
+ Tc,
+ Ei
);
}
-function yc(e) {
- return Na(
+function Ac(e) {
+ return Ya(
e,
!1,
- cc,
- mc,
- hi
+ Sc,
+ Rc,
+ Ti
);
}
-function wn(e) {
- return Na(
+function Mn(e) {
+ return Ya(
e,
!0,
- rc,
- vc,
- yi
+ xc,
+ Pc,
+ Ri
);
}
-function Na(e, s, o, n, l) {
- if (!tt(e) || e.__v_raw && !(s && e.__v_isReactive))
+function Ya(e, s, o, n, l) {
+ if (!ot(e) || e.__v_raw && !(s && e.__v_isReactive))
return e;
- const i = hc(e);
- if (i === 0)
+ const r = Lc(e);
+ if (r === 0)
return e;
- const r = l.get(e);
- if (r)
- return r;
+ const c = l.get(e);
+ if (c)
+ return c;
const u = new Proxy(
e,
- i === 2 ? n : o
+ r === 2 ? n : o
);
return l.set(e, u), u;
}
-function Xs(e) {
- return xs(e) ? Xs(e.__v_raw) : !!(e && e.__v_isReactive);
+function to(e) {
+ return Rs(e) ? to(e.__v_raw) : !!(e && e.__v_isReactive);
}
-function xs(e) {
+function Rs(e) {
return !!(e && e.__v_isReadonly);
}
-function Bt(e) {
+function Gt(e) {
return !!(e && e.__v_isShallow);
}
-function Ua(e) {
+function Ja(e) {
return e ? !!e.__v_raw : !1;
}
-function Je(e) {
+function Xe(e) {
const s = e && e.__v_raw;
- return s ? Je(s) : e;
+ return s ? Xe(s) : e;
}
-function wc(e) {
- return !Ze(e, "__v_skip") && Object.isExtensible(e) && ti(e, "__v_skip", !0), e;
+function Oc(e) {
+ return !et(e, "__v_skip") && Object.isExtensible(e) && mi(e, "__v_skip", !0), e;
}
-const es = (e) => tt(e) ? Fs(e) : e, po = (e) => tt(e) ? wn(e) : e;
-function $t(e) {
+const ss = (e) => ot(e) ? Ws(e) : e, _o = (e) => ot(e) ? Mn(e) : e;
+function Ct(e) {
return e ? e.__v_isRef === !0 : !1;
}
-function k(e) {
- return bc(e, !1);
+function _(e) {
+ return Nc(e, !1);
}
-function bc(e, s) {
- return $t(e) ? e : new _c(e, s);
+function Nc(e, s) {
+ return Ct(e) ? e : new Uc(e, s);
}
-class _c {
+class Uc {
constructor(s, o) {
- this.dep = new Oa(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = o ? s : Je(s), this._value = o ? s : es(s), this.__v_isShallow = o;
+ this.dep = new Ka(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = o ? s : Xe(s), this._value = o ? s : ss(s), this.__v_isShallow = o;
}
get value() {
return this.dep.track(), this._value;
}
set value(s) {
- const o = this._rawValue, n = this.__v_isShallow || Bt(s) || xs(s);
- s = n ? s : Je(s), As(s, o) && (this._rawValue = s, this._value = n ? s : es(s), this.dep.trigger());
+ const o = this._rawValue, n = this.__v_isShallow || Gt(s) || Rs(s);
+ s = n ? s : Xe(s), zs(s, o) && (this._rawValue = s, this._value = n ? s : ss(s), this.dep.trigger());
}
}
-function Fe(e) {
- return $t(e) ? e.value : e;
+function We(e) {
+ return Ct(e) ? e.value : e;
}
-const kc = {
- get: (e, s, o) => s === "__v_raw" ? e : Fe(Reflect.get(e, s, o)),
+const zc = {
+ get: (e, s, o) => s === "__v_raw" ? e : We(Reflect.get(e, s, o)),
set: (e, s, o, n) => {
const l = e[s];
- return $t(l) && !$t(o) ? (l.value = o, !0) : Reflect.set(e, s, o, n);
+ return Ct(l) && !Ct(o) ? (l.value = o, !0) : Reflect.set(e, s, o, n);
}
};
-function wi(e) {
- return Xs(e) ? e : new Proxy(e, kc);
+function Pi(e) {
+ return to(e) ? e : new Proxy(e, zc);
}
-class $c {
+class Fc {
constructor(s, o, n) {
- this.fn = s, this.setter = o, this._value = void 0, this.dep = new Oa(this), this.__v_isRef = !0, this.deps = void 0, this.depsTail = void 0, this.flags = 16, this.globalVersion = Vo - 1, this.next = void 0, this.effect = this, this.__v_isReadonly = !o, this.isSSR = n;
+ this.fn = s, this.setter = o, this._value = void 0, this.dep = new Ka(this), this.__v_isRef = !0, this.deps = void 0, this.depsTail = void 0, this.flags = 16, this.globalVersion = Qo - 1, this.next = void 0, this.effect = this, this.__v_isReadonly = !o, this.isSSR = n;
}
/**
* @internal
*/
notify() {
if (this.flags |= 16, !(this.flags & 8) && // avoid infinite self recursion
- nt !== this)
- return ii(this, !0), !0;
+ lt !== this)
+ return wi(this, !0), !0;
}
get value() {
const s = this.dep.track();
- return ui(this), s && (s.version = this.dep.version), this._value;
+ return bi(this), s && (s.version = this.dep.version), this._value;
}
set value(s) {
this.setter && this.setter(s);
}
}
-function Cc(e, s, o = !1) {
+function Bc(e, s, o = !1) {
let n, l;
- return Be(e) ? n = e : (n = e.get, l = e.set), new $c(n, l, o);
+ return Ge(e) ? n = e : (n = e.get, l = e.set), new Fc(n, l, o);
}
-const nn = {}, bn = /* @__PURE__ */ new WeakMap();
-let qs;
-function xc(e, s = !1, o = qs) {
+const hn = {}, Dn = /* @__PURE__ */ new WeakMap();
+let Xs;
+function Vc(e, s = !1, o = Xs) {
if (o) {
- let n = bn.get(o);
- n || bn.set(o, n = []), n.push(e);
- }
-}
-function Sc(e, s, o = st) {
- const { immediate: n, deep: l, once: i, scheduler: r, augmentJob: u, call: d } = o, m = (x) => l ? x : Bt(x) || l === !1 || l === 0 ? _s(x, 1) : _s(x);
- let v, h, w, p, _ = !1, S = !1;
- if ($t(e) ? (h = () => e.value, _ = Bt(e)) : Xs(e) ? (h = () => m(e), _ = !0) : Ue(e) ? (S = !0, _ = e.some((x) => Xs(x) || Bt(x)), h = () => e.map((x) => {
- if ($t(x))
- return x.value;
- if (Xs(x))
- return m(x);
- if (Be(x))
- return d ? d(x, 2) : x();
- })) : Be(e) ? s ? h = d ? () => d(e, 2) : e : h = () => {
+ let n = Dn.get(o);
+ n || Dn.set(o, n = []), n.push(e);
+ }
+}
+function Wc(e, s, o = nt) {
+ const { immediate: n, deep: l, once: r, scheduler: c, augmentJob: u, call: d } = o, m = (E) => l ? E : Gt(E) || l === !1 || l === 0 ? Ss(E, 1) : Ss(E);
+ let v, g, w, p, k = !1, C = !1;
+ if (Ct(e) ? (g = () => e.value, k = Gt(e)) : to(e) ? (g = () => m(e), k = !0) : Be(e) ? (C = !0, k = e.some((E) => to(E) || Gt(E)), g = () => e.map((E) => {
+ if (Ct(E))
+ return E.value;
+ if (to(E))
+ return m(E);
+ if (Ge(E))
+ return d ? d(E, 2) : E();
+ })) : Ge(e) ? s ? g = d ? () => d(e, 2) : e : g = () => {
if (w) {
- $s();
+ Es();
try {
w();
} finally {
- Cs();
+ Ts();
}
}
- const x = qs;
- qs = v;
+ const E = Xs;
+ Xs = v;
try {
return d ? d(e, 3, [p]) : e(p);
} finally {
- qs = x;
+ Xs = E;
}
- } : h = ms, s && l) {
- const x = h, q = l === !0 ? 1 / 0 : l;
- h = () => _s(x(), q);
+ } : g = gs, s && l) {
+ const E = g, U = l === !0 ? 1 / 0 : l;
+ g = () => Ss(E(), U);
}
- const $ = Zr(), P = () => {
- v.stop(), $ && $.active && Ta($.effects, v);
+ const b = gc(), T = () => {
+ v.stop(), b && b.active && Ba(b.effects, v);
};
- if (i && s) {
- const x = s;
- s = (...q) => {
- x(...q), P();
+ if (r && s) {
+ const E = s;
+ s = (...U) => {
+ E(...U), T();
};
}
- let O = S ? new Array(e.length).fill(nn) : nn;
- const T = (x) => {
- if (!(!(v.flags & 1) || !v.dirty && !x))
+ let D = C ? new Array(e.length).fill(hn) : hn;
+ const P = (E) => {
+ if (!(!(v.flags & 1) || !v.dirty && !E))
if (s) {
- const q = v.run();
- if (l || _ || (S ? q.some((B, A) => As(B, O[A])) : As(q, O))) {
+ const U = v.run();
+ if (l || k || (C ? U.some((B, V) => zs(B, D[V])) : zs(U, D))) {
w && w();
- const B = qs;
- qs = v;
+ const B = Xs;
+ Xs = v;
try {
- const A = [
- q,
+ const V = [
+ U,
// pass undefined as the old value when it's changed for the first time
- O === nn ? void 0 : S && O[0] === nn ? [] : O,
+ D === hn ? void 0 : C && D[0] === hn ? [] : D,
p
];
- O = q, d ? d(s, 3, A) : (
+ D = U, d ? d(s, 3, V) : (
// @ts-expect-error
- s(...A)
+ s(...V)
);
} finally {
- qs = B;
+ Xs = B;
}
}
} else
v.run();
};
- return u && u(T), v = new ai(h), v.scheduler = r ? () => r(T, !1) : T, p = (x) => xc(x, !1, v), w = v.onStop = () => {
- const x = bn.get(v);
- if (x) {
+ return u && u(P), v = new hi(g), v.scheduler = c ? () => c(P, !1) : P, p = (E) => Vc(E, !1, v), w = v.onStop = () => {
+ const E = Dn.get(v);
+ if (E) {
if (d)
- d(x, 4);
+ d(E, 4);
else
- for (const q of x) q();
- bn.delete(v);
+ for (const U of E) U();
+ Dn.delete(v);
}
- }, s ? n ? T(!0) : O = v.run() : r ? r(T.bind(null, !0), !0) : v.run(), P.pause = v.pause.bind(v), P.resume = v.resume.bind(v), P.stop = P, P;
+ }, s ? n ? P(!0) : D = v.run() : c ? c(P.bind(null, !0), !0) : v.run(), T.pause = v.pause.bind(v), T.resume = v.resume.bind(v), T.stop = T, T;
}
-function _s(e, s = 1 / 0, o) {
- if (s <= 0 || !tt(e) || e.__v_skip || (o = o || /* @__PURE__ */ new Map(), (o.get(e) || 0) >= s))
+function Ss(e, s = 1 / 0, o) {
+ if (s <= 0 || !ot(e) || e.__v_skip || (o = o || /* @__PURE__ */ new Map(), (o.get(e) || 0) >= s))
return e;
- if (o.set(e, s), s--, $t(e))
- _s(e.value, s, o);
- else if (Ue(e))
+ if (o.set(e, s), s--, Ct(e))
+ Ss(e.value, s, o);
+ else if (Be(e))
for (let n = 0; n < e.length; n++)
- _s(e[n], s, o);
- else if (yo(e) || co(e))
+ Ss(e[n], s, o);
+ else if (Co(e) || go(e))
e.forEach((n) => {
- _s(n, s, o);
+ Ss(n, s, o);
});
- else if (ei(e)) {
+ else if (fi(e)) {
for (const n in e)
- _s(e[n], s, o);
+ Ss(e[n], s, o);
for (const n of Object.getOwnPropertySymbols(e))
- Object.prototype.propertyIsEnumerable.call(e, n) && _s(e[n], s, o);
+ Object.prototype.propertyIsEnumerable.call(e, n) && Ss(e[n], s, o);
}
return e;
}
@@ -1101,167 +1101,167 @@ function _s(e, s = 1 / 0, o) {
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
-function Xo(e, s, o, n) {
+function ln(e, s, o, n) {
try {
return n ? e(...n) : e();
} catch (l) {
- Nn(l, s, o);
+ Yn(l, s, o);
}
}
-function ts(e, s, o, n) {
- if (Be(e)) {
- const l = Xo(e, s, o, n);
- return l && Ql(l) && l.catch((i) => {
- Nn(i, s, o);
+function os(e, s, o, n) {
+ if (Ge(e)) {
+ const l = ln(e, s, o, n);
+ return l && ui(l) && l.catch((r) => {
+ Yn(r, s, o);
}), l;
}
- if (Ue(e)) {
+ if (Be(e)) {
const l = [];
- for (let i = 0; i < e.length; i++)
- l.push(ts(e[i], s, o, n));
+ for (let r = 0; r < e.length; r++)
+ l.push(os(e[r], s, o, n));
return l;
}
}
-function Nn(e, s, o, n = !0) {
- const l = s ? s.vnode : null, { errorHandler: i, throwUnhandledErrorInProduction: r } = s && s.appContext.config || st;
+function Yn(e, s, o, n = !0) {
+ const l = s ? s.vnode : null, { errorHandler: r, throwUnhandledErrorInProduction: c } = s && s.appContext.config || nt;
if (s) {
let u = s.parent;
const d = s.proxy, m = `https://vuejs.org/error-reference/#runtime-${o}`;
for (; u; ) {
const v = u.ec;
if (v) {
- for (let h = 0; h < v.length; h++)
- if (v[h](e, d, m) === !1)
+ for (let g = 0; g < v.length; g++)
+ if (v[g](e, d, m) === !1)
return;
}
u = u.parent;
}
- if (i) {
- $s(), Xo(i, null, 10, [
+ if (r) {
+ Es(), ln(r, null, 10, [
e,
d,
m
- ]), Cs();
+ ]), Ts();
return;
}
}
- Ic(e, o, l, n, r);
+ Gc(e, o, l, n, c);
}
-function Ic(e, s, o, n = !0, l = !1) {
+function Gc(e, s, o, n = !0, l = !1) {
if (l)
throw e;
console.error(e);
}
-const It = [];
-let us = -1;
-const uo = [];
-let Ds = null, ao = 0;
-const bi = /* @__PURE__ */ Promise.resolve();
-let _n = null;
-function Qo(e) {
- const s = _n || bi;
+const Rt = [];
+let ms = -1;
+const ho = [];
+let Ns = null, fo = 0;
+const Mi = /* @__PURE__ */ Promise.resolve();
+let Ln = null;
+function gt(e) {
+ const s = Ln || Mi;
return e ? s.then(this ? e.bind(this) : e) : s;
}
-function Ec(e) {
- let s = us + 1, o = It.length;
+function jc(e) {
+ let s = ms + 1, o = Rt.length;
for (; s < o; ) {
- const n = s + o >>> 1, l = It[n], i = Go(l);
- i < e || i === e && l.flags & 2 ? s = n + 1 : o = n;
+ const n = s + o >>> 1, l = Rt[n], r = Zo(l);
+ r < e || r === e && l.flags & 2 ? s = n + 1 : o = n;
}
return s;
}
-function za(e) {
+function Qa(e) {
if (!(e.flags & 1)) {
- const s = Go(e), o = It[It.length - 1];
+ const s = Zo(e), o = Rt[Rt.length - 1];
!o || // fast path when the job id is larger than the tail
- !(e.flags & 2) && s >= Go(o) ? It.push(e) : It.splice(Ec(s), 0, e), e.flags |= 1, _i();
+ !(e.flags & 2) && s >= Zo(o) ? Rt.push(e) : Rt.splice(jc(s), 0, e), e.flags |= 1, Di();
}
}
-function _i() {
- _n || (_n = bi.then($i));
+function Di() {
+ Ln || (Ln = Mi.then(Ai));
}
-function Tc(e) {
- Ue(e) ? uo.push(...e) : Ds && e.id === -1 ? Ds.splice(ao + 1, 0, e) : e.flags & 1 || (uo.push(e), e.flags |= 1), _i();
+function Hc(e) {
+ Be(e) ? ho.push(...e) : Ns && e.id === -1 ? Ns.splice(fo + 1, 0, e) : e.flags & 1 || (ho.push(e), e.flags |= 1), Di();
}
-function ll(e, s, o = us + 1) {
- for (; o < It.length; o++) {
- const n = It[o];
+function pl(e, s, o = ms + 1) {
+ for (; o < Rt.length; o++) {
+ const n = Rt[o];
if (n && n.flags & 2) {
if (e && n.id !== e.uid)
continue;
- It.splice(o, 1), o--, n.flags & 4 && (n.flags &= -2), n(), n.flags & 4 || (n.flags &= -2);
+ Rt.splice(o, 1), o--, n.flags & 4 && (n.flags &= -2), n(), n.flags & 4 || (n.flags &= -2);
}
}
}
-function ki(e) {
- if (uo.length) {
- const s = [...new Set(uo)].sort(
- (o, n) => Go(o) - Go(n)
+function Li(e) {
+ if (ho.length) {
+ const s = [...new Set(ho)].sort(
+ (o, n) => Zo(o) - Zo(n)
);
- if (uo.length = 0, Ds) {
- Ds.push(...s);
+ if (ho.length = 0, Ns) {
+ Ns.push(...s);
return;
}
- for (Ds = s, ao = 0; ao < Ds.length; ao++) {
- const o = Ds[ao];
+ for (Ns = s, fo = 0; fo < Ns.length; fo++) {
+ const o = Ns[fo];
o.flags & 4 && (o.flags &= -2), o.flags & 8 || o(), o.flags &= -2;
}
- Ds = null, ao = 0;
+ Ns = null, fo = 0;
}
}
-const Go = (e) => e.id == null ? e.flags & 2 ? -1 : 1 / 0 : e.id;
-function $i(e) {
+const Zo = (e) => e.id == null ? e.flags & 2 ? -1 : 1 / 0 : e.id;
+function Ai(e) {
try {
- for (us = 0; us < It.length; us++) {
- const s = It[us];
- s && !(s.flags & 8) && (s.flags & 4 && (s.flags &= -2), Xo(
+ for (ms = 0; ms < Rt.length; ms++) {
+ const s = Rt[ms];
+ s && !(s.flags & 8) && (s.flags & 4 && (s.flags &= -2), ln(
s,
s.i,
s.i ? 15 : 14
), s.flags & 4 || (s.flags &= -2));
}
} finally {
- for (; us < It.length; us++) {
- const s = It[us];
+ for (; ms < Rt.length; ms++) {
+ const s = Rt[ms];
s && (s.flags &= -2);
}
- us = -1, It.length = 0, ki(), _n = null, (It.length || uo.length) && $i();
+ ms = -1, Rt.length = 0, Li(), Ln = null, (Rt.length || ho.length) && Ai();
}
}
-let yt = null, Ci = null;
-function kn(e) {
- const s = yt;
- return yt = e, Ci = e && e.type.__scopeId || null, s;
+let wt = null, Oi = null;
+function An(e) {
+ const s = wt;
+ return wt = e, Oi = e && e.type.__scopeId || null, s;
}
-function g(e, s = yt, o) {
+function h(e, s = wt, o) {
if (!s || e._n)
return e;
const n = (...l) => {
- n._d && xn(-1);
- const i = kn(s);
- let r;
+ n._d && Un(-1);
+ const r = An(s);
+ let c;
try {
- r = e(...l);
+ c = e(...l);
} finally {
- kn(i), n._d && xn(1);
+ An(r), n._d && Un(1);
}
- return r;
+ return c;
};
return n._n = !0, n._c = !0, n._d = !0, n;
}
function qe(e, s) {
- if (yt === null)
+ if (wt === null)
return e;
- const o = Vn(yt), n = e.dirs || (e.dirs = []);
+ const o = ea(wt), n = e.dirs || (e.dirs = []);
for (let l = 0; l < s.length; l++) {
- let [i, r, u, d = st] = s[l];
- i && (Be(i) && (i = {
- mounted: i,
- updated: i
- }), i.deep && _s(r), n.push({
- dir: i,
+ let [r, c, u, d = nt] = s[l];
+ r && (Ge(r) && (r = {
+ mounted: r,
+ updated: r
+ }), r.deep && Ss(c), n.push({
+ dir: r,
instance: o,
- value: r,
+ value: c,
oldValue: void 0,
arg: u,
modifiers: d
@@ -1269,154 +1269,154 @@ function qe(e, s) {
}
return e;
}
-function Gs(e, s, o, n) {
- const l = e.dirs, i = s && s.dirs;
- for (let r = 0; r < l.length; r++) {
- const u = l[r];
- i && (u.oldValue = i[r].value);
+function qs(e, s, o, n) {
+ const l = e.dirs, r = s && s.dirs;
+ for (let c = 0; c < l.length; c++) {
+ const u = l[c];
+ r && (u.oldValue = r[c].value);
let d = u.dir[n];
- d && ($s(), ts(d, o, 8, [
+ d && (Es(), os(d, o, 8, [
e.el,
u,
e,
s
- ]), Cs());
+ ]), Ts());
}
}
-const xi = Symbol("_vte"), Si = (e) => e.__isTeleport, Oo = (e) => e && (e.disabled || e.disabled === ""), il = (e) => e && (e.defer || e.defer === ""), rl = (e) => typeof SVGElement < "u" && e instanceof SVGElement, cl = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, pa = (e, s) => {
+const Ni = Symbol("_vte"), Ui = (e) => e.__isTeleport, Wo = (e) => e && (e.disabled || e.disabled === ""), gl = (e) => e && (e.defer || e.defer === ""), hl = (e) => typeof SVGElement < "u" && e instanceof SVGElement, yl = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, Sa = (e, s) => {
const o = e && e.to;
return ut(o) ? s ? s(o) : null : o;
-}, Ii = {
+}, zi = {
name: "Teleport",
__isTeleport: !0,
- process(e, s, o, n, l, i, r, u, d, m) {
+ process(e, s, o, n, l, r, c, u, d, m) {
const {
mc: v,
- pc: h,
+ pc: g,
pbc: w,
- o: { insert: p, querySelector: _, createText: S, createComment: $ }
- } = m, P = Oo(s.props);
- let { shapeFlag: O, children: T, dynamicChildren: x } = s;
+ o: { insert: p, querySelector: k, createText: C, createComment: b }
+ } = m, T = Wo(s.props);
+ let { shapeFlag: D, children: P, dynamicChildren: E } = s;
if (e == null) {
- const q = s.el = S(""), B = s.anchor = S("");
- p(q, o, n), p(B, o, n);
- const A = (E, L) => {
- O & 16 && v(
- T,
- E,
+ const U = s.el = C(""), B = s.anchor = C("");
+ p(U, o, n), p(B, o, n);
+ const V = (I, L) => {
+ D & 16 && v(
+ P,
+ I,
L,
l,
- i,
r,
+ c,
u,
d
);
- }, I = () => {
- const E = s.target = pa(s.props, _), L = Ei(E, s, S, p);
- E && (r !== "svg" && rl(E) ? r = "svg" : r !== "mathml" && cl(E) && (r = "mathml"), l && l.isCE && (l.ce._teleportTargets || (l.ce._teleportTargets = /* @__PURE__ */ new Set())).add(E), P || (A(E, L), mn(s, !1)));
+ }, S = () => {
+ const I = s.target = Sa(s.props, k), L = Fi(I, s, C, p);
+ I && (c !== "svg" && hl(I) ? c = "svg" : c !== "mathml" && yl(I) && (c = "mathml"), l && l.isCE && (l.ce._teleportTargets || (l.ce._teleportTargets = /* @__PURE__ */ new Set())).add(I), T || (V(I, L), Sn(s, !1)));
};
- P && (A(o, B), mn(s, !0)), il(s.props) ? (s.el.__isMounted = !1, St(() => {
- I(), delete s.el.__isMounted;
- }, i)) : I();
+ T && (V(o, B), Sn(s, !0)), gl(s.props) ? (s.el.__isMounted = !1, Et(() => {
+ S(), delete s.el.__isMounted;
+ }, r)) : S();
} else {
- if (il(s.props) && e.el.__isMounted === !1) {
- St(() => {
- Ii.process(
+ if (gl(s.props) && e.el.__isMounted === !1) {
+ Et(() => {
+ zi.process(
e,
s,
o,
n,
l,
- i,
r,
+ c,
u,
d,
m
);
- }, i);
+ }, r);
return;
}
s.el = e.el, s.targetStart = e.targetStart;
- const q = s.anchor = e.anchor, B = s.target = e.target, A = s.targetAnchor = e.targetAnchor, I = Oo(e.props), E = I ? o : B, L = I ? q : A;
- if (r === "svg" || rl(B) ? r = "svg" : (r === "mathml" || cl(B)) && (r = "mathml"), x ? (w(
+ const U = s.anchor = e.anchor, B = s.target = e.target, V = s.targetAnchor = e.targetAnchor, S = Wo(e.props), I = S ? o : B, L = S ? U : V;
+ if (c === "svg" || hl(B) ? c = "svg" : (c === "mathml" || yl(B)) && (c = "mathml"), E ? (w(
e.dynamicChildren,
- x,
E,
+ I,
l,
- i,
r,
+ c,
u
- ), Ga(e, s, !0)) : d || h(
+ ), sl(e, s, !0)) : d || g(
e,
s,
- E,
+ I,
L,
l,
- i,
r,
+ c,
u,
!1
- ), P)
- I ? s.props && e.props && s.props.to !== e.props.to && (s.props.to = e.props.to) : an(
+ ), T)
+ S ? s.props && e.props && s.props.to !== e.props.to && (s.props.to = e.props.to) : yn(
s,
o,
- q,
+ U,
m,
1
);
else if ((s.props && s.props.to) !== (e.props && e.props.to)) {
- const re = s.target = pa(
+ const Z = s.target = Sa(
s.props,
- _
+ k
);
- re && an(
+ Z && yn(
s,
- re,
+ Z,
null,
m,
0
);
- } else I && an(
+ } else S && yn(
s,
B,
- A,
+ V,
m,
1
);
- mn(s, P);
+ Sn(s, T);
}
},
- remove(e, s, o, { um: n, o: { remove: l } }, i) {
+ remove(e, s, o, { um: n, o: { remove: l } }, r) {
const {
- shapeFlag: r,
+ shapeFlag: c,
children: u,
anchor: d,
targetStart: m,
targetAnchor: v,
- target: h,
+ target: g,
props: w
} = e;
- if (h && (l(m), l(v)), i && l(d), r & 16) {
- const p = i || !Oo(w);
- for (let _ = 0; _ < u.length; _++) {
- const S = u[_];
+ if (g && (l(m), l(v)), r && l(d), c & 16) {
+ const p = r || !Wo(w);
+ for (let k = 0; k < u.length; k++) {
+ const C = u[k];
n(
- S,
+ C,
s,
o,
p,
- !!S.dynamicChildren
+ !!C.dynamicChildren
);
}
}
},
- move: an,
- hydrate: Pc
+ move: yn,
+ hydrate: Kc
};
-function an(e, s, o, { o: { insert: n }, m: l }, i = 2) {
- i === 0 && n(e.targetAnchor, s, o);
- const { el: r, anchor: u, shapeFlag: d, children: m, props: v } = e, h = i === 2;
- if (h && n(r, s, o), (!h || Oo(v)) && d & 16)
+function yn(e, s, o, { o: { insert: n }, m: l }, r = 2) {
+ r === 0 && n(e.targetAnchor, s, o);
+ const { el: c, anchor: u, shapeFlag: d, children: m, props: v } = e, g = r === 2;
+ if (g && n(c, s, o), (!g || Wo(v)) && d & 16)
for (let w = 0; w < m.length; w++)
l(
m[w],
@@ -1424,66 +1424,66 @@ function an(e, s, o, { o: { insert: n }, m: l }, i = 2) {
o,
2
);
- h && n(u, s, o);
-}
-function Pc(e, s, o, n, l, i, {
- o: { nextSibling: r, parentNode: u, querySelector: d, insert: m, createText: v }
-}, h) {
- function w(S, $, P, O) {
- $.anchor = h(
- r(S),
- $,
- u(S),
+ g && n(u, s, o);
+}
+function Kc(e, s, o, n, l, r, {
+ o: { nextSibling: c, parentNode: u, querySelector: d, insert: m, createText: v }
+}, g) {
+ function w(C, b, T, D) {
+ b.anchor = g(
+ c(C),
+ b,
+ u(C),
o,
n,
l,
- i
- ), $.targetStart = P, $.targetAnchor = O;
+ r
+ ), b.targetStart = T, b.targetAnchor = D;
}
- const p = s.target = pa(
+ const p = s.target = Sa(
s.props,
d
- ), _ = Oo(s.props);
+ ), k = Wo(s.props);
if (p) {
- const S = p._lpa || p.firstChild;
+ const C = p._lpa || p.firstChild;
if (s.shapeFlag & 16)
- if (_)
+ if (k)
w(
e,
s,
- S,
- S && r(S)
+ C,
+ C && c(C)
);
else {
- s.anchor = r(e);
- let $ = S;
- for (; $; ) {
- if ($ && $.nodeType === 8) {
- if ($.data === "teleport start anchor")
- s.targetStart = $;
- else if ($.data === "teleport anchor") {
- s.targetAnchor = $, p._lpa = s.targetAnchor && r(s.targetAnchor);
+ s.anchor = c(e);
+ let b = C;
+ for (; b; ) {
+ if (b && b.nodeType === 8) {
+ if (b.data === "teleport start anchor")
+ s.targetStart = b;
+ else if (b.data === "teleport anchor") {
+ s.targetAnchor = b, p._lpa = s.targetAnchor && c(s.targetAnchor);
break;
}
}
- $ = r($);
+ b = c(b);
}
- s.targetAnchor || Ei(p, s, v, m), h(
- S && r(S),
+ s.targetAnchor || Fi(p, s, v, m), g(
+ C && c(C),
s,
p,
o,
n,
l,
- i
+ r
);
}
- mn(s, _);
- } else _ && s.shapeFlag & 16 && w(e, s, e, r(e));
- return s.anchor && r(s.anchor);
+ Sn(s, k);
+ } else k && s.shapeFlag & 16 && w(e, s, e, c(e));
+ return s.anchor && c(s.anchor);
}
-const wt = Ii;
-function mn(e, s) {
+const kt = zi;
+function Sn(e, s) {
const o = e.ctx;
if (o && o.ut) {
let n, l;
@@ -1492,189 +1492,189 @@ function mn(e, s) {
o.ut();
}
}
-function Ei(e, s, o, n) {
- const l = s.targetStart = o(""), i = s.targetAnchor = o("");
- return l[xi] = i, e && (n(l, e), n(i, e)), i;
+function Fi(e, s, o, n) {
+ const l = s.targetStart = o(""), r = s.targetAnchor = o("");
+ return l[Ni] = r, e && (n(l, e), n(r, e)), r;
}
-const ws = Symbol("_leaveCb"), ln = Symbol("_enterCb");
-function Ti() {
+const Cs = Symbol("_leaveCb"), wn = Symbol("_enterCb");
+function Bi() {
const e = {
isMounted: !1,
isLeaving: !1,
isUnmounting: !1,
leavingVNodes: /* @__PURE__ */ new Map()
};
- return et(() => {
+ return Qe(() => {
e.isMounted = !0;
- }), Ni(() => {
+ }), Yi(() => {
e.isUnmounting = !0;
}), e;
}
-const zt = [Function, Array], Pi = {
+const Vt = [Function, Array], Vi = {
mode: String,
appear: Boolean,
persisted: Boolean,
// enter
- onBeforeEnter: zt,
- onEnter: zt,
- onAfterEnter: zt,
- onEnterCancelled: zt,
+ onBeforeEnter: Vt,
+ onEnter: Vt,
+ onAfterEnter: Vt,
+ onEnterCancelled: Vt,
// leave
- onBeforeLeave: zt,
- onLeave: zt,
- onAfterLeave: zt,
- onLeaveCancelled: zt,
+ onBeforeLeave: Vt,
+ onLeave: Vt,
+ onAfterLeave: Vt,
+ onLeaveCancelled: Vt,
// appear
- onBeforeAppear: zt,
- onAppear: zt,
- onAfterAppear: zt,
- onAppearCancelled: zt
-}, Ri = (e) => {
+ onBeforeAppear: Vt,
+ onAppear: Vt,
+ onAfterAppear: Vt,
+ onAppearCancelled: Vt
+}, Wi = (e) => {
const s = e.subTree;
- return s.component ? Ri(s.component) : s;
-}, Rc = {
+ return s.component ? Wi(s.component) : s;
+}, qc = {
name: "BaseTransition",
- props: Pi,
+ props: Vi,
setup(e, { slots: s }) {
- const o = Ha(), n = Ti();
+ const o = nl(), n = Bi();
return () => {
- const l = s.default && Fa(s.default(), !0);
+ const l = s.default && Xa(s.default(), !0);
if (!l || !l.length)
return;
- const i = Mi(l), r = Je(e), { mode: u } = r;
+ const r = Gi(l), c = Xe(e), { mode: u } = c;
if (n.isLeaving)
- return Xn(i);
- const d = ul(i);
+ return ca(r);
+ const d = wl(r);
if (!d)
- return Xn(i);
- let m = jo(
+ return ca(r);
+ let m = en(
d,
- r,
+ c,
n,
o,
// #11061, ensure enterHooks is fresh after clone
- (h) => m = h
+ (g) => m = g
);
- d.type !== _t && Zs(d, m);
- let v = o.subTree && ul(o.subTree);
- if (v && v.type !== _t && !Ys(v, d) && Ri(o).type !== _t) {
- let h = jo(
+ d.type !== bt && oo(d, m);
+ let v = o.subTree && wl(o.subTree);
+ if (v && v.type !== bt && !Zs(v, d) && Wi(o).type !== bt) {
+ let g = en(
v,
- r,
+ c,
n,
o
);
- if (Zs(v, h), u === "out-in" && d.type !== _t)
- return n.isLeaving = !0, h.afterLeave = () => {
- n.isLeaving = !1, o.job.flags & 8 || o.update(), delete h.afterLeave, v = void 0;
- }, Xn(i);
- u === "in-out" && d.type !== _t ? h.delayLeave = (w, p, _) => {
- const S = Di(
+ if (oo(v, g), u === "out-in" && d.type !== bt)
+ return n.isLeaving = !0, g.afterLeave = () => {
+ n.isLeaving = !1, o.job.flags & 8 || o.update(), delete g.afterLeave, v = void 0;
+ }, ca(r);
+ u === "in-out" && d.type !== bt ? g.delayLeave = (w, p, k) => {
+ const C = ji(
n,
v
);
- S[String(v.key)] = v, w[ws] = () => {
- p(), w[ws] = void 0, delete m.delayedLeave, v = void 0;
+ C[String(v.key)] = v, w[Cs] = () => {
+ p(), w[Cs] = void 0, delete m.delayedLeave, v = void 0;
}, m.delayedLeave = () => {
- _(), delete m.delayedLeave, v = void 0;
+ k(), delete m.delayedLeave, v = void 0;
};
} : v = void 0;
} else v && (v = void 0);
- return i;
+ return r;
};
}
};
-function Mi(e) {
+function Gi(e) {
let s = e[0];
if (e.length > 1) {
for (const o of e)
- if (o.type !== _t) {
+ if (o.type !== bt) {
s = o;
break;
}
}
return s;
}
-const Mc = Rc;
-function Di(e, s) {
+const Yc = qc;
+function ji(e, s) {
const { leavingVNodes: o } = e;
let n = o.get(s.type);
return n || (n = /* @__PURE__ */ Object.create(null), o.set(s.type, n)), n;
}
-function jo(e, s, o, n, l) {
+function en(e, s, o, n, l) {
const {
- appear: i,
- mode: r,
+ appear: r,
+ mode: c,
persisted: u = !1,
onBeforeEnter: d,
onEnter: m,
onAfterEnter: v,
- onEnterCancelled: h,
+ onEnterCancelled: g,
onBeforeLeave: w,
onLeave: p,
- onAfterLeave: _,
- onLeaveCancelled: S,
- onBeforeAppear: $,
- onAppear: P,
- onAfterAppear: O,
- onAppearCancelled: T
- } = s, x = String(e.key), q = Di(o, e), B = (E, L) => {
- E && ts(
- E,
+ onAfterLeave: k,
+ onLeaveCancelled: C,
+ onBeforeAppear: b,
+ onAppear: T,
+ onAfterAppear: D,
+ onAppearCancelled: P
+ } = s, E = String(e.key), U = ji(o, e), B = (I, L) => {
+ I && os(
+ I,
n,
9,
L
);
- }, A = (E, L) => {
- const re = L[1];
- B(E, L), Ue(E) ? E.every((Y) => Y.length <= 1) && re() : E.length <= 1 && re();
- }, I = {
- mode: r,
+ }, V = (I, L) => {
+ const Z = L[1];
+ B(I, L), Be(I) ? I.every((W) => W.length <= 1) && Z() : I.length <= 1 && Z();
+ }, S = {
+ mode: c,
persisted: u,
- beforeEnter(E) {
+ beforeEnter(I) {
let L = d;
if (!o.isMounted)
- if (i)
- L = $ || d;
+ if (r)
+ L = b || d;
else
return;
- E[ws] && E[ws](
+ I[Cs] && I[Cs](
!0
/* cancelled */
);
- const re = q[x];
- re && Ys(e, re) && re.el[ws] && re.el[ws](), B(L, [E]);
+ const Z = U[E];
+ Z && Zs(e, Z) && Z.el[Cs] && Z.el[Cs](), B(L, [I]);
},
- enter(E) {
- let L = m, re = v, Y = h;
+ enter(I) {
+ let L = m, Z = v, W = g;
if (!o.isMounted)
- if (i)
- L = P || m, re = O || v, Y = T || h;
+ if (r)
+ L = T || m, Z = D || v, W = P || g;
else
return;
- let H = !1;
- const te = E[ln] = (Q) => {
- H || (H = !0, Q ? B(Y, [E]) : B(re, [E]), I.delayedLeave && I.delayedLeave(), E[ln] = void 0);
+ let A = !1;
+ const j = I[wn] = (X) => {
+ A || (A = !0, X ? B(W, [I]) : B(Z, [I]), S.delayedLeave && S.delayedLeave(), I[wn] = void 0);
};
- L ? A(L, [E, te]) : te();
+ L ? V(L, [I, j]) : j();
},
- leave(E, L) {
- const re = String(e.key);
- if (E[ln] && E[ln](
+ leave(I, L) {
+ const Z = String(e.key);
+ if (I[wn] && I[wn](
!0
/* cancelled */
), o.isUnmounting)
return L();
- B(w, [E]);
- let Y = !1;
- const H = E[ws] = (te) => {
- Y || (Y = !0, L(), te ? B(S, [E]) : B(_, [E]), E[ws] = void 0, q[re] === e && delete q[re]);
+ B(w, [I]);
+ let W = !1;
+ const A = I[Cs] = (j) => {
+ W || (W = !0, L(), j ? B(C, [I]) : B(k, [I]), I[Cs] = void 0, U[Z] === e && delete U[Z]);
};
- q[re] = e, p ? A(p, [E, H]) : H();
+ U[Z] = e, p ? V(p, [I, A]) : A();
},
- clone(E) {
- const L = jo(
- E,
+ clone(I) {
+ const L = en(
+ I,
s,
o,
n,
@@ -1683,60 +1683,60 @@ function jo(e, s, o, n, l) {
return l && l(L), L;
}
};
- return I;
+ return S;
}
-function Xn(e) {
- if (Un(e))
- return e = Ns(e), e.children = null, e;
+function ca(e) {
+ if (Jn(e))
+ return e = Fs(e), e.children = null, e;
}
-function ul(e) {
- if (!Un(e))
- return Si(e.type) && e.children ? Mi(e.children) : e;
+function wl(e) {
+ if (!Jn(e))
+ return Ui(e.type) && e.children ? Gi(e.children) : e;
if (e.component)
return e.component.subTree;
const { shapeFlag: s, children: o } = e;
if (o) {
if (s & 16)
return o[0];
- if (s & 32 && Be(o.default))
+ if (s & 32 && Ge(o.default))
return o.default();
}
}
-function Zs(e, s) {
- e.shapeFlag & 6 && e.component ? (e.transition = s, Zs(e.component.subTree, s)) : e.shapeFlag & 128 ? (e.ssContent.transition = s.clone(e.ssContent), e.ssFallback.transition = s.clone(e.ssFallback)) : e.transition = s;
+function oo(e, s) {
+ e.shapeFlag & 6 && e.component ? (e.transition = s, oo(e.component.subTree, s)) : e.shapeFlag & 128 ? (e.ssContent.transition = s.clone(e.ssContent), e.ssFallback.transition = s.clone(e.ssFallback)) : e.transition = s;
}
-function Fa(e, s = !1, o) {
+function Xa(e, s = !1, o) {
let n = [], l = 0;
- for (let i = 0; i < e.length; i++) {
- let r = e[i];
- const u = o == null ? r.key : String(o) + String(r.key != null ? r.key : i);
- r.type === j ? (r.patchFlag & 128 && l++, n = n.concat(
- Fa(r.children, s, u)
- )) : (s || r.type !== _t) && n.push(u != null ? Ns(r, { key: u }) : r);
+ for (let r = 0; r < e.length; r++) {
+ let c = e[r];
+ const u = o == null ? c.key : String(o) + String(c.key != null ? c.key : r);
+ c.type === H ? (c.patchFlag & 128 && l++, n = n.concat(
+ Xa(c.children, s, u)
+ )) : (s || c.type !== bt) && n.push(u != null ? Fs(c, { key: u }) : c);
}
if (l > 1)
- for (let i = 0; i < n.length; i++)
- n[i].patchFlag = -2;
+ for (let r = 0; r < n.length; r++)
+ n[r].patchFlag = -2;
return n;
}
// @__NO_SIDE_EFFECTS__
function fe(e, s) {
- return Be(e) ? (
+ return Ge(e) ? (
// #8236: extend call and options.name access are considered side-effects
// by Rollup, so we have to wrap it in a pure-annotated IIFE.
pt({ name: e.name }, s, { setup: e })
) : e;
}
-function Li(e) {
+function Hi(e) {
e.ids = [e.ids[0] + e.ids[2]++ + "-", 0, 0];
}
-const $n = /* @__PURE__ */ new WeakMap();
-function Ao(e, s, o, n, l = !1) {
- if (Ue(e)) {
+const On = /* @__PURE__ */ new WeakMap();
+function Go(e, s, o, n, l = !1) {
+ if (Be(e)) {
e.forEach(
- (_, S) => Ao(
- _,
- s && (Ue(s) ? s[S] : s),
+ (k, C) => Go(
+ k,
+ s && (Be(s) ? s[C] : s),
o,
n,
l
@@ -1744,64 +1744,64 @@ function Ao(e, s, o, n, l = !1) {
);
return;
}
- if (fo(n) && !l) {
- n.shapeFlag & 512 && n.type.__asyncResolved && n.component.subTree.component && Ao(e, s, o, n.component.subTree);
+ if (yo(n) && !l) {
+ n.shapeFlag & 512 && n.type.__asyncResolved && n.component.subTree.component && Go(e, s, o, n.component.subTree);
return;
}
- const i = n.shapeFlag & 4 ? Vn(n.component) : n.el, r = l ? null : i, { i: u, r: d } = e, m = s && s.r, v = u.refs === st ? u.refs = {} : u.refs, h = u.setupState, w = Je(h), p = h === st ? Xl : (_) => Ze(w, _);
+ const r = n.shapeFlag & 4 ? ea(n.component) : n.el, c = l ? null : r, { i: u, r: d } = e, m = s && s.r, v = u.refs === nt ? u.refs = {} : u.refs, g = u.setupState, w = Xe(g), p = g === nt ? ci : (k) => et(w, k);
if (m != null && m !== d) {
- if (dl(s), ut(m))
- v[m] = null, p(m) && (h[m] = null);
- else if ($t(m)) {
+ if (kl(s), ut(m))
+ v[m] = null, p(m) && (g[m] = null);
+ else if (Ct(m)) {
m.value = null;
- const _ = s;
- _.k && (v[_.k] = null);
+ const k = s;
+ k.k && (v[k.k] = null);
}
}
- if (Be(d))
- Xo(d, u, 12, [r, v]);
+ if (Ge(d))
+ ln(d, u, 12, [c, v]);
else {
- const _ = ut(d), S = $t(d);
- if (_ || S) {
- const $ = () => {
+ const k = ut(d), C = Ct(d);
+ if (k || C) {
+ const b = () => {
if (e.f) {
- const P = _ ? p(d) ? h[d] : v[d] : d.value;
+ const T = k ? p(d) ? g[d] : v[d] : d.value;
if (l)
- Ue(P) && Ta(P, i);
- else if (Ue(P))
- P.includes(i) || P.push(i);
- else if (_)
- v[d] = [i], p(d) && (h[d] = v[d]);
+ Be(T) && Ba(T, r);
+ else if (Be(T))
+ T.includes(r) || T.push(r);
+ else if (k)
+ v[d] = [r], p(d) && (g[d] = v[d]);
else {
- const O = [i];
- d.value = O, e.k && (v[e.k] = O);
+ const D = [r];
+ d.value = D, e.k && (v[e.k] = D);
}
- } else _ ? (v[d] = r, p(d) && (h[d] = r)) : S && (d.value = r, e.k && (v[e.k] = r));
+ } else k ? (v[d] = c, p(d) && (g[d] = c)) : C && (d.value = c, e.k && (v[e.k] = c));
};
- if (r) {
- const P = () => {
- $(), $n.delete(e);
+ if (c) {
+ const T = () => {
+ b(), On.delete(e);
};
- P.id = -1, $n.set(e, P), St(P, o);
+ T.id = -1, On.set(e, T), Et(T, o);
} else
- dl(e), $();
+ kl(e), b();
}
}
}
-function dl(e) {
- const s = $n.get(e);
- s && (s.flags |= 8, $n.delete(e));
+function kl(e) {
+ const s = On.get(e);
+ s && (s.flags |= 8, On.delete(e));
}
-On().requestIdleCallback;
-On().cancelIdleCallback;
-const fo = (e) => !!e.type.__asyncLoader, Un = (e) => e.type.__isKeepAlive;
-function Dc(e, s) {
- Oi(e, "a", s);
+Kn().requestIdleCallback;
+Kn().cancelIdleCallback;
+const yo = (e) => !!e.type.__asyncLoader, Jn = (e) => e.type.__isKeepAlive;
+function Jc(e, s) {
+ Ki(e, "a", s);
}
-function Lc(e, s) {
- Oi(e, "da", s);
+function Qc(e, s) {
+ Ki(e, "da", s);
}
-function Oi(e, s, o = kt) {
+function Ki(e, s, o = $t) {
const n = e.__wdc || (e.__wdc = () => {
let l = o;
for (; l; ) {
@@ -1811,152 +1811,152 @@ function Oi(e, s, o = kt) {
}
return e();
});
- if (zn(s, n, o), o) {
+ if (Qn(s, n, o), o) {
let l = o.parent;
for (; l && l.parent; )
- Un(l.parent.vnode) && Oc(n, s, o, l), l = l.parent;
+ Jn(l.parent.vnode) && Xc(n, s, o, l), l = l.parent;
}
}
-function Oc(e, s, o, n) {
- const l = zn(
+function Xc(e, s, o, n) {
+ const l = Qn(
s,
e,
n,
!0
/* prepend */
);
- wo(() => {
- Ta(n[s], l);
+ Gs(() => {
+ Ba(n[s], l);
}, o);
}
-function zn(e, s, o = kt, n = !1) {
+function Qn(e, s, o = $t, n = !1) {
if (o) {
- const l = o[e] || (o[e] = []), i = s.__weh || (s.__weh = (...r) => {
- $s();
- const u = Zo(o), d = ts(s, o, e, r);
- return u(), Cs(), d;
+ const l = o[e] || (o[e] = []), r = s.__weh || (s.__weh = (...c) => {
+ Es();
+ const u = rn(o), d = os(s, o, e, c);
+ return u(), Ts(), d;
});
- return n ? l.unshift(i) : l.push(i), i;
+ return n ? l.unshift(r) : l.push(r), r;
}
}
-const Ss = (e) => (s, o = kt) => {
- (!qo || e === "sp") && zn(e, (...n) => s(...n), o);
-}, Ac = Ss("bm"), et = Ss("m"), Nc = Ss(
+const Ps = (e) => (s, o = $t) => {
+ (!on || e === "sp") && Qn(e, (...n) => s(...n), o);
+}, Zc = Ps("bm"), Qe = Ps("m"), eu = Ps(
"bu"
-), Ai = Ss("u"), Ni = Ss(
+), qi = Ps("u"), Yi = Ps(
"bum"
-), wo = Ss("um"), Uc = Ss(
+), Gs = Ps("um"), tu = Ps(
"sp"
-), zc = Ss("rtg"), Fc = Ss("rtc");
-function Bc(e, s = kt) {
- zn("ec", e, s);
+), su = Ps("rtg"), ou = Ps("rtc");
+function nu(e, s = $t) {
+ Qn("ec", e, s);
}
-const Vc = "components", Ui = Symbol.for("v-ndc");
-function Ba(e) {
- return ut(e) ? Wc(Vc, e, !1) || e : e || Ui;
+const au = "components", Ji = Symbol.for("v-ndc");
+function Za(e) {
+ return ut(e) ? lu(au, e, !1) || e : e || Ji;
}
-function Wc(e, s, o = !0, n = !1) {
- const l = yt || kt;
+function lu(e, s, o = !0, n = !1) {
+ const l = wt || $t;
if (l) {
- const i = l.type;
+ const r = l.type;
{
- const u = Ru(
- i,
+ const u = qu(
+ r,
!1
);
- if (u && (u === s || u === Wt(s) || u === Dn(Wt(s))))
- return i;
+ if (u && (u === s || u === Kt(s) || u === jn(Kt(s))))
+ return r;
}
- const r = (
+ const c = (
// local registration
// check instance[type] first which is resolved for options API
- fl(l[e] || i[e], s) || // global registration
- fl(l.appContext[e], s)
+ _l(l[e] || r[e], s) || // global registration
+ _l(l.appContext[e], s)
);
- return !r && n ? i : r;
+ return !c && n ? r : c;
}
}
-function fl(e, s) {
- return e && (e[s] || e[Wt(s)] || e[Dn(Wt(s))]);
+function _l(e, s) {
+ return e && (e[s] || e[Kt(s)] || e[jn(Kt(s))]);
}
-function pe(e, s, o, n) {
+function ve(e, s, o, n) {
let l;
- const i = o, r = Ue(e);
- if (r || ut(e)) {
- const u = r && Xs(e);
+ const r = o, c = Be(e);
+ if (c || ut(e)) {
+ const u = c && to(e);
let d = !1, m = !1;
- u && (d = !Bt(e), m = xs(e), e = An(e)), l = new Array(e.length);
- for (let v = 0, h = e.length; v < h; v++)
+ u && (d = !Gt(e), m = Rs(e), e = qn(e)), l = new Array(e.length);
+ for (let v = 0, g = e.length; v < g; v++)
l[v] = s(
- d ? m ? po(es(e[v])) : es(e[v]) : e[v],
+ d ? m ? _o(ss(e[v])) : ss(e[v]) : e[v],
v,
void 0,
- i
+ r
);
} else if (typeof e == "number") {
l = new Array(e);
for (let u = 0; u < e; u++)
- l[u] = s(u + 1, u, void 0, i);
- } else if (tt(e))
+ l[u] = s(u + 1, u, void 0, r);
+ } else if (ot(e))
if (e[Symbol.iterator])
l = Array.from(
e,
- (u, d) => s(u, d, void 0, i)
+ (u, d) => s(u, d, void 0, r)
);
else {
const u = Object.keys(e);
l = new Array(u.length);
for (let d = 0, m = u.length; d < m; d++) {
const v = u[d];
- l[d] = s(e[v], v, d, i);
+ l[d] = s(e[v], v, d, r);
}
}
else
l = [];
return l;
}
-function eo(e, s) {
+function no(e, s) {
for (let o = 0; o < s.length; o++) {
const n = s[o];
- if (Ue(n))
+ if (Be(n))
for (let l = 0; l < n.length; l++)
e[n[l].name] = n[l].fn;
else n && (e[n.name] = n.key ? (...l) => {
- const i = n.fn(...l);
- return i && (i.key = n.key), i;
+ const r = n.fn(...l);
+ return r && (r.key = n.key), r;
} : n.fn);
}
return e;
}
-function He(e, s, o = {}, n, l) {
- if (yt.ce || yt.parent && fo(yt.parent) && yt.parent.ce) {
+function Ke(e, s, o = {}, n, l) {
+ if (wt.ce || wt.parent && yo(wt.parent) && wt.parent.ce) {
const m = Object.keys(o).length > 0;
- return s !== "default" && (o.name = s), a(), R(
- j,
+ return s !== "default" && (o.name = s), a(), M(
+ H,
null,
- [C("slot", o, n && n())],
+ [x("slot", o, n && n())],
m ? -2 : 64
);
}
- let i = e[s];
- i && i._c && (i._d = !1), a();
- const r = i && zi(i(o)), u = o.key || // slot content array of a dynamic conditional slot may have a branch
+ let r = e[s];
+ r && r._c && (r._d = !1), a();
+ const c = r && Qi(r(o)), u = o.key || // slot content array of a dynamic conditional slot may have a branch
// key attached in the `createSlots` helper, respect that
- r && r.key, d = R(
- j,
+ c && c.key, d = M(
+ H,
{
- key: (u && !Zt(u) ? u : `_${s}`) + // #7256 force differentiate fallback content from actual content
- (!r && n ? "_fb" : "")
+ key: (u && !ts(u) ? u : `_${s}`) + // #7256 force differentiate fallback content from actual content
+ (!c && n ? "_fb" : "")
},
- r || (n ? n() : []),
- r && e._ === 1 ? 64 : -2
+ c || (n ? n() : []),
+ c && e._ === 1 ? 64 : -2
);
- return i && i._c && (i._d = !0), d;
+ return r && r._c && (r._d = !0), d;
}
-function zi(e) {
- return e.some((s) => Ko(s) ? !(s.type === _t || s.type === j && !zi(s.children)) : !0) ? e : null;
+function Qi(e) {
+ return e.some((s) => sn(s) ? !(s.type === bt || s.type === H && !Qi(s.children)) : !0) ? e : null;
}
-const ga = (e) => e ? nr(e) ? Vn(e) : ga(e.parent) : null, No = (
+const Ia = (e) => e ? gr(e) ? ea(e) : Ia(e.parent) : null, jo = (
// Move PURE marker to new line to workaround compiler discarding it
// due to type annotation
/* @__PURE__ */ pt(/* @__PURE__ */ Object.create(null), {
@@ -1967,24 +1967,24 @@ const ga = (e) => e ? nr(e) ? Vn(e) : ga(e.parent) : null, No = (
$attrs: (e) => e.attrs,
$slots: (e) => e.slots,
$refs: (e) => e.refs,
- $parent: (e) => ga(e.parent),
- $root: (e) => ga(e.root),
+ $parent: (e) => Ia(e.parent),
+ $root: (e) => Ia(e.root),
$host: (e) => e.ce,
$emit: (e) => e.emit,
- $options: (e) => Bi(e),
+ $options: (e) => Zi(e),
$forceUpdate: (e) => e.f || (e.f = () => {
- za(e.update);
+ Qa(e.update);
}),
- $nextTick: (e) => e.n || (e.n = Qo.bind(e.proxy)),
- $watch: (e) => tu.bind(e)
+ $nextTick: (e) => e.n || (e.n = gt.bind(e.proxy)),
+ $watch: (e) => yu.bind(e)
})
-), Qn = (e, s) => e !== st && !e.__isScriptSetup && Ze(e, s), Gc = {
+), ua = (e, s) => e !== nt && !e.__isScriptSetup && et(e, s), iu = {
get({ _: e }, s) {
if (s === "__v_skip")
return !0;
- const { ctx: o, setupState: n, data: l, props: i, accessCache: r, type: u, appContext: d } = e;
+ const { ctx: o, setupState: n, data: l, props: r, accessCache: c, type: u, appContext: d } = e;
if (s[0] !== "$") {
- const w = r[s];
+ const w = c[s];
if (w !== void 0)
switch (w) {
case 1:
@@ -1994,248 +1994,248 @@ const ga = (e) => e ? nr(e) ? Vn(e) : ga(e.parent) : null, No = (
case 4:
return o[s];
case 3:
- return i[s];
+ return r[s];
}
else {
- if (Qn(n, s))
- return r[s] = 1, n[s];
- if (l !== st && Ze(l, s))
- return r[s] = 2, l[s];
- if (Ze(i, s))
- return r[s] = 3, i[s];
- if (o !== st && Ze(o, s))
- return r[s] = 4, o[s];
- ha && (r[s] = 0);
+ if (ua(n, s))
+ return c[s] = 1, n[s];
+ if (l !== nt && et(l, s))
+ return c[s] = 2, l[s];
+ if (et(r, s))
+ return c[s] = 3, r[s];
+ if (o !== nt && et(o, s))
+ return c[s] = 4, o[s];
+ Ea && (c[s] = 0);
}
}
- const m = No[s];
- let v, h;
+ const m = jo[s];
+ let v, g;
if (m)
- return s === "$attrs" && bt(e.attrs, "get", ""), m(e);
+ return s === "$attrs" && _t(e.attrs, "get", ""), m(e);
if (
// css module (injected by vue-loader)
(v = u.__cssModules) && (v = v[s])
)
return v;
- if (o !== st && Ze(o, s))
- return r[s] = 4, o[s];
+ if (o !== nt && et(o, s))
+ return c[s] = 4, o[s];
if (
// global properties
- h = d.config.globalProperties, Ze(h, s)
+ g = d.config.globalProperties, et(g, s)
)
- return h[s];
+ return g[s];
},
set({ _: e }, s, o) {
- const { data: n, setupState: l, ctx: i } = e;
- return Qn(l, s) ? (l[s] = o, !0) : n !== st && Ze(n, s) ? (n[s] = o, !0) : Ze(e.props, s) || s[0] === "$" && s.slice(1) in e ? !1 : (i[s] = o, !0);
+ const { data: n, setupState: l, ctx: r } = e;
+ return ua(l, s) ? (l[s] = o, !0) : n !== nt && et(n, s) ? (n[s] = o, !0) : et(e.props, s) || s[0] === "$" && s.slice(1) in e ? !1 : (r[s] = o, !0);
},
has({
- _: { data: e, setupState: s, accessCache: o, ctx: n, appContext: l, props: i, type: r }
+ _: { data: e, setupState: s, accessCache: o, ctx: n, appContext: l, props: r, type: c }
}, u) {
let d;
- return !!(o[u] || e !== st && u[0] !== "$" && Ze(e, u) || Qn(s, u) || Ze(i, u) || Ze(n, u) || Ze(No, u) || Ze(l.config.globalProperties, u) || (d = r.__cssModules) && d[u]);
+ return !!(o[u] || e !== nt && u[0] !== "$" && et(e, u) || ua(s, u) || et(r, u) || et(n, u) || et(jo, u) || et(l.config.globalProperties, u) || (d = c.__cssModules) && d[u]);
},
defineProperty(e, s, o) {
- return o.get != null ? e._.accessCache[s] = 0 : Ze(o, "value") && this.set(e, s, o.value, null), Reflect.defineProperty(e, s, o);
+ return o.get != null ? e._.accessCache[s] = 0 : et(o, "value") && this.set(e, s, o.value, null), Reflect.defineProperty(e, s, o);
}
};
-function ml(e) {
- return Ue(e) ? e.reduce(
+function bl(e) {
+ return Be(e) ? e.reduce(
(s, o) => (s[o] = null, s),
{}
) : e;
}
-let ha = !0;
-function jc(e) {
- const s = Bi(e), o = e.proxy, n = e.ctx;
- ha = !1, s.beforeCreate && vl(s.beforeCreate, e, "bc");
+let Ea = !0;
+function ru(e) {
+ const s = Zi(e), o = e.proxy, n = e.ctx;
+ Ea = !1, s.beforeCreate && $l(s.beforeCreate, e, "bc");
const {
// state
data: l,
- computed: i,
- methods: r,
+ computed: r,
+ methods: c,
watch: u,
provide: d,
inject: m,
// lifecycle
created: v,
- beforeMount: h,
+ beforeMount: g,
mounted: w,
beforeUpdate: p,
- updated: _,
- activated: S,
- deactivated: $,
- beforeDestroy: P,
- beforeUnmount: O,
- destroyed: T,
- unmounted: x,
- render: q,
+ updated: k,
+ activated: C,
+ deactivated: b,
+ beforeDestroy: T,
+ beforeUnmount: D,
+ destroyed: P,
+ unmounted: E,
+ render: U,
renderTracked: B,
- renderTriggered: A,
- errorCaptured: I,
- serverPrefetch: E,
+ renderTriggered: V,
+ errorCaptured: S,
+ serverPrefetch: I,
// public API
expose: L,
- inheritAttrs: re,
+ inheritAttrs: Z,
// assets
- components: Y,
- directives: H,
- filters: te
+ components: W,
+ directives: A,
+ filters: j
} = s;
- if (m && Hc(m, n, null), r)
- for (const U in r) {
- const M = r[U];
- Be(M) && (n[U] = M.bind(o));
+ if (m && cu(m, n, null), c)
+ for (const ae in c) {
+ const ee = c[ae];
+ Ge(ee) && (n[ae] = ee.bind(o));
}
if (l) {
- const U = l.call(o, o);
- tt(U) && (e.data = Fs(U));
- }
- if (ha = !0, i)
- for (const U in i) {
- const M = i[U], we = Be(M) ? M.bind(o, o) : Be(M.get) ? M.get.bind(o, o) : ms, ve = !Be(M) && Be(M.set) ? M.set.bind(o) : ms, Ie = F({
- get: we,
- set: ve
+ const ae = l.call(o, o);
+ ot(ae) && (e.data = Ws(ae));
+ }
+ if (Ea = !0, r)
+ for (const ae in r) {
+ const ee = r[ae], ke = Ge(ee) ? ee.bind(o, o) : Ge(ee.get) ? ee.get.bind(o, o) : gs, be = !Ge(ee) && Ge(ee.set) ? ee.set.bind(o) : gs, Le = N({
+ get: ke,
+ set: be
});
- Object.defineProperty(n, U, {
+ Object.defineProperty(n, ae, {
enumerable: !0,
configurable: !0,
- get: () => Ie.value,
- set: (Re) => Ie.value = Re
+ get: () => Le.value,
+ set: (ze) => Le.value = ze
});
}
if (u)
- for (const U in u)
- Fi(u[U], n, o, U);
+ for (const ae in u)
+ Xi(u[ae], n, o, ae);
if (d) {
- const U = Be(d) ? d.call(o) : d;
- Reflect.ownKeys(U).forEach((M) => {
- Qc(M, U[M]);
+ const ae = Ge(d) ? d.call(o) : d;
+ Reflect.ownKeys(ae).forEach((ee) => {
+ pu(ee, ae[ee]);
});
}
- v && vl(v, e, "c");
- function N(U, M) {
- Ue(M) ? M.forEach((we) => U(we.bind(o))) : M && U(M.bind(o));
+ v && $l(v, e, "c");
+ function z(ae, ee) {
+ Be(ee) ? ee.forEach((ke) => ae(ke.bind(o))) : ee && ae(ee.bind(o));
}
- if (N(Ac, h), N(et, w), N(Nc, p), N(Ai, _), N(Dc, S), N(Lc, $), N(Bc, I), N(Fc, B), N(zc, A), N(Ni, O), N(wo, x), N(Uc, E), Ue(L))
+ if (z(Zc, g), z(Qe, w), z(eu, p), z(qi, k), z(Jc, C), z(Qc, b), z(nu, S), z(ou, B), z(su, V), z(Yi, D), z(Gs, E), z(tu, I), Be(L))
if (L.length) {
- const U = e.exposed || (e.exposed = {});
- L.forEach((M) => {
- Object.defineProperty(U, M, {
- get: () => o[M],
- set: (we) => o[M] = we,
+ const ae = e.exposed || (e.exposed = {});
+ L.forEach((ee) => {
+ Object.defineProperty(ae, ee, {
+ get: () => o[ee],
+ set: (ke) => o[ee] = ke,
enumerable: !0
});
});
} else e.exposed || (e.exposed = {});
- q && e.render === ms && (e.render = q), re != null && (e.inheritAttrs = re), Y && (e.components = Y), H && (e.directives = H), E && Li(e);
+ U && e.render === gs && (e.render = U), Z != null && (e.inheritAttrs = Z), W && (e.components = W), A && (e.directives = A), I && Hi(e);
}
-function Hc(e, s, o = ms) {
- Ue(e) && (e = ya(e));
+function cu(e, s, o = gs) {
+ Be(e) && (e = Ta(e));
for (const n in e) {
const l = e[n];
- let i;
- tt(l) ? "default" in l ? i = vn(
+ let r;
+ ot(l) ? "default" in l ? r = In(
l.from || n,
l.default,
!0
- ) : i = vn(l.from || n) : i = vn(l), $t(i) ? Object.defineProperty(s, n, {
+ ) : r = In(l.from || n) : r = In(l), Ct(r) ? Object.defineProperty(s, n, {
enumerable: !0,
configurable: !0,
- get: () => i.value,
- set: (r) => i.value = r
- }) : s[n] = i;
+ get: () => r.value,
+ set: (c) => r.value = c
+ }) : s[n] = r;
}
}
-function vl(e, s, o) {
- ts(
- Ue(e) ? e.map((n) => n.bind(s.proxy)) : e.bind(s.proxy),
+function $l(e, s, o) {
+ os(
+ Be(e) ? e.map((n) => n.bind(s.proxy)) : e.bind(s.proxy),
s,
o
);
}
-function Fi(e, s, o, n) {
- let l = n.includes(".") ? Gi(o, n) : () => o[n];
+function Xi(e, s, o, n) {
+ let l = n.includes(".") ? sr(o, n) : () => o[n];
if (ut(e)) {
- const i = s[e];
- Be(i) && Ct(l, i);
- } else if (Be(e))
- Ct(l, e.bind(o));
- else if (tt(e))
- if (Ue(e))
- e.forEach((i) => Fi(i, s, o, n));
+ const r = s[e];
+ Ge(r) && dt(l, r);
+ } else if (Ge(e))
+ dt(l, e.bind(o));
+ else if (ot(e))
+ if (Be(e))
+ e.forEach((r) => Xi(r, s, o, n));
else {
- const i = Be(e.handler) ? e.handler.bind(o) : s[e.handler];
- Be(i) && Ct(l, i, e);
+ const r = Ge(e.handler) ? e.handler.bind(o) : s[e.handler];
+ Ge(r) && dt(l, r, e);
}
}
-function Bi(e) {
+function Zi(e) {
const s = e.type, { mixins: o, extends: n } = s, {
mixins: l,
- optionsCache: i,
- config: { optionMergeStrategies: r }
- } = e.appContext, u = i.get(s);
+ optionsCache: r,
+ config: { optionMergeStrategies: c }
+ } = e.appContext, u = r.get(s);
let d;
return u ? d = u : !l.length && !o && !n ? d = s : (d = {}, l.length && l.forEach(
- (m) => Cn(d, m, r, !0)
- ), Cn(d, s, r)), tt(s) && i.set(s, d), d;
+ (m) => Nn(d, m, c, !0)
+ ), Nn(d, s, c)), ot(s) && r.set(s, d), d;
}
-function Cn(e, s, o, n = !1) {
- const { mixins: l, extends: i } = s;
- i && Cn(e, i, o, !0), l && l.forEach(
- (r) => Cn(e, r, o, !0)
+function Nn(e, s, o, n = !1) {
+ const { mixins: l, extends: r } = s;
+ r && Nn(e, r, o, !0), l && l.forEach(
+ (c) => Nn(e, c, o, !0)
);
- for (const r in s)
- if (!(n && r === "expose")) {
- const u = Kc[r] || o && o[r];
- e[r] = u ? u(e[r], s[r]) : s[r];
+ for (const c in s)
+ if (!(n && c === "expose")) {
+ const u = uu[c] || o && o[c];
+ e[c] = u ? u(e[c], s[c]) : s[c];
}
return e;
}
-const Kc = {
- data: pl,
- props: gl,
- emits: gl,
+const uu = {
+ data: Cl,
+ props: xl,
+ emits: xl,
// objects
- methods: Ro,
- computed: Ro,
+ methods: zo,
+ computed: zo,
// lifecycle
- beforeCreate: xt,
- created: xt,
- beforeMount: xt,
- mounted: xt,
- beforeUpdate: xt,
- updated: xt,
- beforeDestroy: xt,
- beforeUnmount: xt,
- destroyed: xt,
- unmounted: xt,
- activated: xt,
- deactivated: xt,
- errorCaptured: xt,
- serverPrefetch: xt,
+ beforeCreate: It,
+ created: It,
+ beforeMount: It,
+ mounted: It,
+ beforeUpdate: It,
+ updated: It,
+ beforeDestroy: It,
+ beforeUnmount: It,
+ destroyed: It,
+ unmounted: It,
+ activated: It,
+ deactivated: It,
+ errorCaptured: It,
+ serverPrefetch: It,
// assets
- components: Ro,
- directives: Ro,
+ components: zo,
+ directives: zo,
// watch
- watch: Yc,
+ watch: fu,
// provide / inject
- provide: pl,
- inject: qc
+ provide: Cl,
+ inject: du
};
-function pl(e, s) {
+function Cl(e, s) {
return s ? e ? function() {
return pt(
- Be(e) ? e.call(this, this) : e,
- Be(s) ? s.call(this, this) : s
+ Ge(e) ? e.call(this, this) : e,
+ Ge(s) ? s.call(this, this) : s
);
} : s : e;
}
-function qc(e, s) {
- return Ro(ya(e), ya(s));
+function du(e, s) {
+ return zo(Ta(e), Ta(s));
}
-function ya(e) {
- if (Ue(e)) {
+function Ta(e) {
+ if (Be(e)) {
const s = {};
for (let o = 0; o < e.length; o++)
s[e[o]] = e[o];
@@ -2243,32 +2243,32 @@ function ya(e) {
}
return e;
}
-function xt(e, s) {
+function It(e, s) {
return e ? [...new Set([].concat(e, s))] : s;
}
-function Ro(e, s) {
+function zo(e, s) {
return e ? pt(/* @__PURE__ */ Object.create(null), e, s) : s;
}
-function gl(e, s) {
- return e ? Ue(e) && Ue(s) ? [.../* @__PURE__ */ new Set([...e, ...s])] : pt(
+function xl(e, s) {
+ return e ? Be(e) && Be(s) ? [.../* @__PURE__ */ new Set([...e, ...s])] : pt(
/* @__PURE__ */ Object.create(null),
- ml(e),
- ml(s ?? {})
+ bl(e),
+ bl(s ?? {})
) : s;
}
-function Yc(e, s) {
+function fu(e, s) {
if (!e) return s;
if (!s) return e;
const o = pt(/* @__PURE__ */ Object.create(null), e);
for (const n in s)
- o[n] = xt(e[n], s[n]);
+ o[n] = It(e[n], s[n]);
return o;
}
-function Vi() {
+function er() {
return {
app: null,
config: {
- isNativeTag: Xl,
+ isNativeTag: ci,
performance: !1,
globalProperties: {},
optionMergeStrategies: {},
@@ -2285,125 +2285,125 @@ function Vi() {
emitsCache: /* @__PURE__ */ new WeakMap()
};
}
-let Jc = 0;
-function Xc(e, s) {
+let mu = 0;
+function vu(e, s) {
return function(n, l = null) {
- Be(n) || (n = pt({}, n)), l != null && !tt(l) && (l = null);
- const i = Vi(), r = /* @__PURE__ */ new WeakSet(), u = [];
+ Ge(n) || (n = pt({}, n)), l != null && !ot(l) && (l = null);
+ const r = er(), c = /* @__PURE__ */ new WeakSet(), u = [];
let d = !1;
- const m = i.app = {
- _uid: Jc++,
+ const m = r.app = {
+ _uid: mu++,
_component: n,
_props: l,
_container: null,
- _context: i,
+ _context: r,
_instance: null,
- version: Du,
+ version: Ju,
get config() {
- return i.config;
+ return r.config;
},
set config(v) {
},
- use(v, ...h) {
- return r.has(v) || (v && Be(v.install) ? (r.add(v), v.install(m, ...h)) : Be(v) && (r.add(v), v(m, ...h))), m;
+ use(v, ...g) {
+ return c.has(v) || (v && Ge(v.install) ? (c.add(v), v.install(m, ...g)) : Ge(v) && (c.add(v), v(m, ...g))), m;
},
mixin(v) {
- return i.mixins.includes(v) || i.mixins.push(v), m;
+ return r.mixins.includes(v) || r.mixins.push(v), m;
},
- component(v, h) {
- return h ? (i.components[v] = h, m) : i.components[v];
+ component(v, g) {
+ return g ? (r.components[v] = g, m) : r.components[v];
},
- directive(v, h) {
- return h ? (i.directives[v] = h, m) : i.directives[v];
+ directive(v, g) {
+ return g ? (r.directives[v] = g, m) : r.directives[v];
},
- mount(v, h, w) {
+ mount(v, g, w) {
if (!d) {
- const p = m._ceVNode || C(n, l);
- return p.appContext = i, w === !0 ? w = "svg" : w === !1 && (w = void 0), e(p, v, w), d = !0, m._container = v, v.__vue_app__ = m, Vn(p.component);
+ const p = m._ceVNode || x(n, l);
+ return p.appContext = r, w === !0 ? w = "svg" : w === !1 && (w = void 0), e(p, v, w), d = !0, m._container = v, v.__vue_app__ = m, ea(p.component);
}
},
onUnmount(v) {
u.push(v);
},
unmount() {
- d && (ts(
+ d && (os(
u,
m._instance,
16
), e(null, m._container), delete m._container.__vue_app__);
},
- provide(v, h) {
- return i.provides[v] = h, m;
+ provide(v, g) {
+ return r.provides[v] = g, m;
},
runWithContext(v) {
- const h = mo;
- mo = m;
+ const g = wo;
+ wo = m;
try {
return v();
} finally {
- mo = h;
+ wo = g;
}
}
};
return m;
};
}
-let mo = null;
-function Qc(e, s) {
- if (kt) {
- let o = kt.provides;
- const n = kt.parent && kt.parent.provides;
- n === o && (o = kt.provides = Object.create(n)), o[e] = s;
+let wo = null;
+function pu(e, s) {
+ if ($t) {
+ let o = $t.provides;
+ const n = $t.parent && $t.parent.provides;
+ n === o && (o = $t.provides = Object.create(n)), o[e] = s;
}
}
-function vn(e, s, o = !1) {
- const n = Ha();
- if (n || mo) {
- let l = mo ? mo._context.provides : n ? n.parent == null || n.ce ? n.vnode.appContext && n.vnode.appContext.provides : n.parent.provides : void 0;
+function In(e, s, o = !1) {
+ const n = nl();
+ if (n || wo) {
+ let l = wo ? wo._context.provides : n ? n.parent == null || n.ce ? n.vnode.appContext && n.vnode.appContext.provides : n.parent.provides : void 0;
if (l && e in l)
return l[e];
if (arguments.length > 1)
- return o && Be(s) ? s.call(n && n.proxy) : s;
+ return o && Ge(s) ? s.call(n && n.proxy) : s;
}
}
-const Zc = Symbol.for("v-scx"), eu = () => vn(Zc);
-function Ct(e, s, o) {
- return Wi(e, s, o);
+const gu = Symbol.for("v-scx"), hu = () => In(gu);
+function dt(e, s, o) {
+ return tr(e, s, o);
}
-function Wi(e, s, o = st) {
- const { immediate: n, deep: l, flush: i, once: r } = o, u = pt({}, o), d = s && n || !s && i !== "post";
+function tr(e, s, o = nt) {
+ const { immediate: n, deep: l, flush: r, once: c } = o, u = pt({}, o), d = s && n || !s && r !== "post";
let m;
- if (qo) {
- if (i === "sync") {
- const p = eu();
+ if (on) {
+ if (r === "sync") {
+ const p = hu();
m = p.__watcherHandles || (p.__watcherHandles = []);
} else if (!d) {
const p = () => {
};
- return p.stop = ms, p.resume = ms, p.pause = ms, p;
+ return p.stop = gs, p.resume = gs, p.pause = gs, p;
}
}
- const v = kt;
- u.call = (p, _, S) => ts(p, v, _, S);
- let h = !1;
- i === "post" ? u.scheduler = (p) => {
- St(p, v && v.suspense);
- } : i !== "sync" && (h = !0, u.scheduler = (p, _) => {
- _ ? p() : za(p);
+ const v = $t;
+ u.call = (p, k, C) => os(p, v, k, C);
+ let g = !1;
+ r === "post" ? u.scheduler = (p) => {
+ Et(p, v && v.suspense);
+ } : r !== "sync" && (g = !0, u.scheduler = (p, k) => {
+ k ? p() : Qa(p);
}), u.augmentJob = (p) => {
- s && (p.flags |= 4), h && (p.flags |= 2, v && (p.id = v.uid, p.i = v));
+ s && (p.flags |= 4), g && (p.flags |= 2, v && (p.id = v.uid, p.i = v));
};
- const w = Sc(e, s, u);
- return qo && (m ? m.push(w) : d && w()), w;
+ const w = Wc(e, s, u);
+ return on && (m ? m.push(w) : d && w()), w;
}
-function tu(e, s, o) {
- const n = this.proxy, l = ut(e) ? e.includes(".") ? Gi(n, e) : () => n[e] : e.bind(n, n);
- let i;
- Be(s) ? i = s : (i = s.handler, o = s);
- const r = Zo(this), u = Wi(l, i.bind(n), o);
- return r(), u;
+function yu(e, s, o) {
+ const n = this.proxy, l = ut(e) ? e.includes(".") ? sr(n, e) : () => n[e] : e.bind(n, n);
+ let r;
+ Ge(s) ? r = s : (r = s.handler, o = s);
+ const c = rn(this), u = tr(l, r.bind(n), o);
+ return c(), u;
}
-function Gi(e, s) {
+function sr(e, s) {
const o = s.split(".");
return () => {
let n = e;
@@ -2412,16 +2412,16 @@ function Gi(e, s) {
return n;
};
}
-const su = (e, s) => s === "modelValue" || s === "model-value" ? e.modelModifiers : e[`${s}Modifiers`] || e[`${Wt(s)}Modifiers`] || e[`${zs(s)}Modifiers`];
-function ou(e, s, ...o) {
+const wu = (e, s) => s === "modelValue" || s === "model-value" ? e.modelModifiers : e[`${s}Modifiers`] || e[`${Kt(s)}Modifiers`] || e[`${Vs(s)}Modifiers`];
+function ku(e, s, ...o) {
if (e.isUnmounted) return;
- const n = e.vnode.props || st;
+ const n = e.vnode.props || nt;
let l = o;
- const i = s.startsWith("update:"), r = i && su(n, s.slice(7));
- r && (r.trim && (l = o.map((v) => ut(v) ? v.trim() : v)), r.number && (l = o.map(Ln)));
- let u, d = n[u = Hn(s)] || // also try camelCase event handler (#2249)
- n[u = Hn(Wt(s))];
- !d && i && (d = n[u = Hn(zs(s))]), d && ts(
+ const r = s.startsWith("update:"), c = r && wu(n, s.slice(7));
+ c && (c.trim && (l = o.map((v) => ut(v) ? v.trim() : v)), c.number && (l = o.map(Hn)));
+ let u, d = n[u = na(s)] || // also try camelCase event handler (#2249)
+ n[u = na(Kt(s))];
+ !d && r && (d = n[u = na(Vs(s))]), d && os(
d,
e,
6,
@@ -2433,7 +2433,7 @@ function ou(e, s, ...o) {
e.emitted = {};
else if (e.emitted[u])
return;
- e.emitted[u] = !0, ts(
+ e.emitted[u] = !0, os(
m,
e,
6,
@@ -2441,127 +2441,127 @@ function ou(e, s, ...o) {
);
}
}
-const nu = /* @__PURE__ */ new WeakMap();
-function ji(e, s, o = !1) {
- const n = o ? nu : s.emitsCache, l = n.get(e);
+const _u = /* @__PURE__ */ new WeakMap();
+function or(e, s, o = !1) {
+ const n = o ? _u : s.emitsCache, l = n.get(e);
if (l !== void 0)
return l;
- const i = e.emits;
- let r = {}, u = !1;
- if (!Be(e)) {
+ const r = e.emits;
+ let c = {}, u = !1;
+ if (!Ge(e)) {
const d = (m) => {
- const v = ji(m, s, !0);
- v && (u = !0, pt(r, v));
+ const v = or(m, s, !0);
+ v && (u = !0, pt(c, v));
};
!o && s.mixins.length && s.mixins.forEach(d), e.extends && d(e.extends), e.mixins && e.mixins.forEach(d);
}
- return !i && !u ? (tt(e) && n.set(e, null), null) : (Ue(i) ? i.forEach((d) => r[d] = null) : pt(r, i), tt(e) && n.set(e, r), r);
+ return !r && !u ? (ot(e) && n.set(e, null), null) : (Be(r) ? r.forEach((d) => c[d] = null) : pt(c, r), ot(e) && n.set(e, c), c);
}
-function Fn(e, s) {
- return !e || !Rn(s) ? !1 : (s = s.slice(2).replace(/Once$/, ""), Ze(e, s[0].toLowerCase() + s.slice(1)) || Ze(e, zs(s)) || Ze(e, s));
+function Xn(e, s) {
+ return !e || !Wn(s) ? !1 : (s = s.slice(2).replace(/Once$/, ""), et(e, s[0].toLowerCase() + s.slice(1)) || et(e, Vs(s)) || et(e, s));
}
-function hl(e) {
+function Sl(e) {
const {
type: s,
vnode: o,
proxy: n,
withProxy: l,
- propsOptions: [i],
- slots: r,
+ propsOptions: [r],
+ slots: c,
attrs: u,
emit: d,
render: m,
renderCache: v,
- props: h,
+ props: g,
data: w,
setupState: p,
- ctx: _,
- inheritAttrs: S
- } = e, $ = kn(e);
- let P, O;
+ ctx: k,
+ inheritAttrs: C
+ } = e, b = An(e);
+ let T, D;
try {
if (o.shapeFlag & 4) {
- const x = l || n, q = x;
- P = fs(
+ const E = l || n, U = E;
+ T = ps(
m.call(
- q,
- x,
+ U,
+ E,
v,
- h,
+ g,
p,
w,
- _
+ k
)
- ), O = u;
+ ), D = u;
} else {
- const x = s;
- P = fs(
- x.length > 1 ? x(
- h,
- { attrs: u, slots: r, emit: d }
- ) : x(
- h,
+ const E = s;
+ T = ps(
+ E.length > 1 ? E(
+ g,
+ { attrs: u, slots: c, emit: d }
+ ) : E(
+ g,
null
)
- ), O = s.props ? u : au(u);
+ ), D = s.props ? u : bu(u);
}
- } catch (x) {
- Uo.length = 0, Nn(x, e, 1), P = C(_t);
+ } catch (E) {
+ Ho.length = 0, Yn(E, e, 1), T = x(bt);
}
- let T = P;
- if (O && S !== !1) {
- const x = Object.keys(O), { shapeFlag: q } = T;
- x.length && q & 7 && (i && x.some(Ea) && (O = lu(
- O,
- i
- )), T = Ns(T, O, !1, !0));
+ let P = T;
+ if (D && C !== !1) {
+ const E = Object.keys(D), { shapeFlag: U } = P;
+ E.length && U & 7 && (r && E.some(Fa) && (D = $u(
+ D,
+ r
+ )), P = Fs(P, D, !1, !0));
}
- return o.dirs && (T = Ns(T, null, !1, !0), T.dirs = T.dirs ? T.dirs.concat(o.dirs) : o.dirs), o.transition && Zs(T, o.transition), P = T, kn($), P;
+ return o.dirs && (P = Fs(P, null, !1, !0), P.dirs = P.dirs ? P.dirs.concat(o.dirs) : o.dirs), o.transition && oo(P, o.transition), T = P, An(b), T;
}
-const au = (e) => {
+const bu = (e) => {
let s;
for (const o in e)
- (o === "class" || o === "style" || Rn(o)) && ((s || (s = {}))[o] = e[o]);
+ (o === "class" || o === "style" || Wn(o)) && ((s || (s = {}))[o] = e[o]);
return s;
-}, lu = (e, s) => {
+}, $u = (e, s) => {
const o = {};
for (const n in e)
- (!Ea(n) || !(n.slice(9) in s)) && (o[n] = e[n]);
+ (!Fa(n) || !(n.slice(9) in s)) && (o[n] = e[n]);
return o;
};
-function iu(e, s, o) {
- const { props: n, children: l, component: i } = e, { props: r, children: u, patchFlag: d } = s, m = i.emitsOptions;
+function Cu(e, s, o) {
+ const { props: n, children: l, component: r } = e, { props: c, children: u, patchFlag: d } = s, m = r.emitsOptions;
if (s.dirs || s.transition)
return !0;
if (o && d >= 0) {
if (d & 1024)
return !0;
if (d & 16)
- return n ? yl(n, r, m) : !!r;
+ return n ? Il(n, c, m) : !!c;
if (d & 8) {
const v = s.dynamicProps;
- for (let h = 0; h < v.length; h++) {
- const w = v[h];
- if (r[w] !== n[w] && !Fn(m, w))
+ for (let g = 0; g < v.length; g++) {
+ const w = v[g];
+ if (c[w] !== n[w] && !Xn(m, w))
return !0;
}
}
} else
- return (l || u) && (!u || !u.$stable) ? !0 : n === r ? !1 : n ? r ? yl(n, r, m) : !0 : !!r;
+ return (l || u) && (!u || !u.$stable) ? !0 : n === c ? !1 : n ? c ? Il(n, c, m) : !0 : !!c;
return !1;
}
-function yl(e, s, o) {
+function Il(e, s, o) {
const n = Object.keys(s);
if (n.length !== Object.keys(e).length)
return !0;
for (let l = 0; l < n.length; l++) {
- const i = n[l];
- if (s[i] !== e[i] && !Fn(o, i))
+ const r = n[l];
+ if (s[r] !== e[r] && !Xn(o, r))
return !0;
}
return !1;
}
-function ru({ vnode: e, parent: s }, o) {
+function xu({ vnode: e, parent: s }, o) {
for (; s; ) {
const n = s.subTree;
if (n.suspense && n.suspense.activeBranch === e && (n.el = e.el), n === e)
@@ -2570,114 +2570,114 @@ function ru({ vnode: e, parent: s }, o) {
break;
}
}
-const Hi = {}, Ki = () => Object.create(Hi), qi = (e) => Object.getPrototypeOf(e) === Hi;
-function cu(e, s, o, n = !1) {
- const l = {}, i = Ki();
- e.propsDefaults = /* @__PURE__ */ Object.create(null), Yi(e, s, l, i);
- for (const r in e.propsOptions[0])
- r in l || (l[r] = void 0);
- o ? e.props = n ? l : yc(l) : e.type.props ? e.props = l : e.props = i, e.attrs = i;
+const nr = {}, ar = () => Object.create(nr), lr = (e) => Object.getPrototypeOf(e) === nr;
+function Su(e, s, o, n = !1) {
+ const l = {}, r = ar();
+ e.propsDefaults = /* @__PURE__ */ Object.create(null), ir(e, s, l, r);
+ for (const c in e.propsOptions[0])
+ c in l || (l[c] = void 0);
+ o ? e.props = n ? l : Ac(l) : e.type.props ? e.props = l : e.props = r, e.attrs = r;
}
-function uu(e, s, o, n) {
+function Iu(e, s, o, n) {
const {
props: l,
- attrs: i,
- vnode: { patchFlag: r }
- } = e, u = Je(l), [d] = e.propsOptions;
+ attrs: r,
+ vnode: { patchFlag: c }
+ } = e, u = Xe(l), [d] = e.propsOptions;
let m = !1;
if (
// always force full diff in dev
// - #1942 if hmr is enabled with sfc component
// - vite#872 non-sfc component used by sfc component
- (n || r > 0) && !(r & 16)
+ (n || c > 0) && !(c & 16)
) {
- if (r & 8) {
+ if (c & 8) {
const v = e.vnode.dynamicProps;
- for (let h = 0; h < v.length; h++) {
- let w = v[h];
- if (Fn(e.emitsOptions, w))
+ for (let g = 0; g < v.length; g++) {
+ let w = v[g];
+ if (Xn(e.emitsOptions, w))
continue;
const p = s[w];
if (d)
- if (Ze(i, w))
- p !== i[w] && (i[w] = p, m = !0);
+ if (et(r, w))
+ p !== r[w] && (r[w] = p, m = !0);
else {
- const _ = Wt(w);
- l[_] = wa(
+ const k = Kt(w);
+ l[k] = Ra(
d,
u,
- _,
+ k,
p,
e,
!1
);
}
else
- p !== i[w] && (i[w] = p, m = !0);
+ p !== r[w] && (r[w] = p, m = !0);
}
}
} else {
- Yi(e, s, l, i) && (m = !0);
+ ir(e, s, l, r) && (m = !0);
let v;
- for (const h in u)
+ for (const g in u)
(!s || // for camelCase
- !Ze(s, h) && // it's possible the original props was passed in as kebab-case
+ !et(s, g) && // it's possible the original props was passed in as kebab-case
// and converted to camelCase (#955)
- ((v = zs(h)) === h || !Ze(s, v))) && (d ? o && // for camelCase
- (o[h] !== void 0 || // for kebab-case
- o[v] !== void 0) && (l[h] = wa(
+ ((v = Vs(g)) === g || !et(s, v))) && (d ? o && // for camelCase
+ (o[g] !== void 0 || // for kebab-case
+ o[v] !== void 0) && (l[g] = Ra(
d,
u,
- h,
+ g,
void 0,
e,
!0
- )) : delete l[h]);
- if (i !== u)
- for (const h in i)
- (!s || !Ze(s, h)) && (delete i[h], m = !0);
+ )) : delete l[g]);
+ if (r !== u)
+ for (const g in r)
+ (!s || !et(s, g)) && (delete r[g], m = !0);
}
- m && bs(e.attrs, "set", "");
+ m && xs(e.attrs, "set", "");
}
-function Yi(e, s, o, n) {
- const [l, i] = e.propsOptions;
- let r = !1, u;
+function ir(e, s, o, n) {
+ const [l, r] = e.propsOptions;
+ let c = !1, u;
if (s)
for (let d in s) {
- if (Mo(d))
+ if (Fo(d))
continue;
const m = s[d];
let v;
- l && Ze(l, v = Wt(d)) ? !i || !i.includes(v) ? o[v] = m : (u || (u = {}))[v] = m : Fn(e.emitsOptions, d) || (!(d in n) || m !== n[d]) && (n[d] = m, r = !0);
+ l && et(l, v = Kt(d)) ? !r || !r.includes(v) ? o[v] = m : (u || (u = {}))[v] = m : Xn(e.emitsOptions, d) || (!(d in n) || m !== n[d]) && (n[d] = m, c = !0);
}
- if (i) {
- const d = Je(o), m = u || st;
- for (let v = 0; v < i.length; v++) {
- const h = i[v];
- o[h] = wa(
+ if (r) {
+ const d = Xe(o), m = u || nt;
+ for (let v = 0; v < r.length; v++) {
+ const g = r[v];
+ o[g] = Ra(
l,
d,
- h,
- m[h],
+ g,
+ m[g],
e,
- !Ze(m, h)
+ !et(m, g)
);
}
}
- return r;
+ return c;
}
-function wa(e, s, o, n, l, i) {
- const r = e[o];
- if (r != null) {
- const u = Ze(r, "default");
+function Ra(e, s, o, n, l, r) {
+ const c = e[o];
+ if (c != null) {
+ const u = et(c, "default");
if (u && n === void 0) {
- const d = r.default;
- if (r.type !== Function && !r.skipFactory && Be(d)) {
+ const d = c.default;
+ if (c.type !== Function && !c.skipFactory && Ge(d)) {
const { propsDefaults: m } = l;
if (o in m)
n = m[o];
else {
- const v = Zo(l);
+ const v = rn(l);
n = m[o] = d.call(
null,
s
@@ -2687,944 +2687,944 @@ function wa(e, s, o, n, l, i) {
n = d;
l.ce && l.ce._setProp(o, n);
}
- r[
+ c[
0
/* shouldCast */
- ] && (i && !u ? n = !1 : r[
+ ] && (r && !u ? n = !1 : c[
1
/* shouldCastTrue */
- ] && (n === "" || n === zs(o)) && (n = !0));
+ ] && (n === "" || n === Vs(o)) && (n = !0));
}
return n;
}
-const du = /* @__PURE__ */ new WeakMap();
-function Ji(e, s, o = !1) {
- const n = o ? du : s.propsCache, l = n.get(e);
+const Eu = /* @__PURE__ */ new WeakMap();
+function rr(e, s, o = !1) {
+ const n = o ? Eu : s.propsCache, l = n.get(e);
if (l)
return l;
- const i = e.props, r = {}, u = [];
+ const r = e.props, c = {}, u = [];
let d = !1;
- if (!Be(e)) {
- const v = (h) => {
+ if (!Ge(e)) {
+ const v = (g) => {
d = !0;
- const [w, p] = Ji(h, s, !0);
- pt(r, w), p && u.push(...p);
+ const [w, p] = rr(g, s, !0);
+ pt(c, w), p && u.push(...p);
};
!o && s.mixins.length && s.mixins.forEach(v), e.extends && v(e.extends), e.mixins && e.mixins.forEach(v);
}
- if (!i && !d)
- return tt(e) && n.set(e, ro), ro;
- if (Ue(i))
- for (let v = 0; v < i.length; v++) {
- const h = Wt(i[v]);
- wl(h) && (r[h] = st);
- }
- else if (i)
- for (const v in i) {
- const h = Wt(v);
- if (wl(h)) {
- const w = i[v], p = r[h] = Ue(w) || Be(w) ? { type: w } : pt({}, w), _ = p.type;
- let S = !1, $ = !0;
- if (Ue(_))
- for (let P = 0; P < _.length; ++P) {
- const O = _[P], T = Be(O) && O.name;
- if (T === "Boolean") {
- S = !0;
+ if (!r && !d)
+ return ot(e) && n.set(e, po), po;
+ if (Be(r))
+ for (let v = 0; v < r.length; v++) {
+ const g = Kt(r[v]);
+ El(g) && (c[g] = nt);
+ }
+ else if (r)
+ for (const v in r) {
+ const g = Kt(v);
+ if (El(g)) {
+ const w = r[v], p = c[g] = Be(w) || Ge(w) ? { type: w } : pt({}, w), k = p.type;
+ let C = !1, b = !0;
+ if (Be(k))
+ for (let T = 0; T < k.length; ++T) {
+ const D = k[T], P = Ge(D) && D.name;
+ if (P === "Boolean") {
+ C = !0;
break;
- } else T === "String" && ($ = !1);
+ } else P === "String" && (b = !1);
}
else
- S = Be(_) && _.name === "Boolean";
+ C = Ge(k) && k.name === "Boolean";
p[
0
/* shouldCast */
- ] = S, p[
+ ] = C, p[
1
/* shouldCastTrue */
- ] = $, (S || Ze(p, "default")) && u.push(h);
+ ] = b, (C || et(p, "default")) && u.push(g);
}
}
- const m = [r, u];
- return tt(e) && n.set(e, m), m;
+ const m = [c, u];
+ return ot(e) && n.set(e, m), m;
}
-function wl(e) {
- return e[0] !== "$" && !Mo(e);
+function El(e) {
+ return e[0] !== "$" && !Fo(e);
}
-const Va = (e) => e === "_" || e === "_ctx" || e === "$stable", Wa = (e) => Ue(e) ? e.map(fs) : [fs(e)], fu = (e, s, o) => {
+const el = (e) => e === "_" || e === "_ctx" || e === "$stable", tl = (e) => Be(e) ? e.map(ps) : [ps(e)], Tu = (e, s, o) => {
if (s._n)
return s;
- const n = g((...l) => Wa(s(...l)), o);
+ const n = h((...l) => tl(s(...l)), o);
return n._c = !1, n;
-}, Xi = (e, s, o) => {
+}, cr = (e, s, o) => {
const n = e._ctx;
for (const l in e) {
- if (Va(l)) continue;
- const i = e[l];
- if (Be(i))
- s[l] = fu(l, i, n);
- else if (i != null) {
- const r = Wa(i);
- s[l] = () => r;
+ if (el(l)) continue;
+ const r = e[l];
+ if (Ge(r))
+ s[l] = Tu(l, r, n);
+ else if (r != null) {
+ const c = tl(r);
+ s[l] = () => c;
}
}
-}, Qi = (e, s) => {
- const o = Wa(s);
+}, ur = (e, s) => {
+ const o = tl(s);
e.slots.default = () => o;
-}, Zi = (e, s, o) => {
+}, dr = (e, s, o) => {
for (const n in s)
- (o || !Va(n)) && (e[n] = s[n]);
-}, mu = (e, s, o) => {
- const n = e.slots = Ki();
+ (o || !el(n)) && (e[n] = s[n]);
+}, Ru = (e, s, o) => {
+ const n = e.slots = ar();
if (e.vnode.shapeFlag & 32) {
const l = s._;
- l ? (Zi(n, s, o), o && ti(n, "_", l, !0)) : Xi(s, n);
- } else s && Qi(e, s);
-}, vu = (e, s, o) => {
+ l ? (dr(n, s, o), o && mi(n, "_", l, !0)) : cr(s, n);
+ } else s && ur(e, s);
+}, Pu = (e, s, o) => {
const { vnode: n, slots: l } = e;
- let i = !0, r = st;
+ let r = !0, c = nt;
if (n.shapeFlag & 32) {
const u = s._;
- u ? o && u === 1 ? i = !1 : Zi(l, s, o) : (i = !s.$stable, Xi(s, l)), r = s;
- } else s && (Qi(e, s), r = { default: 1 });
- if (i)
+ u ? o && u === 1 ? r = !1 : dr(l, s, o) : (r = !s.$stable, cr(s, l)), c = s;
+ } else s && (ur(e, s), c = { default: 1 });
+ if (r)
for (const u in l)
- !Va(u) && r[u] == null && delete l[u];
-}, St = wu;
-function pu(e) {
- return gu(e);
+ !el(u) && c[u] == null && delete l[u];
+}, Et = Ou;
+function Mu(e) {
+ return Du(e);
}
-function gu(e, s) {
- const o = On();
+function Du(e, s) {
+ const o = Kn();
o.__VUE__ = !0;
const {
insert: n,
remove: l,
- patchProp: i,
- createElement: r,
+ patchProp: r,
+ createElement: c,
createText: u,
createComment: d,
setText: m,
setElementText: v,
- parentNode: h,
+ parentNode: g,
nextSibling: w,
- setScopeId: p = ms,
- insertStaticContent: _
- } = e, S = (D, V, se, ne = null, ue = null, de = null, $e = void 0, Ce = null, oe = !!V.dynamicChildren) => {
- if (D === V)
+ setScopeId: p = gs,
+ insertStaticContent: k
+ } = e, C = (O, R, F, q = null, ne = null, re = null, $e = void 0, ie = null, we = !!R.dynamicChildren) => {
+ if (O === R)
return;
- D && !Ys(D, V) && (ne = Ge(D), Re(D, ue, de, !0), D = null), V.patchFlag === -2 && (oe = !1, V.dynamicChildren = null);
- const { type: ce, ref: De, shapeFlag: xe } = V;
- switch (ce) {
- case Bn:
- $(D, V, se, ne);
+ O && !Zs(O, R) && (q = ce(O), ze(O, ne, re, !0), O = null), R.patchFlag === -2 && (we = !1, R.dynamicChildren = null);
+ const { type: he, ref: Pe, shapeFlag: Ie } = R;
+ switch (he) {
+ case Zn:
+ b(O, R, F, q);
break;
- case _t:
- P(D, V, se, ne);
+ case bt:
+ T(O, R, F, q);
break;
- case ea:
- D == null && O(V, se, ne, $e);
+ case fa:
+ O == null && D(R, F, q, $e);
break;
- case j:
- Y(
- D,
- V,
- se,
+ case H:
+ W(
+ O,
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
break;
default:
- xe & 1 ? q(
- D,
- V,
- se,
+ Ie & 1 ? U(
+ O,
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
- ) : xe & 6 ? H(
- D,
- V,
- se,
+ ie,
+ we
+ ) : Ie & 6 ? A(
+ O,
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
- ) : (xe & 64 || xe & 128) && ce.process(
- D,
- V,
- se,
+ ie,
+ we
+ ) : (Ie & 64 || Ie & 128) && he.process(
+ O,
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe,
- Ve
+ ie,
+ we,
+ Re
);
}
- De != null && ue ? Ao(De, D && D.ref, de, V || D, !V) : De == null && D && D.ref != null && Ao(D.ref, null, de, D, !0);
- }, $ = (D, V, se, ne) => {
- if (D == null)
+ Pe != null && ne ? Go(Pe, O && O.ref, re, R || O, !R) : Pe == null && O && O.ref != null && Go(O.ref, null, re, O, !0);
+ }, b = (O, R, F, q) => {
+ if (O == null)
n(
- V.el = u(V.children),
- se,
- ne
+ R.el = u(R.children),
+ F,
+ q
);
else {
- const ue = V.el = D.el;
- V.children !== D.children && m(ue, V.children);
- }
- }, P = (D, V, se, ne) => {
- D == null ? n(
- V.el = d(V.children || ""),
- se,
- ne
- ) : V.el = D.el;
- }, O = (D, V, se, ne) => {
- [D.el, D.anchor] = _(
- D.children,
- V,
- se,
- ne,
- D.el,
- D.anchor
+ const ne = R.el = O.el;
+ R.children !== O.children && m(ne, R.children);
+ }
+ }, T = (O, R, F, q) => {
+ O == null ? n(
+ R.el = d(R.children || ""),
+ F,
+ q
+ ) : R.el = O.el;
+ }, D = (O, R, F, q) => {
+ [O.el, O.anchor] = k(
+ O.children,
+ R,
+ F,
+ q,
+ O.el,
+ O.anchor
);
- }, T = ({ el: D, anchor: V }, se, ne) => {
- let ue;
- for (; D && D !== V; )
- ue = w(D), n(D, se, ne), D = ue;
- n(V, se, ne);
- }, x = ({ el: D, anchor: V }) => {
- let se;
- for (; D && D !== V; )
- se = w(D), l(D), D = se;
- l(V);
- }, q = (D, V, se, ne, ue, de, $e, Ce, oe) => {
- if (V.type === "svg" ? $e = "svg" : V.type === "math" && ($e = "mathml"), D == null)
+ }, P = ({ el: O, anchor: R }, F, q) => {
+ let ne;
+ for (; O && O !== R; )
+ ne = w(O), n(O, F, q), O = ne;
+ n(R, F, q);
+ }, E = ({ el: O, anchor: R }) => {
+ let F;
+ for (; O && O !== R; )
+ F = w(O), l(O), O = F;
+ l(R);
+ }, U = (O, R, F, q, ne, re, $e, ie, we) => {
+ if (R.type === "svg" ? $e = "svg" : R.type === "math" && ($e = "mathml"), O == null)
B(
- V,
- se,
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
else {
- const ce = D.el && D.el._isVueCE ? D.el : null;
+ const he = O.el && O.el._isVueCE ? O.el : null;
try {
- ce && ce._beginPatch(), E(
- D,
- V,
- ue,
- de,
+ he && he._beginPatch(), I(
+ O,
+ R,
+ ne,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
} finally {
- ce && ce._endPatch();
+ he && he._endPatch();
}
}
- }, B = (D, V, se, ne, ue, de, $e, Ce) => {
- let oe, ce;
- const { props: De, shapeFlag: xe, transition: Z, dirs: K } = D;
- if (oe = D.el = r(
- D.type,
- de,
- De && De.is,
- De
- ), xe & 8 ? v(oe, D.children) : xe & 16 && I(
- D.children,
- oe,
+ }, B = (O, R, F, q, ne, re, $e, ie) => {
+ let we, he;
+ const { props: Pe, shapeFlag: Ie, transition: te, dirs: Y } = O;
+ if (we = O.el = c(
+ O.type,
+ re,
+ Pe && Pe.is,
+ Pe
+ ), Ie & 8 ? v(we, O.children) : Ie & 16 && S(
+ O.children,
+ we,
null,
+ q,
ne,
- ue,
- Zn(D, de),
+ da(O, re),
$e,
- Ce
- ), K && Gs(D, null, ne, "created"), A(oe, D, D.scopeId, $e, ne), De) {
- for (const he in De)
- he !== "value" && !Mo(he) && i(oe, he, null, De[he], de, ne);
- "value" in De && i(oe, "value", null, De.value, de), (ce = De.onVnodeBeforeMount) && is(ce, ne, D);
- }
- K && Gs(D, null, ne, "beforeMount");
- const Pe = hu(ue, Z);
- Pe && Z.beforeEnter(oe), n(oe, V, se), ((ce = De && De.onVnodeMounted) || Pe || K) && St(() => {
- ce && is(ce, ne, D), Pe && Z.enter(oe), K && Gs(D, null, ne, "mounted");
- }, ue);
- }, A = (D, V, se, ne, ue) => {
- if (se && p(D, se), ne)
- for (let de = 0; de < ne.length; de++)
- p(D, ne[de]);
- if (ue) {
- let de = ue.subTree;
- if (V === de || tr(de.type) && (de.ssContent === V || de.ssFallback === V)) {
- const $e = ue.vnode;
- A(
- D,
+ ie
+ ), Y && qs(O, null, q, "created"), V(we, O, O.scopeId, $e, q), Pe) {
+ for (const Ce in Pe)
+ Ce !== "value" && !Fo(Ce) && r(we, Ce, null, Pe[Ce], re, q);
+ "value" in Pe && r(we, "value", null, Pe.value, re), (he = Pe.onVnodeBeforeMount) && us(he, q, O);
+ }
+ Y && qs(O, null, q, "beforeMount");
+ const Me = Lu(ne, te);
+ Me && te.beforeEnter(we), n(we, R, F), ((he = Pe && Pe.onVnodeMounted) || Me || Y) && Et(() => {
+ he && us(he, q, O), Me && te.enter(we), Y && qs(O, null, q, "mounted");
+ }, ne);
+ }, V = (O, R, F, q, ne) => {
+ if (F && p(O, F), q)
+ for (let re = 0; re < q.length; re++)
+ p(O, q[re]);
+ if (ne) {
+ let re = ne.subTree;
+ if (R === re || mr(re.type) && (re.ssContent === R || re.ssFallback === R)) {
+ const $e = ne.vnode;
+ V(
+ O,
$e,
$e.scopeId,
$e.slotScopeIds,
- ue.parent
+ ne.parent
);
}
}
- }, I = (D, V, se, ne, ue, de, $e, Ce, oe = 0) => {
- for (let ce = oe; ce < D.length; ce++) {
- const De = D[ce] = Ce ? Ls(D[ce]) : fs(D[ce]);
- S(
+ }, S = (O, R, F, q, ne, re, $e, ie, we = 0) => {
+ for (let he = we; he < O.length; he++) {
+ const Pe = O[he] = ie ? Us(O[he]) : ps(O[he]);
+ C(
null,
- De,
- V,
- se,
+ Pe,
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce
+ ie
);
}
- }, E = (D, V, se, ne, ue, de, $e) => {
- const Ce = V.el = D.el;
- let { patchFlag: oe, dynamicChildren: ce, dirs: De } = V;
- oe |= D.patchFlag & 16;
- const xe = D.props || st, Z = V.props || st;
- let K;
- if (se && js(se, !1), (K = Z.onVnodeBeforeUpdate) && is(K, se, V, D), De && Gs(V, D, se, "beforeUpdate"), se && js(se, !0), (xe.innerHTML && Z.innerHTML == null || xe.textContent && Z.textContent == null) && v(Ce, ""), ce ? L(
- D.dynamicChildren,
- ce,
- Ce,
- se,
- ne,
- Zn(V, ue),
- de
- ) : $e || M(
- D,
- V,
- Ce,
+ }, I = (O, R, F, q, ne, re, $e) => {
+ const ie = R.el = O.el;
+ let { patchFlag: we, dynamicChildren: he, dirs: Pe } = R;
+ we |= O.patchFlag & 16;
+ const Ie = O.props || nt, te = R.props || nt;
+ let Y;
+ if (F && Ys(F, !1), (Y = te.onVnodeBeforeUpdate) && us(Y, F, R, O), Pe && qs(R, O, F, "beforeUpdate"), F && Ys(F, !0), (Ie.innerHTML && te.innerHTML == null || Ie.textContent && te.textContent == null) && v(ie, ""), he ? L(
+ O.dynamicChildren,
+ he,
+ ie,
+ F,
+ q,
+ da(R, ne),
+ re
+ ) : $e || ee(
+ O,
+ R,
+ ie,
null,
- se,
- ne,
- Zn(V, ue),
- de,
+ F,
+ q,
+ da(R, ne),
+ re,
!1
- ), oe > 0) {
- if (oe & 16)
- re(Ce, xe, Z, se, ue);
- else if (oe & 2 && xe.class !== Z.class && i(Ce, "class", null, Z.class, ue), oe & 4 && i(Ce, "style", xe.style, Z.style, ue), oe & 8) {
- const Pe = V.dynamicProps;
- for (let he = 0; he < Pe.length; he++) {
- const ge = Pe[he], W = xe[ge], z = Z[ge];
- (z !== W || ge === "value") && i(Ce, ge, W, z, ue, se);
+ ), we > 0) {
+ if (we & 16)
+ Z(ie, Ie, te, F, ne);
+ else if (we & 2 && Ie.class !== te.class && r(ie, "class", null, te.class, ne), we & 4 && r(ie, "style", Ie.style, te.style, ne), we & 8) {
+ const Me = R.dynamicProps;
+ for (let Ce = 0; Ce < Me.length; Ce++) {
+ const ye = Me[Ce], K = Ie[ye], G = te[ye];
+ (G !== K || ye === "value") && r(ie, ye, K, G, ne, F);
}
}
- oe & 1 && D.children !== V.children && v(Ce, V.children);
- } else !$e && ce == null && re(Ce, xe, Z, se, ue);
- ((K = Z.onVnodeUpdated) || De) && St(() => {
- K && is(K, se, V, D), De && Gs(V, D, se, "updated");
- }, ne);
- }, L = (D, V, se, ne, ue, de, $e) => {
- for (let Ce = 0; Ce < V.length; Ce++) {
- const oe = D[Ce], ce = V[Ce], De = (
+ we & 1 && O.children !== R.children && v(ie, R.children);
+ } else !$e && he == null && Z(ie, Ie, te, F, ne);
+ ((Y = te.onVnodeUpdated) || Pe) && Et(() => {
+ Y && us(Y, F, R, O), Pe && qs(R, O, F, "updated");
+ }, q);
+ }, L = (O, R, F, q, ne, re, $e) => {
+ for (let ie = 0; ie < R.length; ie++) {
+ const we = O[ie], he = R[ie], Pe = (
// oldVNode may be an errored async setup() component inside Suspense
// which will not have a mounted element
- oe.el && // - In the case of a Fragment, we need to provide the actual parent
+ we.el && // - In the case of a Fragment, we need to provide the actual parent
// of the Fragment itself so it can move its children.
- (oe.type === j || // - In the case of different nodes, there is going to be a replacement
+ (we.type === H || // - In the case of different nodes, there is going to be a replacement
// which also requires the correct parent container
- !Ys(oe, ce) || // - In the case of a component, it could contain anything.
- oe.shapeFlag & 198) ? h(oe.el) : (
+ !Zs(we, he) || // - In the case of a component, it could contain anything.
+ we.shapeFlag & 198) ? g(we.el) : (
// In other cases, the parent container is not actually used so we
// just pass the block element here to avoid a DOM parentNode call.
- se
+ F
)
);
- S(
- oe,
- ce,
- De,
+ C(
+ we,
+ he,
+ Pe,
null,
+ q,
ne,
- ue,
- de,
+ re,
$e,
!0
);
}
- }, re = (D, V, se, ne, ue) => {
- if (V !== se) {
- if (V !== st)
- for (const de in V)
- !Mo(de) && !(de in se) && i(
- D,
- de,
- V[de],
+ }, Z = (O, R, F, q, ne) => {
+ if (R !== F) {
+ if (R !== nt)
+ for (const re in R)
+ !Fo(re) && !(re in F) && r(
+ O,
+ re,
+ R[re],
null,
- ue,
- ne
+ ne,
+ q
);
- for (const de in se) {
- if (Mo(de)) continue;
- const $e = se[de], Ce = V[de];
- $e !== Ce && de !== "value" && i(D, de, Ce, $e, ue, ne);
+ for (const re in F) {
+ if (Fo(re)) continue;
+ const $e = F[re], ie = R[re];
+ $e !== ie && re !== "value" && r(O, re, ie, $e, ne, q);
}
- "value" in se && i(D, "value", V.value, se.value, ue);
+ "value" in F && r(O, "value", R.value, F.value, ne);
}
- }, Y = (D, V, se, ne, ue, de, $e, Ce, oe) => {
- const ce = V.el = D ? D.el : u(""), De = V.anchor = D ? D.anchor : u("");
- let { patchFlag: xe, dynamicChildren: Z, slotScopeIds: K } = V;
- K && (Ce = Ce ? Ce.concat(K) : K), D == null ? (n(ce, se, ne), n(De, se, ne), I(
+ }, W = (O, R, F, q, ne, re, $e, ie, we) => {
+ const he = R.el = O ? O.el : u(""), Pe = R.anchor = O ? O.anchor : u("");
+ let { patchFlag: Ie, dynamicChildren: te, slotScopeIds: Y } = R;
+ Y && (ie = ie ? ie.concat(Y) : Y), O == null ? (n(he, F, q), n(Pe, F, q), S(
// #10007
// such fragment like `<>>` will be compiled into
// a fragment which doesn't have a children.
// In this case fallback to an empty array
- V.children || [],
- se,
- De,
- ue,
- de,
+ R.children || [],
+ F,
+ Pe,
+ ne,
+ re,
$e,
- Ce,
- oe
- )) : xe > 0 && xe & 64 && Z && // #2715 the previous fragment could've been a BAILed one as a result
+ ie,
+ we
+ )) : Ie > 0 && Ie & 64 && te && // #2715 the previous fragment could've been a BAILed one as a result
// of renderSlot() with no valid children
- D.dynamicChildren ? (L(
- D.dynamicChildren,
- Z,
- se,
- ue,
- de,
+ O.dynamicChildren ? (L(
+ O.dynamicChildren,
+ te,
+ F,
+ ne,
+ re,
$e,
- Ce
+ ie
), // #2080 if the stable fragment has a key, it's a that may
// get moved around. Make sure all root level vnodes inherit el.
// #2134 or if it's a component root, it may also get moved around
// as the component is being moved.
- (V.key != null || ue && V === ue.subTree) && Ga(
- D,
- V,
+ (R.key != null || ne && R === ne.subTree) && sl(
+ O,
+ R,
!0
/* shallow */
- )) : M(
- D,
- V,
- se,
- De,
- ue,
- de,
+ )) : ee(
+ O,
+ R,
+ F,
+ Pe,
+ ne,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
- }, H = (D, V, se, ne, ue, de, $e, Ce, oe) => {
- V.slotScopeIds = Ce, D == null ? V.shapeFlag & 512 ? ue.ctx.activate(
- V,
- se,
- ne,
+ }, A = (O, R, F, q, ne, re, $e, ie, we) => {
+ R.slotScopeIds = ie, O == null ? R.shapeFlag & 512 ? ne.ctx.activate(
+ R,
+ F,
+ q,
$e,
- oe
- ) : te(
- V,
- se,
+ we
+ ) : j(
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- oe
- ) : Q(D, V, oe);
- }, te = (D, V, se, ne, ue, de, $e) => {
- const Ce = D.component = Su(
- D,
- ne,
- ue
+ we
+ ) : X(O, R, we);
+ }, j = (O, R, F, q, ne, re, $e) => {
+ const ie = O.component = Wu(
+ O,
+ q,
+ ne
);
- if (Un(D) && (Ce.ctx.renderer = Ve), Iu(Ce, !1, $e), Ce.asyncDep) {
- if (ue && ue.registerDep(Ce, N, $e), !D.el) {
- const oe = Ce.subTree = C(_t);
- P(null, oe, V, se), D.placeholder = oe.el;
+ if (Jn(O) && (ie.ctx.renderer = Re), Gu(ie, !1, $e), ie.asyncDep) {
+ if (ne && ne.registerDep(ie, z, $e), !O.el) {
+ const we = ie.subTree = x(bt);
+ T(null, we, R, F), O.placeholder = we.el;
}
} else
- N(
- Ce,
- D,
- V,
- se,
- ue,
- de,
+ z(
+ ie,
+ O,
+ R,
+ F,
+ ne,
+ re,
$e
);
- }, Q = (D, V, se) => {
- const ne = V.component = D.component;
- if (iu(D, V, se))
- if (ne.asyncDep && !ne.asyncResolved) {
- U(ne, V, se);
+ }, X = (O, R, F) => {
+ const q = R.component = O.component;
+ if (Cu(O, R, F))
+ if (q.asyncDep && !q.asyncResolved) {
+ ae(q, R, F);
return;
} else
- ne.next = V, ne.update();
+ q.next = R, q.update();
else
- V.el = D.el, ne.vnode = V;
- }, N = (D, V, se, ne, ue, de, $e) => {
- const Ce = () => {
- if (D.isMounted) {
- let { next: xe, bu: Z, u: K, parent: Pe, vnode: he } = D;
+ R.el = O.el, q.vnode = R;
+ }, z = (O, R, F, q, ne, re, $e) => {
+ const ie = () => {
+ if (O.isMounted) {
+ let { next: Ie, bu: te, u: Y, parent: Me, vnode: Ce } = O;
{
- const ze = er(D);
- if (ze) {
- xe && (xe.el = he.el, U(D, xe, $e)), ze.asyncDep.then(() => {
- D.isUnmounted || Ce();
+ const Ve = fr(O);
+ if (Ve) {
+ Ie && (Ie.el = Ce.el, ae(O, Ie, $e)), Ve.asyncDep.then(() => {
+ O.isUnmounted || ie();
});
return;
}
}
- let ge = xe, W;
- js(D, !1), xe ? (xe.el = he.el, U(D, xe, $e)) : xe = he, Z && fn(Z), (W = xe.props && xe.props.onVnodeBeforeUpdate) && is(W, Pe, xe, he), js(D, !0);
- const z = hl(D), ie = D.subTree;
- D.subTree = z, S(
- ie,
- z,
+ let ye = Ie, K;
+ Ys(O, !1), Ie ? (Ie.el = Ce.el, ae(O, Ie, $e)) : Ie = Ce, te && xn(te), (K = Ie.props && Ie.props.onVnodeBeforeUpdate) && us(K, Me, Ie, Ce), Ys(O, !0);
+ const G = Sl(O), me = O.subTree;
+ O.subTree = G, C(
+ me,
+ G,
// parent may have changed if it's in a teleport
- h(ie.el),
+ g(me.el),
// anchor may have changed if it's in a fragment
- Ge(ie),
- D,
- ue,
- de
- ), xe.el = z.el, ge === null && ru(D, z.el), K && St(K, ue), (W = xe.props && xe.props.onVnodeUpdated) && St(
- () => is(W, Pe, xe, he),
- ue
+ ce(me),
+ O,
+ ne,
+ re
+ ), Ie.el = G.el, ye === null && xu(O, G.el), Y && Et(Y, ne), (K = Ie.props && Ie.props.onVnodeUpdated) && Et(
+ () => us(K, Me, Ie, Ce),
+ ne
);
} else {
- let xe;
- const { el: Z, props: K } = V, { bm: Pe, m: he, parent: ge, root: W, type: z } = D, ie = fo(V);
- js(D, !1), Pe && fn(Pe), !ie && (xe = K && K.onVnodeBeforeMount) && is(xe, ge, V), js(D, !0);
+ let Ie;
+ const { el: te, props: Y } = R, { bm: Me, m: Ce, parent: ye, root: K, type: G } = O, me = yo(R);
+ Ys(O, !1), Me && xn(Me), !me && (Ie = Y && Y.onVnodeBeforeMount) && us(Ie, ye, R), Ys(O, !0);
{
- W.ce && // @ts-expect-error _def is private
- W.ce._def.shadowRoot !== !1 && W.ce._injectChildStyle(z);
- const ze = D.subTree = hl(D);
- S(
+ K.ce && // @ts-expect-error _def is private
+ K.ce._def.shadowRoot !== !1 && K.ce._injectChildStyle(G);
+ const Ve = O.subTree = Sl(O);
+ C(
null,
- ze,
- se,
+ Ve,
+ F,
+ q,
+ O,
ne,
- D,
- ue,
- de
- ), V.el = ze.el;
+ re
+ ), R.el = Ve.el;
}
- if (he && St(he, ue), !ie && (xe = K && K.onVnodeMounted)) {
- const ze = V;
- St(
- () => is(xe, ge, ze),
- ue
+ if (Ce && Et(Ce, ne), !me && (Ie = Y && Y.onVnodeMounted)) {
+ const Ve = R;
+ Et(
+ () => us(Ie, ye, Ve),
+ ne
);
}
- (V.shapeFlag & 256 || ge && fo(ge.vnode) && ge.vnode.shapeFlag & 256) && D.a && St(D.a, ue), D.isMounted = !0, V = se = ne = null;
+ (R.shapeFlag & 256 || ye && yo(ye.vnode) && ye.vnode.shapeFlag & 256) && O.a && Et(O.a, ne), O.isMounted = !0, R = F = q = null;
}
};
- D.scope.on();
- const oe = D.effect = new ai(Ce);
- D.scope.off();
- const ce = D.update = oe.run.bind(oe), De = D.job = oe.runIfDirty.bind(oe);
- De.i = D, De.id = D.uid, oe.scheduler = () => za(De), js(D, !0), ce();
- }, U = (D, V, se) => {
- V.component = D;
- const ne = D.vnode.props;
- D.vnode = V, D.next = null, uu(D, V.props, ne, se), vu(D, V.children, se), $s(), ll(D), Cs();
- }, M = (D, V, se, ne, ue, de, $e, Ce, oe = !1) => {
- const ce = D && D.children, De = D ? D.shapeFlag : 0, xe = V.children, { patchFlag: Z, shapeFlag: K } = V;
- if (Z > 0) {
- if (Z & 128) {
- ve(
- ce,
- xe,
- se,
+ O.scope.on();
+ const we = O.effect = new hi(ie);
+ O.scope.off();
+ const he = O.update = we.run.bind(we), Pe = O.job = we.runIfDirty.bind(we);
+ Pe.i = O, Pe.id = O.uid, we.scheduler = () => Qa(Pe), Ys(O, !0), he();
+ }, ae = (O, R, F) => {
+ R.component = O;
+ const q = O.vnode.props;
+ O.vnode = R, O.next = null, Iu(O, R.props, q, F), Pu(O, R.children, F), Es(), pl(O), Ts();
+ }, ee = (O, R, F, q, ne, re, $e, ie, we = !1) => {
+ const he = O && O.children, Pe = O ? O.shapeFlag : 0, Ie = R.children, { patchFlag: te, shapeFlag: Y } = R;
+ if (te > 0) {
+ if (te & 128) {
+ be(
+ he,
+ Ie,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
return;
- } else if (Z & 256) {
- we(
- ce,
- xe,
- se,
+ } else if (te & 256) {
+ ke(
+ he,
+ Ie,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
return;
}
}
- K & 8 ? (De & 16 && Ee(ce, ue, de), xe !== ce && v(se, xe)) : De & 16 ? K & 16 ? ve(
- ce,
- xe,
- se,
+ Y & 8 ? (Pe & 16 && oe(he, ne, re), Ie !== he && v(F, Ie)) : Pe & 16 ? Y & 16 ? be(
+ he,
+ Ie,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
- ) : Ee(ce, ue, de, !0) : (De & 8 && v(se, ""), K & 16 && I(
- xe,
- se,
+ ie,
+ we
+ ) : oe(he, ne, re, !0) : (Pe & 8 && v(F, ""), Y & 16 && S(
+ Ie,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
));
- }, we = (D, V, se, ne, ue, de, $e, Ce, oe) => {
- D = D || ro, V = V || ro;
- const ce = D.length, De = V.length, xe = Math.min(ce, De);
- let Z;
- for (Z = 0; Z < xe; Z++) {
- const K = V[Z] = oe ? Ls(V[Z]) : fs(V[Z]);
- S(
- D[Z],
- K,
- se,
+ }, ke = (O, R, F, q, ne, re, $e, ie, we) => {
+ O = O || po, R = R || po;
+ const he = O.length, Pe = R.length, Ie = Math.min(he, Pe);
+ let te;
+ for (te = 0; te < Ie; te++) {
+ const Y = R[te] = we ? Us(R[te]) : ps(R[te]);
+ C(
+ O[te],
+ Y,
+ F,
null,
- ue,
- de,
+ ne,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
}
- ce > De ? Ee(
- D,
- ue,
- de,
+ he > Pe ? oe(
+ O,
+ ne,
+ re,
!0,
!1,
- xe
- ) : I(
- V,
- se,
+ Ie
+ ) : S(
+ R,
+ F,
+ q,
ne,
- ue,
- de,
+ re,
$e,
- Ce,
- oe,
- xe
+ ie,
+ we,
+ Ie
);
- }, ve = (D, V, se, ne, ue, de, $e, Ce, oe) => {
- let ce = 0;
- const De = V.length;
- let xe = D.length - 1, Z = De - 1;
- for (; ce <= xe && ce <= Z; ) {
- const K = D[ce], Pe = V[ce] = oe ? Ls(V[ce]) : fs(V[ce]);
- if (Ys(K, Pe))
- S(
- K,
- Pe,
- se,
+ }, be = (O, R, F, q, ne, re, $e, ie, we) => {
+ let he = 0;
+ const Pe = R.length;
+ let Ie = O.length - 1, te = Pe - 1;
+ for (; he <= Ie && he <= te; ) {
+ const Y = O[he], Me = R[he] = we ? Us(R[he]) : ps(R[he]);
+ if (Zs(Y, Me))
+ C(
+ Y,
+ Me,
+ F,
null,
- ue,
- de,
+ ne,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
else
break;
- ce++;
- }
- for (; ce <= xe && ce <= Z; ) {
- const K = D[xe], Pe = V[Z] = oe ? Ls(V[Z]) : fs(V[Z]);
- if (Ys(K, Pe))
- S(
- K,
- Pe,
- se,
+ he++;
+ }
+ for (; he <= Ie && he <= te; ) {
+ const Y = O[Ie], Me = R[te] = we ? Us(R[te]) : ps(R[te]);
+ if (Zs(Y, Me))
+ C(
+ Y,
+ Me,
+ F,
null,
- ue,
- de,
+ ne,
+ re,
$e,
- Ce,
- oe
+ ie,
+ we
);
else
break;
- xe--, Z--;
+ Ie--, te--;
}
- if (ce > xe) {
- if (ce <= Z) {
- const K = Z + 1, Pe = K < De ? V[K].el : ne;
- for (; ce <= Z; )
- S(
+ if (he > Ie) {
+ if (he <= te) {
+ const Y = te + 1, Me = Y < Pe ? R[Y].el : q;
+ for (; he <= te; )
+ C(
null,
- V[ce] = oe ? Ls(V[ce]) : fs(V[ce]),
- se,
- Pe,
- ue,
- de,
+ R[he] = we ? Us(R[he]) : ps(R[he]),
+ F,
+ Me,
+ ne,
+ re,
$e,
- Ce,
- oe
- ), ce++;
+ ie,
+ we
+ ), he++;
}
- } else if (ce > Z)
- for (; ce <= xe; )
- Re(D[ce], ue, de, !0), ce++;
+ } else if (he > te)
+ for (; he <= Ie; )
+ ze(O[he], ne, re, !0), he++;
else {
- const K = ce, Pe = ce, he = /* @__PURE__ */ new Map();
- for (ce = Pe; ce <= Z; ce++) {
- const at = V[ce] = oe ? Ls(V[ce]) : fs(V[ce]);
- at.key != null && he.set(at.key, ce);
+ const Y = he, Me = he, Ce = /* @__PURE__ */ new Map();
+ for (he = Me; he <= te; he++) {
+ const st = R[he] = we ? Us(R[he]) : ps(R[he]);
+ st.key != null && Ce.set(st.key, he);
}
- let ge, W = 0;
- const z = Z - Pe + 1;
- let ie = !1, ze = 0;
- const Qe = new Array(z);
- for (ce = 0; ce < z; ce++) Qe[ce] = 0;
- for (ce = K; ce <= xe; ce++) {
- const at = D[ce];
- if (W >= z) {
- Re(at, ue, de, !0);
+ let ye, K = 0;
+ const G = te - Me + 1;
+ let me = !1, Ve = 0;
+ const Ze = new Array(G);
+ for (he = 0; he < G; he++) Ze[he] = 0;
+ for (he = Y; he <= Ie; he++) {
+ const st = O[he];
+ if (K >= G) {
+ ze(st, ne, re, !0);
continue;
}
- let dt;
- if (at.key != null)
- dt = he.get(at.key);
+ let vt;
+ if (st.key != null)
+ vt = Ce.get(st.key);
else
- for (ge = Pe; ge <= Z; ge++)
- if (Qe[ge - Pe] === 0 && Ys(at, V[ge])) {
- dt = ge;
+ for (ye = Me; ye <= te; ye++)
+ if (Ze[ye - Me] === 0 && Zs(st, R[ye])) {
+ vt = ye;
break;
}
- dt === void 0 ? Re(at, ue, de, !0) : (Qe[dt - Pe] = ce + 1, dt >= ze ? ze = dt : ie = !0, S(
- at,
- V[dt],
- se,
+ vt === void 0 ? ze(st, ne, re, !0) : (Ze[vt - Me] = he + 1, vt >= Ve ? Ve = vt : me = !0, C(
+ st,
+ R[vt],
+ F,
null,
- ue,
- de,
+ ne,
+ re,
$e,
- Ce,
- oe
- ), W++);
+ ie,
+ we
+ ), K++);
}
- const vt = ie ? yu(Qe) : ro;
- for (ge = vt.length - 1, ce = z - 1; ce >= 0; ce--) {
- const at = Pe + ce, dt = V[at], Rt = V[at + 1], Ut = at + 1 < De ? (
+ const St = me ? Au(Ze) : po;
+ for (ye = St.length - 1, he = G - 1; he >= 0; he--) {
+ const st = Me + he, vt = R[st], qt = R[st + 1], ht = st + 1 < Pe ? (
// #13559, fallback to el placeholder for unresolved async component
- Rt.el || Rt.placeholder
- ) : ne;
- Qe[ce] === 0 ? S(
+ qt.el || qt.placeholder
+ ) : q;
+ Ze[he] === 0 ? C(
null,
- dt,
- se,
- Ut,
- ue,
- de,
+ vt,
+ F,
+ ht,
+ ne,
+ re,
$e,
- Ce,
- oe
- ) : ie && (ge < 0 || ce !== vt[ge] ? Ie(dt, se, Ut, 2) : ge--);
+ ie,
+ we
+ ) : me && (ye < 0 || he !== St[ye] ? Le(vt, F, ht, 2) : ye--);
}
}
- }, Ie = (D, V, se, ne, ue = null) => {
- const { el: de, type: $e, transition: Ce, children: oe, shapeFlag: ce } = D;
- if (ce & 6) {
- Ie(D.component.subTree, V, se, ne);
+ }, Le = (O, R, F, q, ne = null) => {
+ const { el: re, type: $e, transition: ie, children: we, shapeFlag: he } = O;
+ if (he & 6) {
+ Le(O.component.subTree, R, F, q);
return;
}
- if (ce & 128) {
- D.suspense.move(V, se, ne);
+ if (he & 128) {
+ O.suspense.move(R, F, q);
return;
}
- if (ce & 64) {
- $e.move(D, V, se, Ve);
+ if (he & 64) {
+ $e.move(O, R, F, Re);
return;
}
- if ($e === j) {
- n(de, V, se);
- for (let xe = 0; xe < oe.length; xe++)
- Ie(oe[xe], V, se, ne);
- n(D.anchor, V, se);
+ if ($e === H) {
+ n(re, R, F);
+ for (let Ie = 0; Ie < we.length; Ie++)
+ Le(we[Ie], R, F, q);
+ n(O.anchor, R, F);
return;
}
- if ($e === ea) {
- T(D, V, se);
+ if ($e === fa) {
+ P(O, R, F);
return;
}
- if (ne !== 2 && ce & 1 && Ce)
- if (ne === 0)
- Ce.beforeEnter(de), n(de, V, se), St(() => Ce.enter(de), ue);
+ if (q !== 2 && he & 1 && ie)
+ if (q === 0)
+ ie.beforeEnter(re), n(re, R, F), Et(() => ie.enter(re), ne);
else {
- const { leave: xe, delayLeave: Z, afterLeave: K } = Ce, Pe = () => {
- D.ctx.isUnmounted ? l(de) : n(de, V, se);
- }, he = () => {
- de._isLeaving && de[ws](
+ const { leave: Ie, delayLeave: te, afterLeave: Y } = ie, Me = () => {
+ O.ctx.isUnmounted ? l(re) : n(re, R, F);
+ }, Ce = () => {
+ re._isLeaving && re[Cs](
!0
/* cancelled */
- ), xe(de, () => {
- Pe(), K && K();
+ ), Ie(re, () => {
+ Me(), Y && Y();
});
};
- Z ? Z(de, Pe, he) : he();
+ te ? te(re, Me, Ce) : Ce();
}
else
- n(de, V, se);
- }, Re = (D, V, se, ne = !1, ue = !1) => {
+ n(re, R, F);
+ }, ze = (O, R, F, q = !1, ne = !1) => {
const {
- type: de,
+ type: re,
props: $e,
- ref: Ce,
- children: oe,
- dynamicChildren: ce,
- shapeFlag: De,
- patchFlag: xe,
- dirs: Z,
- cacheIndex: K
- } = D;
- if (xe === -2 && (ue = !1), Ce != null && ($s(), Ao(Ce, null, se, D, !0), Cs()), K != null && (V.renderCache[K] = void 0), De & 256) {
- V.ctx.deactivate(D);
+ ref: ie,
+ children: we,
+ dynamicChildren: he,
+ shapeFlag: Pe,
+ patchFlag: Ie,
+ dirs: te,
+ cacheIndex: Y
+ } = O;
+ if (Ie === -2 && (ne = !1), ie != null && (Es(), Go(ie, null, F, O, !0), Ts()), Y != null && (R.renderCache[Y] = void 0), Pe & 256) {
+ R.ctx.deactivate(O);
return;
}
- const Pe = De & 1 && Z, he = !fo(D);
- let ge;
- if (he && (ge = $e && $e.onVnodeBeforeUnmount) && is(ge, V, D), De & 6)
- ke(D.component, se, ne);
+ const Me = Pe & 1 && te, Ce = !yo(O);
+ let ye;
+ if (Ce && (ye = $e && $e.onVnodeBeforeUnmount) && us(ye, R, O), Pe & 6)
+ pe(O.component, F, q);
else {
- if (De & 128) {
- D.suspense.unmount(se, ne);
+ if (Pe & 128) {
+ O.suspense.unmount(F, q);
return;
}
- Pe && Gs(D, null, V, "beforeUnmount"), De & 64 ? D.type.remove(
- D,
- V,
- se,
- Ve,
- ne
- ) : ce && // #5154
+ Me && qs(O, null, R, "beforeUnmount"), Pe & 64 ? O.type.remove(
+ O,
+ R,
+ F,
+ Re,
+ q
+ ) : he && // #5154
// when v-once is used inside a block, setBlockTracking(-1) marks the
// parent block with hasOnce: true
// so that it doesn't take the fast path during unmount - otherwise
// components nested in v-once are never unmounted.
- !ce.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments
- (de !== j || xe > 0 && xe & 64) ? Ee(
- ce,
- V,
- se,
+ !he.hasOnce && // #1153: fast path should not be taken for non-stable (v-for) fragments
+ (re !== H || Ie > 0 && Ie & 64) ? oe(
+ he,
+ R,
+ F,
!1,
!0
- ) : (de === j && xe & 384 || !ue && De & 16) && Ee(oe, V, se), ne && Ke(D);
- }
- (he && (ge = $e && $e.onVnodeUnmounted) || Pe) && St(() => {
- ge && is(ge, V, D), Pe && Gs(D, null, V, "unmounted");
- }, se);
- }, Ke = (D) => {
- const { type: V, el: se, anchor: ne, transition: ue } = D;
- if (V === j) {
- Xe(se, ne);
+ ) : (re === H && Ie & 384 || !ne && Pe & 16) && oe(we, R, F), q && Ue(O);
+ }
+ (Ce && (ye = $e && $e.onVnodeUnmounted) || Me) && Et(() => {
+ ye && us(ye, R, O), Me && qs(O, null, R, "unmounted");
+ }, F);
+ }, Ue = (O) => {
+ const { type: R, el: F, anchor: q, transition: ne } = O;
+ if (R === H) {
+ Ye(F, q);
return;
}
- if (V === ea) {
- x(D);
+ if (R === fa) {
+ E(O);
return;
}
- const de = () => {
- l(se), ue && !ue.persisted && ue.afterLeave && ue.afterLeave();
+ const re = () => {
+ l(F), ne && !ne.persisted && ne.afterLeave && ne.afterLeave();
};
- if (D.shapeFlag & 1 && ue && !ue.persisted) {
- const { leave: $e, delayLeave: Ce } = ue, oe = () => $e(se, de);
- Ce ? Ce(D.el, de, oe) : oe();
+ if (O.shapeFlag & 1 && ne && !ne.persisted) {
+ const { leave: $e, delayLeave: ie } = ne, we = () => $e(F, re);
+ ie ? ie(O.el, re, we) : we();
} else
- de();
- }, Xe = (D, V) => {
- let se;
- for (; D !== V; )
- se = w(D), l(D), D = se;
- l(V);
- }, ke = (D, V, se) => {
- const { bum: ne, scope: ue, job: de, subTree: $e, um: Ce, m: oe, a: ce } = D;
- bl(oe), bl(ce), ne && fn(ne), ue.stop(), de && (de.flags |= 8, Re($e, D, V, se)), Ce && St(Ce, V), St(() => {
- D.isUnmounted = !0;
- }, V);
- }, Ee = (D, V, se, ne = !1, ue = !1, de = 0) => {
- for (let $e = de; $e < D.length; $e++)
- Re(D[$e], V, se, ne, ue);
- }, Ge = (D) => {
- if (D.shapeFlag & 6)
- return Ge(D.component.subTree);
- if (D.shapeFlag & 128)
- return D.suspense.next();
- const V = w(D.anchor || D.el), se = V && V[xi];
- return se ? w(se) : V;
+ re();
+ }, Ye = (O, R) => {
+ let F;
+ for (; O !== R; )
+ F = w(O), l(O), O = F;
+ l(R);
+ }, pe = (O, R, F) => {
+ const { bum: q, scope: ne, job: re, subTree: $e, um: ie, m: we, a: he } = O;
+ Tl(we), Tl(he), q && xn(q), ne.stop(), re && (re.flags |= 8, ze($e, O, R, F)), ie && Et(ie, R), Et(() => {
+ O.isUnmounted = !0;
+ }, R);
+ }, oe = (O, R, F, q = !1, ne = !1, re = 0) => {
+ for (let $e = re; $e < O.length; $e++)
+ ze(O[$e], R, F, q, ne);
+ }, ce = (O) => {
+ if (O.shapeFlag & 6)
+ return ce(O.component.subTree);
+ if (O.shapeFlag & 128)
+ return O.suspense.next();
+ const R = w(O.anchor || O.el), F = R && R[Ni];
+ return F ? w(F) : R;
};
- let be = !1;
- const ae = (D, V, se) => {
- D == null ? V._vnode && Re(V._vnode, null, null, !0) : S(
- V._vnode || null,
- D,
- V,
+ let ue = !1;
+ const Ee = (O, R, F) => {
+ O == null ? R._vnode && ze(R._vnode, null, null, !0) : C(
+ R._vnode || null,
+ O,
+ R,
null,
null,
null,
- se
- ), V._vnode = D, be || (be = !0, ll(), ki(), be = !1);
- }, Ve = {
- p: S,
- um: Re,
- m: Ie,
- r: Ke,
- mt: te,
- mc: I,
- pc: M,
+ F
+ ), R._vnode = O, ue || (ue = !0, pl(), Li(), ue = !1);
+ }, Re = {
+ p: C,
+ um: ze,
+ m: Le,
+ r: Ue,
+ mt: j,
+ mc: S,
+ pc: ee,
pbc: L,
- n: Ge,
+ n: ce,
o: e
};
return {
- render: ae,
+ render: Ee,
hydrate: void 0,
- createApp: Xc(ae)
+ createApp: vu(Ee)
};
}
-function Zn({ type: e, props: s }, o) {
+function da({ type: e, props: s }, o) {
return o === "svg" && e === "foreignObject" || o === "mathml" && e === "annotation-xml" && s && s.encoding && s.encoding.includes("html") ? void 0 : o;
}
-function js({ effect: e, job: s }, o) {
+function Ys({ effect: e, job: s }, o) {
o ? (e.flags |= 32, s.flags |= 4) : (e.flags &= -33, s.flags &= -5);
}
-function hu(e, s) {
+function Lu(e, s) {
return (!e || e && !e.pendingBranch) && s && !s.persisted;
}
-function Ga(e, s, o = !1) {
+function sl(e, s, o = !1) {
const n = e.children, l = s.children;
- if (Ue(n) && Ue(l))
- for (let i = 0; i < n.length; i++) {
- const r = n[i];
- let u = l[i];
- u.shapeFlag & 1 && !u.dynamicChildren && ((u.patchFlag <= 0 || u.patchFlag === 32) && (u = l[i] = Ls(l[i]), u.el = r.el), !o && u.patchFlag !== -2 && Ga(r, u)), u.type === Bn && // avoid cached text nodes retaining detached dom nodes
- u.patchFlag !== -1 && (u.el = r.el), u.type === _t && !u.el && (u.el = r.el);
+ if (Be(n) && Be(l))
+ for (let r = 0; r < n.length; r++) {
+ const c = n[r];
+ let u = l[r];
+ u.shapeFlag & 1 && !u.dynamicChildren && ((u.patchFlag <= 0 || u.patchFlag === 32) && (u = l[r] = Us(l[r]), u.el = c.el), !o && u.patchFlag !== -2 && sl(c, u)), u.type === Zn && // avoid cached text nodes retaining detached dom nodes
+ u.patchFlag !== -1 && (u.el = c.el), u.type === bt && !u.el && (u.el = c.el);
}
}
-function yu(e) {
+function Au(e) {
const s = e.slice(), o = [0];
- let n, l, i, r, u;
+ let n, l, r, c, u;
const d = e.length;
for (n = 0; n < d; n++) {
const m = e[n];
@@ -3633,60 +3633,60 @@ function yu(e) {
s[n] = l, o.push(n);
continue;
}
- for (i = 0, r = o.length - 1; i < r; )
- u = i + r >> 1, e[o[u]] < m ? i = u + 1 : r = u;
- m < e[o[i]] && (i > 0 && (s[n] = o[i - 1]), o[i] = n);
+ for (r = 0, c = o.length - 1; r < c; )
+ u = r + c >> 1, e[o[u]] < m ? r = u + 1 : c = u;
+ m < e[o[r]] && (r > 0 && (s[n] = o[r - 1]), o[r] = n);
}
}
- for (i = o.length, r = o[i - 1]; i-- > 0; )
- o[i] = r, r = s[r];
+ for (r = o.length, c = o[r - 1]; r-- > 0; )
+ o[r] = c, c = s[c];
return o;
}
-function er(e) {
+function fr(e) {
const s = e.subTree.component;
if (s)
- return s.asyncDep && !s.asyncResolved ? s : er(s);
+ return s.asyncDep && !s.asyncResolved ? s : fr(s);
}
-function bl(e) {
+function Tl(e) {
if (e)
for (let s = 0; s < e.length; s++)
e[s].flags |= 8;
}
-const tr = (e) => e.__isSuspense;
-function wu(e, s) {
- s && s.pendingBranch ? Ue(e) ? s.effects.push(...e) : s.effects.push(e) : Tc(e);
+const mr = (e) => e.__isSuspense;
+function Ou(e, s) {
+ s && s.pendingBranch ? Be(e) ? s.effects.push(...e) : s.effects.push(e) : Hc(e);
}
-const j = Symbol.for("v-fgt"), Bn = Symbol.for("v-txt"), _t = Symbol.for("v-cmt"), ea = Symbol.for("v-stc"), Uo = [];
-let At = null;
+const H = Symbol.for("v-fgt"), Zn = Symbol.for("v-txt"), bt = Symbol.for("v-cmt"), fa = Symbol.for("v-stc"), Ho = [];
+let Ut = null;
function a(e = !1) {
- Uo.push(At = e ? null : []);
+ Ho.push(Ut = e ? null : []);
}
-function bu() {
- Uo.pop(), At = Uo[Uo.length - 1] || null;
+function Nu() {
+ Ho.pop(), Ut = Ho[Ho.length - 1] || null;
}
-let Ho = 1;
-function xn(e, s = !1) {
- Ho += e, e < 0 && At && s && (At.hasOnce = !0);
+let tn = 1;
+function Un(e, s = !1) {
+ tn += e, e < 0 && Ut && s && (Ut.hasOnce = !0);
}
-function sr(e) {
- return e.dynamicChildren = Ho > 0 ? At || ro : null, bu(), Ho > 0 && At && At.push(e), e;
+function vr(e) {
+ return e.dynamicChildren = tn > 0 ? Ut || po : null, Nu(), tn > 0 && Ut && Ut.push(e), e;
}
-function c(e, s, o, n, l, i) {
- return sr(
+function i(e, s, o, n, l, r) {
+ return vr(
t(
e,
s,
o,
n,
l,
- i,
+ r,
!0
)
);
}
-function R(e, s, o, n, l) {
- return sr(
- C(
+function M(e, s, o, n, l) {
+ return vr(
+ x(
e,
s,
o,
@@ -3696,26 +3696,26 @@ function R(e, s, o, n, l) {
)
);
}
-function Ko(e) {
+function sn(e) {
return e ? e.__v_isVNode === !0 : !1;
}
-function Ys(e, s) {
+function Zs(e, s) {
return e.type === s.type && e.key === s.key;
}
-const or = ({ key: e }) => e ?? null, pn = ({
+const pr = ({ key: e }) => e ?? null, En = ({
ref: e,
ref_key: s,
ref_for: o
-}) => (typeof e == "number" && (e = "" + e), e != null ? ut(e) || $t(e) || Be(e) ? { i: yt, r: e, k: s, f: !!o } : e : null);
-function t(e, s = null, o = null, n = 0, l = null, i = e === j ? 0 : 1, r = !1, u = !1) {
+}) => (typeof e == "number" && (e = "" + e), e != null ? ut(e) || Ct(e) || Ge(e) ? { i: wt, r: e, k: s, f: !!o } : e : null);
+function t(e, s = null, o = null, n = 0, l = null, r = e === H ? 0 : 1, c = !1, u = !1) {
const d = {
__v_isVNode: !0,
__v_skip: !0,
type: e,
props: s,
- key: s && or(s),
- ref: s && pn(s),
- scopeId: Ci,
+ key: s && pr(s),
+ ref: s && En(s),
+ scopeId: Oi,
slotScopeIds: null,
children: o,
component: null,
@@ -3730,67 +3730,67 @@ function t(e, s = null, o = null, n = 0, l = null, i = e === j ? 0 : 1, r = !1,
targetStart: null,
targetAnchor: null,
staticCount: 0,
- shapeFlag: i,
+ shapeFlag: r,
patchFlag: n,
dynamicProps: l,
dynamicChildren: null,
appContext: null,
- ctx: yt
+ ctx: wt
};
- return u ? (ja(d, o), i & 128 && e.normalize(d)) : o && (d.shapeFlag |= ut(o) ? 8 : 16), Ho > 0 && // avoid a block node from tracking itself
- !r && // has current parent block
- At && // presence of a patch flag indicates this node needs patching on updates.
+ return u ? (ol(d, o), r & 128 && e.normalize(d)) : o && (d.shapeFlag |= ut(o) ? 8 : 16), tn > 0 && // avoid a block node from tracking itself
+ !c && // has current parent block
+ Ut && // presence of a patch flag indicates this node needs patching on updates.
// component nodes also should always be patched, because even if the
// component doesn't need to update, it needs to persist the instance on to
// the next vnode so that it can be properly unmounted later.
- (d.patchFlag > 0 || i & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
+ (d.patchFlag > 0 || r & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
// vnode should not be considered dynamic due to handler caching.
- d.patchFlag !== 32 && At.push(d), d;
+ d.patchFlag !== 32 && Ut.push(d), d;
}
-const C = _u;
-function _u(e, s = null, o = null, n = 0, l = null, i = !1) {
- if ((!e || e === Ui) && (e = _t), Ko(e)) {
- const u = Ns(
+const x = Uu;
+function Uu(e, s = null, o = null, n = 0, l = null, r = !1) {
+ if ((!e || e === Ji) && (e = bt), sn(e)) {
+ const u = Fs(
e,
s,
!0
/* mergeRef: true */
);
- return o && ja(u, o), Ho > 0 && !i && At && (u.shapeFlag & 6 ? At[At.indexOf(e)] = u : At.push(u)), u.patchFlag = -2, u;
+ return o && ol(u, o), tn > 0 && !r && Ut && (u.shapeFlag & 6 ? Ut[Ut.indexOf(e)] = u : Ut.push(u)), u.patchFlag = -2, u;
}
- if (Mu(e) && (e = e.__vccOpts), s) {
- s = ku(s);
+ if (Yu(e) && (e = e.__vccOpts), s) {
+ s = zu(s);
let { class: u, style: d } = s;
- u && !ut(u) && (s.class = Se(u)), tt(d) && (Ua(d) && !Ue(d) && (d = pt({}, d)), s.style = Gt(d));
+ u && !ut(u) && (s.class = Se(u)), ot(d) && (Ja(d) && !Be(d) && (d = pt({}, d)), s.style = Ft(d));
}
- const r = ut(e) ? 1 : tr(e) ? 128 : Si(e) ? 64 : tt(e) ? 4 : Be(e) ? 2 : 0;
+ const c = ut(e) ? 1 : mr(e) ? 128 : Ui(e) ? 64 : ot(e) ? 4 : Ge(e) ? 2 : 0;
return t(
e,
s,
o,
n,
l,
+ c,
r,
- i,
!0
);
}
-function ku(e) {
- return e ? Ua(e) || qi(e) ? pt({}, e) : e : null;
+function zu(e) {
+ return e ? Ja(e) || lr(e) ? pt({}, e) : e : null;
}
-function Ns(e, s, o = !1, n = !1) {
- const { props: l, ref: i, patchFlag: r, children: u, transition: d } = e, m = s ? $u(l || {}, s) : l, v = {
+function Fs(e, s, o = !1, n = !1) {
+ const { props: l, ref: r, patchFlag: c, children: u, transition: d } = e, m = s ? Fu(l || {}, s) : l, v = {
__v_isVNode: !0,
__v_skip: !0,
type: e.type,
props: m,
- key: m && or(m),
+ key: m && pr(m),
ref: s && s.ref ? (
// #2078 in the case of
// if the vnode itself already has a ref, cloneVNode will need to merge
// the refs so the single vnode can be set on multiple refs
- o && i ? Ue(i) ? i.concat(pn(s)) : [i, pn(s)] : pn(s)
- ) : i,
+ o && r ? Be(r) ? r.concat(En(s)) : [r, En(s)] : En(s)
+ ) : r,
scopeId: e.scopeId,
slotScopeIds: e.slotScopeIds,
children: u,
@@ -3803,7 +3803,7 @@ function Ns(e, s, o = !1, n = !1) {
// existing patch flag to be reliable and need to add the FULL_PROPS flag.
// note: preserve flag for fragments since they use the flag for children
// fast paths only.
- patchFlag: s && e.type !== j ? r === -1 ? 16 : r | 16 : r,
+ patchFlag: s && e.type !== H ? c === -1 ? 16 : c | 16 : c,
dynamicProps: e.dynamicProps,
dynamicChildren: e.dynamicChildren,
appContext: e.appContext,
@@ -3815,57 +3815,57 @@ function Ns(e, s, o = !1, n = !1) {
// they will simply be overwritten.
component: e.component,
suspense: e.suspense,
- ssContent: e.ssContent && Ns(e.ssContent),
- ssFallback: e.ssFallback && Ns(e.ssFallback),
+ ssContent: e.ssContent && Fs(e.ssContent),
+ ssFallback: e.ssFallback && Fs(e.ssFallback),
placeholder: e.placeholder,
el: e.el,
anchor: e.anchor,
ctx: e.ctx,
ce: e.ce
};
- return d && n && Zs(
+ return d && n && oo(
v,
d.clone(v)
), v;
}
-function b(e = " ", s = 0) {
- return C(Bn, null, e, s);
+function $(e = " ", s = 0) {
+ return x(Zn, null, e, s);
}
function y(e = "", s = !1) {
- return s ? (a(), R(_t, null, e)) : C(_t, null, e);
+ return s ? (a(), M(bt, null, e)) : x(bt, null, e);
}
-function fs(e) {
- return e == null || typeof e == "boolean" ? C(_t) : Ue(e) ? C(
- j,
+function ps(e) {
+ return e == null || typeof e == "boolean" ? x(bt) : Be(e) ? x(
+ H,
null,
// #3666, avoid reference pollution when reusing vnode
e.slice()
- ) : Ko(e) ? Ls(e) : C(Bn, null, String(e));
+ ) : sn(e) ? Us(e) : x(Zn, null, String(e));
}
-function Ls(e) {
- return e.el === null && e.patchFlag !== -1 || e.memo ? e : Ns(e);
+function Us(e) {
+ return e.el === null && e.patchFlag !== -1 || e.memo ? e : Fs(e);
}
-function ja(e, s) {
+function ol(e, s) {
let o = 0;
const { shapeFlag: n } = e;
if (s == null)
s = null;
- else if (Ue(s))
+ else if (Be(s))
o = 16;
else if (typeof s == "object")
if (n & 65) {
const l = s.default;
- l && (l._c && (l._d = !1), ja(e, l()), l._c && (l._d = !0));
+ l && (l._c && (l._d = !1), ol(e, l()), l._c && (l._d = !0));
return;
} else {
o = 32;
const l = s._;
- !l && !qi(s) ? s._ctx = yt : l === 3 && yt && (yt.slots._ === 1 ? s._ = 1 : (s._ = 2, e.patchFlag |= 1024));
+ !l && !lr(s) ? s._ctx = wt : l === 3 && wt && (wt.slots._ === 1 ? s._ = 1 : (s._ = 2, e.patchFlag |= 1024));
}
- else Be(s) ? (s = { default: s, _ctx: yt }, o = 32) : (s = String(s), n & 64 ? (o = 16, s = [b(s)]) : o = 8);
+ else Ge(s) ? (s = { default: s, _ctx: wt }, o = 32) : (s = String(s), n & 64 ? (o = 16, s = [$(s)]) : o = 8);
e.children = s, e.shapeFlag |= o;
}
-function $u(...e) {
+function Fu(...e) {
const s = {};
for (let o = 0; o < e.length; o++) {
const n = e[o];
@@ -3873,25 +3873,25 @@ function $u(...e) {
if (l === "class")
s.class !== n.class && (s.class = Se([s.class, n.class]));
else if (l === "style")
- s.style = Gt([s.style, n.style]);
- else if (Rn(l)) {
- const i = s[l], r = n[l];
- r && i !== r && !(Ue(i) && i.includes(r)) && (s[l] = i ? [].concat(i, r) : r);
+ s.style = Ft([s.style, n.style]);
+ else if (Wn(l)) {
+ const r = s[l], c = n[l];
+ c && r !== c && !(Be(r) && r.includes(c)) && (s[l] = r ? [].concat(r, c) : c);
} else l !== "" && (s[l] = n[l]);
}
return s;
}
-function is(e, s, o, n = null) {
- ts(e, s, 7, [
+function us(e, s, o, n = null) {
+ os(e, s, 7, [
o,
n
]);
}
-const Cu = Vi();
-let xu = 0;
-function Su(e, s, o) {
- const n = e.type, l = (s ? s.appContext : e.appContext) || Cu, i = {
- uid: xu++,
+const Bu = er();
+let Vu = 0;
+function Wu(e, s, o) {
+ const n = e.type, l = (s ? s.appContext : e.appContext) || Bu, r = {
+ uid: Vu++,
vnode: e,
type: n,
parent: s,
@@ -3905,7 +3905,7 @@ function Su(e, s, o) {
update: null,
// will be set synchronously right after creation
job: null,
- scope: new Qr(
+ scope: new pc(
!0
/* detached */
),
@@ -3922,24 +3922,24 @@ function Su(e, s, o) {
components: null,
directives: null,
// resolved props and emits options
- propsOptions: Ji(n, l),
- emitsOptions: ji(n, l),
+ propsOptions: rr(n, l),
+ emitsOptions: or(n, l),
// emit
emit: null,
// to be set immediately
emitted: null,
// props default value
- propsDefaults: st,
+ propsDefaults: nt,
// inheritAttrs
inheritAttrs: n.inheritAttrs,
// state
- ctx: st,
- data: st,
- props: st,
- attrs: st,
- slots: st,
- refs: st,
- setupState: st,
+ ctx: nt,
+ data: nt,
+ props: nt,
+ attrs: nt,
+ slots: nt,
+ refs: nt,
+ setupState: nt,
setupContext: null,
// suspense related
suspense: o,
@@ -3966,52 +3966,52 @@ function Su(e, s, o) {
ec: null,
sp: null
};
- return i.ctx = { _: i }, i.root = s ? s.root : i, i.emit = ou.bind(null, i), e.ce && e.ce(i), i;
+ return r.ctx = { _: r }, r.root = s ? s.root : r, r.emit = ku.bind(null, r), e.ce && e.ce(r), r;
}
-let kt = null;
-const Ha = () => kt || yt;
-let Sn, ba;
+let $t = null;
+const nl = () => $t || wt;
+let zn, Pa;
{
- const e = On(), s = (o, n) => {
+ const e = Kn(), s = (o, n) => {
let l;
- return (l = e[o]) || (l = e[o] = []), l.push(n), (i) => {
- l.length > 1 ? l.forEach((r) => r(i)) : l[0](i);
+ return (l = e[o]) || (l = e[o] = []), l.push(n), (r) => {
+ l.length > 1 ? l.forEach((c) => c(r)) : l[0](r);
};
};
- Sn = s(
+ zn = s(
"__VUE_INSTANCE_SETTERS__",
- (o) => kt = o
- ), ba = s(
+ (o) => $t = o
+ ), Pa = s(
"__VUE_SSR_SETTERS__",
- (o) => qo = o
+ (o) => on = o
);
}
-const Zo = (e) => {
- const s = kt;
- return Sn(e), e.scope.on(), () => {
- e.scope.off(), Sn(s);
+const rn = (e) => {
+ const s = $t;
+ return zn(e), e.scope.on(), () => {
+ e.scope.off(), zn(s);
};
-}, _l = () => {
- kt && kt.scope.off(), Sn(null);
+}, Rl = () => {
+ $t && $t.scope.off(), zn(null);
};
-function nr(e) {
+function gr(e) {
return e.vnode.shapeFlag & 4;
}
-let qo = !1;
-function Iu(e, s = !1, o = !1) {
- s && ba(s);
- const { props: n, children: l } = e.vnode, i = nr(e);
- cu(e, n, i, s), mu(e, l, o || s);
- const r = i ? Eu(e, s) : void 0;
- return s && ba(!1), r;
+let on = !1;
+function Gu(e, s = !1, o = !1) {
+ s && Pa(s);
+ const { props: n, children: l } = e.vnode, r = gr(e);
+ Su(e, n, r, s), Ru(e, l, o || s);
+ const c = r ? ju(e, s) : void 0;
+ return s && Pa(!1), c;
}
-function Eu(e, s) {
+function ju(e, s) {
const o = e.type;
- e.accessCache = /* @__PURE__ */ Object.create(null), e.proxy = new Proxy(e.ctx, Gc);
+ e.accessCache = /* @__PURE__ */ Object.create(null), e.proxy = new Proxy(e.ctx, iu);
const { setup: n } = o;
if (n) {
- $s();
- const l = e.setupContext = n.length > 1 ? Pu(e) : null, i = Zo(e), r = Xo(
+ Es();
+ const l = e.setupContext = n.length > 1 ? Ku(e) : null, r = rn(e), c = ln(
n,
e,
0,
@@ -4019,97 +4019,97 @@ function Eu(e, s) {
e.props,
l
]
- ), u = Ql(r);
- if (Cs(), i(), (u || e.sp) && !fo(e) && Li(e), u) {
- if (r.then(_l, _l), s)
- return r.then((d) => {
- kl(e, d);
+ ), u = ui(c);
+ if (Ts(), r(), (u || e.sp) && !yo(e) && Hi(e), u) {
+ if (c.then(Rl, Rl), s)
+ return c.then((d) => {
+ Pl(e, d);
}).catch((d) => {
- Nn(d, e, 0);
+ Yn(d, e, 0);
});
- e.asyncDep = r;
+ e.asyncDep = c;
} else
- kl(e, r);
+ Pl(e, c);
} else
- ar(e);
+ hr(e);
}
-function kl(e, s, o) {
- Be(s) ? e.type.__ssrInlineRender ? e.ssrRender = s : e.render = s : tt(s) && (e.setupState = wi(s)), ar(e);
+function Pl(e, s, o) {
+ Ge(s) ? e.type.__ssrInlineRender ? e.ssrRender = s : e.render = s : ot(s) && (e.setupState = Pi(s)), hr(e);
}
-function ar(e, s, o) {
+function hr(e, s, o) {
const n = e.type;
- e.render || (e.render = n.render || ms);
+ e.render || (e.render = n.render || gs);
{
- const l = Zo(e);
- $s();
+ const l = rn(e);
+ Es();
try {
- jc(e);
+ ru(e);
} finally {
- Cs(), l();
+ Ts(), l();
}
}
}
-const Tu = {
+const Hu = {
get(e, s) {
- return bt(e, "get", ""), e[s];
+ return _t(e, "get", ""), e[s];
}
};
-function Pu(e) {
+function Ku(e) {
const s = (o) => {
e.exposed = o || {};
};
return {
- attrs: new Proxy(e.attrs, Tu),
+ attrs: new Proxy(e.attrs, Hu),
slots: e.slots,
emit: e.emit,
expose: s
};
}
-function Vn(e) {
- return e.exposed ? e.exposeProxy || (e.exposeProxy = new Proxy(wi(wc(e.exposed)), {
+function ea(e) {
+ return e.exposed ? e.exposeProxy || (e.exposeProxy = new Proxy(Pi(Oc(e.exposed)), {
get(s, o) {
if (o in s)
return s[o];
- if (o in No)
- return No[o](e);
+ if (o in jo)
+ return jo[o](e);
},
has(s, o) {
- return o in s || o in No;
+ return o in s || o in jo;
}
})) : e.proxy;
}
-function Ru(e, s = !0) {
- return Be(e) ? e.displayName || e.name : e.name || s && e.__name;
+function qu(e, s = !0) {
+ return Ge(e) ? e.displayName || e.name : e.name || s && e.__name;
}
-function Mu(e) {
- return Be(e) && "__vccOpts" in e;
+function Yu(e) {
+ return Ge(e) && "__vccOpts" in e;
}
-const F = (e, s) => Cc(e, s, qo);
-function Wn(e, s, o) {
+const N = (e, s) => Bc(e, s, on);
+function cn(e, s, o) {
try {
- xn(-1);
+ Un(-1);
const n = arguments.length;
- return n === 2 ? tt(s) && !Ue(s) ? Ko(s) ? C(e, null, [s]) : C(e, s) : C(e, null, s) : (n > 3 ? o = Array.prototype.slice.call(arguments, 2) : n === 3 && Ko(o) && (o = [o]), C(e, s, o));
+ return n === 2 ? ot(s) && !Be(s) ? sn(s) ? x(e, null, [s]) : x(e, s) : x(e, null, s) : (n > 3 ? o = Array.prototype.slice.call(arguments, 2) : n === 3 && sn(o) && (o = [o]), x(e, s, o));
} finally {
- xn(1);
+ Un(1);
}
}
-const Du = "3.5.25";
+const Ju = "3.5.25";
/**
* @vue/runtime-dom v3.5.25
* (c) 2018-present Yuxi (Evan) You and Vue contributors
* @license MIT
**/
-let _a;
-const $l = typeof window < "u" && window.trustedTypes;
-if ($l)
+let Ma;
+const Ml = typeof window < "u" && window.trustedTypes;
+if (Ml)
try {
- _a = /* @__PURE__ */ $l.createPolicy("vue", {
+ Ma = /* @__PURE__ */ Ml.createPolicy("vue", {
createHTML: (e) => e
});
} catch {
}
-const lr = _a ? (e) => _a.createHTML(e) : (e) => e, Lu = "http://www.w3.org/2000/svg", Ou = "http://www.w3.org/1998/Math/MathML", ys = typeof document < "u" ? document : null, Cl = ys && /* @__PURE__ */ ys.createElement("template"), Au = {
+const yr = Ma ? (e) => Ma.createHTML(e) : (e) => e, Qu = "http://www.w3.org/2000/svg", Xu = "http://www.w3.org/1998/Math/MathML", $s = typeof document < "u" ? document : null, Dl = $s && /* @__PURE__ */ $s.createElement("template"), Zu = {
insert: (e, s, o) => {
s.insertBefore(e, o || null);
},
@@ -4118,11 +4118,11 @@ const lr = _a ? (e) => _a.createHTML(e) : (e) => e, Lu = "http://www.w3.org/2000
s && s.removeChild(e);
},
createElement: (e, s, o, n) => {
- const l = s === "svg" ? ys.createElementNS(Lu, e) : s === "mathml" ? ys.createElementNS(Ou, e) : o ? ys.createElement(e, { is: o }) : ys.createElement(e);
+ const l = s === "svg" ? $s.createElementNS(Qu, e) : s === "mathml" ? $s.createElementNS(Xu, e) : o ? $s.createElement(e, { is: o }) : $s.createElement(e);
return e === "select" && n && n.multiple != null && l.setAttribute("multiple", n.multiple), l;
},
- createText: (e) => ys.createTextNode(e),
- createComment: (e) => ys.createComment(e),
+ createText: (e) => $s.createTextNode(e),
+ createComment: (e) => $s.createComment(e),
setText: (e, s) => {
e.nodeValue = s;
},
@@ -4131,7 +4131,7 @@ const lr = _a ? (e) => _a.createHTML(e) : (e) => e, Lu = "http://www.w3.org/2000
},
parentNode: (e) => e.parentNode,
nextSibling: (e) => e.nextSibling,
- querySelector: (e) => ys.querySelector(e),
+ querySelector: (e) => $s.querySelector(e),
setScopeId(e, s) {
e.setAttribute(s, "");
},
@@ -4139,16 +4139,16 @@ const lr = _a ? (e) => _a.createHTML(e) : (e) => e, Lu = "http://www.w3.org/2000
// Reason: innerHTML.
// Static content here can only come from compiled templates.
// As long as the user only uses trusted templates, this is safe.
- insertStaticContent(e, s, o, n, l, i) {
- const r = o ? o.previousSibling : s.lastChild;
- if (l && (l === i || l.nextSibling))
- for (; s.insertBefore(l.cloneNode(!0), o), !(l === i || !(l = l.nextSibling)); )
+ insertStaticContent(e, s, o, n, l, r) {
+ const c = o ? o.previousSibling : s.lastChild;
+ if (l && (l === r || l.nextSibling))
+ for (; s.insertBefore(l.cloneNode(!0), o), !(l === r || !(l = l.nextSibling)); )
;
else {
- Cl.innerHTML = lr(
+ Dl.innerHTML = yr(
n === "svg" ? `` : n === "mathml" ? `` : e
);
- const u = Cl.content;
+ const u = Dl.content;
if (n === "svg" || n === "mathml") {
const d = u.firstChild;
for (; d.firstChild; )
@@ -4159,12 +4159,12 @@ const lr = _a ? (e) => _a.createHTML(e) : (e) => e, Lu = "http://www.w3.org/2000
}
return [
// first
- r ? r.nextSibling : s.firstChild,
+ c ? c.nextSibling : s.firstChild,
// last
o ? o.previousSibling : s.lastChild
];
}
-}, Ps = "transition", So = "animation", go = Symbol("_vtc"), ir = {
+}, Ls = "transition", Mo = "animation", bo = Symbol("_vtc"), wr = {
name: String,
type: String,
css: {
@@ -4181,227 +4181,227 @@ const lr = _a ? (e) => _a.createHTML(e) : (e) => e, Lu = "http://www.w3.org/2000
leaveFromClass: String,
leaveActiveClass: String,
leaveToClass: String
-}, rr = /* @__PURE__ */ pt(
+}, kr = /* @__PURE__ */ pt(
{},
- Pi,
- ir
-), Nu = (e) => (e.displayName = "Transition", e.props = rr, e), Uu = /* @__PURE__ */ Nu(
- (e, { slots: s }) => Wn(Mc, cr(e), s)
-), Hs = (e, s = []) => {
- Ue(e) ? e.forEach((o) => o(...s)) : e && e(...s);
-}, xl = (e) => e ? Ue(e) ? e.some((s) => s.length > 1) : e.length > 1 : !1;
-function cr(e) {
+ Vi,
+ wr
+), ed = (e) => (e.displayName = "Transition", e.props = kr, e), td = /* @__PURE__ */ ed(
+ (e, { slots: s }) => cn(Yc, _r(e), s)
+), Js = (e, s = []) => {
+ Be(e) ? e.forEach((o) => o(...s)) : e && e(...s);
+}, Ll = (e) => e ? Be(e) ? e.some((s) => s.length > 1) : e.length > 1 : !1;
+function _r(e) {
const s = {};
- for (const Y in e)
- Y in ir || (s[Y] = e[Y]);
+ for (const W in e)
+ W in wr || (s[W] = e[W]);
if (e.css === !1)
return s;
const {
name: o = "v",
type: n,
duration: l,
- enterFromClass: i = `${o}-enter-from`,
- enterActiveClass: r = `${o}-enter-active`,
+ enterFromClass: r = `${o}-enter-from`,
+ enterActiveClass: c = `${o}-enter-active`,
enterToClass: u = `${o}-enter-to`,
- appearFromClass: d = i,
- appearActiveClass: m = r,
+ appearFromClass: d = r,
+ appearActiveClass: m = c,
appearToClass: v = u,
- leaveFromClass: h = `${o}-leave-from`,
+ leaveFromClass: g = `${o}-leave-from`,
leaveActiveClass: w = `${o}-leave-active`,
leaveToClass: p = `${o}-leave-to`
- } = e, _ = zu(l), S = _ && _[0], $ = _ && _[1], {
- onBeforeEnter: P,
- onEnter: O,
- onEnterCancelled: T,
- onLeave: x,
- onLeaveCancelled: q,
- onBeforeAppear: B = P,
- onAppear: A = O,
- onAppearCancelled: I = T
- } = s, E = (Y, H, te, Q) => {
- Y._enterCancelled = Q, Rs(Y, H ? v : u), Rs(Y, H ? m : r), te && te();
- }, L = (Y, H) => {
- Y._isLeaving = !1, Rs(Y, h), Rs(Y, p), Rs(Y, w), H && H();
- }, re = (Y) => (H, te) => {
- const Q = Y ? A : O, N = () => E(H, Y, te);
- Hs(Q, [H, N]), Sl(() => {
- Rs(H, Y ? d : i), cs(H, Y ? v : u), xl(Q) || Il(H, n, S, N);
+ } = e, k = sd(l), C = k && k[0], b = k && k[1], {
+ onBeforeEnter: T,
+ onEnter: D,
+ onEnterCancelled: P,
+ onLeave: E,
+ onLeaveCancelled: U,
+ onBeforeAppear: B = T,
+ onAppear: V = D,
+ onAppearCancelled: S = P
+ } = s, I = (W, A, j, X) => {
+ W._enterCancelled = X, As(W, A ? v : u), As(W, A ? m : c), j && j();
+ }, L = (W, A) => {
+ W._isLeaving = !1, As(W, g), As(W, p), As(W, w), A && A();
+ }, Z = (W) => (A, j) => {
+ const X = W ? V : D, z = () => I(A, W, j);
+ Js(X, [A, z]), Al(() => {
+ As(A, W ? d : r), fs(A, W ? v : u), Ll(X) || Ol(A, n, C, z);
});
};
return pt(s, {
- onBeforeEnter(Y) {
- Hs(P, [Y]), cs(Y, i), cs(Y, r);
+ onBeforeEnter(W) {
+ Js(T, [W]), fs(W, r), fs(W, c);
},
- onBeforeAppear(Y) {
- Hs(B, [Y]), cs(Y, d), cs(Y, m);
+ onBeforeAppear(W) {
+ Js(B, [W]), fs(W, d), fs(W, m);
},
- onEnter: re(!1),
- onAppear: re(!0),
- onLeave(Y, H) {
- Y._isLeaving = !0;
- const te = () => L(Y, H);
- cs(Y, h), Y._enterCancelled ? (cs(Y, w), ka(Y)) : (ka(Y), cs(Y, w)), Sl(() => {
- Y._isLeaving && (Rs(Y, h), cs(Y, p), xl(x) || Il(Y, n, $, te));
- }), Hs(x, [Y, te]);
+ onEnter: Z(!1),
+ onAppear: Z(!0),
+ onLeave(W, A) {
+ W._isLeaving = !0;
+ const j = () => L(W, A);
+ fs(W, g), W._enterCancelled ? (fs(W, w), Da(W)) : (Da(W), fs(W, w)), Al(() => {
+ W._isLeaving && (As(W, g), fs(W, p), Ll(E) || Ol(W, n, b, j));
+ }), Js(E, [W, j]);
},
- onEnterCancelled(Y) {
- E(Y, !1, void 0, !0), Hs(T, [Y]);
+ onEnterCancelled(W) {
+ I(W, !1, void 0, !0), Js(P, [W]);
},
- onAppearCancelled(Y) {
- E(Y, !0, void 0, !0), Hs(I, [Y]);
+ onAppearCancelled(W) {
+ I(W, !0, void 0, !0), Js(S, [W]);
},
- onLeaveCancelled(Y) {
- L(Y), Hs(q, [Y]);
+ onLeaveCancelled(W) {
+ L(W), Js(U, [W]);
}
});
}
-function zu(e) {
+function sd(e) {
if (e == null)
return null;
- if (tt(e))
- return [ta(e.enter), ta(e.leave)];
+ if (ot(e))
+ return [ma(e.enter), ma(e.leave)];
{
- const s = ta(e);
+ const s = ma(e);
return [s, s];
}
}
-function ta(e) {
- return Gr(e);
+function ma(e) {
+ return ic(e);
}
-function cs(e, s) {
- s.split(/\s+/).forEach((o) => o && e.classList.add(o)), (e[go] || (e[go] = /* @__PURE__ */ new Set())).add(s);
+function fs(e, s) {
+ s.split(/\s+/).forEach((o) => o && e.classList.add(o)), (e[bo] || (e[bo] = /* @__PURE__ */ new Set())).add(s);
}
-function Rs(e, s) {
+function As(e, s) {
s.split(/\s+/).forEach((n) => n && e.classList.remove(n));
- const o = e[go];
- o && (o.delete(s), o.size || (e[go] = void 0));
+ const o = e[bo];
+ o && (o.delete(s), o.size || (e[bo] = void 0));
}
-function Sl(e) {
+function Al(e) {
requestAnimationFrame(() => {
requestAnimationFrame(e);
});
}
-let Fu = 0;
-function Il(e, s, o, n) {
- const l = e._endId = ++Fu, i = () => {
+let od = 0;
+function Ol(e, s, o, n) {
+ const l = e._endId = ++od, r = () => {
l === e._endId && n();
};
if (o != null)
- return setTimeout(i, o);
- const { type: r, timeout: u, propCount: d } = ur(e, s);
- if (!r)
+ return setTimeout(r, o);
+ const { type: c, timeout: u, propCount: d } = br(e, s);
+ if (!c)
return n();
- const m = r + "end";
+ const m = c + "end";
let v = 0;
- const h = () => {
- e.removeEventListener(m, w), i();
+ const g = () => {
+ e.removeEventListener(m, w), r();
}, w = (p) => {
- p.target === e && ++v >= d && h();
+ p.target === e && ++v >= d && g();
};
setTimeout(() => {
- v < d && h();
+ v < d && g();
}, u + 1), e.addEventListener(m, w);
}
-function ur(e, s) {
- const o = window.getComputedStyle(e), n = (_) => (o[_] || "").split(", "), l = n(`${Ps}Delay`), i = n(`${Ps}Duration`), r = El(l, i), u = n(`${So}Delay`), d = n(`${So}Duration`), m = El(u, d);
- let v = null, h = 0, w = 0;
- s === Ps ? r > 0 && (v = Ps, h = r, w = i.length) : s === So ? m > 0 && (v = So, h = m, w = d.length) : (h = Math.max(r, m), v = h > 0 ? r > m ? Ps : So : null, w = v ? v === Ps ? i.length : d.length : 0);
- const p = v === Ps && /\b(?:transform|all)(?:,|$)/.test(
- n(`${Ps}Property`).toString()
+function br(e, s) {
+ const o = window.getComputedStyle(e), n = (k) => (o[k] || "").split(", "), l = n(`${Ls}Delay`), r = n(`${Ls}Duration`), c = Nl(l, r), u = n(`${Mo}Delay`), d = n(`${Mo}Duration`), m = Nl(u, d);
+ let v = null, g = 0, w = 0;
+ s === Ls ? c > 0 && (v = Ls, g = c, w = r.length) : s === Mo ? m > 0 && (v = Mo, g = m, w = d.length) : (g = Math.max(c, m), v = g > 0 ? c > m ? Ls : Mo : null, w = v ? v === Ls ? r.length : d.length : 0);
+ const p = v === Ls && /\b(?:transform|all)(?:,|$)/.test(
+ n(`${Ls}Property`).toString()
);
return {
type: v,
- timeout: h,
+ timeout: g,
propCount: w,
hasTransform: p
};
}
-function El(e, s) {
+function Nl(e, s) {
for (; e.length < s.length; )
e = e.concat(e);
- return Math.max(...s.map((o, n) => Tl(o) + Tl(e[n])));
+ return Math.max(...s.map((o, n) => Ul(o) + Ul(e[n])));
}
-function Tl(e) {
+function Ul(e) {
return e === "auto" ? 0 : Number(e.slice(0, -1).replace(",", ".")) * 1e3;
}
-function ka(e) {
+function Da(e) {
return (e ? e.ownerDocument : document).body.offsetHeight;
}
-function Bu(e, s, o) {
- const n = e[go];
+function nd(e, s, o) {
+ const n = e[bo];
n && (s = (s ? [s, ...n] : [...n]).join(" ")), s == null ? e.removeAttribute("class") : o ? e.setAttribute("class", s) : e.className = s;
}
-const Pl = Symbol("_vod"), Vu = Symbol("_vsh"), Wu = Symbol(""), Gu = /(?:^|;)\s*display\s*:/;
-function ju(e, s, o) {
+const zl = Symbol("_vod"), ad = Symbol("_vsh"), ld = Symbol(""), id = /(?:^|;)\s*display\s*:/;
+function rd(e, s, o) {
const n = e.style, l = ut(o);
- let i = !1;
+ let r = !1;
if (o && !l) {
if (s)
if (ut(s))
- for (const r of s.split(";")) {
- const u = r.slice(0, r.indexOf(":")).trim();
- o[u] == null && gn(n, u, "");
+ for (const c of s.split(";")) {
+ const u = c.slice(0, c.indexOf(":")).trim();
+ o[u] == null && Tn(n, u, "");
}
else
- for (const r in s)
- o[r] == null && gn(n, r, "");
- for (const r in o)
- r === "display" && (i = !0), gn(n, r, o[r]);
+ for (const c in s)
+ o[c] == null && Tn(n, c, "");
+ for (const c in o)
+ c === "display" && (r = !0), Tn(n, c, o[c]);
} else if (l) {
if (s !== o) {
- const r = n[Wu];
- r && (o += ";" + r), n.cssText = o, i = Gu.test(o);
+ const c = n[ld];
+ c && (o += ";" + c), n.cssText = o, r = id.test(o);
}
} else s && e.removeAttribute("style");
- Pl in e && (e[Pl] = i ? n.display : "", e[Vu] && (n.display = "none"));
+ zl in e && (e[zl] = r ? n.display : "", e[ad] && (n.display = "none"));
}
-const Rl = /\s*!important$/;
-function gn(e, s, o) {
- if (Ue(o))
- o.forEach((n) => gn(e, s, n));
+const Fl = /\s*!important$/;
+function Tn(e, s, o) {
+ if (Be(o))
+ o.forEach((n) => Tn(e, s, n));
else if (o == null && (o = ""), s.startsWith("--"))
e.setProperty(s, o);
else {
- const n = Hu(e, s);
- Rl.test(o) ? e.setProperty(
- zs(n),
- o.replace(Rl, ""),
+ const n = cd(e, s);
+ Fl.test(o) ? e.setProperty(
+ Vs(n),
+ o.replace(Fl, ""),
"important"
) : e[n] = o;
}
}
-const Ml = ["Webkit", "Moz", "ms"], sa = {};
-function Hu(e, s) {
- const o = sa[s];
+const Bl = ["Webkit", "Moz", "ms"], va = {};
+function cd(e, s) {
+ const o = va[s];
if (o)
return o;
- let n = Wt(s);
+ let n = Kt(s);
if (n !== "filter" && n in e)
- return sa[s] = n;
- n = Dn(n);
- for (let l = 0; l < Ml.length; l++) {
- const i = Ml[l] + n;
- if (i in e)
- return sa[s] = i;
+ return va[s] = n;
+ n = jn(n);
+ for (let l = 0; l < Bl.length; l++) {
+ const r = Bl[l] + n;
+ if (r in e)
+ return va[s] = r;
}
return s;
}
-const Dl = "http://www.w3.org/1999/xlink";
-function Ll(e, s, o, n, l, i = Jr(s)) {
- n && s.startsWith("xlink:") ? o == null ? e.removeAttributeNS(Dl, s.slice(6, s.length)) : e.setAttributeNS(Dl, s, o) : o == null || i && !si(o) ? e.removeAttribute(s) : e.setAttribute(
+const Vl = "http://www.w3.org/1999/xlink";
+function Wl(e, s, o, n, l, r = mc(s)) {
+ n && s.startsWith("xlink:") ? o == null ? e.removeAttributeNS(Vl, s.slice(6, s.length)) : e.setAttributeNS(Vl, s, o) : o == null || r && !vi(o) ? e.removeAttribute(s) : e.setAttribute(
s,
- i ? "" : Zt(o) ? String(o) : o
+ r ? "" : ts(o) ? String(o) : o
);
}
-function Ol(e, s, o, n, l) {
+function Gl(e, s, o, n, l) {
if (s === "innerHTML" || s === "textContent") {
- o != null && (e[s] = s === "innerHTML" ? lr(o) : o);
+ o != null && (e[s] = s === "innerHTML" ? yr(o) : o);
return;
}
- const i = e.tagName;
- if (s === "value" && i !== "PROGRESS" && // custom elements may use _value internally
- !i.includes("-")) {
- const u = i === "OPTION" ? e.getAttribute("value") || "" : e.value, d = o == null ? (
+ const r = e.tagName;
+ if (s === "value" && r !== "PROGRESS" && // custom elements may use _value internally
+ !r.includes("-")) {
+ const u = r === "OPTION" ? e.getAttribute("value") || "" : e.value, d = o == null ? (
// #11647: value should be set as empty string for null and undefined,
// but should be set as 'on'.
e.type === "checkbox" ? "on" : ""
@@ -4409,69 +4409,69 @@ function Ol(e, s, o, n, l) {
(u !== d || !("_value" in e)) && (e.value = d), o == null && e.removeAttribute(s), e._value = o;
return;
}
- let r = !1;
+ let c = !1;
if (o === "" || o == null) {
const u = typeof e[s];
- u === "boolean" ? o = si(o) : o == null && u === "string" ? (o = "", r = !0) : u === "number" && (o = 0, r = !0);
+ u === "boolean" ? o = vi(o) : o == null && u === "string" ? (o = "", c = !0) : u === "number" && (o = 0, c = !0);
}
try {
e[s] = o;
} catch {
}
- r && e.removeAttribute(l || s);
+ c && e.removeAttribute(l || s);
}
-function ks(e, s, o, n) {
+function Is(e, s, o, n) {
e.addEventListener(s, o, n);
}
-function Ku(e, s, o, n) {
+function ud(e, s, o, n) {
e.removeEventListener(s, o, n);
}
-const Al = Symbol("_vei");
-function qu(e, s, o, n, l = null) {
- const i = e[Al] || (e[Al] = {}), r = i[s];
- if (n && r)
- r.value = n;
+const jl = Symbol("_vei");
+function dd(e, s, o, n, l = null) {
+ const r = e[jl] || (e[jl] = {}), c = r[s];
+ if (n && c)
+ c.value = n;
else {
- const [u, d] = Yu(s);
+ const [u, d] = fd(s);
if (n) {
- const m = i[s] = Qu(
+ const m = r[s] = pd(
n,
l
);
- ks(e, u, m, d);
- } else r && (Ku(e, u, r, d), i[s] = void 0);
+ Is(e, u, m, d);
+ } else c && (ud(e, u, c, d), r[s] = void 0);
}
}
-const Nl = /(?:Once|Passive|Capture)$/;
-function Yu(e) {
+const Hl = /(?:Once|Passive|Capture)$/;
+function fd(e) {
let s;
- if (Nl.test(e)) {
+ if (Hl.test(e)) {
s = {};
let n;
- for (; n = e.match(Nl); )
+ for (; n = e.match(Hl); )
e = e.slice(0, e.length - n[0].length), s[n[0].toLowerCase()] = !0;
}
- return [e[2] === ":" ? e.slice(3) : zs(e.slice(2)), s];
+ return [e[2] === ":" ? e.slice(3) : Vs(e.slice(2)), s];
}
-let oa = 0;
-const Ju = /* @__PURE__ */ Promise.resolve(), Xu = () => oa || (Ju.then(() => oa = 0), oa = Date.now());
-function Qu(e, s) {
+let pa = 0;
+const md = /* @__PURE__ */ Promise.resolve(), vd = () => pa || (md.then(() => pa = 0), pa = Date.now());
+function pd(e, s) {
const o = (n) => {
if (!n._vts)
n._vts = Date.now();
else if (n._vts <= o.attached)
return;
- ts(
- Zu(n, o.value),
+ os(
+ gd(n, o.value),
s,
5,
[n]
);
};
- return o.value = e, o.attached = Xu(), o;
+ return o.value = e, o.attached = vd(), o;
}
-function Zu(e, s) {
- if (Ue(s)) {
+function gd(e, s) {
+ if (Be(s)) {
const o = e.stopImmediatePropagation;
return e.stopImmediatePropagation = () => {
o.call(e), e._stopped = !0;
@@ -4481,14 +4481,14 @@ function Zu(e, s) {
} else
return s;
}
-const Ul = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && // lowercase letter
-e.charCodeAt(2) > 96 && e.charCodeAt(2) < 123, ed = (e, s, o, n, l, i) => {
- const r = l === "svg";
- s === "class" ? Bu(e, n, r) : s === "style" ? ju(e, o, n) : Rn(s) ? Ea(s) || qu(e, s, o, n, i) : (s[0] === "." ? (s = s.slice(1), !0) : s[0] === "^" ? (s = s.slice(1), !1) : td(e, s, n, r)) ? (Ol(e, s, n), !e.tagName.includes("-") && (s === "value" || s === "checked" || s === "selected") && Ll(e, s, n, r, i, s !== "value")) : /* #11081 force set props for possible async custom element */ e._isVueCE && (/[A-Z]/.test(s) || !ut(n)) ? Ol(e, Wt(s), n, i, s) : (s === "true-value" ? e._trueValue = n : s === "false-value" && (e._falseValue = n), Ll(e, s, n, r));
+const Kl = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && // lowercase letter
+e.charCodeAt(2) > 96 && e.charCodeAt(2) < 123, hd = (e, s, o, n, l, r) => {
+ const c = l === "svg";
+ s === "class" ? nd(e, n, c) : s === "style" ? rd(e, o, n) : Wn(s) ? Fa(s) || dd(e, s, o, n, r) : (s[0] === "." ? (s = s.slice(1), !0) : s[0] === "^" ? (s = s.slice(1), !1) : yd(e, s, n, c)) ? (Gl(e, s, n), !e.tagName.includes("-") && (s === "value" || s === "checked" || s === "selected") && Wl(e, s, n, c, r, s !== "value")) : /* #11081 force set props for possible async custom element */ e._isVueCE && (/[A-Z]/.test(s) || !ut(n)) ? Gl(e, Kt(s), n, r, s) : (s === "true-value" ? e._trueValue = n : s === "false-value" && (e._falseValue = n), Wl(e, s, n, c));
};
-function td(e, s, o, n) {
+function yd(e, s, o, n) {
if (n)
- return !!(s === "innerHTML" || s === "textContent" || s in e && Ul(s) && Be(o));
+ return !!(s === "innerHTML" || s === "textContent" || s in e && Kl(s) && Ge(o));
if (s === "spellcheck" || s === "draggable" || s === "translate" || s === "autocorrect" || s === "sandbox" && e.tagName === "IFRAME" || s === "form" || s === "list" && e.tagName === "INPUT" || s === "type" && e.tagName === "TEXTAREA")
return !1;
if (s === "width" || s === "height") {
@@ -4496,220 +4496,220 @@ function td(e, s, o, n) {
if (l === "IMG" || l === "VIDEO" || l === "CANVAS" || l === "SOURCE")
return !1;
}
- return Ul(s) && ut(o) ? !1 : s in e;
+ return Kl(s) && ut(o) ? !1 : s in e;
}
-const dr = /* @__PURE__ */ new WeakMap(), fr = /* @__PURE__ */ new WeakMap(), In = Symbol("_moveCb"), zl = Symbol("_enterCb"), sd = (e) => (delete e.props.mode, e), od = /* @__PURE__ */ sd({
+const $r = /* @__PURE__ */ new WeakMap(), Cr = /* @__PURE__ */ new WeakMap(), Fn = Symbol("_moveCb"), ql = Symbol("_enterCb"), wd = (e) => (delete e.props.mode, e), kd = /* @__PURE__ */ wd({
name: "TransitionGroup",
- props: /* @__PURE__ */ pt({}, rr, {
+ props: /* @__PURE__ */ pt({}, kr, {
tag: String,
moveClass: String
}),
setup(e, { slots: s }) {
- const o = Ha(), n = Ti();
- let l, i;
- return Ai(() => {
+ const o = nl(), n = Bi();
+ let l, r;
+ return qi(() => {
if (!l.length)
return;
- const r = e.moveClass || `${e.name || "v"}-move`;
- if (!rd(
+ const c = e.moveClass || `${e.name || "v"}-move`;
+ if (!xd(
l[0].el,
o.vnode.el,
- r
+ c
)) {
l = [];
return;
}
- l.forEach(ad), l.forEach(ld);
- const u = l.filter(id);
- ka(o.vnode.el), u.forEach((d) => {
+ l.forEach(bd), l.forEach($d);
+ const u = l.filter(Cd);
+ Da(o.vnode.el), u.forEach((d) => {
const m = d.el, v = m.style;
- cs(m, r), v.transform = v.webkitTransform = v.transitionDuration = "";
- const h = m[In] = (w) => {
- w && w.target !== m || (!w || w.propertyName.endsWith("transform")) && (m.removeEventListener("transitionend", h), m[In] = null, Rs(m, r));
+ fs(m, c), v.transform = v.webkitTransform = v.transitionDuration = "";
+ const g = m[Fn] = (w) => {
+ w && w.target !== m || (!w || w.propertyName.endsWith("transform")) && (m.removeEventListener("transitionend", g), m[Fn] = null, As(m, c));
};
- m.addEventListener("transitionend", h);
+ m.addEventListener("transitionend", g);
}), l = [];
}), () => {
- const r = Je(e), u = cr(r);
- let d = r.tag || j;
- if (l = [], i)
- for (let m = 0; m < i.length; m++) {
- const v = i[m];
- v.el && v.el instanceof Element && (l.push(v), Zs(
+ const c = Xe(e), u = _r(c);
+ let d = c.tag || H;
+ if (l = [], r)
+ for (let m = 0; m < r.length; m++) {
+ const v = r[m];
+ v.el && v.el instanceof Element && (l.push(v), oo(
v,
- jo(
+ en(
v,
u,
n,
o
)
- ), dr.set(v, {
+ ), $r.set(v, {
left: v.el.offsetLeft,
top: v.el.offsetTop
}));
}
- i = s.default ? Fa(s.default()) : [];
- for (let m = 0; m < i.length; m++) {
- const v = i[m];
- v.key != null && Zs(
+ r = s.default ? Xa(s.default()) : [];
+ for (let m = 0; m < r.length; m++) {
+ const v = r[m];
+ v.key != null && oo(
v,
- jo(v, u, n, o)
+ en(v, u, n, o)
);
}
- return C(d, null, i);
+ return x(d, null, r);
};
}
-}), nd = od;
-function ad(e) {
+}), _d = kd;
+function bd(e) {
const s = e.el;
- s[In] && s[In](), s[zl] && s[zl]();
+ s[Fn] && s[Fn](), s[ql] && s[ql]();
}
-function ld(e) {
- fr.set(e, {
+function $d(e) {
+ Cr.set(e, {
left: e.el.offsetLeft,
top: e.el.offsetTop
});
}
-function id(e) {
- const s = dr.get(e), o = fr.get(e), n = s.left - o.left, l = s.top - o.top;
+function Cd(e) {
+ const s = $r.get(e), o = Cr.get(e), n = s.left - o.left, l = s.top - o.top;
if (n || l) {
- const i = e.el.style;
- return i.transform = i.webkitTransform = `translate(${n}px,${l}px)`, i.transitionDuration = "0s", e;
+ const r = e.el.style;
+ return r.transform = r.webkitTransform = `translate(${n}px,${l}px)`, r.transitionDuration = "0s", e;
}
}
-function rd(e, s, o) {
- const n = e.cloneNode(), l = e[go];
+function xd(e, s, o) {
+ const n = e.cloneNode(), l = e[bo];
l && l.forEach((u) => {
u.split(/\s+/).forEach((d) => d && n.classList.remove(d));
}), o.split(/\s+/).forEach((u) => u && n.classList.add(u)), n.style.display = "none";
- const i = s.nodeType === 1 ? s : s.parentNode;
- i.appendChild(n);
- const { hasTransform: r } = ur(n);
- return i.removeChild(n), r;
+ const r = s.nodeType === 1 ? s : s.parentNode;
+ r.appendChild(n);
+ const { hasTransform: c } = br(n);
+ return r.removeChild(n), c;
}
-const Us = (e) => {
+const Bs = (e) => {
const s = e.props["onUpdate:modelValue"] || !1;
- return Ue(s) ? (o) => fn(s, o) : s;
+ return Be(s) ? (o) => xn(s, o) : s;
};
-function cd(e) {
+function Sd(e) {
e.target.composing = !0;
}
-function Fl(e) {
+function Yl(e) {
const s = e.target;
s.composing && (s.composing = !1, s.dispatchEvent(new Event("input")));
}
-const Vt = Symbol("_assign");
-function Bl(e, s, o) {
- return s && (e = e.trim()), o && (e = Ln(e)), e;
+const jt = Symbol("_assign");
+function Jl(e, s, o) {
+ return s && (e = e.trim()), o && (e = Hn(e)), e;
}
-const Nt = {
+const zt = {
created(e, { modifiers: { lazy: s, trim: o, number: n } }, l) {
- e[Vt] = Us(l);
- const i = n || l.props && l.props.type === "number";
- ks(e, s ? "change" : "input", (r) => {
- r.target.composing || e[Vt](Bl(e.value, o, i));
- }), (o || i) && ks(e, "change", () => {
- e.value = Bl(e.value, o, i);
- }), s || (ks(e, "compositionstart", cd), ks(e, "compositionend", Fl), ks(e, "change", Fl));
+ e[jt] = Bs(l);
+ const r = n || l.props && l.props.type === "number";
+ Is(e, s ? "change" : "input", (c) => {
+ c.target.composing || e[jt](Jl(e.value, o, r));
+ }), (o || r) && Is(e, "change", () => {
+ e.value = Jl(e.value, o, r);
+ }), s || (Is(e, "compositionstart", Sd), Is(e, "compositionend", Yl), Is(e, "change", Yl));
},
// set value on mounted so it's after min/max for type="range"
mounted(e, { value: s }) {
e.value = s ?? "";
},
- beforeUpdate(e, { value: s, oldValue: o, modifiers: { lazy: n, trim: l, number: i } }, r) {
- if (e[Vt] = Us(r), e.composing) return;
- const u = (i || e.type === "number") && !/^0\d/.test(e.value) ? Ln(e.value) : e.value, d = s ?? "";
+ beforeUpdate(e, { value: s, oldValue: o, modifiers: { lazy: n, trim: l, number: r } }, c) {
+ if (e[jt] = Bs(c), e.composing) return;
+ const u = (r || e.type === "number") && !/^0\d/.test(e.value) ? Hn(e.value) : e.value, d = s ?? "";
u !== d && (document.activeElement === e && e.type !== "range" && (n && s === o || l && e.value.trim() === d) || (e.value = d));
}
-}, Yo = {
+}, nn = {
// #4096 array checkboxes need to be deep traversed
deep: !0,
created(e, s, o) {
- e[Vt] = Us(o), ks(e, "change", () => {
- const n = e._modelValue, l = ho(e), i = e.checked, r = e[Vt];
- if (Ue(n)) {
- const u = Ra(n, l), d = u !== -1;
- if (i && !d)
- r(n.concat(l));
- else if (!i && d) {
+ e[jt] = Bs(o), Is(e, "change", () => {
+ const n = e._modelValue, l = $o(e), r = e.checked, c = e[jt];
+ if (Be(n)) {
+ const u = Wa(n, l), d = u !== -1;
+ if (r && !d)
+ c(n.concat(l));
+ else if (!r && d) {
const m = [...n];
- m.splice(u, 1), r(m);
+ m.splice(u, 1), c(m);
}
- } else if (yo(n)) {
+ } else if (Co(n)) {
const u = new Set(n);
- i ? u.add(l) : u.delete(l), r(u);
+ r ? u.add(l) : u.delete(l), c(u);
} else
- r(mr(e, i));
+ c(xr(e, r));
});
},
// set initial checked on mount to wait for true-value/false-value
- mounted: Vl,
+ mounted: Ql,
beforeUpdate(e, s, o) {
- e[Vt] = Us(o), Vl(e, s, o);
+ e[jt] = Bs(o), Ql(e, s, o);
}
};
-function Vl(e, { value: s, oldValue: o }, n) {
+function Ql(e, { value: s, oldValue: o }, n) {
e._modelValue = s;
let l;
- if (Ue(s))
- l = Ra(s, n.props.value) > -1;
- else if (yo(s))
+ if (Be(s))
+ l = Wa(s, n.props.value) > -1;
+ else if (Co(s))
l = s.has(n.props.value);
else {
if (s === o) return;
- l = Qs(s, mr(e, !0));
+ l = so(s, xr(e, !0));
}
e.checked !== l && (e.checked = l);
}
-const Yt = {
+const Zt = {
created(e, { value: s }, o) {
- e.checked = Qs(s, o.props.value), e[Vt] = Us(o), ks(e, "change", () => {
- e[Vt](ho(e));
+ e.checked = so(s, o.props.value), e[jt] = Bs(o), Is(e, "change", () => {
+ e[jt]($o(e));
});
},
beforeUpdate(e, { value: s, oldValue: o }, n) {
- e[Vt] = Us(n), s !== o && (e.checked = Qs(s, n.props.value));
+ e[jt] = Bs(n), s !== o && (e.checked = so(s, n.props.value));
}
-}, vs = {
+}, hs = {
//