diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cf33350..918e410 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -7,11 +7,6 @@ on: - main paths: - "pyproject.toml" - pull_request: - branches: - - main - types: - - closed permissions: contents: write # Needed for creating releases @@ -23,8 +18,7 @@ jobs: runs-on: ubuntu-latest if: | github.event.repository.fork == false && - github.repository_owner == 'comfygit-ai' && - (github.event_name == 'push' || github.event_name == 'workflow_dispatch' || github.event.pull_request.merged == true) + github.repository_owner == 'comfygit-ai' outputs: version: ${{ steps.version.outputs.version }} steps: diff --git a/frontend/src/components/ComfyGitPanel.vue b/frontend/src/components/ComfyGitPanel.vue index 4d18033..768bfa1 100644 --- a/frontend/src/components/ComfyGitPanel.vue +++ b/frontend/src/components/ComfyGitPanel.vue @@ -30,6 +30,16 @@ + + +
@@ -452,10 +462,12 @@ import SyncEnvironmentModal from './base/molecules/SyncEnvironmentModal.vue' import SocialButtons from './base/molecules/SocialButtons.vue' import FooterInfo from './base/atoms/FooterInfo.vue' import FirstTimeSetupWizard from './FirstTimeSetupWizard.vue' +import UpdateNoticeBanner from './UpdateNoticeBanner.vue' import { useComfyGitService } from '@/composables/useComfyGitService' import { useOrchestratorService } from '@/composables/useOrchestratorService' import { useDeployInstances } from '@/composables/useDeployInstances' -import type { ComfyGitStatus, CommitInfo, BranchInfo, EnvironmentInfo, SetupStatus, SetupState } from '@/types/comfygit' +import type { ComfyGitStatus, CommitInfo, BranchInfo, EnvironmentInfo, SetupStatus, SetupState, UpdateCheckResponse } from '@/types/comfygit' +import { dismissVersion, shouldShowUpdateNotice } from '@/utils/updateNotice' const props = defineProps<{ initialView?: string @@ -480,7 +492,9 @@ const { deleteEnvironment, syncEnvironmentManually, repairWorkflowModels, - getSetupStatus + getSetupStatus, + getUpdateCheck, + updateManager } = useComfyGitService() const orchestratorService = useOrchestratorService() @@ -512,6 +526,12 @@ const error = ref(null) const selectedCommit = ref(null) const showEnvironmentSelector = ref(false) +// Manager update notice state +const updateCheck = ref(null) +const updateNoticeHidden = ref(false) +const isUpdatingManager = ref(false) +const updateNoticeVisible = computed(() => !updateNoticeHidden.value && shouldShowUpdateNotice(updateCheck.value)) + // Ref to child components for triggering reloads const workflowsSectionRef = ref<{ loadWorkflows: (forceRefresh?: boolean) => Promise } | null>(null) const environmentsSectionRef = ref<{ loadEnvironments: () => Promise; openCreateModal: () => void } | null>(null) @@ -658,6 +678,83 @@ function handleToast(message: string, type: Toast['type']) { showToast(message, type) } +async function loadUpdateNotice() { + updateCheck.value = null + updateNoticeHidden.value = false + try { + updateCheck.value = await getUpdateCheck() + } catch { + // Silently fail - banner should not appear and panel load must not break. + } +} + +function openReleaseNotes() { + const url = updateCheck.value?.release_url + if (!url) return + try { + window.open(url, '_blank', 'noopener,noreferrer') + } catch { + // Ignore popup blockers + } +} + +function dismissUpdateNotice() { + const version = updateCheck.value?.latest_version + if (version) dismissVersion(version) + updateNoticeHidden.value = true +} + +async function handleUpdateManager() { + if (isUpdatingManager.value) return + isUpdatingManager.value = true + + const toastId = showToast('Updating comfygit-manager...', 'info', 0) + try { + const result = await updateManager() + removeToast(toastId) + + if (result.status !== 'success') { + showToast(result.message || 'Update failed', 'error') + if (result.manual_instructions) { + const details = result.manual_instructions + .split('\n') + .map(s => s.trim()) + .filter(Boolean) + confirmDialog.value = { + title: 'Manual Update Required', + message: 'Self-update failed. Follow these steps:', + details, + confirmLabel: 'OK', + cancelLabel: 'Close', + onConfirm: () => { + confirmDialog.value = null + } + } + } + return + } + + showToast(result.message || 'Update complete', 'success') + dismissUpdateNotice() + + if (result.restart_required) { + setRefreshFlag() + try { + // This will drop the connection; expected. + await window.app?.api?.fetchApi('/v2/manager/reboot') + } catch { + // Expected on restart + } + } + } catch (e) { + removeToast(toastId) + const msg = e instanceof Error ? e.message : 'Update failed' + showToast(msg, 'error') + } finally { + isUpdatingManager.value = false + } +} + const statusColor = computed(() => { if (!status.value) return 'neutral' const wf = status.value.workflows @@ -1357,7 +1454,10 @@ onMounted(async () => { console.warn('Setup status check failed, proceeding normally:', err) } - await refresh() + await Promise.all([ + refresh(), + loadUpdateNotice() + ]) }) diff --git a/frontend/src/components/CreateEnvironmentModal.vue b/frontend/src/components/CreateEnvironmentModal.vue index 1906c72..b50d803 100644 --- a/frontend/src/components/CreateEnvironmentModal.vue +++ b/frontend/src/components/CreateEnvironmentModal.vue @@ -11,14 +11,21 @@
- +
+ + ... + +
+
{{ nameError }}
+
Use letters, numbers, dots, hyphens, and underscores.
@@ -90,7 +97,7 @@ @@ -311,8 +413,15 @@ onUnmounted(() => { letter-spacing: var(--cg-letter-spacing-wide); } +.input-wrapper { + position: relative; + display: flex; + align-items: center; +} + .form-input, .form-select { + width: 100%; background: var(--cg-color-bg-primary); border: 1px solid var(--cg-color-border-subtle); color: var(--cg-color-text-primary); @@ -321,6 +430,10 @@ onUnmounted(() => { font-size: var(--cg-font-size-sm); } +.form-input { + padding-right: var(--cg-space-8); +} + .form-input:hover, .form-select:hover { border-color: var(--cg-color-border); @@ -332,6 +445,36 @@ onUnmounted(() => { border-color: var(--cg-color-accent); } +.form-input.error { + border-color: var(--cg-color-error); +} + +.form-input.valid { + border-color: var(--cg-color-success); +} + +.validating-indicator, +.valid-indicator { + position: absolute; + right: var(--cg-space-3); + color: var(--cg-color-text-muted); + font-size: var(--cg-font-size-sm); +} + +.valid-indicator { + color: var(--cg-color-success); +} + +.field-error { + color: var(--cg-color-error); + font-size: var(--cg-font-size-sm); +} + +.field-hint { + color: var(--cg-color-text-muted); + font-size: var(--cg-font-size-xs); +} + .form-select { cursor: pointer; } diff --git a/frontend/src/components/UpdateNoticeBanner.vue b/frontend/src/components/UpdateNoticeBanner.vue new file mode 100644 index 0000000..fd17fa7 --- /dev/null +++ b/frontend/src/components/UpdateNoticeBanner.vue @@ -0,0 +1,101 @@ + + + + + diff --git a/frontend/src/components/__tests__/CreateEnvironmentModal.test.ts b/frontend/src/components/__tests__/CreateEnvironmentModal.test.ts new file mode 100644 index 0000000..2f8f94c --- /dev/null +++ b/frontend/src/components/__tests__/CreateEnvironmentModal.test.ts @@ -0,0 +1,119 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' +import { flushPromises, mount, type VueWrapper } from '@vue/test-utils' +import CreateEnvironmentModal from '../CreateEnvironmentModal.vue' + +const getComfyUIReleases = vi.fn() +const createEnvironment = vi.fn() +const getCreateProgress = vi.fn() +const validateEnvironmentName = vi.fn() + +vi.mock('@/composables/useComfyGitService', () => ({ + useComfyGitService: () => ({ + getComfyUIReleases, + createEnvironment, + getCreateProgress, + validateEnvironmentName + }) +})) + +function getRequiredElement(selector: string): T { + const element = document.body.querySelector(selector) + if (!element) { + throw new Error(`Element not found: ${selector}`) + } + return element as T +} + +describe('CreateEnvironmentModal name validation', () => { + let wrapper: VueWrapper + + beforeEach(() => { + vi.useFakeTimers() + document.body.innerHTML = '' + + getComfyUIReleases.mockReset() + getComfyUIReleases.mockResolvedValue([{ tag_name: 'latest', name: 'Latest', published_at: '' }]) + createEnvironment.mockReset() + getCreateProgress.mockReset() + validateEnvironmentName.mockReset() + }) + + afterEach(() => { + wrapper?.unmount() + document.body.innerHTML = '' + vi.useRealTimers() + }) + + it('debounces validation and shows success state for valid name', async () => { + validateEnvironmentName.mockResolvedValue({ valid: true, name: 'my.env-1' }) + + wrapper = mount(CreateEnvironmentModal, { + attachTo: document.body + }) + await flushPromises() + + const input = getRequiredElement('input.form-input') + input.value = 'my.env-1' + input.dispatchEvent(new Event('input')) + await flushPromises() + + await vi.advanceTimersByTimeAsync(399) + expect(validateEnvironmentName).not.toHaveBeenCalled() + + await vi.advanceTimersByTimeAsync(1) + await flushPromises() + + expect(validateEnvironmentName).toHaveBeenCalledWith('my.env-1') + expect(document.body.querySelector('.valid-indicator')).not.toBeNull() + + const createBtn = getRequiredElement('button.base-btn.primary') + expect(createBtn.disabled).toBe(false) + }) + + it('shows inline error and keeps create disabled for invalid name', async () => { + validateEnvironmentName.mockResolvedValue({ valid: false, error: 'Invalid name format' }) + + wrapper = mount(CreateEnvironmentModal, { + attachTo: document.body + }) + await flushPromises() + + const input = getRequiredElement('input.form-input') + input.value = 'invalid-' + input.dispatchEvent(new Event('input')) + await flushPromises() + + await vi.advanceTimersByTimeAsync(400) + await flushPromises() + + const error = getRequiredElement('.field-error') + expect(error.textContent).toContain('Invalid name format') + + const createBtn = getRequiredElement('button.base-btn.primary') + expect(createBtn.disabled).toBe(true) + }) + + it('forces validation on enter and does not create when invalid', async () => { + validateEnvironmentName.mockResolvedValue({ valid: false, error: 'Invalid name format' }) + + wrapper = mount(CreateEnvironmentModal, { + attachTo: document.body + }) + await flushPromises() + + const input = getRequiredElement('input.form-input') + input.value = 'invalid-' + input.dispatchEvent(new Event('input')) + input.dispatchEvent(new KeyboardEvent('keyup', { key: 'Enter' })) + await flushPromises() + + await vi.runAllTimersAsync() + await flushPromises() + + expect(validateEnvironmentName).toHaveBeenCalledWith('invalid-') + expect(createEnvironment).not.toHaveBeenCalled() + + const error = getRequiredElement('.field-error') + expect(error.textContent).toContain('Invalid name format') + }) +}) diff --git a/frontend/src/components/__tests__/UpdateNoticeBanner.test.ts b/frontend/src/components/__tests__/UpdateNoticeBanner.test.ts new file mode 100644 index 0000000..5879efc --- /dev/null +++ b/frontend/src/components/__tests__/UpdateNoticeBanner.test.ts @@ -0,0 +1,60 @@ +import { describe, it, expect, vi } from 'vitest' +import { mount } from '@vue/test-utils' +import UpdateNoticeBanner from '../UpdateNoticeBanner.vue' + +describe('UpdateNoticeBanner', () => { + it('renders version and emits actions', async () => { + const onUpdate = vi.fn() + const onDismiss = vi.fn() + const onReleaseNotes = vi.fn() + + const wrapper = mount(UpdateNoticeBanner, { + props: { + info: { + current_version: '0.0.20', + latest_version: '0.0.21', + update_available: true, + release_url: 'https://example.com/release', + changelog_summary: 'Fixes', + checked_at: '2026-02-10T00:00:00Z' + }, + updating: false, + onUpdate, + onDismiss, + onReleaseNotes + } + }) + + expect(wrapper.text()).toContain('ComfyGit Manager v0.0.21 available') + expect(wrapper.text()).toContain('Fixes') + + const updateBtn = wrapper.get('button.update-banner__btn.primary') + expect((updateBtn.element as HTMLButtonElement).disabled).toBe(false) + await updateBtn.trigger('click') + expect(onUpdate).toHaveBeenCalledTimes(1) + + await wrapper.findAll('button.update-banner__btn')[1].trigger('click') + expect(onReleaseNotes).toHaveBeenCalledTimes(1) + + await wrapper.findAll('button.update-banner__btn')[2].trigger('click') + expect(onDismiss).toHaveBeenCalledTimes(1) + }) + + it('hides release notes button when release_url is null', () => { + const wrapper = mount(UpdateNoticeBanner, { + props: { + info: { + current_version: '0.0.20', + latest_version: '0.0.21', + update_available: true, + release_url: null, + changelog_summary: null, + checked_at: null + } + } + }) + + expect(wrapper.text()).toContain('ComfyGit Manager v0.0.21 available') + expect(wrapper.text()).not.toContain('Release notes') + }) +}) diff --git a/frontend/src/composables/__tests__/useComfyGitService.updateNotice.test.ts b/frontend/src/composables/__tests__/useComfyGitService.updateNotice.test.ts new file mode 100644 index 0000000..73909d0 --- /dev/null +++ b/frontend/src/composables/__tests__/useComfyGitService.updateNotice.test.ts @@ -0,0 +1,62 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest' +import { useComfyGitService } from '../useComfyGitService' + +describe('useComfyGitService update notice APIs', () => { + beforeEach(() => { + ;(window as any).app = { + api: { + fetchApi: vi.fn() + } + } + }) + + it('calls GET /v2/comfygit/update-check', async () => { + const payload = { + current_version: '0.0.20', + latest_version: '0.0.21', + update_available: true, + release_url: 'https://example.com', + changelog_summary: 'Fixes', + checked_at: '2026-02-10T00:00:00Z' + } + + ;(window as any).app.api.fetchApi.mockResolvedValue({ + ok: true, + status: 200, + text: async () => JSON.stringify(payload) + }) + + const svc = useComfyGitService() + const res = await svc.getUpdateCheck() + + expect((window as any).app.api.fetchApi).toHaveBeenCalledWith('/v2/comfygit/update-check', undefined) + expect(res.latest_version).toBe('0.0.21') + expect(res.update_available).toBe(true) + }) + + it('calls POST /v2/comfygit/update', async () => { + const payload = { + status: 'success', + changed: true, + old_version: '0.0.20', + new_version: '0.0.21', + message: 'Updated', + restart_required: true, + manual_instructions: null + } + + ;(window as any).app.api.fetchApi.mockResolvedValue({ + ok: true, + status: 200, + text: async () => JSON.stringify(payload) + }) + + const svc = useComfyGitService() + const res = await svc.updateManager() + + expect((window as any).app.api.fetchApi).toHaveBeenCalledWith('/v2/comfygit/update', { method: 'POST' }) + expect(res.status).toBe('success') + expect(res.restart_required).toBe(true) + }) +}) + diff --git a/frontend/src/composables/useComfyGitService.ts b/frontend/src/composables/useComfyGitService.ts index 35da695..5308c36 100644 --- a/frontend/src/composables/useComfyGitService.ts +++ b/frontend/src/composables/useComfyGitService.ts @@ -40,6 +40,8 @@ import type { ImportResult, ImportProgress, SetupStatus, + UpdateCheckResponse, + UpdateManagerResponse, InitializeWorkspaceRequest, InitializeProgress, ValidatePathRequest, @@ -1306,13 +1308,28 @@ export function useComfyGitService() { async function validateEnvironmentName(name: string): Promise { if (USE_MOCK) { await new Promise(resolve => setTimeout(resolve, 200)) - // Simulate name validation + if (name === 'existing-env') { return { valid: false, error: "Environment 'existing-env' already exists" } } - if (name.includes('/') || name.includes(' ')) { - return { valid: false, error: 'Name contains invalid characters' } + + const reserved = new Set(['workspace', 'logs', 'models', 'input', 'output', '.comfygit']) + if (reserved.has(name.toLowerCase())) { + return { valid: false, error: `"${name}" is reserved` } + } + + if (name.length > 128) { + return { valid: false, error: 'Name must be 128 characters or less' } } + + const pattern = /^[A-Za-z0-9]([A-Za-z0-9._-]*[A-Za-z0-9])?$/ + if (!pattern.test(name)) { + return { + valid: false, + error: 'Name contains invalid characters. Use only letters, numbers, dots, hyphens, and underscores. Name must start and end with a letter or number.' + } + } + return { valid: true, name } } @@ -1320,7 +1337,6 @@ export function useComfyGitService() { `/v2/workspace/environments/validate?name=${encodeURIComponent(name)}` ) } - async function executeImport( file: File, name: string, @@ -1472,6 +1488,37 @@ export function useComfyGitService() { return fetchApi('/v2/setup/status') } + async function getUpdateCheck(): Promise { + if (USE_MOCK) { + return { + current_version: '0.0.0', + latest_version: null, + update_available: false, + release_url: null, + changelog_summary: null, + checked_at: null + } + } + + return fetchApi('/v2/comfygit/update-check') + } + + async function updateManager(): Promise { + if (USE_MOCK) { + return { + status: 'success', + changed: false, + old_version: null, + new_version: null, + message: 'Mock update', + restart_required: false, + manual_instructions: null + } + } + + return fetchApi('/v2/comfygit/update', { method: 'POST' }) + } + async function initializeWorkspace(request: InitializeWorkspaceRequest): Promise<{ status: string; task_id: string }> { if (USE_MOCK) { // Start the mock initialization process @@ -1825,6 +1872,9 @@ export function useComfyGitService() { getImportProgress, // First-Time Setup getSetupStatus, + // Manager Update Notice + getUpdateCheck, + updateManager, initializeWorkspace, getInitializeProgress, validatePath, diff --git a/frontend/src/types/comfygit.ts b/frontend/src/types/comfygit.ts index d1d8f9e..2a8b8dc 100644 --- a/frontend/src/types/comfygit.ts +++ b/frontend/src/types/comfygit.ts @@ -1030,6 +1030,26 @@ export interface SetupStatus { cli_path: string | null } +// Manager Update Notice Types +export interface UpdateCheckResponse { + current_version: string | null + latest_version: string | null + update_available: boolean + release_url: string | null + changelog_summary: string | null + checked_at: string | null +} + +export interface UpdateManagerResponse { + status: 'success' | 'error' + changed: boolean + old_version: string | null + new_version: string | null + message: string + restart_required: boolean + manual_instructions: string | null +} + export interface InitializeWorkspaceRequest { workspace_path?: string models_directory?: string | null diff --git a/frontend/src/utils/__tests__/updateNotice.test.ts b/frontend/src/utils/__tests__/updateNotice.test.ts new file mode 100644 index 0000000..8bfbaa8 --- /dev/null +++ b/frontend/src/utils/__tests__/updateNotice.test.ts @@ -0,0 +1,47 @@ +import { describe, it, expect, beforeEach } from 'vitest' +import { dismissVersion, shouldShowUpdateNotice, DISMISSED_VERSION_KEY } from '../updateNotice' + +describe('updateNotice', () => { + beforeEach(() => { + localStorage.removeItem(DISMISSED_VERSION_KEY) + }) + + it('returns false when info is null', () => { + expect(shouldShowUpdateNotice(null)).toBe(false) + }) + + it('returns false when update_available is false', () => { + expect(shouldShowUpdateNotice({ + current_version: '0.0.20', + latest_version: '0.0.21', + update_available: false, + release_url: 'https://example.com', + changelog_summary: null, + checked_at: null + })).toBe(false) + }) + + it('returns true when update_available and not dismissed', () => { + expect(shouldShowUpdateNotice({ + current_version: '0.0.20', + latest_version: '0.0.21', + update_available: true, + release_url: 'https://example.com', + changelog_summary: 'hi', + checked_at: '2026-02-10T00:00:00Z' + })).toBe(true) + }) + + it('returns false when latest_version is dismissed', () => { + dismissVersion('0.0.21') + expect(shouldShowUpdateNotice({ + current_version: '0.0.20', + latest_version: '0.0.21', + update_available: true, + release_url: 'https://example.com', + changelog_summary: null, + checked_at: null + })).toBe(false) + }) +}) + diff --git a/frontend/src/utils/updateNotice.ts b/frontend/src/utils/updateNotice.ts new file mode 100644 index 0000000..d56946e --- /dev/null +++ b/frontend/src/utils/updateNotice.ts @@ -0,0 +1,27 @@ +import type { UpdateCheckResponse } from '@/types/comfygit' + +export const DISMISSED_VERSION_KEY = 'ComfyGit.UpdateNotice.DismissedVersion' + +export function getDismissedVersion(): string | null { + try { + return localStorage.getItem(DISMISSED_VERSION_KEY) + } catch { + return null + } +} + +export function dismissVersion(version: string): void { + try { + localStorage.setItem(DISMISSED_VERSION_KEY, version) + } catch { + // Ignore if storage is unavailable + } +} + +export function shouldShowUpdateNotice(info: UpdateCheckResponse | null): boolean { + if (!info) return false + if (!info.update_available) return false + if (!info.latest_version) return false + return getDismissedVersion() !== info.latest_version +} + diff --git a/js/comfygit-panel.css b/js/comfygit-panel.css index 754fda0..c248942 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)}.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)}.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)}.export-blocked[data-v-bd79ba24]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.error-header[data-v-bd79ba24]{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-bd79ba24]{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-bd79ba24]{flex:1}.error-title[data-v-bd79ba24]{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-bd79ba24]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.issues-list[data-v-bd79ba24]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.issue-item[data-v-bd79ba24]{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-bd79ba24]{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-bd79ba24]{margin-bottom:var(--cg-space-2);padding-left:var(--cg-space-3)}.issue-detail[data-v-bd79ba24]{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-bd79ba24]:before{content:"•";margin-right:var(--cg-space-2);color:var(--cg-color-text-muted)}.show-more-inline[data-v-bd79ba24]{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-bd79ba24]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.commit-section[data-v-bd79ba24]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border)}.issues-warning[data-v-bd79ba24]{background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);padding:var(--cg-space-3)}.warning-header[data-v-bd79ba24]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.warning-icon-badge[data-v-bd79ba24]{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--cg-color-warning);color:var(--cg-color-bg-primary);border-radius:50%;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.allow-issues-toggle[data-v-bd79ba24]{font-size:var(--cg-font-size-xs)}.commit-error[data-v-bd79ba24]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error);padding:var(--cg-space-2);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md)}.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-ddeffd68]{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-ddeffd68]{display:flex;gap:var(--cg-space-3);align-items:flex-start}.export-icon[data-v-ddeffd68]{font-size:var(--cg-font-size-xl)}.export-header-text[data-v-ddeffd68]{flex:1}.export-title[data-v-ddeffd68]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.export-subtitle[data-v-ddeffd68]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.export-path-row[data-v-ddeffd68]{display:flex;gap:var(--cg-space-2);align-items:center}.export-path-row .path-input[data-v-ddeffd68]{flex:1}.export-actions[data-v-ddeffd68]{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-ddeffd68]{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-ddeffd68]{color:var(--cg-color-warning);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.warning-text[data-v-ddeffd68]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.4}.export-info[data-v-ddeffd68]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.info-section strong[data-v-ddeffd68]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.info-section ul[data-v-ddeffd68]{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-ddeffd68]{margin-bottom:var(--cg-space-1)}.info-section li strong[data-v-ddeffd68]{font-size:var(--cg-font-size-xs)}.info-note[data-v-ddeffd68]{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)}.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} +.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-3faa3d9b]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.form-field[data-v-3faa3d9b]{display:flex;flex-direction:column;gap:var(--cg-space-1)}.form-field--checkbox[data-v-3faa3d9b]{flex-direction:row;align-items:center;margin-top:var(--cg-space-2)}.form-label[data-v-3faa3d9b]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);text-transform:uppercase;letter-spacing:var(--cg-letter-spacing-wide)}.input-wrapper[data-v-3faa3d9b]{position:relative;display:flex;align-items:center}.form-input[data-v-3faa3d9b],.form-select[data-v-3faa3d9b]{width:100%;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-3faa3d9b]{padding-right:var(--cg-space-8)}.form-input[data-v-3faa3d9b]:hover,.form-select[data-v-3faa3d9b]:hover{border-color:var(--cg-color-border)}.form-input[data-v-3faa3d9b]:focus,.form-select[data-v-3faa3d9b]:focus{outline:none;border-color:var(--cg-color-accent)}.form-input.error[data-v-3faa3d9b]{border-color:var(--cg-color-error)}.form-input.valid[data-v-3faa3d9b]{border-color:var(--cg-color-success)}.validating-indicator[data-v-3faa3d9b],.valid-indicator[data-v-3faa3d9b]{position:absolute;right:var(--cg-space-3);color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.valid-indicator[data-v-3faa3d9b]{color:var(--cg-color-success)}.field-error[data-v-3faa3d9b]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm)}.field-hint[data-v-3faa3d9b]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.form-select[data-v-3faa3d9b]{cursor:pointer}.form-select[data-v-3faa3d9b]:disabled{opacity:.5;cursor:not-allowed}.form-checkbox[data-v-3faa3d9b]{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-3faa3d9b]{width:16px;height:16px;accent-color:var(--cg-color-accent);cursor:pointer}.creating-intro[data-v-3faa3d9b]{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-3faa3d9b]{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-3faa3d9b]{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-3faa3d9b]{color:var(--cg-color-error);font-size:var(--cg-font-size-sm);margin:0}.footer-status[data-v-3faa3d9b]{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)}.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)}.export-blocked[data-v-bd79ba24]{display:flex;flex-direction:column;gap:var(--cg-space-4)}.error-header[data-v-bd79ba24]{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-bd79ba24]{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-bd79ba24]{flex:1}.error-title[data-v-bd79ba24]{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-bd79ba24]{margin:0;font-size:var(--cg-font-size-sm);color:var(--cg-color-text-secondary)}.issues-list[data-v-bd79ba24]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.issue-item[data-v-bd79ba24]{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-bd79ba24]{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-bd79ba24]{margin-bottom:var(--cg-space-2);padding-left:var(--cg-space-3)}.issue-detail[data-v-bd79ba24]{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-bd79ba24]:before{content:"•";margin-right:var(--cg-space-2);color:var(--cg-color-text-muted)}.show-more-inline[data-v-bd79ba24]{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-bd79ba24]{font-size:var(--cg-font-size-xs);color:var(--cg-color-text-muted);font-style:italic}.commit-section[data-v-bd79ba24]{display:flex;flex-direction:column;gap:var(--cg-space-3);padding-top:var(--cg-space-3);border-top:1px solid var(--cg-color-border)}.issues-warning[data-v-bd79ba24]{background:var(--cg-color-warning-muted);border:1px solid var(--cg-color-warning);border-radius:var(--cg-radius-md);padding:var(--cg-space-3)}.warning-header[data-v-bd79ba24]{display:flex;align-items:center;gap:var(--cg-space-2);margin-bottom:var(--cg-space-2);font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary)}.warning-icon-badge[data-v-bd79ba24]{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--cg-color-warning);color:var(--cg-color-bg-primary);border-radius:50%;font-size:var(--cg-font-size-xs);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.allow-issues-toggle[data-v-bd79ba24]{font-size:var(--cg-font-size-xs)}.commit-error[data-v-bd79ba24]{font-size:var(--cg-font-size-xs);color:var(--cg-color-error);padding:var(--cg-space-2);background:var(--cg-color-error-muted);border:1px solid var(--cg-color-error);border-radius:var(--cg-radius-md)}.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-ddeffd68]{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-ddeffd68]{display:flex;gap:var(--cg-space-3);align-items:flex-start}.export-icon[data-v-ddeffd68]{font-size:var(--cg-font-size-xl)}.export-header-text[data-v-ddeffd68]{flex:1}.export-title[data-v-ddeffd68]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.export-subtitle[data-v-ddeffd68]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs);margin-top:var(--cg-space-1)}.export-path-row[data-v-ddeffd68]{display:flex;gap:var(--cg-space-2);align-items:center}.export-path-row .path-input[data-v-ddeffd68]{flex:1}.export-actions[data-v-ddeffd68]{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-ddeffd68]{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-ddeffd68]{color:var(--cg-color-warning);font-weight:var(--cg-font-weight-bold);flex-shrink:0}.warning-text[data-v-ddeffd68]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-xs);line-height:1.4}.export-info[data-v-ddeffd68]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.info-section strong[data-v-ddeffd68]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-sm)}.info-section ul[data-v-ddeffd68]{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-ddeffd68]{margin-bottom:var(--cg-space-1)}.info-section li strong[data-v-ddeffd68]{font-size:var(--cg-font-size-xs)}.info-note[data-v-ddeffd68]{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)}.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)}.update-banner[data-v-49562c5c]{display:flex;gap:var(--cg-space-3);align-items:center;justify-content:space-between;padding:10px var(--cg-space-4);border-bottom:1px solid var(--cg-color-border);background:color-mix(in srgb,var(--cg-color-bg-tertiary) 70%,var(--cg-color-success-muted) 30%)}.update-banner__title[data-v-49562c5c]{font-size:var(--cg-font-size-sm);color:var(--cg-color-text-primary);line-height:var(--cg-line-height-tight)}.update-banner__summary[data-v-49562c5c]{margin-top:4px;font-size:var(--cg-font-size-xs);color:var(--cg-color-text-secondary);line-height:var(--cg-line-height-normal);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.update-banner__actions[data-v-49562c5c]{display:flex;gap:8px;flex-shrink:0}.update-banner__btn[data-v-49562c5c]{font-family:var(--cg-font-mono);font-size:var(--cg-font-size-xs);padding:6px 10px;border-radius:var(--cg-radius-sm);border:1px solid var(--cg-color-border);background:var(--cg-color-bg-primary);color:var(--cg-color-text-primary);cursor:pointer}.update-banner__btn.primary[data-v-49562c5c]{border-color:var(--cg-color-success);background:var(--cg-color-success-muted);color:var(--cg-color-success)}.update-banner__btn[data-v-49562c5c]:disabled{opacity:.6;cursor:not-allowed}.comfygit-panel[data-v-9c2af32e]{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-9c2af32e]{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-9c2af32e]{display:flex;align-items:center;gap:12px}.panel-title[data-v-9c2af32e]{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-9c2af32e]{display:flex;align-items:center;gap:6px;font-size:var(--cg-font-size-xs)}.env-name[data-v-9c2af32e]{color:var(--cg-color-text-secondary)}.branch-name[data-v-9c2af32e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-xs)}.status-dot[data-v-9c2af32e]{width:8px;height:8px;border-radius:50%}.status-dot.success[data-v-9c2af32e]{background:var(--cg-color-success)}.status-dot.warning[data-v-9c2af32e]{background:var(--cg-color-warning)}.status-dot.error[data-v-9c2af32e]{background:var(--cg-color-error)}.status-dot.neutral[data-v-9c2af32e]{background:var(--cg-color-text-muted)}.header-actions[data-v-9c2af32e]{display:flex;gap:4px}.icon-btn[data-v-9c2af32e]{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-9c2af32e]:hover{background:var(--cg-color-bg-hover);border-color:var(--cg-color-border-subtle)}.icon-btn.spinning svg[data-v-9c2af32e]{animation:spin-9c2af32e 1s linear infinite}@keyframes spin-9c2af32e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.header-divider[data-v-9c2af32e]{width:1px;height:16px;background:var(--cg-color-border-subtle);margin:0 4px;align-self:center}.env-switcher[data-v-9c2af32e]{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-9c2af32e]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.env-switcher-label[data-v-9c2af32e]{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-9c2af32e]{display:flex;gap:var(--cg-space-2)}.env-control-btn[data-v-9c2af32e]{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-9c2af32e]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent)}.env-control-btn.stop[data-v-9c2af32e]{border-color:var(--cg-color-error);color:var(--cg-color-error);opacity:.7}.env-control-btn.stop[data-v-9c2af32e]:hover{opacity:1}.env-switcher-btn[data-v-9c2af32e]{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-9c2af32e]:hover{border-color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.switch-indicator[data-v-9c2af32e]{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-9c2af32e]{display:flex;flex:1;overflow:hidden}.sidebar[data-v-9c2af32e]{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-9c2af32e]{flex:1;overflow-y:auto}.sidebar-footer[data-v-9c2af32e]{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-9c2af32e]{padding:var(--cg-space-3) 0}.sidebar-section-title[data-v-9c2af32e]{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-9c2af32e]{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-9c2af32e]:hover{background:var(--cg-color-bg-hover);color:var(--cg-color-accent)}.sidebar-item.active[data-v-9c2af32e]{border-left-color:var(--cg-color-accent);color:var(--cg-color-accent);background:var(--cg-color-bg-hover)}.sidebar-badge[data-v-9c2af32e]{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-9c2af32e]{height:1px;background:var(--cg-color-border-subtle);margin:var(--cg-space-2) var(--cg-space-3)}.content-area[data-v-9c2af32e]{flex:1;overflow-y:auto;padding:var(--cg-space-4);-webkit-user-select:text;user-select:text}.loading[data-v-9c2af32e]{text-align:center;padding:var(--cg-space-6);color:var(--cg-color-text-muted)}.error-message[data-v-9c2af32e]{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-9c2af32e]{padding:var(--cg-space-4)}.view-title[data-v-9c2af32e]{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-9c2af32e]{color:var(--cg-color-text-secondary);font-size:var(--cg-font-size-base)}.dialog-overlay[data-v-9c2af32e]{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-9c2af32e]{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-9c2af32e]{width:780px}.dialog-header[data-v-9c2af32e]{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-9c2af32e]{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-9c2af32e]{padding:var(--cg-space-4);overflow-y:auto}.dialog-message[data-v-9c2af32e]{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-9c2af32e]{display:flex;flex-direction:column;gap:var(--cg-space-3)}.env-item[data-v-9c2af32e]{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-9c2af32e]{border-color:var(--cg-color-accent)}.env-info[data-v-9c2af32e]{flex:1}.env-name-row[data-v-9c2af32e]{display:flex;align-items:center;gap:8px;margin-bottom:4px}.env-indicator[data-v-9c2af32e]{color:var(--cg-color-accent)}.env-name[data-v-9c2af32e]{color:var(--cg-color-text-primary);font-size:var(--cg-font-size-base);font-weight:var(--cg-font-weight-semibold)}.env-branch[data-v-9c2af32e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.current-label[data-v-9c2af32e]{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-9c2af32e]{color:var(--cg-color-text-muted);font-size:var(--cg-font-size-sm)}.switch-btn[data-v-9c2af32e]{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-9c2af32e]:hover{border-color:var(--cg-color-accent);color:var(--cg-color-accent);box-shadow:0 0 8px #00ff414d}.toast-container[data-v-9c2af32e]{position:fixed;bottom:16px;right:16px;z-index:10004;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast[data-v-9c2af32e]{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-9c2af32e]{border-left:3px solid var(--cg-color-info)}.toast.success[data-v-9c2af32e]{border-left:3px solid var(--cg-color-success)}.toast.warning[data-v-9c2af32e]{border-left:3px solid var(--cg-color-warning)}.toast.error[data-v-9c2af32e]{border-left:3px solid var(--cg-color-error)}.toast-message[data-v-9c2af32e]{flex:1}.toast-enter-active[data-v-9c2af32e],.toast-leave-active[data-v-9c2af32e]{transition:all .3s ease}.toast-enter-from[data-v-9c2af32e],.toast-leave-to[data-v-9c2af32e]{opacity:0;transform:translate(100%)}.toast-move[data-v-9c2af32e]{transition:transform .3s ease}.sidebar-content[data-v-9c2af32e]::-webkit-scrollbar,.content-area[data-v-9c2af32e]::-webkit-scrollbar{width:8px}.sidebar-content[data-v-9c2af32e]::-webkit-scrollbar-track,.content-area[data-v-9c2af32e]::-webkit-scrollbar-track{background:var(--cg-color-bg-tertiary)}.sidebar-content[data-v-9c2af32e]::-webkit-scrollbar-thumb,.content-area[data-v-9c2af32e]::-webkit-scrollbar-thumb{background:var(--cg-color-border-subtle);border:1px solid var(--cg-color-bg-tertiary)}.sidebar-content[data-v-9c2af32e]::-webkit-scrollbar-thumb:hover,.content-area[data-v-9c2af32e]::-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 6779fdb..14a52ea 100644 --- a/js/comfygit-panel.js +++ b/js/comfygit-panel.js @@ -1,81 +1,81 @@ -import { app as Wt } from "../../scripts/app.js"; +import { app as Kt } from "../../scripts/app.js"; /** * @vue/shared v3.5.25 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ // @__NO_SIDE_EFFECTS__ -function Ba(e) { +function Ha(e) { const s = /* @__PURE__ */ Object.create(null); for (const o of e.split(",")) s[o] = 1; return (o) => o in s; } -const ot = {}, po = [], gs = () => { -}, ui = () => !1, Hn = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && // uppercase letter -(e.charCodeAt(2) > 122 || e.charCodeAt(2) < 97), Wa = (e) => e.startsWith("onUpdate:"), pt = Object.assign, Ga = (e, s) => { +const nt = {}, ko = [], ps = () => { +}, pi = () => !1, Kn = (e) => e.charCodeAt(0) === 111 && e.charCodeAt(1) === 110 && // uppercase letter +(e.charCodeAt(2) > 122 || e.charCodeAt(2) < 97), Ka = (e) => e.startsWith("onUpdate:"), gt = Object.assign, qa = (e, s) => { const o = e.indexOf(s); o > -1 && e.splice(o, 1); -}, oc = Object.prototype.hasOwnProperty, et = (e, s) => oc.call(e, s), Fe = Array.isArray, go = (e) => ln(e) === "[object Map]", Co = (e) => ln(e) === "[object Set]", ml = (e) => ln(e) === "[object Date]", We = (e) => typeof e == "function", ut = (e) => typeof e == "string", ts = (e) => typeof e == "symbol", st = (e) => e !== null && typeof e == "object", di = (e) => (st(e) || We(e)) && We(e.then) && We(e.catch), fi = Object.prototype.toString, ln = (e) => fi.call(e), nc = (e) => ln(e).slice(8, -1), mi = (e) => ln(e) === "[object Object]", ja = (e) => ut(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, Fo = /* @__PURE__ */ Ba( +}, rc = Object.prototype.hasOwnProperty, tt = (e, s) => rc.call(e, s), Fe = Array.isArray, _o = (e) => dn(e) === "[object Map]", To = (e) => dn(e) === "[object Set]", yl = (e) => dn(e) === "[object Date]", He = (e) => typeof e == "function", mt = (e) => typeof e == "string", os = (e) => typeof e == "symbol", st = (e) => e !== null && typeof e == "object", gi = (e) => (st(e) || He(e)) && He(e.then) && He(e.catch), hi = Object.prototype.toString, dn = (e) => hi.call(e), cc = (e) => dn(e).slice(8, -1), yi = (e) => dn(e) === "[object Object]", Ya = (e) => mt(e) && e !== "NaN" && e[0] !== "-" && "" + parseInt(e, 10) === e, Go = /* @__PURE__ */ Ha( // the leading comma is intentional so empty string "" is also included ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted" -), Kn = (e) => { +), qn = (e) => { const s = /* @__PURE__ */ Object.create(null); return ((o) => s[o] || (s[o] = e(o))); -}, ac = /-\w/g, Kt = Kn( - (e) => e.replace(ac, (s) => s.slice(1).toUpperCase()) -), lc = /\B([A-Z])/g, Bs = Kn( - (e) => e.replace(lc, "-$1").toLowerCase() -), qn = Kn((e) => e.charAt(0).toUpperCase() + e.slice(1)), ia = Kn( - (e) => e ? `on${qn(e)}` : "" -), zs = (e, s) => !Object.is(e, s), In = (e, ...s) => { +}, uc = /-\w/g, Qt = qn( + (e) => e.replace(uc, (s) => s.slice(1).toUpperCase()) +), dc = /\B([A-Z])/g, Bs = qn( + (e) => e.replace(dc, "-$1").toLowerCase() +), Yn = qn((e) => e.charAt(0).toUpperCase() + e.slice(1)), da = qn( + (e) => e ? `on${Yn(e)}` : "" +), zs = (e, s) => !Object.is(e, s), En = (e, ...s) => { for (let o = 0; o < e.length; o++) e[o](...s); -}, vi = (e, s, o, a = !1) => { +}, wi = (e, s, o, a = !1) => { Object.defineProperty(e, s, { configurable: !0, enumerable: !1, writable: a, value: o }); -}, Yn = (e) => { +}, Jn = (e) => { const s = parseFloat(e); return isNaN(s) ? e : s; -}, ic = (e) => { - const s = ut(e) ? Number(e) : NaN; +}, fc = (e) => { + const s = mt(e) ? Number(e) : NaN; return isNaN(s) ? e : s; }; -let vl; -const Jn = () => vl || (vl = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {}); -function Ft(e) { +let wl; +const Qn = () => wl || (wl = typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : typeof window < "u" ? window : typeof global < "u" ? global : {}); +function Gt(e) { if (Fe(e)) { const s = {}; for (let o = 0; o < e.length; o++) { - const a = e[o], l = ut(a) ? dc(a) : Ft(a); + const a = e[o], l = mt(a) ? gc(a) : Gt(a); if (l) for (const r in l) s[r] = l[r]; } return s; - } else if (ut(e) || st(e)) + } else if (mt(e) || st(e)) return e; } -const rc = /;(?![^(]*\))/g, cc = /:([^]+)/, uc = /\/\*[^]*?\*\//g; -function dc(e) { +const mc = /;(?![^(]*\))/g, vc = /:([^]+)/, pc = /\/\*[^]*?\*\//g; +function gc(e) { const s = {}; - return e.replace(uc, "").split(rc).forEach((o) => { + return e.replace(pc, "").split(mc).forEach((o) => { if (o) { - const a = o.split(cc); + const a = o.split(vc); a.length > 1 && (s[a[0].trim()] = a[1].trim()); } }), s; } -function Ie(e) { +function Se(e) { let s = ""; - if (ut(e)) + if (mt(e)) s = e; else if (Fe(e)) for (let o = 0; o < e.length; o++) { - const a = Ie(e[o]); + const a = Se(e[o]); a && (s += a + " "); } else if (st(e)) @@ -83,26 +83,26 @@ function Ie(e) { e[o] && (s += o + " "); return s.trim(); } -const fc = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", mc = /* @__PURE__ */ Ba(fc); -function pi(e) { +const hc = "itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly", yc = /* @__PURE__ */ Ha(hc); +function ki(e) { return !!e || e === ""; } -function vc(e, s) { +function wc(e, s) { if (e.length !== s.length) return !1; let o = !0; for (let a = 0; o && a < e.length; a++) - o = so(e[a], s[a]); + o = eo(e[a], s[a]); return o; } -function so(e, s) { +function eo(e, s) { if (e === s) return !0; - let o = ml(e), a = ml(s); + let o = yl(e), a = yl(s); if (o || a) return o && a ? e.getTime() === s.getTime() : !1; - if (o = ts(e), a = ts(s), o || a) + if (o = os(e), a = os(s), o || a) return e === s; if (o = Fe(e), a = Fe(s), o || a) - return o && a ? vc(e, s) : !1; + return o && a ? wc(e, s) : !1; if (o = st(e), a = st(s), o || a) { if (!o || !a) return !1; @@ -111,28 +111,28 @@ function so(e, s) { return !1; for (const c in e) { const u = e.hasOwnProperty(c), d = s.hasOwnProperty(c); - if (u && !d || !u && d || !so(e[c], s[c])) + if (u && !d || !u && d || !eo(e[c], s[c])) return !1; } } return String(e) === String(s); } -function Ha(e, s) { - return e.findIndex((o) => so(o, s)); +function Ja(e, s) { + return e.findIndex((o) => eo(o, s)); } -const gi = (e) => !!(e && e.__v_isRef === !0), f = (e) => ut(e) ? e : e == null ? "" : Fe(e) || st(e) && (e.toString === fi || !We(e.toString)) ? gi(e) ? f(e.value) : JSON.stringify(e, hi, 2) : String(e), hi = (e, s) => gi(s) ? hi(e, s.value) : go(s) ? { +const _i = (e) => !!(e && e.__v_isRef === !0), f = (e) => mt(e) ? e : e == null ? "" : Fe(e) || st(e) && (e.toString === hi || !He(e.toString)) ? _i(e) ? f(e.value) : JSON.stringify(e, bi, 2) : String(e), bi = (e, s) => _i(s) ? bi(e, s.value) : _o(s) ? { [`Map(${s.size})`]: [...s.entries()].reduce( - (o, [a, l], r) => (o[ra(a, r) + " =>"] = l, o), + (o, [a, l], r) => (o[fa(a, r) + " =>"] = l, o), {} ) -} : Co(s) ? { - [`Set(${s.size})`]: [...s.values()].map((o) => ra(o)) -} : ts(s) ? ra(s) : st(s) && !Fe(s) && !mi(s) ? String(s) : s, ra = (e, s = "") => { +} : To(s) ? { + [`Set(${s.size})`]: [...s.values()].map((o) => fa(o)) +} : os(s) ? fa(s) : st(s) && !Fe(s) && !yi(s) ? String(s) : s, fa = (e, s = "") => { var o; return ( // Symbol.description in es2019+ so we need to cast here to pass // the lib: es2016 check - ts(e) ? `Symbol(${(o = e.description) != null ? o : s})` : e + os(e) ? `Symbol(${(o = e.description) != null ? o : s})` : e ); }; /** @@ -140,10 +140,10 @@ const gi = (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 Lt; -class pc { +let Ot; +class kc { constructor(s = !1) { - this.detached = s, this._active = !0, this._on = 0, this.effects = [], this.cleanups = [], this._isPaused = !1, this.parent = Lt, !s && Lt && (this.index = (Lt.scopes || (Lt.scopes = [])).push( + this.detached = s, this._active = !0, this._on = 0, this.effects = [], this.cleanups = [], this._isPaused = !1, this.parent = Ot, !s && Ot && (this.index = (Ot.scopes || (Ot.scopes = [])).push( this ) - 1); } @@ -177,11 +177,11 @@ class pc { } run(s) { if (this._active) { - const o = Lt; + const o = Ot; try { - return Lt = this, s(); + return Ot = this, s(); } finally { - Lt = o; + Ot = o; } } } @@ -190,14 +190,14 @@ class pc { * @internal */ on() { - ++this._on === 1 && (this.prevScope = Lt, Lt = this); + ++this._on === 1 && (this.prevScope = Ot, Ot = this); } /** * This should only be called on non-detached scopes * @internal */ off() { - this._on > 0 && --this._on === 0 && (Lt = this.prevScope, this.prevScope = void 0); + this._on > 0 && --this._on === 0 && (Ot = this.prevScope, this.prevScope = void 0); } stop(s) { if (this._active) { @@ -220,84 +220,84 @@ class pc { } } } -function gc() { - return Lt; +function _c() { + return Ot; } -let at; -const ca = /* @__PURE__ */ new WeakSet(); -class yi { +let rt; +const ma = /* @__PURE__ */ new WeakSet(); +class $i { 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, Lt && Lt.active && Lt.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, Ot && Ot.active && Ot.effects.push(this); } pause() { this.flags |= 64; } resume() { - this.flags & 64 && (this.flags &= -65, ca.has(this) && (ca.delete(this), this.trigger())); + this.flags & 64 && (this.flags &= -65, ma.has(this) && (ma.delete(this), this.trigger())); } /** * @internal */ notify() { - this.flags & 2 && !(this.flags & 32) || this.flags & 8 || ki(this); + this.flags & 2 && !(this.flags & 32) || this.flags & 8 || xi(this); } run() { if (!(this.flags & 1)) return this.fn(); - this.flags |= 2, pl(this), _i(this); - const s = at, o = es; - at = this, es = !0; + this.flags |= 2, kl(this), Si(this); + const s = rt, o = ss; + rt = this, ss = !0; try { return this.fn(); } finally { - bi(this), at = s, es = o, this.flags &= -3; + Ii(this), rt = s, ss = o, this.flags &= -3; } } stop() { if (this.flags & 1) { for (let s = this.deps; s; s = s.nextDep) - Ya(s); - this.deps = this.depsTail = void 0, pl(this), this.onStop && this.onStop(), this.flags &= -2; + Za(s); + this.deps = this.depsTail = void 0, kl(this), this.onStop && this.onStop(), this.flags &= -2; } } trigger() { - this.flags & 64 ? ca.add(this) : this.scheduler ? this.scheduler() : this.runIfDirty(); + this.flags & 64 ? ma.add(this) : this.scheduler ? this.scheduler() : this.runIfDirty(); } /** * @internal */ runIfDirty() { - xa(this) && this.run(); + Ta(this) && this.run(); } get dirty() { - return xa(this); + return Ta(this); } } -let wi = 0, Vo, Bo; -function ki(e, s = !1) { +let Ci = 0, jo, Ho; +function xi(e, s = !1) { if (e.flags |= 8, s) { - e.next = Bo, Bo = e; + e.next = Ho, Ho = e; return; } - e.next = Vo, Vo = e; + e.next = jo, jo = e; } -function Ka() { - wi++; +function Qa() { + Ci++; } -function qa() { - if (--wi > 0) +function Xa() { + if (--Ci > 0) return; - if (Bo) { - let s = Bo; - for (Bo = void 0; s; ) { + if (Ho) { + let s = Ho; + for (Ho = void 0; s; ) { const o = s.next; s.next = void 0, s.flags &= -9, s = o; } } let e; - for (; Vo; ) { - let s = Vo; - for (Vo = void 0; s; ) { + for (; jo; ) { + let s = jo; + for (jo = void 0; s; ) { const o = s.next; if (s.next = void 0, s.flags &= -9, s.flags & 1) try { @@ -310,342 +310,342 @@ function qa() { } if (e) throw e; } -function _i(e) { +function Si(e) { for (let s = e.deps; s; s = s.nextDep) s.version = -1, s.prevActiveLink = s.dep.activeLink, s.dep.activeLink = s; } -function bi(e) { +function Ii(e) { let s, o = e.depsTail, a = o; for (; a; ) { const l = a.prevDep; - a.version === -1 ? (a === o && (o = l), Ya(a), hc(a)) : s = a, a.dep.activeLink = a.prevActiveLink, a.prevActiveLink = void 0, a = l; + a.version === -1 ? (a === o && (o = l), Za(a), bc(a)) : s = a, a.dep.activeLink = a.prevActiveLink, a.prevActiveLink = void 0, a = l; } e.deps = s, e.depsTail = o; } -function xa(e) { +function Ta(e) { for (let s = e.deps; s; s = s.nextDep) - if (s.dep.version !== s.version || s.dep.computed && ($i(s.dep.computed) || s.dep.version !== s.version)) + if (s.dep.version !== s.version || s.dep.computed && (Ei(s.dep.computed) || s.dep.version !== s.version)) return !0; return !!e._dirty; } -function $i(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 || !xa(e)))) +function Ei(e) { + if (e.flags & 4 && !(e.flags & 16) || (e.flags &= -17, e.globalVersion === tn) || (e.globalVersion = tn, !e.isSSR && e.flags & 128 && (!e.deps && !e._dirty || !Ta(e)))) return; e.flags |= 2; - const s = e.dep, o = at, a = es; - at = e, es = !0; + const s = e.dep, o = rt, a = ss; + rt = e, ss = !0; try { - _i(e); + Si(e); const l = e.fn(e._value); (s.version === 0 || zs(l, e._value)) && (e.flags |= 128, e._value = l, s.version++); } catch (l) { throw s.version++, l; } finally { - at = o, es = a, bi(e), e.flags &= -3; + rt = o, ss = a, Ii(e), e.flags &= -3; } } -function Ya(e, s = !1) { +function Za(e, s = !1) { const { dep: o, prevSub: a, nextSub: l } = e; if (a && (a.nextSub = l, e.prevSub = void 0), l && (l.prevSub = a, e.nextSub = void 0), o.subs === e && (o.subs = a, !a && o.computed)) { o.computed.flags &= -5; for (let r = o.computed.deps; r; r = r.nextDep) - Ya(r, !0); + Za(r, !0); } !s && !--o.sc && o.map && o.map.delete(o.key); } -function hc(e) { +function bc(e) { const { prevDep: s, nextDep: o } = e; s && (s.nextDep = o, e.prevDep = void 0), o && (o.prevDep = s, e.nextDep = void 0); } -let es = !0; -const Ci = []; -function Es() { - Ci.push(es), es = !1; +let ss = !0; +const Ti = []; +function xs() { + Ti.push(ss), ss = !1; } -function Ts() { - const e = Ci.pop(); - es = e === void 0 ? !0 : e; +function Ss() { + const e = Ti.pop(); + ss = e === void 0 ? !0 : e; } -function pl(e) { +function kl(e) { const { cleanup: s } = e; if (e.cleanup = void 0, s) { - const o = at; - at = void 0; + const o = rt; + rt = void 0; try { s(); } finally { - at = o; + rt = o; } } } -let Qo = 0; -class yc { +let tn = 0; +class $c { 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 Ja { +class el { // 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 (!at || !es || at === this.computed) + if (!rt || !ss || rt === this.computed) return; let o = this.activeLink; - if (o === void 0 || o.sub !== at) - o = this.activeLink = new yc(at, this), at.deps ? (o.prevDep = at.depsTail, at.depsTail.nextDep = o, at.depsTail = o) : at.deps = at.depsTail = o, xi(o); + if (o === void 0 || o.sub !== rt) + o = this.activeLink = new $c(rt, this), rt.deps ? (o.prevDep = rt.depsTail, rt.depsTail.nextDep = o, rt.depsTail = o) : rt.deps = rt.depsTail = o, Ri(o); else if (o.version === -1 && (o.version = this.version, o.nextDep)) { const a = o.nextDep; - a.prevDep = o.prevDep, o.prevDep && (o.prevDep.nextDep = a), o.prevDep = at.depsTail, o.nextDep = void 0, at.depsTail.nextDep = o, at.depsTail = o, at.deps === o && (at.deps = a); + a.prevDep = o.prevDep, o.prevDep && (o.prevDep.nextDep = a), o.prevDep = rt.depsTail, o.nextDep = void 0, rt.depsTail.nextDep = o, rt.depsTail = o, rt.deps === o && (rt.deps = a); } return o; } trigger(s) { - this.version++, Qo++, this.notify(s); + this.version++, tn++, this.notify(s); } notify(s) { - Ka(); + Qa(); try { for (let o = this.subs; o; o = o.prevSub) o.sub.notify() && o.sub.dep.notify(); } finally { - qa(); + Xa(); } } } -function xi(e) { +function Ri(e) { if (e.dep.sc++, e.sub.flags & 4) { const s = e.dep.computed; if (s && !e.dep.subs) { s.flags |= 20; for (let a = s.deps; a; a = a.nextDep) - xi(a); + Ri(a); } const o = e.dep.subs; o !== e && (e.prevSub = o, o && (o.nextSub = e)), e.dep.subs = e; } } -const Sa = /* @__PURE__ */ new WeakMap(), eo = Symbol( +const Ra = /* @__PURE__ */ new WeakMap(), Xs = Symbol( "" -), Ia = Symbol( +), Pa = Symbol( "" -), Xo = Symbol( +), sn = Symbol( "" ); -function _t(e, s, o) { - if (es && at) { - let a = Sa.get(e); - a || Sa.set(e, a = /* @__PURE__ */ new Map()); +function $t(e, s, o) { + if (ss && rt) { + let a = Ra.get(e); + a || Ra.set(e, a = /* @__PURE__ */ new Map()); let l = a.get(o); - l || (a.set(o, l = new Ja()), l.map = a, l.key = o), l.track(); + l || (a.set(o, l = new el()), l.map = a, l.key = o), l.track(); } } -function xs(e, s, o, a, l, r) { - const c = Sa.get(e); +function bs(e, s, o, a, l, r) { + const c = Ra.get(e); if (!c) { - Qo++; + tn++; return; } const u = (d) => { d && d.trigger(); }; - if (Ka(), s === "clear") + if (Qa(), s === "clear") c.forEach(u); else { - const d = Fe(e), m = d && ja(o); + const d = Fe(e), m = d && Ya(o); if (d && o === "length") { const v = Number(a); c.forEach((g, w) => { - (w === "length" || w === Xo || !ts(w) && w >= v) && u(g); + (w === "length" || w === sn || !os(w) && w >= v) && u(g); }); } else - switch ((o !== void 0 || c.has(void 0)) && u(c.get(o)), m && u(c.get(Xo)), s) { + switch ((o !== void 0 || c.has(void 0)) && u(c.get(o)), m && u(c.get(sn)), s) { case "add": - d ? m && u(c.get("length")) : (u(c.get(eo)), go(e) && u(c.get(Ia))); + d ? m && u(c.get("length")) : (u(c.get(Xs)), _o(e) && u(c.get(Pa))); break; case "delete": - d || (u(c.get(eo)), go(e) && u(c.get(Ia))); + d || (u(c.get(Xs)), _o(e) && u(c.get(Pa))); break; case "set": - go(e) && u(c.get(eo)); + _o(e) && u(c.get(Xs)); break; } } - qa(); + Xa(); } -function ro(e) { - const s = Qe(e); - return s === e ? s : (_t(s, "iterate", Xo), Gt(e) ? s : s.map(ss)); +function vo(e) { + const s = Xe(e); + return s === e ? s : ($t(s, "iterate", sn), qt(e) ? s : s.map(ns)); } -function Qn(e) { - return _t(e = Qe(e), "iterate", Xo), e; +function Xn(e) { + return $t(e = Xe(e), "iterate", sn), e; } -function Os(e, s) { - return Rs(e) ? to(e) ? _o(ss(s)) : _o(s) : ss(s); +function Ns(e, s) { + return Is(e) ? Zs(e) ? So(ns(s)) : So(s) : ns(s); } -const wc = { +const Cc = { __proto__: null, [Symbol.iterator]() { - return ua(this, Symbol.iterator, (e) => Os(this, e)); + return va(this, Symbol.iterator, (e) => Ns(this, e)); }, concat(...e) { - return ro(this).concat( - ...e.map((s) => Fe(s) ? ro(s) : s) + return vo(this).concat( + ...e.map((s) => Fe(s) ? vo(s) : s) ); }, entries() { - return ua(this, "entries", (e) => (e[1] = Os(this, e[1]), e)); + return va(this, "entries", (e) => (e[1] = Ns(this, e[1]), e)); }, every(e, s) { - return bs(this, "every", e, s, void 0, arguments); + return ws(this, "every", e, s, void 0, arguments); }, filter(e, s) { - return bs( + return ws( this, "filter", e, s, - (o) => o.map((a) => Os(this, a)), + (o) => o.map((a) => Ns(this, a)), arguments ); }, find(e, s) { - return bs( + return ws( this, "find", e, s, - (o) => Os(this, o), + (o) => Ns(this, o), arguments ); }, findIndex(e, s) { - return bs(this, "findIndex", e, s, void 0, arguments); + return ws(this, "findIndex", e, s, void 0, arguments); }, findLast(e, s) { - return bs( + return ws( this, "findLast", e, s, - (o) => Os(this, o), + (o) => Ns(this, o), arguments ); }, findLastIndex(e, s) { - return bs(this, "findLastIndex", e, s, void 0, arguments); + return ws(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 bs(this, "forEach", e, s, void 0, arguments); + return ws(this, "forEach", e, s, void 0, arguments); }, includes(...e) { - return da(this, "includes", e); + return pa(this, "includes", e); }, indexOf(...e) { - return da(this, "indexOf", e); + return pa(this, "indexOf", e); }, join(e) { - return ro(this).join(e); + return vo(this).join(e); }, // keys() iterator only reads `length`, no optimization required lastIndexOf(...e) { - return da(this, "lastIndexOf", e); + return pa(this, "lastIndexOf", e); }, map(e, s) { - return bs(this, "map", e, s, void 0, arguments); + return ws(this, "map", e, s, void 0, arguments); }, pop() { - return Po(this, "pop"); + return Ao(this, "pop"); }, push(...e) { - return Po(this, "push", e); + return Ao(this, "push", e); }, reduce(e, ...s) { - return gl(this, "reduce", e, s); + return _l(this, "reduce", e, s); }, reduceRight(e, ...s) { - return gl(this, "reduceRight", e, s); + return _l(this, "reduceRight", e, s); }, shift() { - return Po(this, "shift"); + return Ao(this, "shift"); }, // slice could use ARRAY_ITERATE but also seems to beg for range tracking some(e, s) { - return bs(this, "some", e, s, void 0, arguments); + return ws(this, "some", e, s, void 0, arguments); }, splice(...e) { - return Po(this, "splice", e); + return Ao(this, "splice", e); }, toReversed() { - return ro(this).toReversed(); + return vo(this).toReversed(); }, toSorted(e) { - return ro(this).toSorted(e); + return vo(this).toSorted(e); }, toSpliced(...e) { - return ro(this).toSpliced(...e); + return vo(this).toSpliced(...e); }, unshift(...e) { - return Po(this, "unshift", e); + return Ao(this, "unshift", e); }, values() { - return ua(this, "values", (e) => Os(this, e)); + return va(this, "values", (e) => Ns(this, e)); } }; -function ua(e, s, o) { - const a = Qn(e), l = a[s](); - return a !== e && !Gt(e) && (l._next = l.next, l.next = () => { +function va(e, s, o) { + const a = Xn(e), l = a[s](); + return a !== e && !qt(e) && (l._next = l.next, l.next = () => { const r = l._next(); return r.done || (r.value = o(r.value)), r; }), l; } -const kc = Array.prototype; -function bs(e, s, o, a, l, r) { - const c = Qn(e), u = c !== e && !Gt(e), d = c[s]; - if (d !== kc[s]) { +const xc = Array.prototype; +function ws(e, s, o, a, l, r) { + const c = Xn(e), u = c !== e && !qt(e), d = c[s]; + if (d !== xc[s]) { const g = d.apply(e, r); - return u ? ss(g) : g; + return u ? ns(g) : g; } let m = o; c !== e && (u ? m = function(g, w) { - return o.call(this, Os(e, g), w, e); + return o.call(this, Ns(e, g), w, e); } : o.length > 2 && (m = function(g, w) { return o.call(this, g, w, e); })); const v = d.call(c, m, a); return u && l ? l(v) : v; } -function gl(e, s, o, a) { - const l = Qn(e); +function _l(e, s, o, a) { + const l = Xn(e); let r = o; - return l !== e && (Gt(e) ? o.length > 3 && (r = function(c, u, d) { + return l !== e && (qt(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); + return o.call(this, c, Ns(e, u), d, e); }), l[s](r, ...a); } -function da(e, s, o) { - const a = Qe(e); - _t(a, "iterate", Xo); +function pa(e, s, o) { + const a = Xe(e); + $t(a, "iterate", sn); const l = a[s](...o); - return (l === -1 || l === !1) && Za(o[0]) ? (o[0] = Qe(o[0]), a[s](...o)) : l; + return (l === -1 || l === !1) && ol(o[0]) ? (o[0] = Xe(o[0]), a[s](...o)) : l; } -function Po(e, s, o = []) { - Es(), Ka(); - const a = Qe(e)[s].apply(e, o); - return qa(), Ts(), a; +function Ao(e, s, o = []) { + xs(), Qa(); + const a = Xe(e)[s].apply(e, o); + return Xa(), Ss(), a; } -const _c = /* @__PURE__ */ Ba("__proto__,__v_isRef,__isVue"), Si = new Set( - /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(ts) +const Sc = /* @__PURE__ */ Ha("__proto__,__v_isRef,__isVue"), Pi = new Set( + /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((e) => e !== "arguments" && e !== "caller").map((e) => Symbol[e]).filter(os) ); -function bc(e) { - ts(e) || (e = String(e)); - const s = Qe(this); - return _t(s, "has", e), s.hasOwnProperty(e); +function Ic(e) { + os(e) || (e = String(e)); + const s = Xe(this); + return $t(s, "has", e), s.hasOwnProperty(e); } -class Ii { +class Mi { constructor(s = !1, o = !1) { this._isReadonly = s, this._isShallow = o; } @@ -659,16 +659,16 @@ class Ii { if (o === "__v_isShallow") return r; if (o === "__v_raw") - return a === (l ? r ? Mc : Pi : r ? Ri : Ti).get(s) || // receiver is not the reactive proxy, but has the same prototype + return a === (l ? r ? Oc : Ni : r ? Ai : Li).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(a) ? s : void 0; const c = Fe(s); if (!l) { let d; - if (c && (d = wc[o])) + if (c && (d = Cc[o])) return d; if (o === "hasOwnProperty") - return bc; + return Ic; } const u = Reflect.get( s, @@ -676,56 +676,56 @@ class Ii { // 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 - Ct(s) ? s : a + St(s) ? s : a ); - if ((ts(o) ? Si.has(o) : _c(o)) || (l || _t(s, "get", o), r)) + if ((os(o) ? Pi.has(o) : Sc(o)) || (l || $t(s, "get", o), r)) return u; - if (Ct(u)) { - const d = c && ja(o) ? u : u.value; - return l && st(d) ? Ln(d) : d; + if (St(u)) { + const d = c && Ya(o) ? u : u.value; + return l && st(d) ? An(d) : d; } - return st(u) ? l ? Ln(u) : Ws(u) : u; + return st(u) ? l ? An(u) : Ws(u) : u; } } -class Ei extends Ii { +class Di extends Mi { constructor(s = !1) { super(!1, s); } set(s, o, a, l) { let r = s[o]; - const c = Fe(s) && ja(o); + const c = Fe(s) && Ya(o); if (!this._isShallow) { - const m = Rs(r); - if (!Gt(a) && !Rs(a) && (r = Qe(r), a = Qe(a)), !c && Ct(r) && !Ct(a)) + const m = Is(r); + if (!qt(a) && !Is(a) && (r = Xe(r), a = Xe(a)), !c && St(r) && !St(a)) return m || (r.value = a), !0; } - const u = c ? Number(o) < s.length : et(s, o), d = Reflect.set( + const u = c ? Number(o) < s.length : tt(s, o), d = Reflect.set( s, o, a, - Ct(s) ? s : l + St(s) ? s : l ); - return s === Qe(l) && (u ? zs(a, r) && xs(s, "set", o, a) : xs(s, "add", o, a)), d; + return s === Xe(l) && (u ? zs(a, r) && bs(s, "set", o, a) : bs(s, "add", o, a)), d; } deleteProperty(s, o) { - const a = et(s, o); + const a = tt(s, o); s[o]; const l = Reflect.deleteProperty(s, o); - return l && a && xs(s, "delete", o, void 0), l; + return l && a && bs(s, "delete", o, void 0), l; } has(s, o) { const a = Reflect.has(s, o); - return (!ts(o) || !Si.has(o)) && _t(s, "has", o), a; + return (!os(o) || !Pi.has(o)) && $t(s, "has", o), a; } ownKeys(s) { - return _t( + return $t( s, "iterate", - Fe(s) ? "length" : eo + Fe(s) ? "length" : Xs ), Reflect.ownKeys(s); } } -class $c extends Ii { +class Ec extends Mi { constructor(s = !1) { super(!0, s); } @@ -736,15 +736,15 @@ class $c extends Ii { return !0; } } -const Cc = /* @__PURE__ */ new Ei(), xc = /* @__PURE__ */ new $c(), Sc = /* @__PURE__ */ new Ei(!0); -const Ea = (e) => e, hn = (e) => Reflect.getPrototypeOf(e); -function Ic(e, s, o) { +const Tc = /* @__PURE__ */ new Di(), Rc = /* @__PURE__ */ new Ec(), Pc = /* @__PURE__ */ new Di(!0); +const Ma = (e) => e, yn = (e) => Reflect.getPrototypeOf(e); +function Mc(e, s, o) { return function(...a) { - const l = this.__v_raw, r = Qe(l), c = go(r), u = e === "entries" || e === Symbol.iterator && c, d = e === "keys" && c, m = l[e](...a), v = o ? Ea : s ? _o : ss; - return !s && _t( + const l = this.__v_raw, r = Xe(l), c = _o(r), u = e === "entries" || e === Symbol.iterator && c, d = e === "keys" && c, m = l[e](...a), v = o ? Ma : s ? So : ns; + return !s && $t( r, "iterate", - d ? Ia : eo + d ? Pa : Xs ), { // iterator protocol next() { @@ -761,17 +761,17 @@ function Ic(e, s, o) { }; }; } -function yn(e) { +function wn(e) { return function(...s) { return e === "delete" ? !1 : e === "clear" ? void 0 : this; }; } -function Ec(e, s) { +function Dc(e, s) { const o = { get(l) { - const r = this.__v_raw, c = Qe(r), u = Qe(l); - e || (zs(l, u) && _t(c, "get", l), _t(c, "get", u)); - const { has: d } = hn(c), m = s ? Ea : e ? _o : ss; + 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 } = yn(c), m = s ? Ma : e ? So : ns; if (d.call(c, l)) return m(r.get(l)); if (d.call(c, u)) @@ -780,48 +780,48 @@ function Ec(e, s) { }, get size() { const l = this.__v_raw; - return !e && _t(Qe(l), "iterate", eo), l.size; + return !e && $t(Xe(l), "iterate", Xs), l.size; }, has(l) { - const r = this.__v_raw, c = Qe(r), u = Qe(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); + 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, r) { - const c = this, u = c.__v_raw, d = Qe(u), m = s ? Ea : e ? _o : ss; - return !e && _t(d, "iterate", eo), u.forEach((v, g) => l.call(r, m(v), m(g), c)); + const c = this, u = c.__v_raw, d = Xe(u), m = s ? Ma : e ? So : ns; + return !e && $t(d, "iterate", Xs), u.forEach((v, g) => l.call(r, m(v), m(g), c)); } }; - return pt( + return gt( o, e ? { - add: yn("add"), - set: yn("set"), - delete: yn("delete"), - clear: yn("clear") + add: wn("add"), + set: wn("set"), + delete: wn("delete"), + clear: wn("clear") } : { add(l) { - !s && !Gt(l) && !Rs(l) && (l = Qe(l)); - const r = Qe(this); - return hn(r).has.call(r, l) || (r.add(l), xs(r, "add", l, l)), this; + !s && !qt(l) && !Is(l) && (l = Xe(l)); + const r = Xe(this); + return yn(r).has.call(r, l) || (r.add(l), bs(r, "add", l, l)), this; }, set(l, r) { - !s && !Gt(r) && !Rs(r) && (r = Qe(r)); - const c = Qe(this), { has: u, get: d } = hn(c); + !s && !qt(r) && !Is(r) && (r = Xe(r)); + const c = Xe(this), { has: u, get: d } = yn(c); let m = u.call(c, l); - m || (l = Qe(l), 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; + return c.set(l, r), m ? zs(r, v) && bs(c, "set", l, r) : bs(c, "add", l, r), this; }, delete(l) { - const r = Qe(this), { has: c, get: u } = hn(r); + const r = Xe(this), { has: c, get: u } = yn(r); let d = c.call(r, l); - d || (l = Qe(l), d = c.call(r, l)), u && u.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; + return d && bs(r, "delete", l, void 0), m; }, clear() { - const l = Qe(this), r = l.size !== 0, c = l.clear(); - return r && xs( + const l = Xe(this), r = l.size !== 0, c = l.clear(); + return r && bs( l, "clear", void 0, @@ -835,26 +835,26 @@ function Ec(e, s) { "entries", Symbol.iterator ].forEach((l) => { - o[l] = Ic(l, e, s); + o[l] = Mc(l, e, s); }), o; } -function Qa(e, s) { - const o = Ec(e, s); +function tl(e, s) { + const o = Dc(e, s); return (a, l, r) => l === "__v_isReactive" ? !e : l === "__v_isReadonly" ? e : l === "__v_raw" ? a : Reflect.get( - et(o, l) && l in a ? o : a, + tt(o, l) && l in a ? o : a, l, r ); } -const Tc = { - get: /* @__PURE__ */ Qa(!1, !1) -}, Rc = { - get: /* @__PURE__ */ Qa(!1, !0) -}, Pc = { - get: /* @__PURE__ */ Qa(!0, !1) +const Lc = { + get: /* @__PURE__ */ tl(!1, !1) +}, Ac = { + get: /* @__PURE__ */ tl(!1, !0) +}, Nc = { + get: /* @__PURE__ */ tl(!0, !1) }; -const Ti = /* @__PURE__ */ new WeakMap(), Ri = /* @__PURE__ */ new WeakMap(), Pi = /* @__PURE__ */ new WeakMap(), Mc = /* @__PURE__ */ new WeakMap(); -function Dc(e) { +const Li = /* @__PURE__ */ new WeakMap(), Ai = /* @__PURE__ */ new WeakMap(), Ni = /* @__PURE__ */ new WeakMap(), Oc = /* @__PURE__ */ new WeakMap(); +function Uc(e) { switch (e) { case "Object": case "Array": @@ -868,40 +868,40 @@ function Dc(e) { return 0; } } -function Lc(e) { - return e.__v_skip || !Object.isExtensible(e) ? 0 : Dc(nc(e)); +function zc(e) { + return e.__v_skip || !Object.isExtensible(e) ? 0 : Uc(cc(e)); } function Ws(e) { - return Rs(e) ? e : Xa( + return Is(e) ? e : sl( e, !1, - Cc, Tc, - Ti + Lc, + Li ); } -function Ac(e) { - return Xa( +function Fc(e) { + return sl( e, !1, - Sc, - Rc, - Ri + Pc, + Ac, + Ai ); } -function Ln(e) { - return Xa( +function An(e) { + return sl( e, !0, - xc, - Pc, - Pi + Rc, + Nc, + Ni ); } -function Xa(e, s, o, a, l) { +function sl(e, s, o, a, l) { if (!st(e) || e.__v_raw && !(s && e.__v_isReactive)) return e; - const r = Lc(e); + const r = zc(e); if (r === 0) return e; const c = l.get(e); @@ -913,186 +913,186 @@ function Xa(e, s, o, a, l) { ); return l.set(e, u), u; } -function to(e) { - return Rs(e) ? to(e.__v_raw) : !!(e && e.__v_isReactive); +function Zs(e) { + return Is(e) ? Zs(e.__v_raw) : !!(e && e.__v_isReactive); } -function Rs(e) { +function Is(e) { return !!(e && e.__v_isReadonly); } -function Gt(e) { +function qt(e) { return !!(e && e.__v_isShallow); } -function Za(e) { +function ol(e) { return e ? !!e.__v_raw : !1; } -function Qe(e) { +function Xe(e) { const s = e && e.__v_raw; - return s ? Qe(s) : e; + return s ? Xe(s) : e; } -function Oc(e) { - return !et(e, "__v_skip") && Object.isExtensible(e) && vi(e, "__v_skip", !0), e; +function Vc(e) { + return !tt(e, "__v_skip") && Object.isExtensible(e) && wi(e, "__v_skip", !0), e; } -const ss = (e) => st(e) ? Ws(e) : e, _o = (e) => st(e) ? Ln(e) : e; -function Ct(e) { +const ns = (e) => st(e) ? Ws(e) : e, So = (e) => st(e) ? An(e) : e; +function St(e) { return e ? e.__v_isRef === !0 : !1; } function _(e) { - return Nc(e, !1); + return Bc(e, !1); } -function Nc(e, s) { - return Ct(e) ? e : new Uc(e, s); +function Bc(e, s) { + return St(e) ? e : new Wc(e, s); } -class Uc { +class Wc { constructor(s, o) { - this.dep = new Ja(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = o ? s : Qe(s), this._value = o ? s : ss(s), this.__v_isShallow = o; + this.dep = new el(), this.__v_isRef = !0, this.__v_isShallow = !1, this._rawValue = o ? s : Xe(s), this._value = o ? s : ns(s), this.__v_isShallow = o; } get value() { return this.dep.track(), this._value; } set value(s) { - const o = this._rawValue, a = this.__v_isShallow || Gt(s) || Rs(s); - s = a ? s : Qe(s), zs(s, o) && (this._rawValue = s, this._value = a ? s : ss(s), this.dep.trigger()); + const o = this._rawValue, a = this.__v_isShallow || qt(s) || Is(s); + s = a ? s : Xe(s), zs(s, o) && (this._rawValue = s, this._value = a ? s : ns(s), this.dep.trigger()); } } -function Be(e) { - return Ct(e) ? e.value : e; +function We(e) { + return St(e) ? e.value : e; } -const zc = { - get: (e, s, o) => s === "__v_raw" ? e : Be(Reflect.get(e, s, o)), +const Gc = { + get: (e, s, o) => s === "__v_raw" ? e : We(Reflect.get(e, s, o)), set: (e, s, o, a) => { const l = e[s]; - return Ct(l) && !Ct(o) ? (l.value = o, !0) : Reflect.set(e, s, o, a); + return St(l) && !St(o) ? (l.value = o, !0) : Reflect.set(e, s, o, a); } }; -function Mi(e) { - return to(e) ? e : new Proxy(e, zc); +function Oi(e) { + return Zs(e) ? e : new Proxy(e, Gc); } -class Fc { +class jc { constructor(s, o, a) { - this.fn = s, this.setter = o, this._value = void 0, this.dep = new Ja(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 = a; + this.fn = s, this.setter = o, this._value = void 0, this.dep = new el(this), this.__v_isRef = !0, this.deps = void 0, this.depsTail = void 0, this.flags = 16, this.globalVersion = tn - 1, this.next = void 0, this.effect = this, this.__v_isReadonly = !o, this.isSSR = a; } /** * @internal */ notify() { if (this.flags |= 16, !(this.flags & 8) && // avoid infinite self recursion - at !== this) - return ki(this, !0), !0; + rt !== this) + return xi(this, !0), !0; } get value() { const s = this.dep.track(); - return $i(this), s && (s.version = this.dep.version), this._value; + return Ei(this), s && (s.version = this.dep.version), this._value; } set value(s) { this.setter && this.setter(s); } } -function Vc(e, s, o = !1) { +function Hc(e, s, o = !1) { let a, l; - return We(e) ? a = e : (a = e.get, l = e.set), new Fc(a, l, o); + return He(e) ? a = e : (a = e.get, l = e.set), new jc(a, l, o); } -const wn = {}, An = /* @__PURE__ */ new WeakMap(); -let Xs; -function Bc(e, s = !1, o = Xs) { +const kn = {}, Nn = /* @__PURE__ */ new WeakMap(); +let Js; +function Kc(e, s = !1, o = Js) { if (o) { - let a = An.get(o); - a || An.set(o, a = []), a.push(e); + let a = Nn.get(o); + a || Nn.set(o, a = []), a.push(e); } } -function Wc(e, s, o = ot) { - const { immediate: a, deep: l, once: r, scheduler: c, augmentJob: u, call: d } = o, m = (T) => l ? T : Gt(T) || l === !1 || l === 0 ? Ss(T, 1) : Ss(T); +function qc(e, s, o = nt) { + const { immediate: a, deep: l, once: r, scheduler: c, augmentJob: u, call: d } = o, m = (T) => l ? T : qt(T) || l === !1 || l === 0 ? $s(T, 1) : $s(T); 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) : Fe(e) ? (C = !0, k = e.some((T) => to(T) || Gt(T)), g = () => e.map((T) => { - if (Ct(T)) + if (St(e) ? (g = () => e.value, k = qt(e)) : Zs(e) ? (g = () => m(e), k = !0) : Fe(e) ? (C = !0, k = e.some((T) => Zs(T) || qt(T)), g = () => e.map((T) => { + if (St(T)) return T.value; - if (to(T)) + if (Zs(T)) return m(T); - if (We(T)) + if (He(T)) return d ? d(T, 2) : T(); - })) : We(e) ? s ? g = d ? () => d(e, 2) : e : g = () => { + })) : He(e) ? s ? g = d ? () => d(e, 2) : e : g = () => { if (w) { - Es(); + xs(); try { w(); } finally { - Ts(); + Ss(); } } - const T = Xs; - Xs = v; + const T = Js; + Js = v; try { return d ? d(e, 3, [p]) : e(p); } finally { - Xs = T; + Js = T; } - } : g = gs, s && l) { - const T = g, L = l === !0 ? 1 / 0 : l; - g = () => Ss(T(), L); + } : g = ps, s && l) { + const T = g, D = l === !0 ? 1 / 0 : l; + g = () => $s(T(), D); } - const b = gc(), x = () => { - v.stop(), b && b.active && Ga(b.effects, v); + const b = _c(), x = () => { + v.stop(), b && b.active && qa(b.effects, v); }; if (r && s) { const T = s; - s = (...L) => { - T(...L), x(); + s = (...D) => { + T(...D), x(); }; } - let M = C ? new Array(e.length).fill(wn) : wn; - const P = (T) => { + let M = C ? new Array(e.length).fill(kn) : kn; + const R = (T) => { if (!(!(v.flags & 1) || !v.dirty && !T)) if (s) { - const L = v.run(); - if (l || k || (C ? L.some((V, B) => zs(V, M[B])) : zs(L, M))) { + const D = v.run(); + if (l || k || (C ? D.some((O, W) => zs(O, M[W])) : zs(D, M))) { w && w(); - const V = Xs; - Xs = v; + const O = Js; + Js = v; try { - const B = [ - L, + const W = [ + D, // pass undefined as the old value when it's changed for the first time - M === wn ? void 0 : C && M[0] === wn ? [] : M, + M === kn ? void 0 : C && M[0] === kn ? [] : M, p ]; - M = L, d ? d(s, 3, B) : ( + M = D, d ? d(s, 3, W) : ( // @ts-expect-error - s(...B) + s(...W) ); } finally { - Xs = V; + Js = O; } } } else v.run(); }; - return u && u(P), v = new yi(g), v.scheduler = c ? () => c(P, !1) : P, p = (T) => Bc(T, !1, v), w = v.onStop = () => { - const T = An.get(v); + return u && u(R), v = new $i(g), v.scheduler = c ? () => c(R, !1) : R, p = (T) => Kc(T, !1, v), w = v.onStop = () => { + const T = Nn.get(v); if (T) { if (d) d(T, 4); else - for (const L of T) L(); - An.delete(v); + for (const D of T) D(); + Nn.delete(v); } - }, s ? a ? P(!0) : M = v.run() : c ? c(P.bind(null, !0), !0) : v.run(), x.pause = v.pause.bind(v), x.resume = v.resume.bind(v), x.stop = x, x; + }, s ? a ? R(!0) : M = v.run() : c ? c(R.bind(null, !0), !0) : v.run(), x.pause = v.pause.bind(v), x.resume = v.resume.bind(v), x.stop = x, x; } -function Ss(e, s = 1 / 0, o) { +function $s(e, s = 1 / 0, o) { if (s <= 0 || !st(e) || e.__v_skip || (o = o || /* @__PURE__ */ new Map(), (o.get(e) || 0) >= s)) return e; - if (o.set(e, s), s--, Ct(e)) - Ss(e.value, s, o); + if (o.set(e, s), s--, St(e)) + $s(e.value, s, o); else if (Fe(e)) for (let a = 0; a < e.length; a++) - Ss(e[a], s, o); - else if (Co(e) || go(e)) + $s(e[a], s, o); + else if (To(e) || _o(e)) e.forEach((a) => { - Ss(a, s, o); + $s(a, s, o); }); - else if (mi(e)) { + else if (yi(e)) { for (const a in e) - Ss(e[a], s, o); + $s(e[a], s, o); for (const a of Object.getOwnPropertySymbols(e)) - Object.prototype.propertyIsEnumerable.call(e, a) && Ss(e[a], s, o); + Object.prototype.propertyIsEnumerable.call(e, a) && $s(e[a], s, o); } return e; } @@ -1101,29 +1101,29 @@ function Ss(e, s = 1 / 0, o) { * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/ -function rn(e, s, o, a) { +function fn(e, s, o, a) { try { return a ? e(...a) : e(); } catch (l) { - Xn(l, s, o); + Zn(l, s, o); } } -function os(e, s, o, a) { - if (We(e)) { - const l = rn(e, s, o, a); - return l && di(l) && l.catch((r) => { - Xn(r, s, o); +function as(e, s, o, a) { + if (He(e)) { + const l = fn(e, s, o, a); + return l && gi(l) && l.catch((r) => { + Zn(r, s, o); }), l; } if (Fe(e)) { const l = []; for (let r = 0; r < e.length; r++) - l.push(os(e[r], s, o, a)); + l.push(as(e[r], s, o, a)); return l; } } -function Xn(e, s, o, a = !0) { - const l = s ? s.vnode : null, { errorHandler: r, throwUnhandledErrorInProduction: c } = s && s.appContext.config || ot; +function Zn(e, s, o, a = !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}`; @@ -1137,128 +1137,128 @@ function Xn(e, s, o, a = !0) { u = u.parent; } if (r) { - Es(), rn(r, null, 10, [ + xs(), fn(r, null, 10, [ e, d, m - ]), Ts(); + ]), Ss(); return; } } - Gc(e, o, l, a, c); + Yc(e, o, l, a, c); } -function Gc(e, s, o, a = !0, l = !1) { +function Yc(e, s, o, a = !0, l = !1) { if (l) throw e; console.error(e); } -const Rt = []; -let ms = -1; -const ho = []; -let Ns = null, fo = 0; -const Di = /* @__PURE__ */ Promise.resolve(); +const Mt = []; +let fs = -1; +const bo = []; +let Os = null, ho = 0; +const Ui = /* @__PURE__ */ Promise.resolve(); let On = null; -function gt(e) { - const s = On || Di; +function ht(e) { + const s = On || Ui; return e ? s.then(this ? e.bind(this) : e) : s; } -function jc(e) { - let s = ms + 1, o = Rt.length; +function Jc(e) { + let s = fs + 1, o = Mt.length; for (; s < o; ) { - const a = s + o >>> 1, l = Rt[a], r = Zo(l); + const a = s + o >>> 1, l = Mt[a], r = on(l); r < e || r === e && l.flags & 2 ? s = a + 1 : o = a; } return s; } -function el(e) { +function nl(e) { if (!(e.flags & 1)) { - const s = Zo(e), o = Rt[Rt.length - 1]; + const s = on(e), o = Mt[Mt.length - 1]; !o || // fast path when the job id is larger than the tail - !(e.flags & 2) && s >= Zo(o) ? Rt.push(e) : Rt.splice(jc(s), 0, e), e.flags |= 1, Li(); + !(e.flags & 2) && s >= on(o) ? Mt.push(e) : Mt.splice(Jc(s), 0, e), e.flags |= 1, zi(); } } -function Li() { - On || (On = Di.then(Oi)); +function zi() { + On || (On = Ui.then(Vi)); } -function Hc(e) { - Fe(e) ? ho.push(...e) : Ns && e.id === -1 ? Ns.splice(fo + 1, 0, e) : e.flags & 1 || (ho.push(e), e.flags |= 1), Li(); +function Qc(e) { + Fe(e) ? bo.push(...e) : Os && e.id === -1 ? Os.splice(ho + 1, 0, e) : e.flags & 1 || (bo.push(e), e.flags |= 1), zi(); } -function hl(e, s, o = ms + 1) { - for (; o < Rt.length; o++) { - const a = Rt[o]; +function bl(e, s, o = fs + 1) { + for (; o < Mt.length; o++) { + const a = Mt[o]; if (a && a.flags & 2) { if (e && a.id !== e.uid) continue; - Rt.splice(o, 1), o--, a.flags & 4 && (a.flags &= -2), a(), a.flags & 4 || (a.flags &= -2); + Mt.splice(o, 1), o--, a.flags & 4 && (a.flags &= -2), a(), a.flags & 4 || (a.flags &= -2); } } } -function Ai(e) { - if (ho.length) { - const s = [...new Set(ho)].sort( - (o, a) => Zo(o) - Zo(a) +function Fi(e) { + if (bo.length) { + const s = [...new Set(bo)].sort( + (o, a) => on(o) - on(a) ); - if (ho.length = 0, Ns) { - Ns.push(...s); + if (bo.length = 0, Os) { + Os.push(...s); return; } - for (Ns = s, fo = 0; fo < Ns.length; fo++) { - const o = Ns[fo]; + for (Os = s, ho = 0; ho < Os.length; ho++) { + const o = Os[ho]; o.flags & 4 && (o.flags &= -2), o.flags & 8 || o(), o.flags &= -2; } - Ns = null, fo = 0; + Os = null, ho = 0; } } -const Zo = (e) => e.id == null ? e.flags & 2 ? -1 : 1 / 0 : e.id; -function Oi(e) { +const on = (e) => e.id == null ? e.flags & 2 ? -1 : 1 / 0 : e.id; +function Vi(e) { try { - for (ms = 0; ms < Rt.length; ms++) { - const s = Rt[ms]; - s && !(s.flags & 8) && (s.flags & 4 && (s.flags &= -2), rn( + for (fs = 0; fs < Mt.length; fs++) { + const s = Mt[fs]; + s && !(s.flags & 8) && (s.flags & 4 && (s.flags &= -2), fn( s, s.i, s.i ? 15 : 14 ), s.flags & 4 || (s.flags &= -2)); } } finally { - for (; ms < Rt.length; ms++) { - const s = Rt[ms]; + for (; fs < Mt.length; fs++) { + const s = Mt[fs]; s && (s.flags &= -2); } - ms = -1, Rt.length = 0, Ai(), On = null, (Rt.length || ho.length) && Oi(); + fs = -1, Mt.length = 0, Fi(), On = null, (Mt.length || bo.length) && Vi(); } } -let wt = null, Ni = null; -function Nn(e) { +let wt = null, Bi = null; +function Un(e) { const s = wt; - return wt = e, Ni = e && e.type.__scopeId || null, s; + return wt = e, Bi = e && e.type.__scopeId || null, s; } function h(e, s = wt, o) { if (!s || e._n) return e; const a = (...l) => { - a._d && Fn(-1); - const r = Nn(s); + a._d && Vn(-1); + const r = Un(s); let c; try { c = e(...l); } finally { - Nn(r), a._d && Fn(1); + Un(r), a._d && Vn(1); } return c; }; return a._n = !0, a._c = !0, a._d = !0, a; } -function Ke(e, s) { +function qe(e, s) { if (wt === null) return e; - const o = oa(wt), a = e.dirs || (e.dirs = []); + const o = na(wt), a = e.dirs || (e.dirs = []); for (let l = 0; l < s.length; l++) { - let [r, c, u, d = ot] = s[l]; - r && (We(r) && (r = { + let [r, c, u, d = nt] = s[l]; + r && (He(r) && (r = { mounted: r, updated: r - }), r.deep && Ss(c), a.push({ + }), r.deep && $s(c), a.push({ dir: r, instance: o, value: c, @@ -1269,24 +1269,24 @@ function Ke(e, s) { } return e; } -function qs(e, s, o, a) { +function Hs(e, s, o, a) { 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[a]; - d && (Es(), os(d, o, 8, [ + d && (xs(), as(d, o, 8, [ e.el, u, e, s - ]), Ts()); + ]), Ss()); } } -const Ui = Symbol("_vte"), zi = (e) => e.__isTeleport, Wo = (e) => e && (e.disabled || e.disabled === ""), yl = (e) => e && (e.defer || e.defer === ""), wl = (e) => typeof SVGElement < "u" && e instanceof SVGElement, kl = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, Ta = (e, s) => { +const Wi = Symbol("_vte"), Gi = (e) => e.__isTeleport, Ko = (e) => e && (e.disabled || e.disabled === ""), $l = (e) => e && (e.defer || e.defer === ""), Cl = (e) => typeof SVGElement < "u" && e instanceof SVGElement, xl = (e) => typeof MathMLElement == "function" && e instanceof MathMLElement, Da = (e, s) => { const o = e && e.to; - return ut(o) ? s ? s(o) : null : o; -}, Fi = { + return mt(o) ? s ? s(o) : null : o; +}, ji = { name: "Teleport", __isTeleport: !0, process(e, s, o, a, l, r, c, u, d, m) { @@ -1295,33 +1295,33 @@ const Ui = Symbol("_vte"), zi = (e) => e.__isTeleport, Wo = (e) => e && (e.disab pc: g, pbc: w, o: { insert: p, querySelector: k, createText: C, createComment: b } - } = m, x = Wo(s.props); - let { shapeFlag: M, children: P, dynamicChildren: T } = s; + } = m, x = Ko(s.props); + let { shapeFlag: M, children: R, dynamicChildren: T } = s; if (e == null) { - const L = s.el = C(""), V = s.anchor = C(""); - p(L, o, a), p(V, o, a); - const B = (I, A) => { + const D = s.el = C(""), O = s.anchor = C(""); + p(D, o, a), p(O, o, a); + const W = (E, j) => { M & 16 && v( - P, - I, - A, + R, + E, + j, l, r, c, u, d ); - }, E = () => { - const I = s.target = Ta(s.props, k), A = Vi(I, s, C, p); - I && (c !== "svg" && wl(I) ? c = "svg" : c !== "mathml" && kl(I) && (c = "mathml"), l && l.isCE && (l.ce._teleportTargets || (l.ce._teleportTargets = /* @__PURE__ */ new Set())).add(I), x || (B(I, A), En(s, !1))); + }, I = () => { + const E = s.target = Da(s.props, k), j = Hi(E, s, C, p); + E && (c !== "svg" && Cl(E) ? c = "svg" : c !== "mathml" && xl(E) && (c = "mathml"), l && l.isCE && (l.ce._teleportTargets || (l.ce._teleportTargets = /* @__PURE__ */ new Set())).add(E), x || (W(E, j), Tn(s, !1))); }; - x && (B(o, V), En(s, !0)), yl(s.props) ? (s.el.__isMounted = !1, Et(() => { - E(), delete s.el.__isMounted; - }, r)) : E(); + x && (W(o, O), Tn(s, !0)), $l(s.props) ? (s.el.__isMounted = !1, Rt(() => { + I(), delete s.el.__isMounted; + }, r)) : I(); } else { - if (yl(s.props) && e.el.__isMounted === !1) { - Et(() => { - Fi.process( + if ($l(s.props) && e.el.__isMounted === !1) { + Rt(() => { + ji.process( e, s, o, @@ -1337,53 +1337,53 @@ const Ui = Symbol("_vte"), zi = (e) => e.__isTeleport, Wo = (e) => e && (e.disab return; } s.el = e.el, s.targetStart = e.targetStart; - const L = s.anchor = e.anchor, V = s.target = e.target, B = s.targetAnchor = e.targetAnchor, E = Wo(e.props), I = E ? o : V, A = E ? L : B; - if (c === "svg" || wl(V) ? c = "svg" : (c === "mathml" || kl(V)) && (c = "mathml"), T ? (w( + const D = s.anchor = e.anchor, O = s.target = e.target, W = s.targetAnchor = e.targetAnchor, I = Ko(e.props), E = I ? o : O, j = I ? D : W; + if (c === "svg" || Cl(O) ? c = "svg" : (c === "mathml" || xl(O)) && (c = "mathml"), T ? (w( e.dynamicChildren, T, - I, + E, l, r, c, u - ), al(e, s, !0)) : d || g( + ), cl(e, s, !0)) : d || g( e, s, - I, - A, + E, + j, l, r, c, u, !1 ), x) - E ? s.props && e.props && s.props.to !== e.props.to && (s.props.to = e.props.to) : kn( + I ? s.props && e.props && s.props.to !== e.props.to && (s.props.to = e.props.to) : _n( s, o, - L, + D, m, 1 ); else if ((s.props && s.props.to) !== (e.props && e.props.to)) { - const te = s.target = Ta( + const ee = s.target = Da( s.props, k ); - te && kn( + ee && _n( s, - te, + ee, null, m, 0 ); - } else E && kn( + } else I && _n( s, - V, - B, + O, + W, m, 1 ); - En(s, x); + Tn(s, x); } }, remove(e, s, o, { um: a, o: { remove: l } }, r) { @@ -1397,7 +1397,7 @@ const Ui = Symbol("_vte"), zi = (e) => e.__isTeleport, Wo = (e) => e && (e.disab props: w } = e; if (g && (l(m), l(v)), r && l(d), c & 16) { - const p = r || !Wo(w); + const p = r || !Ko(w); for (let k = 0; k < u.length; k++) { const C = u[k]; a( @@ -1410,13 +1410,13 @@ const Ui = Symbol("_vte"), zi = (e) => e.__isTeleport, Wo = (e) => e && (e.disab } } }, - move: kn, - hydrate: Kc + move: _n, + hydrate: Xc }; -function kn(e, s, o, { o: { insert: a }, m: l }, r = 2) { +function _n(e, s, o, { o: { insert: a }, m: l }, r = 2) { r === 0 && a(e.targetAnchor, s, o); const { el: c, anchor: u, shapeFlag: d, children: m, props: v } = e, g = r === 2; - if (g && a(c, s, o), (!g || Wo(v)) && d & 16) + if (g && a(c, s, o), (!g || Ko(v)) && d & 16) for (let w = 0; w < m.length; w++) l( m[w], @@ -1426,7 +1426,7 @@ function kn(e, s, o, { o: { insert: a }, m: l }, r = 2) { ); g && a(u, s, o); } -function Kc(e, s, o, a, l, r, { +function Xc(e, s, o, a, l, r, { o: { nextSibling: c, parentNode: u, querySelector: d, insert: m, createText: v } }, g) { function w(C, b, x, M) { @@ -1440,10 +1440,10 @@ function Kc(e, s, o, a, l, r, { r ), b.targetStart = x, b.targetAnchor = M; } - const p = s.target = Ta( + const p = s.target = Da( s.props, d - ), k = Wo(s.props); + ), k = Ko(s.props); if (p) { const C = p._lpa || p.firstChild; if (s.shapeFlag & 16) @@ -1468,7 +1468,7 @@ function Kc(e, s, o, a, l, r, { } b = c(b); } - s.targetAnchor || Vi(p, s, v, m), g( + s.targetAnchor || Hi(p, s, v, m), g( C && c(C), s, p, @@ -1478,12 +1478,12 @@ function Kc(e, s, o, a, l, r, { r ); } - En(s, k); + Tn(s, k); } else k && s.shapeFlag & 16 && w(e, s, e, c(e)); return s.anchor && c(s.anchor); } -const kt = Fi; -function En(e, s) { +const kt = ji; +function Tn(e, s) { const o = e.ctx; if (o && o.ut) { let a, l; @@ -1492,62 +1492,62 @@ function En(e, s) { o.ut(); } } -function Vi(e, s, o, a) { +function Hi(e, s, o, a) { const l = s.targetStart = o(""), r = s.targetAnchor = o(""); - return l[Ui] = r, e && (a(l, e), a(r, e)), r; + return l[Wi] = r, e && (a(l, e), a(r, e)), r; } -const Cs = Symbol("_leaveCb"), _n = Symbol("_enterCb"); -function Bi() { +const _s = Symbol("_leaveCb"), bn = Symbol("_enterCb"); +function Ki() { const e = { isMounted: !1, isLeaving: !1, isUnmounting: !1, leavingVNodes: /* @__PURE__ */ new Map() }; - return Je(() => { + return Qe(() => { e.isMounted = !0; - }), Ji(() => { + }), tr(() => { e.isUnmounting = !0; }), e; } -const Bt = [Function, Array], Wi = { +const Ht = [Function, Array], qi = { mode: String, appear: Boolean, persisted: Boolean, // enter - onBeforeEnter: Bt, - onEnter: Bt, - onAfterEnter: Bt, - onEnterCancelled: Bt, + onBeforeEnter: Ht, + onEnter: Ht, + onAfterEnter: Ht, + onEnterCancelled: Ht, // leave - onBeforeLeave: Bt, - onLeave: Bt, - onAfterLeave: Bt, - onLeaveCancelled: Bt, + onBeforeLeave: Ht, + onLeave: Ht, + onAfterLeave: Ht, + onLeaveCancelled: Ht, // appear - onBeforeAppear: Bt, - onAppear: Bt, - onAfterAppear: Bt, - onAppearCancelled: Bt -}, Gi = (e) => { + onBeforeAppear: Ht, + onAppear: Ht, + onAfterAppear: Ht, + onAppearCancelled: Ht +}, Yi = (e) => { const s = e.subTree; - return s.component ? Gi(s.component) : s; -}, qc = { + return s.component ? Yi(s.component) : s; +}, Zc = { name: "BaseTransition", - props: Wi, + props: qi, setup(e, { slots: s }) { - const o = il(), a = Bi(); + const o = dl(), a = Ki(); return () => { - const l = s.default && tl(s.default(), !0); + const l = s.default && al(s.default(), !0); if (!l || !l.length) return; - const r = ji(l), c = Qe(e), { mode: u } = c; + const r = Ji(l), c = Xe(e), { mode: u } = c; if (a.isLeaving) - return fa(r); - const d = _l(r); + return ga(r); + const d = Sl(r); if (!d) - return fa(r); - let m = en( + return ga(r); + let m = nn( d, c, a, @@ -1555,26 +1555,26 @@ const Bt = [Function, Array], Wi = { // #11061, ensure enterHooks is fresh after clone (g) => m = g ); - d.type !== bt && oo(d, m); - let v = o.subTree && _l(o.subTree); - if (v && v.type !== bt && !Zs(v, d) && Gi(o).type !== bt) { - let g = en( + d.type !== Ct && to(d, m); + let v = o.subTree && Sl(o.subTree); + if (v && v.type !== Ct && !Qs(v, d) && Yi(o).type !== Ct) { + let g = nn( v, c, a, o ); - if (oo(v, g), u === "out-in" && d.type !== bt) + if (to(v, g), u === "out-in" && d.type !== Ct) return a.isLeaving = !0, g.afterLeave = () => { a.isLeaving = !1, o.job.flags & 8 || o.update(), delete g.afterLeave, v = void 0; - }, fa(r); - u === "in-out" && d.type !== bt ? g.delayLeave = (w, p, k) => { - const C = Hi( + }, ga(r); + u === "in-out" && d.type !== Ct ? g.delayLeave = (w, p, k) => { + const C = Qi( a, v ); - C[String(v.key)] = v, w[Cs] = () => { - p(), w[Cs] = void 0, delete m.delayedLeave, v = void 0; + C[String(v.key)] = v, w[_s] = () => { + p(), w[_s] = void 0, delete m.delayedLeave, v = void 0; }, m.delayedLeave = () => { k(), delete m.delayedLeave, v = void 0; }; @@ -1584,24 +1584,24 @@ const Bt = [Function, Array], Wi = { }; } }; -function ji(e) { +function Ji(e) { let s = e[0]; if (e.length > 1) { for (const o of e) - if (o.type !== bt) { + if (o.type !== Ct) { s = o; break; } } return s; } -const Yc = qc; -function Hi(e, s) { +const eu = Zc; +function Qi(e, s) { const { leavingVNodes: o } = e; let a = o.get(s.type); return a || (a = /* @__PURE__ */ Object.create(null), o.set(s.type, a)), a; } -function en(e, s, o, a, l) { +function nn(e, s, o, a, l) { const { appear: r, mode: c, @@ -1617,102 +1617,102 @@ function en(e, s, o, a, l) { onBeforeAppear: b, onAppear: x, onAfterAppear: M, - onAppearCancelled: P - } = s, T = String(e.key), L = Hi(o, e), V = (I, A) => { - I && os( - I, + onAppearCancelled: R + } = s, T = String(e.key), D = Qi(o, e), O = (E, j) => { + E && as( + E, a, 9, - A + j ); - }, B = (I, A) => { - const te = A[1]; - V(I, A), Fe(I) ? I.every((W) => W.length <= 1) && te() : I.length <= 1 && te(); - }, E = { + }, W = (E, j) => { + const ee = j[1]; + O(E, j), Fe(E) ? E.every((B) => B.length <= 1) && ee() : E.length <= 1 && ee(); + }, I = { mode: c, persisted: u, - beforeEnter(I) { - let A = d; + beforeEnter(E) { + let j = d; if (!o.isMounted) if (r) - A = b || d; + j = b || d; else return; - I[Cs] && I[Cs]( + E[_s] && E[_s]( !0 /* cancelled */ ); - const te = L[T]; - te && Zs(e, te) && te.el[Cs] && te.el[Cs](), V(A, [I]); + const ee = D[T]; + ee && Qs(e, ee) && ee.el[_s] && ee.el[_s](), O(j, [E]); }, - enter(I) { - let A = m, te = v, W = g; + enter(E) { + let j = m, ee = v, B = g; if (!o.isMounted) if (r) - A = x || m, te = M || v, W = P || g; + j = x || m, ee = M || v, B = R || g; else return; - let O = !1; - const j = I[_n] = (X) => { - O || (O = !0, X ? V(W, [I]) : V(te, [I]), E.delayedLeave && E.delayedLeave(), I[_n] = void 0); + let A = !1; + const K = E[bn] = (X) => { + A || (A = !0, X ? O(B, [E]) : O(ee, [E]), I.delayedLeave && I.delayedLeave(), E[bn] = void 0); }; - A ? B(A, [I, j]) : j(); + j ? W(j, [E, K]) : K(); }, - leave(I, A) { - const te = String(e.key); - if (I[_n] && I[_n]( + leave(E, j) { + const ee = String(e.key); + if (E[bn] && E[bn]( !0 /* cancelled */ ), o.isUnmounting) - return A(); - V(w, [I]); - let W = !1; - const O = I[Cs] = (j) => { - W || (W = !0, A(), j ? V(C, [I]) : V(k, [I]), I[Cs] = void 0, L[te] === e && delete L[te]); + return j(); + O(w, [E]); + let B = !1; + const A = E[_s] = (K) => { + B || (B = !0, j(), K ? O(C, [E]) : O(k, [E]), E[_s] = void 0, D[ee] === e && delete D[ee]); }; - L[te] = e, p ? B(p, [I, O]) : O(); + D[ee] = e, p ? W(p, [E, A]) : A(); }, - clone(I) { - const A = en( - I, + clone(E) { + const j = nn( + E, s, o, a, l ); - return l && l(A), A; + return l && l(j), j; } }; - return E; + return I; } -function fa(e) { - if (Zn(e)) +function ga(e) { + if (ea(e)) return e = Fs(e), e.children = null, e; } -function _l(e) { - if (!Zn(e)) - return zi(e.type) && e.children ? ji(e.children) : e; +function Sl(e) { + if (!ea(e)) + return Gi(e.type) && e.children ? Ji(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 && We(o.default)) + if (s & 32 && He(o.default)) return o.default(); } } -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 to(e, s) { + e.shapeFlag & 6 && e.component ? (e.transition = s, to(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 tl(e, s = !1, o) { +function al(e, s = !1, o) { let a = [], l = 0; 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++, a = a.concat( - tl(c.children, s, u) - )) : (s || c.type !== bt) && a.push(u != null ? Fs(c, { key: u }) : c); + al(c.children, s, u) + )) : (s || c.type !== Ct) && a.push(u != null ? Fs(c, { key: u }) : c); } if (l > 1) for (let r = 0; r < a.length; r++) @@ -1720,21 +1720,21 @@ function tl(e, s = !1, o) { return a; } // @__NO_SIDE_EFFECTS__ -function fe(e, s) { - return We(e) ? ( +function ge(e, s) { + return He(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 }) + gt({ name: e.name }, s, { setup: e }) ) : e; } -function Ki(e) { +function Xi(e) { e.ids = [e.ids[0] + e.ids[2]++ + "-", 0, 0]; } -const Un = /* @__PURE__ */ new WeakMap(); -function Go(e, s, o, a, l = !1) { +const zn = /* @__PURE__ */ new WeakMap(); +function qo(e, s, o, a, l = !1) { if (Fe(e)) { e.forEach( - (k, C) => Go( + (k, C) => qo( k, s && (Fe(s) ? s[C] : s), o, @@ -1744,30 +1744,30 @@ function Go(e, s, o, a, l = !1) { ); return; } - if (yo(a) && !l) { - a.shapeFlag & 512 && a.type.__asyncResolved && a.component.subTree.component && Go(e, s, o, a.component.subTree); + if ($o(a) && !l) { + a.shapeFlag & 512 && a.type.__asyncResolved && a.component.subTree.component && qo(e, s, o, a.component.subTree); return; } - const r = a.shapeFlag & 4 ? oa(a.component) : a.el, c = l ? null : r, { i: u, r: d } = e, m = s && s.r, v = u.refs === ot ? u.refs = {} : u.refs, g = u.setupState, w = Qe(g), p = g === ot ? ui : (k) => et(w, k); + const r = a.shapeFlag & 4 ? na(a.component) : a.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 ? pi : (k) => tt(w, k); if (m != null && m !== d) { - if (bl(s), ut(m)) + if (Il(s), mt(m)) v[m] = null, p(m) && (g[m] = null); - else if (Ct(m)) { + else if (St(m)) { m.value = null; const k = s; k.k && (v[k.k] = null); } } - if (We(d)) - rn(d, u, 12, [c, v]); + if (He(d)) + fn(d, u, 12, [c, v]); else { - const k = ut(d), C = Ct(d); + const k = mt(d), C = St(d); if (k || C) { const b = () => { if (e.f) { const x = k ? p(d) ? g[d] : v[d] : d.value; if (l) - Fe(x) && Ga(x, r); + Fe(x) && qa(x, r); else if (Fe(x)) x.includes(r) || x.push(r); else if (k) @@ -1780,28 +1780,28 @@ function Go(e, s, o, a, l = !1) { }; if (c) { const x = () => { - b(), Un.delete(e); + b(), zn.delete(e); }; - x.id = -1, Un.set(e, x), Et(x, o); + x.id = -1, zn.set(e, x), Rt(x, o); } else - bl(e), b(); + Il(e), b(); } } } -function bl(e) { - const s = Un.get(e); - s && (s.flags |= 8, Un.delete(e)); +function Il(e) { + const s = zn.get(e); + s && (s.flags |= 8, zn.delete(e)); } -Jn().requestIdleCallback; -Jn().cancelIdleCallback; -const yo = (e) => !!e.type.__asyncLoader, Zn = (e) => e.type.__isKeepAlive; -function Jc(e, s) { - qi(e, "a", s); +Qn().requestIdleCallback; +Qn().cancelIdleCallback; +const $o = (e) => !!e.type.__asyncLoader, ea = (e) => e.type.__isKeepAlive; +function tu(e, s) { + Zi(e, "a", s); } -function Qc(e, s) { - qi(e, "da", s); +function su(e, s) { + Zi(e, "da", s); } -function qi(e, s, o = $t) { +function Zi(e, s, o = xt) { const a = e.__wdc || (e.__wdc = () => { let l = o; for (; l; ) { @@ -1811,14 +1811,14 @@ function qi(e, s, o = $t) { } return e(); }); - if (ea(s, a, o), o) { + if (ta(s, a, o), o) { let l = o.parent; for (; l && l.parent; ) - Zn(l.parent.vnode) && Xc(a, s, o, l), l = l.parent; + ea(l.parent.vnode) && ou(a, s, o, l), l = l.parent; } } -function Xc(e, s, o, a) { - const l = ea( +function ou(e, s, o, a) { + const l = ta( s, e, a, @@ -1826,69 +1826,69 @@ function Xc(e, s, o, a) { /* prepend */ ); Gs(() => { - Ga(a[s], l); + qa(a[s], l); }, o); } -function ea(e, s, o = $t, a = !1) { +function ta(e, s, o = xt, a = !1) { if (o) { const l = o[e] || (o[e] = []), r = s.__weh || (s.__weh = (...c) => { - Es(); - const u = cn(o), d = os(s, o, e, c); - return u(), Ts(), d; + xs(); + const u = mn(o), d = as(s, o, e, c); + return u(), Ss(), d; }); return a ? l.unshift(r) : l.push(r), r; } } -const Ps = (e) => (s, o = $t) => { - (!on || e === "sp") && ea(e, (...a) => s(...a), o); -}, Zc = Ps("bm"), Je = Ps("m"), eu = Ps( +const Es = (e) => (s, o = xt) => { + (!rn || e === "sp") && ta(e, (...a) => s(...a), o); +}, nu = Es("bm"), Qe = Es("m"), au = Es( "bu" -), Yi = Ps("u"), Ji = Ps( +), er = Es("u"), tr = Es( "bum" -), Gs = Ps("um"), tu = Ps( +), Gs = Es("um"), lu = Es( "sp" -), su = Ps("rtg"), ou = Ps("rtc"); -function nu(e, s = $t) { - ea("ec", e, s); +), iu = Es("rtg"), ru = Es("rtc"); +function cu(e, s = xt) { + ta("ec", e, s); } -const au = "components", Qi = Symbol.for("v-ndc"); -function sl(e) { - return ut(e) ? lu(au, e, !1) || e : e || Qi; +const uu = "components", sr = Symbol.for("v-ndc"); +function ll(e) { + return mt(e) ? du(uu, e, !1) || e : e || sr; } -function lu(e, s, o = !0, a = !1) { - const l = wt || $t; +function du(e, s, o = !0, a = !1) { + const l = wt || xt; if (l) { const r = l.type; { - const u = qu( + const u = Zu( r, !1 ); - if (u && (u === s || u === Kt(s) || u === qn(Kt(s)))) + if (u && (u === s || u === Qt(s) || u === Yn(Qt(s)))) return r; } const c = ( // local registration // check instance[type] first which is resolved for options API - $l(l[e] || r[e], s) || // global registration - $l(l.appContext[e], s) + El(l[e] || r[e], s) || // global registration + El(l.appContext[e], s) ); return !c && a ? r : c; } } -function $l(e, s) { - return e && (e[s] || e[Kt(s)] || e[qn(Kt(s))]); +function El(e, s) { + return e && (e[s] || e[Qt(s)] || e[Yn(Qt(s))]); } -function ve(e, s, o, a) { +function he(e, s, o, a) { let l; const r = o, c = Fe(e); - if (c || ut(e)) { - const u = c && to(e); + if (c || mt(e)) { + const u = c && Zs(e); let d = !1, m = !1; - u && (d = !Gt(e), m = Rs(e), e = Qn(e)), l = new Array(e.length); + u && (d = !qt(e), m = Is(e), e = Xn(e)), l = new Array(e.length); for (let v = 0, g = e.length; v < g; v++) l[v] = s( - d ? m ? _o(ss(e[v])) : ss(e[v]) : e[v], + d ? m ? So(ns(e[v])) : ns(e[v]) : e[v], v, void 0, r @@ -1915,7 +1915,7 @@ function ve(e, s, o, a) { l = []; return l; } -function no(e, s) { +function so(e, s) { for (let o = 0; o < s.length; o++) { const a = s[o]; if (Fe(a)) @@ -1928,10 +1928,10 @@ function no(e, s) { } return e; } -function He(e, s, o = {}, a, l) { - if (wt.ce || wt.parent && yo(wt.parent) && wt.parent.ce) { +function Ke(e, s, o = {}, a, l) { + if (wt.ce || wt.parent && $o(wt.parent) && wt.parent.ce) { const m = Object.keys(o).length > 0; - return s !== "default" && (o.name = s), n(), D( + return s !== "default" && (o.name = s), n(), L( H, null, [S("slot", o, a && a())], @@ -1940,12 +1940,12 @@ function He(e, s, o = {}, a, l) { } let r = e[s]; r && r._c && (r._d = !1), n(); - const c = r && Xi(r(o)), u = o.key || // slot content array of a dynamic conditional slot may have a branch + const c = r && or(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 - c && c.key, d = D( + c && c.key, d = L( H, { - key: (u && !ts(u) ? u : `_${s}`) + // #7256 force differentiate fallback content from actual content + key: (u && !os(u) ? u : `_${s}`) + // #7256 force differentiate fallback content from actual content (!c && a ? "_fb" : "") }, c || (a ? a() : []), @@ -1953,13 +1953,13 @@ function He(e, s, o = {}, a, l) { ); return r && r._c && (r._d = !0), d; } -function Xi(e) { - return e.some((s) => sn(s) ? !(s.type === bt || s.type === H && !Xi(s.children)) : !0) ? e : null; +function or(e) { + return e.some((s) => ln(s) ? !(s.type === Ct || s.type === H && !or(s.children)) : !0) ? e : null; } -const Ra = (e) => e ? hr(e) ? oa(e) : Ra(e.parent) : null, jo = ( +const La = (e) => e ? br(e) ? na(e) : La(e.parent) : null, Yo = ( // Move PURE marker to new line to workaround compiler discarding it // due to type annotation - /* @__PURE__ */ pt(/* @__PURE__ */ Object.create(null), { + /* @__PURE__ */ gt(/* @__PURE__ */ Object.create(null), { $: (e) => e, $el: (e) => e.vnode.el, $data: (e) => e.data, @@ -1967,18 +1967,18 @@ const Ra = (e) => e ? hr(e) ? oa(e) : Ra(e.parent) : null, jo = ( $attrs: (e) => e.attrs, $slots: (e) => e.slots, $refs: (e) => e.refs, - $parent: (e) => Ra(e.parent), - $root: (e) => Ra(e.root), + $parent: (e) => La(e.parent), + $root: (e) => La(e.root), $host: (e) => e.ce, $emit: (e) => e.emit, - $options: (e) => er(e), + $options: (e) => ar(e), $forceUpdate: (e) => e.f || (e.f = () => { - el(e.update); + nl(e.update); }), - $nextTick: (e) => e.n || (e.n = gt.bind(e.proxy)), - $watch: (e) => yu.bind(e) + $nextTick: (e) => e.n || (e.n = ht.bind(e.proxy)), + $watch: (e) => $u.bind(e) }) -), ma = (e, s) => e !== ot && !e.__isScriptSetup && et(e, s), iu = { +), ha = (e, s) => e !== nt && !e.__isScriptSetup && tt(e, s), fu = { get({ _: e }, s) { if (s === "__v_skip") return !0; @@ -1997,58 +1997,58 @@ const Ra = (e) => e ? hr(e) ? oa(e) : Ra(e.parent) : null, jo = ( return r[s]; } else { - if (ma(a, s)) + if (ha(a, s)) return c[s] = 1, a[s]; - if (l !== ot && et(l, s)) + if (l !== nt && tt(l, s)) return c[s] = 2, l[s]; - if (et(r, s)) + if (tt(r, s)) return c[s] = 3, r[s]; - if (o !== ot && et(o, s)) + if (o !== nt && tt(o, s)) return c[s] = 4, o[s]; - Pa && (c[s] = 0); + Aa && (c[s] = 0); } } - const m = jo[s]; + const m = Yo[s]; let v, g; if (m) - return s === "$attrs" && _t(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 !== ot && et(o, s)) + if (o !== nt && tt(o, s)) return c[s] = 4, o[s]; if ( // global properties - g = d.config.globalProperties, et(g, s) + g = d.config.globalProperties, tt(g, s) ) return g[s]; }, set({ _: e }, s, o) { const { data: a, setupState: l, ctx: r } = e; - return ma(l, s) ? (l[s] = o, !0) : a !== ot && et(a, s) ? (a[s] = o, !0) : et(e.props, s) || s[0] === "$" && s.slice(1) in e ? !1 : (r[s] = o, !0); + return ha(l, s) ? (l[s] = o, !0) : a !== nt && tt(a, s) ? (a[s] = o, !0) : tt(e.props, s) || s[0] === "$" && s.slice(1) in e ? !1 : (r[s] = o, !0); }, has({ _: { data: e, setupState: s, accessCache: o, ctx: a, appContext: l, props: r, type: c } }, u) { let d; - return !!(o[u] || e !== ot && u[0] !== "$" && et(e, u) || ma(s, u) || et(r, u) || et(a, u) || et(jo, u) || et(l.config.globalProperties, u) || (d = c.__cssModules) && d[u]); + return !!(o[u] || e !== nt && u[0] !== "$" && tt(e, u) || ha(s, u) || tt(r, u) || tt(a, u) || tt(Yo, u) || tt(l.config.globalProperties, u) || (d = c.__cssModules) && d[u]); }, 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); + return o.get != null ? e._.accessCache[s] = 0 : tt(o, "value") && this.set(e, s, o.value, null), Reflect.defineProperty(e, s, o); } }; -function Cl(e) { +function Tl(e) { return Fe(e) ? e.reduce( (s, o) => (s[o] = null, s), {} ) : e; } -let Pa = !0; -function ru(e) { - const s = er(e), o = e.proxy, a = e.ctx; - Pa = !1, s.beforeCreate && xl(s.beforeCreate, e, "bc"); +let Aa = !0; +function mu(e) { + const s = ar(e), o = e.proxy, a = e.ctx; + Aa = !1, s.beforeCreate && Rl(s.beforeCreate, e, "bc"); const { // state data: l, @@ -2067,79 +2067,79 @@ function ru(e) { deactivated: b, beforeDestroy: x, beforeUnmount: M, - destroyed: P, + destroyed: R, unmounted: T, - render: L, - renderTracked: V, - renderTriggered: B, - errorCaptured: E, - serverPrefetch: I, + render: D, + renderTracked: O, + renderTriggered: W, + errorCaptured: I, + serverPrefetch: E, // public API - expose: A, - inheritAttrs: te, + expose: j, + inheritAttrs: ee, // assets - components: W, - directives: O, - filters: j + components: B, + directives: A, + filters: K } = s; - if (m && cu(m, a, null), c) - for (const ae in c) { - const Z = c[ae]; - We(Z) && (a[ae] = Z.bind(o)); + if (m && vu(m, a, null), c) + for (const se in c) { + const Y = c[se]; + He(Y) && (a[se] = Y.bind(o)); } if (l) { - const ae = l.call(o, o); - st(ae) && (e.data = Ws(ae)); - } - if (Pa = !0, r) - for (const ae in r) { - const Z = r[ae], _e = We(Z) ? Z.bind(o, o) : We(Z.get) ? Z.get.bind(o, o) : gs, $e = !We(Z) && We(Z.set) ? Z.set.bind(o) : gs, Le = U({ - get: _e, - set: $e + const se = l.call(o, o); + st(se) && (e.data = Ws(se)); + } + if (Aa = !0, r) + for (const se in r) { + const Y = r[se], ae = He(Y) ? Y.bind(o, o) : He(Y.get) ? Y.get.bind(o, o) : ps, re = !He(Y) && He(Y.set) ? Y.set.bind(o) : ps, Pe = z({ + get: ae, + set: re }); - Object.defineProperty(a, ae, { + Object.defineProperty(a, se, { enumerable: !0, configurable: !0, - get: () => Le.value, - set: (Ue) => Le.value = Ue + get: () => Pe.value, + set: (Ve) => Pe.value = Ve }); } if (u) - for (const ae in u) - Zi(u[ae], a, o, ae); + for (const se in u) + nr(u[se], a, o, se); if (d) { - const ae = We(d) ? d.call(o) : d; - Reflect.ownKeys(ae).forEach((Z) => { - pu(Z, ae[Z]); + const se = He(d) ? d.call(o) : d; + Reflect.ownKeys(se).forEach((Y) => { + ku(Y, se[Y]); }); } - v && xl(v, e, "c"); - function z(ae, Z) { - Fe(Z) ? Z.forEach((_e) => ae(_e.bind(o))) : Z && ae(Z.bind(o)); - } - if (z(Zc, g), z(Je, w), z(eu, p), z(Yi, k), z(Jc, C), z(Qc, b), z(nu, E), z(ou, V), z(su, B), z(Ji, M), z(Gs, T), z(tu, I), Fe(A)) - if (A.length) { - const ae = e.exposed || (e.exposed = {}); - A.forEach((Z) => { - Object.defineProperty(ae, Z, { - get: () => o[Z], - set: (_e) => o[Z] = _e, + v && Rl(v, e, "c"); + function F(se, Y) { + Fe(Y) ? Y.forEach((ae) => se(ae.bind(o))) : Y && se(Y.bind(o)); + } + if (F(nu, g), F(Qe, w), F(au, p), F(er, k), F(tu, C), F(su, b), F(cu, I), F(ru, O), F(iu, W), F(tr, M), F(Gs, T), F(lu, E), Fe(j)) + if (j.length) { + const se = e.exposed || (e.exposed = {}); + j.forEach((Y) => { + Object.defineProperty(se, Y, { + get: () => o[Y], + set: (ae) => o[Y] = ae, enumerable: !0 }); }); } else e.exposed || (e.exposed = {}); - L && e.render === gs && (e.render = L), te != null && (e.inheritAttrs = te), W && (e.components = W), O && (e.directives = O), I && Ki(e); + D && e.render === ps && (e.render = D), ee != null && (e.inheritAttrs = ee), B && (e.components = B), A && (e.directives = A), E && Xi(e); } -function cu(e, s, o = gs) { - Fe(e) && (e = Ma(e)); +function vu(e, s, o = ps) { + Fe(e) && (e = Na(e)); for (const a in e) { const l = e[a]; let r; - st(l) ? "default" in l ? r = Tn( + st(l) ? "default" in l ? r = Rn( l.from || a, l.default, !0 - ) : r = Tn(l.from || a) : r = Tn(l), Ct(r) ? Object.defineProperty(s, a, { + ) : r = Rn(l.from || a) : r = Rn(l), St(r) ? Object.defineProperty(s, a, { enumerable: !0, configurable: !0, get: () => r.value, @@ -2147,29 +2147,29 @@ function cu(e, s, o = gs) { }) : s[a] = r; } } -function xl(e, s, o) { - os( +function Rl(e, s, o) { + as( Fe(e) ? e.map((a) => a.bind(s.proxy)) : e.bind(s.proxy), s, o ); } -function Zi(e, s, o, a) { - let l = a.includes(".") ? or(o, a) : () => o[a]; - if (ut(e)) { +function nr(e, s, o, a) { + let l = a.includes(".") ? rr(o, a) : () => o[a]; + if (mt(e)) { const r = s[e]; - We(r) && dt(l, r); - } else if (We(e)) - dt(l, e.bind(o)); + He(r) && ft(l, r); + } else if (He(e)) + ft(l, e.bind(o)); else if (st(e)) if (Fe(e)) - e.forEach((r) => Zi(r, s, o, a)); + e.forEach((r) => nr(r, s, o, a)); else { - const r = We(e.handler) ? e.handler.bind(o) : s[e.handler]; - We(r) && dt(l, r, e); + const r = He(e.handler) ? e.handler.bind(o) : s[e.handler]; + He(r) && ft(l, r, e); } } -function er(e) { +function ar(e) { const s = e.type, { mixins: o, extends: a } = s, { mixins: l, optionsCache: r, @@ -2177,64 +2177,64 @@ function er(e) { } = e.appContext, u = r.get(s); let d; return u ? d = u : !l.length && !o && !a ? d = s : (d = {}, l.length && l.forEach( - (m) => zn(d, m, c, !0) - ), zn(d, s, c)), st(s) && r.set(s, d), d; + (m) => Fn(d, m, c, !0) + ), Fn(d, s, c)), st(s) && r.set(s, d), d; } -function zn(e, s, o, a = !1) { +function Fn(e, s, o, a = !1) { const { mixins: l, extends: r } = s; - r && zn(e, r, o, !0), l && l.forEach( - (c) => zn(e, c, o, !0) + r && Fn(e, r, o, !0), l && l.forEach( + (c) => Fn(e, c, o, !0) ); for (const c in s) if (!(a && c === "expose")) { - const u = uu[c] || o && o[c]; + const u = pu[c] || o && o[c]; e[c] = u ? u(e[c], s[c]) : s[c]; } return e; } -const uu = { - data: Sl, - props: Il, - emits: Il, +const pu = { + data: Pl, + props: Ml, + emits: Ml, // objects - methods: zo, - computed: zo, + methods: Wo, + computed: Wo, // lifecycle - 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, + beforeCreate: Tt, + created: Tt, + beforeMount: Tt, + mounted: Tt, + beforeUpdate: Tt, + updated: Tt, + beforeDestroy: Tt, + beforeUnmount: Tt, + destroyed: Tt, + unmounted: Tt, + activated: Tt, + deactivated: Tt, + errorCaptured: Tt, + serverPrefetch: Tt, // assets - components: zo, - directives: zo, + components: Wo, + directives: Wo, // watch - watch: fu, + watch: hu, // provide / inject - provide: Sl, - inject: du + provide: Pl, + inject: gu }; -function Sl(e, s) { +function Pl(e, s) { return s ? e ? function() { - return pt( - We(e) ? e.call(this, this) : e, - We(s) ? s.call(this, this) : s + return gt( + He(e) ? e.call(this, this) : e, + He(s) ? s.call(this, this) : s ); } : s : e; } -function du(e, s) { - return zo(Ma(e), Ma(s)); +function gu(e, s) { + return Wo(Na(e), Na(s)); } -function Ma(e) { +function Na(e) { if (Fe(e)) { const s = {}; for (let o = 0; o < e.length; o++) @@ -2243,32 +2243,32 @@ function Ma(e) { } return e; } -function It(e, s) { +function Tt(e, s) { return e ? [...new Set([].concat(e, s))] : s; } -function zo(e, s) { - return e ? pt(/* @__PURE__ */ Object.create(null), e, s) : s; +function Wo(e, s) { + return e ? gt(/* @__PURE__ */ Object.create(null), e, s) : s; } -function Il(e, s) { - return e ? Fe(e) && Fe(s) ? [.../* @__PURE__ */ new Set([...e, ...s])] : pt( +function Ml(e, s) { + return e ? Fe(e) && Fe(s) ? [.../* @__PURE__ */ new Set([...e, ...s])] : gt( /* @__PURE__ */ Object.create(null), - Cl(e), - Cl(s ?? {}) + Tl(e), + Tl(s ?? {}) ) : s; } -function fu(e, s) { +function hu(e, s) { if (!e) return s; if (!s) return e; - const o = pt(/* @__PURE__ */ Object.create(null), e); + const o = gt(/* @__PURE__ */ Object.create(null), e); for (const a in s) - o[a] = It(e[a], s[a]); + o[a] = Tt(e[a], s[a]); return o; } -function tr() { +function lr() { return { app: null, config: { - isNativeTag: ui, + isNativeTag: pi, performance: !1, globalProperties: {}, optionMergeStrategies: {}, @@ -2285,27 +2285,27 @@ function tr() { emitsCache: /* @__PURE__ */ new WeakMap() }; } -let mu = 0; -function vu(e, s) { +let yu = 0; +function wu(e, s) { return function(a, l = null) { - We(a) || (a = pt({}, a)), l != null && !st(l) && (l = null); - const r = tr(), c = /* @__PURE__ */ new WeakSet(), u = []; + He(a) || (a = gt({}, a)), l != null && !st(l) && (l = null); + const r = lr(), c = /* @__PURE__ */ new WeakSet(), u = []; let d = !1; const m = r.app = { - _uid: mu++, + _uid: yu++, _component: a, _props: l, _container: null, _context: r, _instance: null, - version: Ju, + version: td, get config() { return r.config; }, set config(v) { }, use(v, ...g) { - return c.has(v) || (v && We(v.install) ? (c.add(v), v.install(m, ...g)) : We(v) && (c.add(v), v(m, ...g))), m; + return c.has(v) || (v && He(v.install) ? (c.add(v), v.install(m, ...g)) : He(v) && (c.add(v), v(m, ...g))), m; }, mixin(v) { return r.mixins.includes(v) || r.mixins.push(v), m; @@ -2319,14 +2319,14 @@ function vu(e, s) { mount(v, g, w) { if (!d) { const p = m._ceVNode || S(a, 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, oa(p.component); + 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, na(p.component); } }, onUnmount(v) { u.push(v); }, unmount() { - d && (os( + d && (as( u, m._instance, 16 @@ -2336,74 +2336,74 @@ function vu(e, s) { return r.provides[v] = g, m; }, runWithContext(v) { - const g = wo; - wo = m; + const g = Co; + Co = m; try { return v(); } finally { - wo = g; + Co = g; } } }; return m; }; } -let wo = null; -function pu(e, s) { - if ($t) { - let o = $t.provides; - const a = $t.parent && $t.parent.provides; - a === o && (o = $t.provides = Object.create(a)), o[e] = s; +let Co = null; +function ku(e, s) { + if (xt) { + let o = xt.provides; + const a = xt.parent && xt.parent.provides; + a === o && (o = xt.provides = Object.create(a)), o[e] = s; } } -function Tn(e, s, o = !1) { - const a = il(); - if (a || wo) { - let l = wo ? wo._context.provides : a ? a.parent == null || a.ce ? a.vnode.appContext && a.vnode.appContext.provides : a.parent.provides : void 0; +function Rn(e, s, o = !1) { + const a = dl(); + if (a || Co) { + let l = Co ? Co._context.provides : a ? a.parent == null || a.ce ? a.vnode.appContext && a.vnode.appContext.provides : a.parent.provides : void 0; if (l && e in l) return l[e]; if (arguments.length > 1) - return o && We(s) ? s.call(a && a.proxy) : s; + return o && He(s) ? s.call(a && a.proxy) : s; } } -const gu = Symbol.for("v-scx"), hu = () => Tn(gu); -function dt(e, s, o) { - return sr(e, s, o); +const _u = Symbol.for("v-scx"), bu = () => Rn(_u); +function ft(e, s, o) { + return ir(e, s, o); } -function sr(e, s, o = ot) { - const { immediate: a, deep: l, flush: r, once: c } = o, u = pt({}, o), d = s && a || !s && r !== "post"; +function ir(e, s, o = nt) { + const { immediate: a, deep: l, flush: r, once: c } = o, u = gt({}, o), d = s && a || !s && r !== "post"; let m; - if (on) { + if (rn) { if (r === "sync") { - const p = hu(); + const p = bu(); m = p.__watcherHandles || (p.__watcherHandles = []); } else if (!d) { const p = () => { }; - return p.stop = gs, p.resume = gs, p.pause = gs, p; + return p.stop = ps, p.resume = ps, p.pause = ps, p; } } - const v = $t; - u.call = (p, k, C) => os(p, v, k, C); + const v = xt; + u.call = (p, k, C) => as(p, v, k, C); let g = !1; r === "post" ? u.scheduler = (p) => { - Et(p, v && v.suspense); + Rt(p, v && v.suspense); } : r !== "sync" && (g = !0, u.scheduler = (p, k) => { - k ? p() : el(p); + k ? p() : nl(p); }), u.augmentJob = (p) => { s && (p.flags |= 4), g && (p.flags |= 2, v && (p.id = v.uid, p.i = v)); }; - const w = Wc(e, s, u); - return on && (m ? m.push(w) : d && w()), w; + const w = qc(e, s, u); + return rn && (m ? m.push(w) : d && w()), w; } -function yu(e, s, o) { - const a = this.proxy, l = ut(e) ? e.includes(".") ? or(a, e) : () => a[e] : e.bind(a, a); +function $u(e, s, o) { + const a = this.proxy, l = mt(e) ? e.includes(".") ? rr(a, e) : () => a[e] : e.bind(a, a); let r; - We(s) ? r = s : (r = s.handler, o = s); - const c = cn(this), u = sr(l, r.bind(a), o); + He(s) ? r = s : (r = s.handler, o = s); + const c = mn(this), u = ir(l, r.bind(a), o); return c(), u; } -function or(e, s) { +function rr(e, s) { const o = s.split("."); return () => { let a = e; @@ -2412,16 +2412,16 @@ function or(e, s) { return a; }; } -const wu = (e, s) => s === "modelValue" || s === "model-value" ? e.modelModifiers : e[`${s}Modifiers`] || e[`${Kt(s)}Modifiers`] || e[`${Bs(s)}Modifiers`]; -function ku(e, s, ...o) { +const Cu = (e, s) => s === "modelValue" || s === "model-value" ? e.modelModifiers : e[`${s}Modifiers`] || e[`${Qt(s)}Modifiers`] || e[`${Bs(s)}Modifiers`]; +function xu(e, s, ...o) { if (e.isUnmounted) return; - const a = e.vnode.props || ot; + const a = e.vnode.props || nt; let l = o; - const r = s.startsWith("update:"), c = r && wu(a, s.slice(7)); - c && (c.trim && (l = o.map((v) => ut(v) ? v.trim() : v)), c.number && (l = o.map(Yn))); - let u, d = a[u = ia(s)] || // also try camelCase event handler (#2249) - a[u = ia(Kt(s))]; - !d && r && (d = a[u = ia(Bs(s))]), d && os( + const r = s.startsWith("update:"), c = r && Cu(a, s.slice(7)); + c && (c.trim && (l = o.map((v) => mt(v) ? v.trim() : v)), c.number && (l = o.map(Jn))); + let u, d = a[u = da(s)] || // also try camelCase event handler (#2249) + a[u = da(Qt(s))]; + !d && r && (d = a[u = da(Bs(s))]), d && as( d, e, 6, @@ -2433,7 +2433,7 @@ function ku(e, s, ...o) { e.emitted = {}; else if (e.emitted[u]) return; - e.emitted[u] = !0, os( + e.emitted[u] = !0, as( m, e, 6, @@ -2441,26 +2441,26 @@ function ku(e, s, ...o) { ); } } -const _u = /* @__PURE__ */ new WeakMap(); -function nr(e, s, o = !1) { - const a = o ? _u : s.emitsCache, l = a.get(e); +const Su = /* @__PURE__ */ new WeakMap(); +function cr(e, s, o = !1) { + const a = o ? Su : s.emitsCache, l = a.get(e); if (l !== void 0) return l; const r = e.emits; let c = {}, u = !1; - if (!We(e)) { + if (!He(e)) { const d = (m) => { - const v = nr(m, s, !0); - v && (u = !0, pt(c, v)); + const v = cr(m, s, !0); + v && (u = !0, gt(c, v)); }; !o && s.mixins.length && s.mixins.forEach(d), e.extends && d(e.extends), e.mixins && e.mixins.forEach(d); } - return !r && !u ? (st(e) && a.set(e, null), null) : (Fe(r) ? r.forEach((d) => c[d] = null) : pt(c, r), st(e) && a.set(e, c), c); + return !r && !u ? (st(e) && a.set(e, null), null) : (Fe(r) ? r.forEach((d) => c[d] = null) : gt(c, r), st(e) && a.set(e, c), c); } -function ta(e, s) { - return !e || !Hn(s) ? !1 : (s = s.slice(2).replace(/Once$/, ""), et(e, s[0].toLowerCase() + s.slice(1)) || et(e, Bs(s)) || et(e, s)); +function sa(e, s) { + return !e || !Kn(s) ? !1 : (s = s.slice(2).replace(/Once$/, ""), tt(e, s[0].toLowerCase() + s.slice(1)) || tt(e, Bs(s)) || tt(e, s)); } -function El(e) { +function Dl(e) { const { type: s, vnode: o, @@ -2477,14 +2477,14 @@ function El(e) { setupState: p, ctx: k, inheritAttrs: C - } = e, b = Nn(e); + } = e, b = Un(e); let x, M; try { if (o.shapeFlag & 4) { - const T = l || a, L = T; - x = ps( + const T = l || a, D = T; + x = vs( m.call( - L, + D, T, v, g, @@ -2495,7 +2495,7 @@ function El(e) { ), M = u; } else { const T = s; - x = ps( + x = vs( T.length > 1 ? T( g, { attrs: u, slots: c, emit: d } @@ -2503,33 +2503,33 @@ function El(e) { g, null ) - ), M = s.props ? u : bu(u); + ), M = s.props ? u : Iu(u); } } catch (T) { - Ho.length = 0, Xn(T, e, 1), x = S(bt); + Jo.length = 0, Zn(T, e, 1), x = S(Ct); } - let P = x; + let R = x; if (M && C !== !1) { - const T = Object.keys(M), { shapeFlag: L } = P; - T.length && L & 7 && (r && T.some(Wa) && (M = $u( + const T = Object.keys(M), { shapeFlag: D } = R; + T.length && D & 7 && (r && T.some(Ka) && (M = Eu( M, r - )), P = Fs(P, M, !1, !0)); + )), R = Fs(R, M, !1, !0)); } - 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), x = P, Nn(b), x; + return o.dirs && (R = Fs(R, null, !1, !0), R.dirs = R.dirs ? R.dirs.concat(o.dirs) : o.dirs), o.transition && to(R, o.transition), x = R, Un(b), x; } -const bu = (e) => { +const Iu = (e) => { let s; for (const o in e) - (o === "class" || o === "style" || Hn(o)) && ((s || (s = {}))[o] = e[o]); + (o === "class" || o === "style" || Kn(o)) && ((s || (s = {}))[o] = e[o]); return s; -}, $u = (e, s) => { +}, Eu = (e, s) => { const o = {}; for (const a in e) - (!Wa(a) || !(a.slice(9) in s)) && (o[a] = e[a]); + (!Ka(a) || !(a.slice(9) in s)) && (o[a] = e[a]); return o; }; -function Cu(e, s, o) { +function Tu(e, s, o) { const { props: a, children: l, component: r } = e, { props: c, children: u, patchFlag: d } = s, m = r.emitsOptions; if (s.dirs || s.transition) return !0; @@ -2537,31 +2537,31 @@ function Cu(e, s, o) { if (d & 1024) return !0; if (d & 16) - return a ? Tl(a, c, m) : !!c; + return a ? Ll(a, c, m) : !!c; if (d & 8) { const v = s.dynamicProps; for (let g = 0; g < v.length; g++) { const w = v[g]; - if (c[w] !== a[w] && !ta(m, w)) + if (c[w] !== a[w] && !sa(m, w)) return !0; } } } else - return (l || u) && (!u || !u.$stable) ? !0 : a === c ? !1 : a ? c ? Tl(a, c, m) : !0 : !!c; + return (l || u) && (!u || !u.$stable) ? !0 : a === c ? !1 : a ? c ? Ll(a, c, m) : !0 : !!c; return !1; } -function Tl(e, s, o) { +function Ll(e, s, o) { const a = Object.keys(s); if (a.length !== Object.keys(e).length) return !0; for (let l = 0; l < a.length; l++) { const r = a[l]; - if (s[r] !== e[r] && !ta(o, r)) + if (s[r] !== e[r] && !sa(o, r)) return !0; } return !1; } -function xu({ vnode: e, parent: s }, o) { +function Ru({ vnode: e, parent: s }, o) { for (; s; ) { const a = s.subTree; if (a.suspense && a.suspense.activeBranch === e && (a.el = e.el), a === e) @@ -2570,20 +2570,20 @@ function xu({ vnode: e, parent: s }, o) { break; } } -const ar = {}, lr = () => Object.create(ar), ir = (e) => Object.getPrototypeOf(e) === ar; -function Su(e, s, o, a = !1) { - const l = {}, r = lr(); - e.propsDefaults = /* @__PURE__ */ Object.create(null), rr(e, s, l, r); +const ur = {}, dr = () => Object.create(ur), fr = (e) => Object.getPrototypeOf(e) === ur; +function Pu(e, s, o, a = !1) { + const l = {}, r = dr(); + e.propsDefaults = /* @__PURE__ */ Object.create(null), mr(e, s, l, r); for (const c in e.propsOptions[0]) c in l || (l[c] = void 0); - o ? e.props = a ? l : Ac(l) : e.type.props ? e.props = l : e.props = r, e.attrs = r; + o ? e.props = a ? l : Fc(l) : e.type.props ? e.props = l : e.props = r, e.attrs = r; } -function Iu(e, s, o, a) { +function Mu(e, s, o, a) { const { props: l, attrs: r, vnode: { patchFlag: c } - } = e, u = Qe(l), [d] = e.propsOptions; + } = e, u = Xe(l), [d] = e.propsOptions; let m = !1; if ( // always force full diff in dev @@ -2595,15 +2595,15 @@ function Iu(e, s, o, a) { const v = e.vnode.dynamicProps; for (let g = 0; g < v.length; g++) { let w = v[g]; - if (ta(e.emitsOptions, w)) + if (sa(e.emitsOptions, w)) continue; const p = s[w]; if (d) - if (et(r, w)) + if (tt(r, w)) p !== r[w] && (r[w] = p, m = !0); else { - const k = Kt(w); - l[k] = Da( + const k = Qt(w); + l[k] = Oa( d, u, k, @@ -2617,15 +2617,15 @@ function Iu(e, s, o, a) { } } } else { - rr(e, s, l, r) && (m = !0); + mr(e, s, l, r) && (m = !0); let v; for (const g in u) (!s || // for camelCase - !et(s, g) && // it's possible the original props was passed in as kebab-case + !tt(s, g) && // it's possible the original props was passed in as kebab-case // and converted to camelCase (#955) - ((v = Bs(g)) === g || !et(s, v))) && (d ? o && // for camelCase + ((v = Bs(g)) === g || !tt(s, v))) && (d ? o && // for camelCase (o[g] !== void 0 || // for kebab-case - o[v] !== void 0) && (l[g] = Da( + o[v] !== void 0) && (l[g] = Oa( d, u, g, @@ -2635,49 +2635,49 @@ function Iu(e, s, o, a) { )) : delete l[g]); if (r !== u) for (const g in r) - (!s || !et(s, g)) && (delete r[g], m = !0); + (!s || !tt(s, g)) && (delete r[g], m = !0); } - m && xs(e.attrs, "set", ""); + m && bs(e.attrs, "set", ""); } -function rr(e, s, o, a) { +function mr(e, s, o, a) { const [l, r] = e.propsOptions; let c = !1, u; if (s) for (let d in s) { - if (Fo(d)) + if (Go(d)) continue; const m = s[d]; let v; - l && et(l, v = Kt(d)) ? !r || !r.includes(v) ? o[v] = m : (u || (u = {}))[v] = m : ta(e.emitsOptions, d) || (!(d in a) || m !== a[d]) && (a[d] = m, c = !0); + l && tt(l, v = Qt(d)) ? !r || !r.includes(v) ? o[v] = m : (u || (u = {}))[v] = m : sa(e.emitsOptions, d) || (!(d in a) || m !== a[d]) && (a[d] = m, c = !0); } if (r) { - const d = Qe(o), m = u || ot; + const d = Xe(o), m = u || nt; for (let v = 0; v < r.length; v++) { const g = r[v]; - o[g] = Da( + o[g] = Oa( l, d, g, m[g], e, - !et(m, g) + !tt(m, g) ); } } return c; } -function Da(e, s, o, a, l, r) { +function Oa(e, s, o, a, l, r) { const c = e[o]; if (c != null) { - const u = et(c, "default"); + const u = tt(c, "default"); if (u && a === void 0) { const d = c.default; - if (c.type !== Function && !c.skipFactory && We(d)) { + if (c.type !== Function && !c.skipFactory && He(d)) { const { propsDefaults: m } = l; if (o in m) a = m[o]; else { - const v = cn(l); + const v = mn(l); a = m[o] = d.call( null, s @@ -2697,104 +2697,104 @@ function Da(e, s, o, a, l, r) { } return a; } -const Eu = /* @__PURE__ */ new WeakMap(); -function cr(e, s, o = !1) { - const a = o ? Eu : s.propsCache, l = a.get(e); +const Du = /* @__PURE__ */ new WeakMap(); +function vr(e, s, o = !1) { + const a = o ? Du : s.propsCache, l = a.get(e); if (l) return l; const r = e.props, c = {}, u = []; let d = !1; - if (!We(e)) { + if (!He(e)) { const v = (g) => { d = !0; - const [w, p] = cr(g, s, !0); - pt(c, w), p && u.push(...p); + const [w, p] = vr(g, s, !0); + gt(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 (!r && !d) - return st(e) && a.set(e, po), po; + return st(e) && a.set(e, ko), ko; if (Fe(r)) for (let v = 0; v < r.length; v++) { - const g = Kt(r[v]); - Rl(g) && (c[g] = ot); + const g = Qt(r[v]); + Al(g) && (c[g] = nt); } else if (r) for (const v in r) { - const g = Kt(v); - if (Rl(g)) { - const w = r[v], p = c[g] = Fe(w) || We(w) ? { type: w } : pt({}, w), k = p.type; + const g = Qt(v); + if (Al(g)) { + const w = r[v], p = c[g] = Fe(w) || He(w) ? { type: w } : gt({}, w), k = p.type; let C = !1, b = !0; if (Fe(k)) for (let x = 0; x < k.length; ++x) { - const M = k[x], P = We(M) && M.name; - if (P === "Boolean") { + const M = k[x], R = He(M) && M.name; + if (R === "Boolean") { C = !0; break; - } else P === "String" && (b = !1); + } else R === "String" && (b = !1); } else - C = We(k) && k.name === "Boolean"; + C = He(k) && k.name === "Boolean"; p[ 0 /* shouldCast */ ] = C, p[ 1 /* shouldCastTrue */ - ] = b, (C || et(p, "default")) && u.push(g); + ] = b, (C || tt(p, "default")) && u.push(g); } } const m = [c, u]; return st(e) && a.set(e, m), m; } -function Rl(e) { - return e[0] !== "$" && !Fo(e); +function Al(e) { + return e[0] !== "$" && !Go(e); } -const ol = (e) => e === "_" || e === "_ctx" || e === "$stable", nl = (e) => Fe(e) ? e.map(ps) : [ps(e)], Tu = (e, s, o) => { +const il = (e) => e === "_" || e === "_ctx" || e === "$stable", rl = (e) => Fe(e) ? e.map(vs) : [vs(e)], Lu = (e, s, o) => { if (s._n) return s; - const a = h((...l) => nl(s(...l)), o); + const a = h((...l) => rl(s(...l)), o); return a._c = !1, a; -}, ur = (e, s, o) => { +}, pr = (e, s, o) => { const a = e._ctx; for (const l in e) { - if (ol(l)) continue; + if (il(l)) continue; const r = e[l]; - if (We(r)) - s[l] = Tu(l, r, a); + if (He(r)) + s[l] = Lu(l, r, a); else if (r != null) { - const c = nl(r); + const c = rl(r); s[l] = () => c; } } -}, dr = (e, s) => { - const o = nl(s); +}, gr = (e, s) => { + const o = rl(s); e.slots.default = () => o; -}, fr = (e, s, o) => { +}, hr = (e, s, o) => { for (const a in s) - (o || !ol(a)) && (e[a] = s[a]); -}, Ru = (e, s, o) => { - const a = e.slots = lr(); + (o || !il(a)) && (e[a] = s[a]); +}, Au = (e, s, o) => { + const a = e.slots = dr(); if (e.vnode.shapeFlag & 32) { const l = s._; - l ? (fr(a, s, o), o && vi(a, "_", l, !0)) : ur(s, a); - } else s && dr(e, s); -}, Pu = (e, s, o) => { + l ? (hr(a, s, o), o && wi(a, "_", l, !0)) : pr(s, a); + } else s && gr(e, s); +}, Nu = (e, s, o) => { const { vnode: a, slots: l } = e; - let r = !0, c = ot; + let r = !0, c = nt; if (a.shapeFlag & 32) { const u = s._; - u ? o && u === 1 ? r = !1 : fr(l, s, o) : (r = !s.$stable, ur(s, l)), c = s; - } else s && (dr(e, s), c = { default: 1 }); + u ? o && u === 1 ? r = !1 : hr(l, s, o) : (r = !s.$stable, pr(s, l)), c = s; + } else s && (gr(e, s), c = { default: 1 }); if (r) for (const u in l) - !ol(u) && c[u] == null && delete l[u]; -}, Et = Ou; -function Mu(e) { - return Du(e); + !il(u) && c[u] == null && delete l[u]; +}, Rt = Vu; +function Ou(e) { + return Uu(e); } -function Du(e, s) { - const o = Jn(); +function Uu(e, s) { + const o = Qn(); o.__VUE__ = !0; const { insert: a, @@ -2807,822 +2807,822 @@ function Du(e, s) { setElementText: v, parentNode: g, nextSibling: w, - setScopeId: p = gs, + setScopeId: p = ps, insertStaticContent: k - } = e, C = (N, R, F, q = null, ne = null, re = null, Ce = void 0, ie = null, we = !!R.dynamicChildren) => { - if (N === R) + } = e, C = (U, P, V, Z = null, ne = null, fe = null, _e = void 0, ie = null, be = !!P.dynamicChildren) => { + if (U === P) return; - N && !Zs(N, R) && (q = ce(N), Ue(N, ne, re, !0), N = null), R.patchFlag === -2 && (we = !1, R.dynamicChildren = null); - const { type: he, ref: Me, shapeFlag: Ee } = R; - switch (he) { - case sa: - b(N, R, F, q); + U && !Qs(U, P) && (Z = de(U), Ve(U, ne, fe, !0), U = null), P.patchFlag === -2 && (be = !1, P.dynamicChildren = null); + const { type: ce, ref: De, shapeFlag: Ee } = P; + switch (ce) { + case oa: + b(U, P, V, Z); break; - case bt: - x(N, R, F, q); + case Ct: + x(U, P, V, Z); break; - case pa: - N == null && M(R, F, q, Ce); + case wa: + U == null && M(P, V, Z, _e); break; case H: - W( - N, - R, - F, - q, + B( + U, + P, + V, + Z, ne, - re, - Ce, + fe, + _e, ie, - we + be ); break; default: - Ee & 1 ? L( - N, - R, - F, - q, + Ee & 1 ? D( + U, + P, + V, + Z, ne, - re, - Ce, + fe, + _e, ie, - we - ) : Ee & 6 ? O( - N, - R, - F, - q, + be + ) : Ee & 6 ? A( + U, + P, + V, + Z, ne, - re, - Ce, + fe, + _e, ie, - we - ) : (Ee & 64 || Ee & 128) && he.process( - N, - R, - F, - q, + be + ) : (Ee & 64 || Ee & 128) && ce.process( + U, + P, + V, + Z, ne, - re, - Ce, + fe, + _e, ie, - we, - Pe + be, + Te ); } - Me != null && ne ? Go(Me, N && N.ref, re, R || N, !R) : Me == null && N && N.ref != null && Go(N.ref, null, re, N, !0); - }, b = (N, R, F, q) => { - if (N == null) + De != null && ne ? qo(De, U && U.ref, fe, P || U, !P) : De == null && U && U.ref != null && qo(U.ref, null, fe, U, !0); + }, b = (U, P, V, Z) => { + if (U == null) a( - R.el = u(R.children), - F, - q + P.el = u(P.children), + V, + Z ); else { - const ne = R.el = N.el; - R.children !== N.children && m(ne, R.children); - } - }, x = (N, R, F, q) => { - N == null ? a( - R.el = d(R.children || ""), - F, - q - ) : R.el = N.el; - }, M = (N, R, F, q) => { - [N.el, N.anchor] = k( - N.children, - R, - F, - q, - N.el, - N.anchor + const ne = P.el = U.el; + P.children !== U.children && m(ne, P.children); + } + }, x = (U, P, V, Z) => { + U == null ? a( + P.el = d(P.children || ""), + V, + Z + ) : P.el = U.el; + }, M = (U, P, V, Z) => { + [U.el, U.anchor] = k( + U.children, + P, + V, + Z, + U.el, + U.anchor ); - }, P = ({ el: N, anchor: R }, F, q) => { + }, R = ({ el: U, anchor: P }, V, Z) => { let ne; - for (; N && N !== R; ) - ne = w(N), a(N, F, q), N = ne; - a(R, F, q); - }, T = ({ el: N, anchor: R }) => { - let F; - for (; N && N !== R; ) - F = w(N), l(N), N = F; - l(R); - }, L = (N, R, F, q, ne, re, Ce, ie, we) => { - if (R.type === "svg" ? Ce = "svg" : R.type === "math" && (Ce = "mathml"), N == null) - V( - R, - F, - q, + for (; U && U !== P; ) + ne = w(U), a(U, V, Z), U = ne; + a(P, V, Z); + }, T = ({ el: U, anchor: P }) => { + let V; + for (; U && U !== P; ) + V = w(U), l(U), U = V; + l(P); + }, D = (U, P, V, Z, ne, fe, _e, ie, be) => { + if (P.type === "svg" ? _e = "svg" : P.type === "math" && (_e = "mathml"), U == null) + O( + P, + V, + Z, ne, - re, - Ce, + fe, + _e, ie, - we + be ); else { - const he = N.el && N.el._isVueCE ? N.el : null; + const ce = U.el && U.el._isVueCE ? U.el : null; try { - he && he._beginPatch(), I( - N, - R, + ce && ce._beginPatch(), E( + U, + P, ne, - re, - Ce, + fe, + _e, ie, - we + be ); } finally { - he && he._endPatch(); + ce && ce._endPatch(); } } - }, V = (N, R, F, q, ne, re, Ce, ie) => { - let we, he; - const { props: Me, shapeFlag: Ee, transition: ee, dirs: Y } = N; - if (we = N.el = c( - N.type, - re, - Me && Me.is, - Me - ), Ee & 8 ? v(we, N.children) : Ee & 16 && E( - N.children, - we, + }, O = (U, P, V, Z, ne, fe, _e, ie) => { + let be, ce; + const { props: De, shapeFlag: Ee, transition: ue, dirs: G } = U; + if (be = U.el = c( + U.type, + fe, + De && De.is, + De + ), Ee & 8 ? v(be, U.children) : Ee & 16 && I( + U.children, + be, null, - q, + Z, ne, - va(N, re), - Ce, + ya(U, fe), + _e, ie - ), Y && qs(N, null, q, "created"), B(we, N, N.scopeId, Ce, q), Me) { - for (const xe in Me) - xe !== "value" && !Fo(xe) && r(we, xe, null, Me[xe], re, q); - "value" in Me && r(we, "value", null, Me.value, re), (he = Me.onVnodeBeforeMount) && us(he, q, N); - } - Y && qs(N, null, q, "beforeMount"); - const De = Lu(ne, ee); - De && ee.beforeEnter(we), a(we, R, F), ((he = Me && Me.onVnodeMounted) || De || Y) && Et(() => { - he && us(he, q, N), De && ee.enter(we), Y && qs(N, null, q, "mounted"); + ), G && Hs(U, null, Z, "created"), W(be, U, U.scopeId, _e, Z), De) { + for (const Ce in De) + Ce !== "value" && !Go(Ce) && r(be, Ce, null, De[Ce], fe, Z); + "value" in De && r(be, "value", null, De.value, fe), (ce = De.onVnodeBeforeMount) && cs(ce, Z, U); + } + G && Hs(U, null, Z, "beforeMount"); + const Me = zu(ne, ue); + Me && ue.beforeEnter(be), a(be, P, V), ((ce = De && De.onVnodeMounted) || Me || G) && Rt(() => { + ce && cs(ce, Z, U), Me && ue.enter(be), G && Hs(U, null, Z, "mounted"); }, ne); - }, B = (N, R, F, q, ne) => { - if (F && p(N, F), q) - for (let re = 0; re < q.length; re++) - p(N, q[re]); + }, W = (U, P, V, Z, ne) => { + if (V && p(U, V), Z) + for (let fe = 0; fe < Z.length; fe++) + p(U, Z[fe]); if (ne) { - let re = ne.subTree; - if (R === re || vr(re.type) && (re.ssContent === R || re.ssFallback === R)) { - const Ce = ne.vnode; - B( - N, - Ce, - Ce.scopeId, - Ce.slotScopeIds, + let fe = ne.subTree; + if (P === fe || wr(fe.type) && (fe.ssContent === P || fe.ssFallback === P)) { + const _e = ne.vnode; + W( + U, + _e, + _e.scopeId, + _e.slotScopeIds, ne.parent ); } } - }, E = (N, R, F, q, ne, re, Ce, ie, we = 0) => { - for (let he = we; he < N.length; he++) { - const Me = N[he] = ie ? Us(N[he]) : ps(N[he]); + }, I = (U, P, V, Z, ne, fe, _e, ie, be = 0) => { + for (let ce = be; ce < U.length; ce++) { + const De = U[ce] = ie ? Us(U[ce]) : vs(U[ce]); C( null, - Me, - R, - F, - q, + De, + P, + V, + Z, ne, - re, - Ce, + fe, + _e, ie ); } - }, I = (N, R, F, q, ne, re, Ce) => { - const ie = R.el = N.el; - let { patchFlag: we, dynamicChildren: he, dirs: Me } = R; - we |= N.patchFlag & 16; - const Ee = N.props || ot, ee = R.props || ot; - let Y; - if (F && Ys(F, !1), (Y = ee.onVnodeBeforeUpdate) && us(Y, F, R, N), Me && qs(R, N, F, "beforeUpdate"), F && Ys(F, !0), (Ee.innerHTML && ee.innerHTML == null || Ee.textContent && ee.textContent == null) && v(ie, ""), he ? A( - N.dynamicChildren, - he, + }, E = (U, P, V, Z, ne, fe, _e) => { + const ie = P.el = U.el; + let { patchFlag: be, dynamicChildren: ce, dirs: De } = P; + be |= U.patchFlag & 16; + const Ee = U.props || nt, ue = P.props || nt; + let G; + if (V && Ks(V, !1), (G = ue.onVnodeBeforeUpdate) && cs(G, V, P, U), De && Hs(P, U, V, "beforeUpdate"), V && Ks(V, !0), (Ee.innerHTML && ue.innerHTML == null || Ee.textContent && ue.textContent == null) && v(ie, ""), ce ? j( + U.dynamicChildren, + ce, ie, - F, - q, - va(R, ne), - re - ) : Ce || Z( - N, - R, + V, + Z, + ya(P, ne), + fe + ) : _e || Y( + U, + P, ie, null, - F, - q, - va(R, ne), - re, + V, + Z, + ya(P, ne), + fe, !1 - ), we > 0) { - if (we & 16) - te(ie, Ee, ee, F, ne); - else if (we & 2 && Ee.class !== ee.class && r(ie, "class", null, ee.class, ne), we & 4 && r(ie, "style", Ee.style, ee.style, ne), we & 8) { - const De = R.dynamicProps; - for (let xe = 0; xe < De.length; xe++) { - const ye = De[xe], K = Ee[ye], G = ee[ye]; - (G !== K || ye === "value") && r(ie, ye, K, G, ne, F); + ), be > 0) { + if (be & 16) + ee(ie, Ee, ue, V, ne); + else if (be & 2 && Ee.class !== ue.class && r(ie, "class", null, ue.class, ne), be & 4 && r(ie, "style", Ee.style, ue.style, ne), be & 8) { + const Me = P.dynamicProps; + for (let Ce = 0; Ce < Me.length; Ce++) { + const $e = Me[Ce], J = Ee[$e], N = ue[$e]; + (N !== J || $e === "value") && r(ie, $e, J, N, ne, V); } } - we & 1 && N.children !== R.children && v(ie, R.children); - } else !Ce && he == null && te(ie, Ee, ee, F, ne); - ((Y = ee.onVnodeUpdated) || Me) && Et(() => { - Y && us(Y, F, R, N), Me && qs(R, N, F, "updated"); - }, q); - }, A = (N, R, F, q, ne, re, Ce) => { - for (let ie = 0; ie < R.length; ie++) { - const we = N[ie], he = R[ie], Me = ( + be & 1 && U.children !== P.children && v(ie, P.children); + } else !_e && ce == null && ee(ie, Ee, ue, V, ne); + ((G = ue.onVnodeUpdated) || De) && Rt(() => { + G && cs(G, V, P, U), De && Hs(P, U, V, "updated"); + }, Z); + }, j = (U, P, V, Z, ne, fe, _e) => { + for (let ie = 0; ie < P.length; ie++) { + const be = U[ie], ce = P[ie], De = ( // oldVNode may be an errored async setup() component inside Suspense // which will not have a mounted element - we.el && // - In the case of a Fragment, we need to provide the actual parent + be.el && // - In the case of a Fragment, we need to provide the actual parent // of the Fragment itself so it can move its children. - (we.type === H || // - In the case of different nodes, there is going to be a replacement + (be.type === H || // - In the case of different nodes, there is going to be a replacement // which also requires the correct parent container - !Zs(we, he) || // - In the case of a component, it could contain anything. - we.shapeFlag & 198) ? g(we.el) : ( + !Qs(be, ce) || // - In the case of a component, it could contain anything. + be.shapeFlag & 198) ? g(be.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. - F + V ) ); C( - we, - he, - Me, + be, + ce, + De, null, - q, + Z, ne, - re, - Ce, + fe, + _e, !0 ); } - }, te = (N, R, F, q, ne) => { - if (R !== F) { - if (R !== ot) - for (const re in R) - !Fo(re) && !(re in F) && r( - N, - re, - R[re], + }, ee = (U, P, V, Z, ne) => { + if (P !== V) { + if (P !== nt) + for (const fe in P) + !Go(fe) && !(fe in V) && r( + U, + fe, + P[fe], null, ne, - q + Z ); - for (const re in F) { - if (Fo(re)) continue; - const Ce = F[re], ie = R[re]; - Ce !== ie && re !== "value" && r(N, re, ie, Ce, ne, q); + for (const fe in V) { + if (Go(fe)) continue; + const _e = V[fe], ie = P[fe]; + _e !== ie && fe !== "value" && r(U, fe, ie, _e, ne, Z); } - "value" in F && r(N, "value", R.value, F.value, ne); + "value" in V && r(U, "value", P.value, V.value, ne); } - }, W = (N, R, F, q, ne, re, Ce, ie, we) => { - const he = R.el = N ? N.el : u(""), Me = R.anchor = N ? N.anchor : u(""); - let { patchFlag: Ee, dynamicChildren: ee, slotScopeIds: Y } = R; - Y && (ie = ie ? ie.concat(Y) : Y), N == null ? (a(he, F, q), a(Me, F, q), E( + }, B = (U, P, V, Z, ne, fe, _e, ie, be) => { + const ce = P.el = U ? U.el : u(""), De = P.anchor = U ? U.anchor : u(""); + let { patchFlag: Ee, dynamicChildren: ue, slotScopeIds: G } = P; + G && (ie = ie ? ie.concat(G) : G), U == null ? (a(ce, V, Z), a(De, V, Z), I( // #10007 // such fragment like `<>` will be compiled into // a fragment which doesn't have a children. // In this case fallback to an empty array - R.children || [], - F, - Me, + P.children || [], + V, + De, ne, - re, - Ce, + fe, + _e, ie, - we - )) : Ee > 0 && Ee & 64 && ee && // #2715 the previous fragment could've been a BAILed one as a result + be + )) : Ee > 0 && Ee & 64 && ue && // #2715 the previous fragment could've been a BAILed one as a result // of renderSlot() with no valid children - N.dynamicChildren ? (A( - N.dynamicChildren, - ee, - F, + U.dynamicChildren ? (j( + U.dynamicChildren, + ue, + V, ne, - re, - Ce, + fe, + _e, ie ), // #2080 if the stable fragment has a key, it's a