diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/index.css b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/index.css index 44039237..d0add994 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/index.css +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/index.css @@ -2176,6 +2176,8 @@ .de-artifact-source-row span { color: var(--de-text-muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: right; } .de-artifact-source-row code, .de-artifact-source-row em { grid-column: 1 / -1; min-width: 0; color: var(--de-text-body); font-size: 12px; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .de-artifact-source-actions { display: inline-flex; align-items: center; justify-content: flex-end; gap: 4px; } +.de-artifact-source-meta { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; min-width: 0; } +.de-artifact-source-meta span { width: auto; max-width: 160px; padding: 2px 6px; border-radius: 6px; background: rgba(79,172,254,0.08); color: #315a78; text-align: left; } .de-icon-btn { width: 28px; height: 28px; display: inline-grid; place-items: center; border: 1px solid rgba(79,172,254,0.18); border-radius: 6px; color: #275a82; background: rgba(255,255,255,0.78); cursor: pointer; } .de-icon-btn:hover:not(:disabled) { border-color: rgba(79,172,254,0.45); background: #fff; } .de-icon-btn:disabled { cursor: not-allowed; opacity: 0.42; } @@ -2183,6 +2185,12 @@ .de-artifact-preview { margin-top: 10px; border: 1px solid rgba(79,172,254,0.14); border-radius: 8px; background: rgba(255,255,255,0.78); overflow: hidden; } .de-artifact-preview > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-bottom: 1px solid rgba(79,172,254,0.1); } .de-artifact-preview pre { max-height: 220px; margin: 0; padding: 10px; overflow: auto; white-space: pre-wrap; word-break: break-word; color: var(--de-text-body); font-size: 12px; line-height: 1.55; } +.de-artifact-retention-actions { justify-content: flex-start !important; flex-wrap: wrap; } +.de-artifact-version-list { display: grid !important; gap: 6px; align-items: stretch !important; justify-content: stretch !important; border-bottom: 0 !important; } +.de-artifact-version-list div { display: grid; grid-template-columns: minmax(72px, 120px) minmax(90px, 1fr); gap: 2px 10px; align-items: center; padding: 8px; border-radius: 6px; background: rgba(244,250,255,0.78); } +.de-artifact-version-list strong { font-size: 12px; color: var(--de-text-primary); } +.de-artifact-version-list span, .de-artifact-version-list em { min-width: 0; color: var(--de-text-muted); font-size: 12px; font-style: normal; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.de-artifact-version-list em { grid-column: 1 / -1; } .de-decision-card { background: rgba(247,251,255,0.96); } .de-decision-chain-note { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/api.ts b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/api.ts index 322cf1c0..86113e87 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/api.ts +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/api.ts @@ -739,6 +739,27 @@ export function getArtifactAccessEvents(params: Record { + return apiFetch(`/api/digital-employee/artifacts/${encodeURIComponent(artifactId)}`) + .then((data: any) => data.item ?? null); +} + +export function getArtifactVersions(artifactId: string): Promise { + return apiFetch(`/api/digital-employee/artifacts/${encodeURIComponent(artifactId)}/versions`) + .then((data: any) => data.items ?? []); +} + +export function setArtifactRetention( + artifactId: string, + action: 'mark_keep' | 'mark_expire' | 'mark_review' | 'clear_retention', + options: Record = {}, +): Promise { + return apiFetch(`/api/digital-employee/artifacts/${encodeURIComponent(artifactId)}/retention`, { + method: 'POST', + body: JSON.stringify({ action, ...options }), + }); +} + export function getDebugConversations(): Promise { return apiFetch<{ conversations: any[] }>('/api/debug/conversations') .then((data) => data.conversations ?? []); diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts index d6b11b05..3959950d 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/lib/qimingclawAdapter.ts @@ -64,6 +64,7 @@ declare global { recordGovernanceCommand?: (command: QimingclawGovernanceCommandRecord) => Promise; recordDailyReport?: (input: QimingclawDailyReportRecordInput) => Promise; accessArtifact?: (artifactId: string, action: 'preview' | 'download' | 'open_location', options?: { actor?: string | null; source?: string | null }) => Promise; + recordArtifactLifecycle?: (input: QimingclawArtifactLifecycleInput) => Promise; restartManagedService?: (serviceId: string, options?: { reason?: string | null; actor?: string | null }) => Promise; respondPermission?: (sessionId: string, permissionId: string, response: 'once' | 'always' | 'reject') => Promise<{ success?: boolean; error?: string }>; }; @@ -249,6 +250,27 @@ interface QimingclawArtifactAccessResponse { event_id?: string | null; } +interface QimingclawArtifactLifecycleInput { + artifactId?: string | null; + action: string; + reason?: string | null; + retentionUntil?: string | null; + versionSummary?: Record | null; + retentionSummary?: Record | null; + deliverySummary?: Record | null; + actor?: string | null; + source?: string | null; + planId?: string | null; + taskId?: string | null; + runId?: string | null; +} + +interface QimingclawArtifactLifecycleResult { + eventId: string; + kind: string; + payload: Record; +} + interface QimingclawManagedServiceActionResponse { ok: boolean; service_id: string; @@ -680,6 +702,24 @@ export async function handleQimingclawDigitalApi( const artifactId = decodeURIComponent(artifactAccessMatch[1] || ''); return await handleArtifactAccess(artifactId, parseOptionalJsonBody(options.body)) as T; } + const artifactRetentionMatch = pathname.match(/^\/api\/digital-employee\/artifacts\/([^/]+)\/retention$/); + if (method === 'POST' && artifactRetentionMatch) { + const artifactId = decodeURIComponent(artifactRetentionMatch[1] || ''); + return await handleArtifactRetention(artifactId, parseOptionalJsonBody(options.body), await readQimingclawSnapshot()) as T; + } + const artifactVersionsMatch = pathname.match(/^\/api\/digital-employee\/artifacts\/([^/]+)\/versions$/); + if (method === 'GET' && artifactVersionsMatch) { + const artifactId = decodeURIComponent(artifactVersionsMatch[1] || ''); + const snapshot = await readQimingclawSnapshot(); + return { items: artifactVersionRows(snapshot, artifactId), source: BUSINESS_VIEW_SOURCE } as T; + } + const artifactDetailMatch = pathname.match(/^\/api\/digital-employee\/artifacts\/([^/]+)$/); + if (method === 'GET' && artifactDetailMatch) { + const artifactId = decodeURIComponent(artifactDetailMatch[1] || ''); + const snapshot = await readQimingclawSnapshot(); + const item = artifactDetailRow(snapshot, artifactId); + return { item, source: BUSINESS_VIEW_SOURCE } as T; + } const businessPlanDetailMatch = pathname.match(/^\/api\/digital-employee\/plans\/([^/]+)$/); if (method === 'GET' && businessPlanDetailMatch) { const planId = decodeURIComponent(businessPlanDetailMatch[1] || ''); @@ -1410,6 +1450,41 @@ function normalizeArtifactAccessAction(value: string): 'preview' | 'download' | return 'preview'; } +async function handleArtifactRetention( + artifactId: string, + body: Record, + snapshot: QimingclawSnapshot | null, +): Promise> { + const bridge = window.QimingClawBridge?.digital; + const action = stringValue(body.action) || 'mark_review'; + const artifact = artifactDetailRow(snapshot, artifactId); + if (!bridge?.recordArtifactLifecycle) { + return { ok: false, artifact_id: artifactId, action, status: 'rejected', error: 'bridge_unavailable' }; + } + const result = await bridge.recordArtifactLifecycle({ + artifactId, + action, + reason: stringValue(body.reason) || null, + retentionUntil: stringValue(body.retention_until ?? body.retentionUntil) || null, + versionSummary: artifact ? artifactVersionSummary(artifact) : null, + retentionSummary: artifact ? artifactRetentionSummaryForAction(artifact, action, body) : null, + deliverySummary: artifact ? artifactDeliverySummary(artifact) : null, + actor: stringValue(body.actor) || 'digital_employee_ui', + source: stringValue(body.source) || 'sgrobot-digital-adapter', + planId: artifact ? stringValue(artifact.plan_id) || null : null, + taskId: artifact ? stringValue(artifact.task_id) || null : null, + runId: artifact ? stringValue(artifact.run_id) || null : null, + }); + return { + ok: Boolean(result && result.kind !== 'artifact_retention_rejected'), + artifact_id: artifactId, + action, + status: result?.kind === 'artifact_retention_rejected' ? 'rejected' : 'recorded', + event_id: result?.eventId ?? null, + item: artifact, + }; +} + function syncLine(snapshot: QimingclawSnapshot | null): string { const sync = snapshot?.sync; if (!sync) return '管理端同步:未连接'; @@ -2343,7 +2418,8 @@ function businessEventRows(snapshot: QimingclawSnapshot | null): BusinessViewRow function businessArtifactRows(snapshot: QimingclawSnapshot | null): BusinessViewRow[] { const runtimeById = new Map(runtimeArtifacts(snapshot).map((artifact) => [artifact.id, artifact])); - return buildArtifacts(snapshot).map((artifact) => { + const artifacts = buildArtifacts(snapshot); + return artifacts.map((artifact) => { const artifactId = stringValue(artifact.artifact_id) || stringValue(artifact.subject_id); const runtime = runtimeById.get(artifactId); const entity = businessEntityFromRefs({ @@ -2353,6 +2429,9 @@ function businessArtifactRows(snapshot: QimingclawSnapshot | null): BusinessView fallback_type: 'artifact', fallback_id: artifact.subject_id ?? artifactId, }); + const lifecycle = artifactLifecycleSummary(snapshot, artifactId); + const version = artifactVersionMeta(artifacts, artifact); + const delivery = artifactDeliverySummary(artifact); return { ...artifact, artifact_id: artifactId, @@ -2360,10 +2439,53 @@ function businessArtifactRows(snapshot: QimingclawSnapshot | null): BusinessView entity_type: entity.entity_type, entity_id: entity.entity_id, sync_status: (runtime?.syncStatus ?? stringValue(artifact.sync_status)) || null, + version: version.version, + version_key: version.version_key, + version_rank: version.version_rank, + retention_status: lifecycle.retention_status, + retention_until: lifecycle.retention_until, + last_retention_action: lifecycle.last_retention_action, + last_access_status: stringValue(asRecord(artifact.access)?.last_access_status) || null, + delivery_summary: delivery, }; }); } +function artifactDetailRow(snapshot: QimingclawSnapshot | null, artifactId: string): BusinessViewRow | null { + const row = businessArtifactRows(snapshot) + .find((artifact) => stringValue(artifact.artifact_id) === artifactId || stringValue(artifact.remote_id) === artifactId) ?? null; + if (!row) return null; + return { + ...row, + versions: artifactVersionRows(snapshot, stringValue(row.artifact_id)), + lifecycle_events: artifactLifecycleRows(snapshot).filter((event) => stringValue(event.artifact_id) === stringValue(row.artifact_id)).slice(0, 20), + }; +} + +function artifactVersionRows(snapshot: QimingclawSnapshot | null, artifactId: string): BusinessViewRow[] { + const artifacts = buildArtifacts(snapshot); + const target = artifacts.find((artifact) => stringValue(artifact.artifact_id) === artifactId || stringValue(artifact.subject_id) === artifactId); + if (!target) return []; + const groupKey = artifactVersionGroupKey(target); + return artifacts + .filter((artifact) => artifactVersionGroupKey(artifact) === groupKey) + .sort((left, right) => stringValue(left.created_at).localeCompare(stringValue(right.created_at))) + .map((artifact, index) => { + const meta = artifactVersionMeta(artifacts, artifact); + return { + artifact_id: stringValue(artifact.artifact_id) || stringValue(artifact.subject_id), + name: stringValue(artifact.name) || null, + version: meta.version || `local-v${index + 1}`, + version_key: meta.version_key, + version_rank: index + 1, + delivery_summary: artifactDeliverySummary(artifact), + retention_status: artifactLifecycleSummary(snapshot, stringValue(artifact.artifact_id)).retention_status, + created_at: stringValue(artifact.created_at) || null, + source_label: stringValue(artifact.source_label) || null, + }; + }); +} + function businessApprovalRows(snapshot: QimingclawSnapshot | null): BusinessViewRow[] { const runtimeById = new Map(runtimeApprovals(snapshot).map((approval) => [approval.id, approval])); return buildApprovals(snapshot).map((approval) => { @@ -2464,6 +2586,117 @@ function filterArtifactAccessRows(rows: BusinessViewRow[], searchParams: URLSear .filter((row) => !status || stringValue(row.status) === status); } +function artifactLifecycleRows(snapshot: QimingclawSnapshot | null): BusinessViewRow[] { + return runtimeEvents(snapshot) + .filter((event) => ['artifact_retention_marked', 'artifact_retention_rejected', 'artifact_version_observed'].includes(event.kind)) + .map((event) => { + const payload = asRecord(event.payload) ?? {}; + return { + lifecycle_id: event.id, + event_id: event.id, + kind: event.kind, + artifact_id: stringValue(payload.artifact_id) || null, + action: stringValue(payload.action) || null, + status: stringValue(payload.status) || null, + retention_status: stringValue(payload.retention_status) || null, + retention_until: stringValue(payload.retention_until) || null, + reason: stringValue(payload.reason) || null, + actor: stringValue(payload.actor) || null, + source: stringValue(payload.source) || null, + plan_id: (event.planId ?? stringValue(payload.plan_id)) || null, + task_id: (event.taskId ?? stringValue(payload.task_id)) || null, + run_id: (event.runId ?? stringValue(payload.run_id)) || null, + message: event.message, + occurred_at: event.occurredAt, + sync_status: event.syncStatus ?? null, + payload, + }; + }) + .sort((left, right) => stringValue(right.occurred_at).localeCompare(stringValue(left.occurred_at))); +} + +function artifactLifecycleSummary(snapshot: QimingclawSnapshot | null, artifactId: string): Record { + const latest = artifactLifecycleRows(snapshot) + .find((event) => stringValue(event.artifact_id) === artifactId && stringValue(event.kind) === 'artifact_retention_marked'); + return { + retention_status: stringValue(latest?.retention_status) || 'unmanaged', + retention_until: stringValue(latest?.retention_until) || null, + last_retention_action: stringValue(latest?.action) || null, + last_retention_at: stringValue(latest?.occurred_at) || null, + }; +} + +function artifactRetentionSummaryForAction( + artifact: BusinessViewRow, + action: string, + body: Record, +): Record { + return { + previous_status: stringValue(artifact.retention_status) || 'unmanaged', + retention_status: retentionStatusForAction(action), + retention_until: stringValue(body.retention_until ?? body.retentionUntil) || null, + reason: stringValue(body.reason) || null, + }; +} + +function retentionStatusForAction(action: string): string | null { + if (action === 'mark_keep') return 'keep'; + if (action === 'mark_expire') return 'expire_candidate'; + if (action === 'mark_review') return 'review_required'; + if (action === 'clear_retention') return 'unmanaged'; + return null; +} + +function artifactVersionSummary(artifact: BusinessViewRow): Record { + return { + version: stringValue(artifact.version) || null, + version_key: stringValue(artifact.version_key) || null, + version_rank: numberValue(artifact.version_rank), + file_id: stringValue(artifact.file_id) || null, + workspace_id: stringValue(artifact.workspace_id) || null, + project_id: stringValue(artifact.project_id) || null, + created_at: stringValue(artifact.created_at) || null, + name: stringValue(artifact.name) || null, + }; +} + +function artifactDeliverySummary(artifact: Record): Record { + return { + delivery_status: stringValue(artifact.delivery_status) || null, + delivery_stage: stringValue(artifact.delivery_stage) || null, + workspace_id: stringValue(artifact.workspace_id) || null, + project_id: stringValue(artifact.project_id) || null, + file_id: stringValue(artifact.file_id) || null, + version: stringValue(artifact.version) || null, + file_size: numberValue(artifact.file_size), + source_tool: stringValue(artifact.source_tool) || null, + }; +} + +function artifactVersionMeta(artifacts: ArtifactEntry[], artifact: Record): Record { + const groupKey = artifactVersionGroupKey(artifact); + const group = artifacts + .filter((item) => artifactVersionGroupKey(item) === groupKey) + .sort((left, right) => stringValue(left.created_at).localeCompare(stringValue(right.created_at))); + const artifactId = stringValue(artifact.artifact_id) || stringValue(artifact.subject_id); + const index = Math.max(0, group.findIndex((item) => stringValue(item.artifact_id) === artifactId || stringValue(item.subject_id) === artifactId)); + return { + version: stringValue(artifact.version) || `local-v${index + 1}`, + version_key: `${groupKey}:v${stringValue(artifact.version) || index + 1}`, + version_rank: index + 1, + }; +} + +function artifactVersionGroupKey(artifact: Record): string { + const fileId = stringValue(artifact.file_id); + const workspaceId = stringValue(artifact.workspace_id); + const name = stringValue(artifact.name); + if (fileId) return `file:${workspaceId}:${fileId}:${name}`; + const artifactId = stringValue(artifact.artifact_id) || stringValue(artifact.subject_id); + if (artifactId) return `artifact:${artifactId}`; + return `fallback:${workspaceId}:${stringValue(artifact.project_id)}:${name || stringValue(artifact.uri)}`; +} + function dailyReportRows(snapshot: QimingclawSnapshot | null): BusinessViewRow[] { return buildArtifacts(snapshot) .filter(isDailyReportArtifact) @@ -3077,18 +3310,28 @@ function buildArtifacts(snapshot: QimingclawSnapshot | null): ArtifactEntry[] { runId: event.runId, })), ]; - return dedupeArtifacts(artifacts).map((artifact) => withArtifactAccessSummary(artifact, snapshot)); + const deduped = dedupeArtifacts(artifacts); + return deduped.map((artifact) => withArtifactAccessSummary(artifact, snapshot, deduped)); } -function withArtifactAccessSummary(artifact: ArtifactEntry, snapshot: QimingclawSnapshot | null): ArtifactEntry { +function withArtifactAccessSummary(artifact: ArtifactEntry, snapshot: QimingclawSnapshot | null, artifacts: ArtifactEntry[]): ArtifactEntry { const artifactId = stringValue(artifact.artifact_id) || stringValue(artifact.subject_id); const lastAccess = artifactAccessRows(snapshot).find((row) => stringValue(row.artifact_id) === artifactId) ?? null; const hasLocalUri = isLocalArtifactUri(stringValue(artifact.uri)); const hasDailyText = isDailyReportArtifact(artifact) && Boolean(stringValue(asRecord(artifact.payload)?.text_content)); const formalRuntimeArtifact = runtimeArtifacts(snapshot).some((runtime) => runtime.id === artifactId || runtime.remoteId === artifactId); const previewable = formalRuntimeArtifact && (hasDailyText || hasLocalUri); + const lifecycle = artifactLifecycleSummary(snapshot, artifactId); + const version = artifactVersionMeta(artifacts, artifact); return { ...artifact, + version: version.version, + version_key: version.version_key, + version_rank: version.version_rank, + retention_status: lifecycle.retention_status, + retention_until: lifecycle.retention_until, + last_retention_action: lifecycle.last_retention_action, + delivery_summary: artifactDeliverySummary(artifact), access: { previewable, downloadable: formalRuntimeArtifact && hasLocalUri, @@ -3733,6 +3976,11 @@ function reportArtifactSources(artifacts: ArtifactEntry[]) { project_id: stringValue(artifact.project_id) || null, file_id: stringValue(artifact.file_id) || null, version: stringValue(artifact.version) || null, + version_key: stringValue(artifact.version_key) || null, + version_rank: numberValue(artifact.version_rank), + retention_status: stringValue(artifact.retention_status) || null, + retention_until: stringValue(artifact.retention_until) || null, + last_retention_action: stringValue(artifact.last_retention_action) || null, file_size: typeof artifact.file_size === 'number' ? artifact.file_size : null, source_tool: stringValue(artifact.source_tool) || null, source_label: stringValue(artifact.source_label) || null, @@ -3743,6 +3991,7 @@ function reportArtifactSources(artifacts: ArtifactEntry[]) { run_id: stringValue(artifact.run_id) || null, created_at: stringValue(artifact.created_at) || null, access: artifact.access, + delivery_summary: artifact.delivery_summary ?? null, })); } diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/DailyReport.tsx b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/DailyReport.tsx index d7a74e2f..4fe533b4 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/DailyReport.tsx +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/DailyReport.tsx @@ -1,11 +1,14 @@ import { useCallback, useEffect, useMemo, useRef, useState, type CSSProperties } from 'react'; -import { Download, Eye, FolderOpen } from 'lucide-react'; +import { Download, Eye, FolderOpen, History } from 'lucide-react'; import GlassCard from '@/components/digital/GlassCard'; import CardTitleBar from '@/components/digital/CardTitleBar'; import { getDigitalEmployeeWorkday, postDigitalEmployeeWorkdayAction, accessArtifact, + getArtifactDetail, + getArtifactVersions, + setArtifactRetention, } from '@/lib/api'; import type { DigitalEmployeeDailyReport, @@ -185,6 +188,7 @@ function ArtifactSourceList({ artifacts }: { artifacts: DigitalEmployeeReportArt const [busyKey, setBusyKey] = useState(null); const [notice, setNotice] = useState(null); const [preview, setPreview] = useState<{ title: string; text: string } | null>(null); + const [detail, setDetail] = useState<{ artifact: DigitalEmployeeReportArtifactSource; item: any; versions: any[] } | null>(null); if (artifacts.length === 0) { return

运行产物出现后,这里会展示文件、输出和来源记录。

; @@ -217,6 +221,47 @@ function ArtifactSourceList({ artifacts }: { artifacts: DigitalEmployeeReportArt } }; + const loadDetail = async (artifact: DigitalEmployeeReportArtifactSource) => { + if (!artifact.id || busyKey) return; + setBusyKey(`${artifact.id}:detail`); + setNotice(null); + try { + const [item, versions] = await Promise.all([ + getArtifactDetail(artifact.id), + getArtifactVersions(artifact.id), + ]); + setDetail({ artifact, item, versions }); + } catch (error) { + setNotice(error instanceof Error ? error.message : '读取产物详情失败'); + } finally { + setBusyKey(null); + } + }; + + const runRetention = async (action: 'mark_keep' | 'mark_expire' | 'mark_review' | 'clear_retention') => { + const artifact = detail?.artifact; + if (!artifact?.id || busyKey) return; + setBusyKey(`${artifact.id}:${action}`); + setNotice(null); + try { + const result = await setArtifactRetention(artifact.id, action, { reason: 'digital_employee_artifact_governance' }); + if (!result?.ok) { + setNotice(result?.error || '保留策略写入失败'); + return; + } + const [item, versions] = await Promise.all([ + getArtifactDetail(artifact.id), + getArtifactVersions(artifact.id), + ]); + setDetail({ artifact: { ...artifact, retention_status: String(item?.retention_status || artifact.retention_status || 'unmanaged') }, item, versions }); + setNotice('保留策略已记录'); + } catch (error) { + setNotice(error instanceof Error ? error.message : '保留策略写入失败'); + } finally { + setBusyKey(null); + } + }; + return ( <>
@@ -232,6 +277,13 @@ function ArtifactSourceList({ artifacts }: { artifacts: DigitalEmployeeReportArt + +
+
+ {artifact.version || 'local-v1'} + {artifact.retention_status || 'unmanaged'} + {artifact.delivery_status ? {artifact.delivery_status} : null} + {artifact.access?.last_access_status ? {artifact.access.last_access_status} : null}
{artifact.uri ? {artifact.uri} : {artifact.kind || 'artifact'}} @@ -245,6 +297,26 @@ function ArtifactSourceList({ artifacts }: { artifacts: DigitalEmployeeReportArt
{preview.text}
) : null} + {detail ? ( +
+
{detail.artifact.name}
+
+ + + + +
+
+ {(detail.versions.length > 0 ? detail.versions : [detail.item]).filter(Boolean).map((item) => ( +
+ {String(item.version || 'local-v1')} + {String(item.delivery_summary?.delivery_status || item.source_label || '未记录')} + {String(item.created_at || '')} +
+ ))} +
+
+ ) : null} ); } diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts index 74a913c5..a73b1eb0 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/types/api.ts @@ -756,6 +756,11 @@ export interface DigitalEmployeeReportArtifactSource { project_id?: string | null; file_id?: string | null; version?: string | null; + version_key?: string | null; + version_rank?: number | null; + retention_status?: string | null; + retention_until?: string | null; + last_retention_action?: string | null; file_size?: number | null; source_tool?: string | null; source_label?: string | null; @@ -766,6 +771,7 @@ export interface DigitalEmployeeReportArtifactSource { run_id?: string | null; created_at?: string | null; access?: ArtifactEntry['access']; + delivery_summary?: Record | null; } export interface DigitalEmployeeDelivery { diff --git a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-4_0OumSc.css b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-CeppSmWE.css similarity index 62% rename from qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-4_0OumSc.css rename to qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-CeppSmWE.css index 76b01b85..c8c639d6 100644 --- a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-4_0OumSc.css +++ b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-CeppSmWE.css @@ -1 +1 @@ -/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}body{background:var(--pc-bg-base);color:var(--pc-text-primary);font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;margin:0}}@layer components{.btn-electric{border:1px solid var(--pc-accent-dim);background:linear-gradient(135deg,var(--pc-accent-glow),transparent);color:var(--pc-accent-light);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;font-weight:600;transition:all .2s;display:inline-flex}.btn-electric:hover{background:var(--pc-accent);color:#fff;border-color:var(--pc-accent)}.btn-electric:disabled{opacity:.4;cursor:not-allowed}.input-electric{border:1px solid var(--pc-border);background:var(--pc-bg-elevated);color:var(--pc-text-primary);border-radius:12px;outline:none;transition:border-color .2s}.input-electric:focus{border-color:var(--pc-accent);box-shadow:0 0 0 3px var(--pc-accent-glow)}.input-electric::placeholder{color:var(--pc-text-faint)}.card{border:1px solid var(--pc-border);background:var(--pc-bg-surface);border-radius:16px}.surface-panel{background:var(--pc-bg-elevated);border:1px solid var(--pc-border);border-radius:24px}.btn-icon{width:36px;height:36px;color:var(--pc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.btn-icon:hover{background:var(--pc-hover);color:var(--pc-text-primary)}.table-electric{border-collapse:collapse;width:100%}.table-electric th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--pc-text-muted);border-bottom:1px solid var(--pc-border);padding:10px 16px;font-size:10px;font-weight:600}.table-electric td{border-bottom:1px solid var(--pc-border);padding:12px 16px;font-size:13px}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p{margin:0}.chat-markdown p+p{margin-top:.75em}.chat-markdown ul,.chat-markdown ol{margin:.5em 0;padding-left:1.25em}.chat-markdown pre{margin:.5em 0 0}.chat-markdown code{white-space:break-spaces}}@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.text-gradient-blue{background:linear-gradient(135deg,var(--pc-accent),#818cf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-fade-in-scale{animation:.3s ease-out fadeInScale}.animate-slide-in-up{animation:.4s ease-out slideInUp}.animate-float{animation:3s ease-in-out infinite float}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}}:root{--de-primary:#4facfe;--de-primary-2:#00f2fe;--de-primary-3:#00d4ff;--de-primary-4:#2d8cf0;--de-header-gradient:linear-gradient(135deg, #2d8cf0, #4facfe 40%, #00d4ff);--de-text-primary:#16324e;--de-text-heading:#1e3a5c;--de-text-body:#4a6a8a;--de-text-muted:#5b7590;--de-text-label:#6a8198;--de-success:#1b9c5a;--de-success-text:#0f7a44;--de-success-bg:#20bf6b24;--de-warning:#faad14;--de-warning-text:#8c5b04;--de-warning-bg:#ffb83d2e;--de-danger:#d94a4a;--de-danger-text:#a33b3b;--de-danger-bg:#f4606029;--de-glass-bg:#e6f2ffa6;--de-glass-border:#4facfe38;--de-glass-border-light:#4facfe1f;--de-glass-border-lighter:#4facfe14;--de-glass-blur:blur(20px) saturate(1.2);--de-overlay-bg:#4facfe0f;--de-overlay-md:#4facfe1f;--de-overlay-hover:#4facfe2e;--de-overlay-active:#4facfe38;--de-btn-gradient:linear-gradient(135deg, #2ca8ff, #00c6ff);--de-btn-shadow:0 10px 18px #2ca8ff38;--de-btn-gradient-blue:linear-gradient(135deg, #59adf5eb, #3ad6f3e6);--de-btn-gradient-active:linear-gradient(135deg, #4facfee6, #00f2fed9);--de-page-bg:linear-gradient(180deg, #d6e8f7, #e2f0fb 25%, #d8eaf8 50%, #cce2f5 75%, #c0d8f0);--de-page-grid:#4facfe0a;--de-font-family:Microsoft YaHei, PingFang SC, Helvetica Neue, Arial, sans-serif;--de-font-mono:Fira Code, Consolas, monospace}.de-page{background:var(--de-page-bg);min-height:100vh;font-family:var(--de-font-family);position:relative}.de-page:before{content:"";background-image:linear-gradient(var(--de-page-grid) 1px,transparent 0),linear-gradient(90deg,var(--de-page-grid) 1px,transparent 0);pointer-events:none;z-index:0;background-size:40px 40px;position:fixed;top:0;right:0;bottom:0;left:0}.de-page:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 20% 100%,#4facfe14 0,#0000 50%),radial-gradient(at 80% 100%,#00f2fe0f 0,#0000 50%),radial-gradient(at 50% 100%,#4facfe0d 0,#0000 40%);height:40%;position:fixed;bottom:0;left:0;right:0}.de-page-content{z-index:1;position:relative}.de-card{background:var(--de-glass-bg);border:1px solid var(--de-glass-border);-webkit-backdrop-filter:var(--de-glass-blur);backdrop-filter:var(--de-glass-blur);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 4px 24px #1e90ff0f,inset 0 0 0 1px #ffffff80,inset 0 1px #fff9,inset 0 -1px #4facfe1a,0 0 0 1.5px #4facfe1f}.de-card:before{content:"";background:linear-gradient(90deg,#0000 5%,#4facfe59 25%,#00f2fe40,#4facfe59 75%,#0000 95%);height:2px;position:absolute;top:0;left:0;right:0}.de-card:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(#ffffff40,#0000 40%);border-radius:10px;position:absolute;top:2px;right:2px;bottom:2px;left:2px}.de-card-body{z-index:1;padding:14px 16px;position:relative}.de-card-title-bar{z-index:1;background:linear-gradient(90deg,#9ccef6e6,#b8defbd6 46%,#d7eeffc2);border-bottom:1px solid #4facfe2e;justify-content:space-between;align-items:center;gap:8px;padding:10px 18px;display:flex;position:relative;box-shadow:inset 0 1px #ffffffad,inset 0 -1px #4facfe14}.de-card-title-bar:before{content:"";background:linear-gradient(#79bff7e0,#aae0ffc7);border-radius:2px;width:3px;height:12px;margin-right:4px;display:inline-block;box-shadow:0 0 8px #9bd6ff29}.de-card-title-bar:after{content:"";background:linear-gradient(135deg,#a8d8ff4d,#d0eeff1f);border-radius:5px;width:32px;height:10px;position:absolute;top:8px;right:14px;box-shadow:inset 0 1px #ffffff52}.de-card-title-bar-text{color:#1e3a5c;letter-spacing:1.5px;flex:1;min-width:0;font-size:16px;font-weight:700}.de-badge{border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.de-badge-info{color:#22659a;background:#4facfe1f}.de-badge-success{color:#0f7a44;background:#20bf6b24}.de-badge-warning{color:#8c5b04;background:#ffb83d2e}.de-badge-danger{color:#a33b3b;background:#f4606029}.de-nav-btn{color:#ffffffbf;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;padding:6px 26px;font-size:13px;transition:all .25s;position:relative;transform:skew(-15deg)}.de-nav-btn span{display:inline-block;transform:skew(15deg)}.de-nav-btn.active{color:#1e88e5;background:#fffffff2;border-color:#fff9;font-weight:700;box-shadow:0 2px 10px #00000026}.de-nav-btn:hover:not(.active){color:#fff;background:#ffffff2e}@media(max-width:1679px){.de-card-body{padding:12px 14px}.de-card-title-bar{padding:9px 16px}.de-nav-btn{padding:6px 20px;font-size:12px}}@media(max-width:1439px){.de-card-body{padding:12px}.de-card-title-bar-text{letter-spacing:1px;font-size:15px}.de-nav-btn{padding:5px 16px;font-size:12px}}.de-gem{z-index:8;background:radial-gradient(circle,#4facfe 0,#4facfe80);width:16px;height:16px;animation:2s ease-in-out infinite de-gem-pulse;position:absolute;transform:rotate(45deg);box-shadow:0 0 15px #4facfe,0 0 30px #4facfe99}@keyframes de-gem-pulse{0%,to{opacity:.5;transform:rotate(45deg)scale(.9)}50%{opacity:1;transform:rotate(45deg)scale(1.4)}}.de-gem-1{animation-delay:0s;top:35%;left:38%}.de-gem-2{animation-delay:.6s;top:54%;left:32%}.de-gem-3{animation-delay:1.2s;top:36%;right:28%}@media(prefers-reduced-motion:reduce){.de-gem{animation:none}}.de-stage{z-index:1;flex-shrink:0;justify-content:center;align-items:flex-end;width:58%;max-width:360px;height:50px;display:flex;position:relative}.de-stage-layer{border-radius:50%;position:absolute;left:50%;transform:translate(-50%)}.de-stage-layer-1{z-index:1;background:linear-gradient(#b3d9ff,#80bfff 25%,#4da6ff,#39f 75%,#1a8cff);width:100%;height:42px;bottom:0;box-shadow:0 3px 15px #1a8cff59,0 0 30px #4facfe33,inset 0 2px 8px #ffffff80,inset 0 -2px 6px #0050b426}.de-stage-layer-1:after{content:"";filter:blur(1px);background:linear-gradient(90deg,#0000,#fff9 20%,#fffc,#fff9 80%,#0000);border-radius:50%;height:3px;position:absolute;top:2px;left:3%;right:3%}.de-stage-layer-2{z-index:2;background:linear-gradient(#d4eaff,#a8d4ff 25%,#7ab8ff,#4da6ff 75%,#39f);width:75%;height:32px;bottom:6px;box-shadow:0 3px 12px #3399ff4d,0 0 25px #4facfe26,inset 0 2px 6px #fff9,inset 0 -2px 5px #0050b41f}.de-stage-layer-2:after{content:"";filter:blur(1px);background:linear-gradient(90deg,#0000,#ffffffb3 25%,#ffffffe6,#ffffffb3 75%,#0000);border-radius:50%;height:2px;position:absolute;top:2px;left:4%;right:4%}.de-stage-layer-3{z-index:3;background:linear-gradient(#e8f4ff,#c8e4ff 25%,#a8d4ff,#7ab8ff 75%,#4da6ff);width:48%;height:22px;bottom:12px;box-shadow:0 2px 10px #4da6ff4d,0 0 30px #4facfe40,0 0 60px #4facfe1a,inset 0 2px 8px #ffffffb3,inset 0 -2px 4px #0050b41a}.de-stage-layer-3:after{content:"";filter:blur(1px);background:linear-gradient(90deg,#0000,#fffc 30%,#fff,#fffc 70%,#0000);border-radius:50%;height:2px;position:absolute;top:1px;left:5%;right:5%}.de-stage-glow{filter:blur(10px);z-index:0;pointer-events:none;background:radial-gradient(#4facfe40 0,#00f2fe1a 35%,#4facfe0a 60%,#0000 80%);width:140%;height:55px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.de-avatar-container{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex;position:relative}.de-avatar-glass-space{pointer-events:none;perspective:1200px;z-index:3;width:84%;max-width:560px;height:92%;max-height:760px;position:absolute;top:0;left:50%;transform:translate(-50%)}.de-avatar-roof{z-index:6;width:68%;max-width:440px;height:16%;position:absolute;top:0;left:50%;transform:translate(-50%)}.de-avatar-roof-face{clip-path:polygon(50% 0,3% 100%,97% 100%);background:linear-gradient(#4facfe73,#00f2fe40 45%,#4facfe14);position:absolute;top:0;right:0;bottom:15%;left:0}.de-avatar-roof-glow{background:linear-gradient(90deg,#0000,#4facfeb3 10%,#00f2fe,#4facfeb3 90%,#0000);height:2px;position:absolute;bottom:12%;left:2%;right:2%;box-shadow:0 0 8px #4facfecc,0 0 20px #00f2fe66}.de-avatar-glass-left{z-index:2;background:linear-gradient(90deg,#4facfe26,#0000);width:5%;position:absolute;top:18%;bottom:6%;left:6%}.de-avatar-glass-right{z-index:2;background:linear-gradient(270deg,#00f2fe26,#0000);width:5%;position:absolute;top:18%;bottom:6%;right:6%}.de-avatar-img{object-fit:contain;filter:drop-shadow(0 10px 40px #1e90ff59);z-index:5;flex-shrink:0;width:auto;height:56vh;max-height:calc(100vh - 236px);margin-bottom:-50px;position:relative}.de-avatar-state-label{z-index:8;color:#0b4a6d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f1f9ffe0;border:1px solid #4facfe4d;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;top:19%;left:50%;transform:translate(-50%);box-shadow:0 8px 18px #1e90ff1f}.de-dashboard-grid{grid-template-columns:minmax(240px,.9fr) minmax(420px,1.6fr) minmax(280px,1fr);align-items:stretch;gap:14px;min-height:0;display:grid}.de-dashboard-left,.de-dashboard-center,.de-dashboard-right{flex-direction:column;min-width:0;min-height:0;display:flex}.de-dashboard-center{justify-content:center;align-items:center;padding-bottom:56px;position:relative;overflow:visible}.de-header{background:var(--de-header-gradient);z-index:100;flex-shrink:0;height:52px;position:relative;box-shadow:0 2px 12px #1e90ff4d}.de-header:before,.de-header:after{content:none}.de-header-content{z-index:2;justify-content:space-between;align-items:center;height:100%;padding:0 36px;display:flex;position:relative}.de-header-left{align-items:center;gap:14px;min-width:300px;display:flex}.de-header-accent-bar{background:#ffffffe6;border-radius:3px;width:5px;height:30px;box-shadow:0 0 8px #fff9}.de-header-title{color:#fff;letter-spacing:3px;text-shadow:0 2px 6px #0003;font-size:24px;font-weight:700}.de-header-center{gap:4px;max-width:52%;display:flex;position:absolute;left:50%;transform:translate(-50%)}.de-header-right{justify-content:flex-end;align-items:center;gap:16px;min-width:220px;display:flex}.de-header-welcome{color:#fffffff2;font-size:13px}.de-header-icon{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .18s,transform .18s;display:inline-flex}.de-header-icon:hover,.de-header-icon.active{background:#ffffff38;transform:translateY(-1px)}.de-header-close{background:#ffffff2e}.de-notification-anchor{align-items:center;display:inline-flex;position:relative}.de-notification-count{color:#fff;background:#ff5d73;border:1px solid #ffffffd1;border-radius:999px;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;line-height:15px;position:absolute;top:-5px;right:-8px;box-shadow:0 4px 12px #c6214652}.de-notification-popover{z-index:360;background:#fcfefffa;border:1px solid #3d84b82e;border-radius:14px;grid-template-rows:auto minmax(0,1fr);width:min(380px,100vw - 28px);max-height:min(620px,100vh - 88px);display:grid;position:absolute;top:38px;right:0;overflow:hidden;box-shadow:0 22px 60px #12344f3d}.de-notification-head{border-bottom:1px solid #3d84b81f;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.de-notification-head div{gap:2px;min-width:0;display:grid}.de-notification-head strong{color:#12344f;font-size:15px}.de-notification-head span{color:#6a8094;font-size:12px}.de-notification-close{color:#496a85;background:#4facfe1a;width:26px;height:26px}.de-notification-list{gap:10px;min-height:0;padding:12px;display:grid;overflow-y:auto}.de-notification-empty{color:#6a8094;place-items:center;min-height:86px;font-size:13px;display:grid}.de-notification-item{background:#fff;border:1px solid #3d84b81f;border-radius:10px;gap:8px;padding:12px;display:grid}.de-notification-item--action{border-color:#4facfe4d}.de-notification-item--warn{border-color:#ffb83d57}.de-notification-item--error{border-color:#f460604d}.de-notification-item-head,.de-notification-title-row,.de-notification-actions,.de-notification-reply-row{align-items:center;gap:8px;display:flex}.de-notification-item-head,.de-notification-title-row{justify-content:space-between}.de-notification-level,.de-notification-title-row span{color:#22659a;background:#4facfe1a;border-radius:999px;flex-shrink:0;align-items:center;min-height:20px;padding:0 7px;font-size:11px;font-weight:700;display:inline-flex}.de-notification-time{color:#7890a7;font-size:11px}.de-notification-title-row h3{color:#12344f;min-width:0;margin:0;font-size:14px;line-height:1.32}.de-notification-item p,.de-notification-reply{color:#536b80;margin:0;font-size:12px;line-height:1.5}.de-notification-reply{color:#31526d;background:#4facfe14;border-radius:8px;padding:8px}.de-notification-actions{justify-content:flex-end}.de-notification-icon-btn{color:#31526d;cursor:pointer;background:#f7fbfff5;border:1px solid #3d84b829;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.de-notification-icon-btn:hover{background:#4facfe24}.de-notification-reply-row input{color:#12344f;background:#fff;border:1px solid #3d84b82e;border-radius:8px;flex:1;min-width:0;height:30px;padding:0 9px}.de-digital-modal-close-hitbox{z-index:3;cursor:pointer;background:0 0;border:0;border-radius:999px;width:38px;height:38px;position:absolute;top:8px;right:24px}.de-mission-list{flex-direction:column;gap:8px;display:flex}.de-mission-card-mini{border:1px solid var(--de-glass-border-light);background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.de-mission-title{color:var(--de-text-primary);font-size:14px;font-weight:600}.de-approval-item{border-bottom:1px solid var(--de-glass-border-lighter);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.de-approval-item:last-child{border-bottom:none}.de-approval-actions{gap:6px;display:flex}.de-btn-approve,.de-btn-reject{cursor:pointer;border:none;border-radius:8px;padding:4px 12px;font-size:12px;font-weight:600}.de-btn-approve{background:var(--de-success-bg);color:var(--de-success-text)}.de-btn-reject{background:var(--de-danger-bg);color:var(--de-danger-text)}.de-stats-row{border-top:1px solid var(--de-glass-border-lighter);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:12px;display:grid}.de-stat{text-align:center}.de-stat strong{color:var(--de-text-primary);font-size:22px;display:block}.de-stat span{color:var(--de-text-muted);font-size:11px}.de-empty-text{text-align:center;color:var(--de-text-label);padding:32px 12px;font-size:13px}.de-loading-skeleton{background:linear-gradient(90deg,var(--de-overlay-bg),var(--de-overlay-md),var(--de-overlay-bg));background-size:200% 100%;border-radius:8px;animation:1.5s infinite de-shimmer}@keyframes de-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.de-btn-sm{padding:4px 10px;font-size:12px}.de-btn-sm svg{flex-shrink:0}.de-btn-primary{color:#fff;cursor:pointer;background:var(--de-btn-gradient);box-shadow:var(--de-btn-shadow);border:none;border-radius:12px;padding:11px 18px;font-weight:700}.de-btn-secondary{color:#22659a;cursor:pointer;background:linear-gradient(#f8fcfff5,#e5f3ffe0);border:1px solid #4facfe3d;border-radius:12px;font-weight:700;box-shadow:inset 0 1px #ffffffa3}.de-btn-secondary:hover:not(:disabled){background:linear-gradient(#fffffffa,#d6edfff0);border-color:#2ca8ff6b}.de-btn-secondary:disabled,.de-btn-primary:disabled{opacity:.52;cursor:not-allowed}@media(max-width:1679px){.de-header{height:50px}.de-header-content{padding:0 24px}.de-header-left{min-width:240px}.de-header-title{letter-spacing:2px;font-size:20px}.de-dashboard-grid{gap:12px}}@media(max-width:1439px){.de-header{height:48px}.de-header-content{padding:0 16px}.de-header-accent-bar{height:24px}.de-header-title{letter-spacing:1px;font-size:18px}}@media(max-width:1023px){.de-dashboard-grid{grid-template-columns:1fr 1fr}.de-dashboard-right{grid-column:1/-1}}@media(max-width:767px){.de-dashboard-grid{grid-template-columns:1fr}}.de-mission-center-layout{grid-template-columns:minmax(320px,1fr) minmax(400px,1.6fr);gap:16px;height:100%;min-height:0;display:grid}.de-mission-center-page{height:100%;min-height:0;padding:14px 18px;overflow:hidden}.de-mc-list,.de-mc-detail{flex-direction:column;min-height:0;display:flex}.de-mc-list>.de-card,.de-mc-detail>.de-card{flex-direction:column;height:100%;min-height:0;display:flex}.de-mc-list .de-card-body,.de-mc-detail .de-card-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.de-mc-card-list{flex-direction:column;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-mission-empty-panel{text-align:center;min-height:220px;color:var(--de-text-body);background:#ffffff75;border:1px dashed #4facfe4d;border-radius:14px;align-content:center;justify-items:center;gap:10px;padding:28px 18px;display:grid}.de-mission-empty-panel strong{color:var(--de-text-primary);font-size:15px}.de-mission-empty-panel p{max-width:520px;color:var(--de-text-muted);margin:0;font-size:13px;line-height:1.65}.de-mission-empty-panel--detail{min-height:100%}.de-mission-empty-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.de-mission-focus-notice{color:var(--de-text-primary);background:#4facfe1f;border:1px solid #4facfe3d;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;padding:9px 11px;font-size:12px;display:grid}.de-mission-focus-notice strong{color:#1769aa;white-space:nowrap}.de-mission-focus-notice span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.de-mission-focus-notice code{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:180px;color:var(--de-text-muted);background:#ffffffb3;border-radius:6px;padding:2px 6px;overflow:hidden}.de-date-filter-row{background:#f4faffd1;border:1px solid #4facfe24;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:9px 10px;display:flex}.de-date-filter-field{min-width:0;color:var(--de-text-muted);align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.de-date-filter-field input{min-width:138px;height:30px;color:var(--de-text-primary);font:inherit;background:#ffffffdb;border:1px solid #4facfe3d;border-radius:999px;padding:0 10px;font-size:12px}.de-date-filter-actions{flex-wrap:wrap;gap:6px;display:flex}.de-date-filter-summary{color:var(--de-text-muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:700}.de-mission-card{text-align:left;border:1px solid var(--de-glass-border-light);cursor:pointer;background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:14px;width:100%;padding:14px;transition:border-color .18s,box-shadow .18s;box-shadow:0 2px 10px #1e90ff0a,inset 0 1px #ffffff80}.de-mission-card:hover,.de-mission-card--selected{border-color:var(--de-glass-border);box-shadow:0 0 0 2px var(--de-overlay-hover)}.de-mission-card--selected{background:linear-gradient(#f0f8fffa,#e2f2fff5);border-color:#2d8cf0;box-shadow:0 0 0 2px #2d8cf038,0 8px 24px #1d436d1f}.de-mission-card-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.de-mission-card-title{color:var(--de-text-primary);font-size:15px;font-weight:600}.de-mission-card-badges{flex-shrink:0;align-items:center;gap:6px;display:flex}.de-mission-card-focus-chip{color:#1769aa;white-space:nowrap;background:#2d8cf024;border:1px solid #2d8cf03d;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.de-mission-card-desc{color:var(--de-text-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.de-mission-card-meta{color:var(--de-text-muted);gap:12px;font-size:12px;display:flex}.de-mission-card-actions{border-top:1px solid var(--de-glass-border-light);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:9px;display:flex}.de-mission-card-actions>.de-btn-restart,.de-mission-card-actions>.de-btn-run{flex-shrink:0}.de-mission-card-time{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-muted);flex:1;font-size:11px;font-weight:600;overflow:hidden}.de-btn-restart,.de-btn-run{cursor:pointer;border:none;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.de-btn-run{background:var(--de-btn-gradient-active);color:#fff;box-shadow:0 2px 8px #4facfe38}.de-btn-restart{color:#1769aa;background:#4facfe1f;border:1px solid #4facfe38}.de-btn-restart:not(:disabled):hover{background:#4facfe33;border-color:#2d8cf06b}.de-btn-restart:disabled,.de-btn-run:disabled{cursor:not-allowed;box-shadow:none;color:var(--de-text-muted);background:#8e8e932e;border-color:#0000}.de-filter-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.de-filter-chip{border:1px solid var(--de-glass-border-light);background:var(--de-overlay-bg);color:var(--de-text-body);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:12px;transition:all .2s}.de-filter-chip.active{background:var(--de-btn-gradient-active);color:#fff;border-color:#0000;box-shadow:0 2px 8px #4facfe40}.de-drawer{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffffff5,#e8f4fffa);border:1px solid #4facfe33;border-radius:24px;grid-template-rows:auto auto minmax(0,1fr);gap:14px;width:100%;height:100%;padding:18px;display:grid;position:relative;overflow-y:auto;box-shadow:0 24px 60px #1d436d2e,inset 0 1px #ffffffe6}.de-drawer-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.de-drawer-title-group h3{color:var(--de-text-primary);margin:0;font-size:22px}.de-drawer-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--de-primary);font-size:11px;font-weight:700}.de-drawer-status-line{align-items:center;gap:8px;display:flex}.de-drawer-meta{color:var(--de-text-muted);font-size:12px}.de-drawer-timeline{flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.de-detail-section{border:1px solid var(--de-glass-border-light);background:#ffffff8a;border-radius:14px;padding:12px}.de-detail-section h4{color:var(--de-text-primary);margin:0 0 10px;font-size:13px}.de-detail-section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.de-detail-section-head h4{margin:0}.de-detail-kv{grid-template-columns:72px minmax(0,1fr);gap:7px 10px;font-size:12px;display:grid}.de-detail-kv span,.de-task-run-meta,.de-event-row time{color:var(--de-text-muted)}.de-detail-kv strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-primary);font-weight:600;overflow:hidden}.de-execution-chain{background:linear-gradient(#ffffffb8,#e8fff89e);border-color:#00b89438}.de-chain-plan-id{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-muted);font-size:11px;overflow:hidden}.de-chain-list{flex-direction:column;gap:7px;display:flex}.de-chain-row{background:#ffffffad;border:1px solid #00b89429;border-radius:10px;grid-template-columns:78px minmax(0,1fr) 132px;align-items:start;gap:8px;padding:8px 9px;font-size:11px;display:grid}.de-chain-row strong{color:#087f5b;font-weight:800}.de-chain-row span{min-width:0;color:var(--de-text-primary);text-overflow:clip;white-space:normal;word-break:break-word;line-height:1.35;overflow:visible}.de-chain-row time{color:var(--de-text-muted);text-align:right}.de-chain-row--danger strong{color:var(--de-danger)}.de-step-node{grid-template-columns:24px 1fr;align-items:start;gap:10px;padding-bottom:16px;display:grid;position:relative}.de-step-dot{border-radius:50%;width:12px;height:12px;margin-top:4px}.de-step-dot--succeeded,.de-step-dot--completed{background:var(--de-success);box-shadow:0 0 8px #1b9c5a66}.de-step-dot--running{background:var(--de-primary);animation:1.5s ease-in-out infinite de-pulse-dot;box-shadow:0 0 8px #4facfe99}.de-step-dot--failed{background:var(--de-danger)}.de-step-dot--pending,.de-step-dot--queued{background:#94a3b8}@keyframes de-pulse-dot{0%,to{box-shadow:0 0 4px #4facfe4d}50%{box-shadow:0 0 12px #4facfecc}}.de-step-line{background:#4facfe26;width:2px;height:calc(100% - 8px);position:absolute;top:20px;left:5px}.de-step-content{flex-direction:column;gap:4px;display:flex}.de-step-content strong{color:var(--de-text-primary);font-size:14px}.de-step-content span{color:var(--de-text-muted);font-size:12px}.de-task-run-card{border:1px solid var(--de-glass-border-light);background:#ffffffa3;border-radius:10px;margin-top:6px;padding:9px 10px}.de-task-run-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.de-task-run-head span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-primary);font-size:12px;font-weight:700;overflow:hidden}.de-task-run-meta{flex-wrap:wrap;gap:8px 12px;margin-top:5px;font-size:11px;display:flex}.de-event-list{flex-direction:column;gap:6px;display:flex}.de-event-row{border:1px solid var(--de-glass-border-light);background:#ffffff94;border-radius:9px;grid-template-columns:74px minmax(0,1fr) 132px;align-items:start;gap:8px;padding:7px 8px;font-size:11px;display:grid}.de-event-row strong{color:var(--de-primary)}.de-event-row--danger strong{color:var(--de-danger)}.de-event-row span{text-overflow:clip;white-space:normal;min-width:0;color:var(--de-text-primary);word-break:break-word;line-height:1.35;overflow:visible}.de-event-row time{text-align:right}.de-session-message-list{flex-direction:column;gap:8px;display:flex}.de-session-message{border:1px solid var(--de-glass-border-light);background:#fff9;border-radius:10px;padding:8px 10px}.de-session-message--user{background:#4facfe1a;border-color:#4facfe2e}.de-session-message-role{color:var(--de-primary);margin-bottom:4px;font-size:11px;font-weight:700}.de-session-message p{color:var(--de-text-primary);white-space:pre-wrap;word-break:break-word;margin:0;font-size:12px;line-height:1.55}.de-skill-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.de-skill-card{border:1px solid var(--de-glass-border-light);cursor:pointer;background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:14px;flex-direction:column;gap:8px;padding:14px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.de-skill-card:hover,.de-skill-card--selected{border-color:#4facfe80;transform:translateY(-1px);box-shadow:0 0 0 2px #4facfe24}.de-skill-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.de-skill-name{color:var(--de-text-primary);font-size:15px;font-weight:600}.de-skill-desc{color:var(--de-text-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.de-skill-meta-row{flex-wrap:wrap;align-items:center;gap:6px;min-height:24px;display:flex}.de-skill-meta-chip{color:#41627f;white-space:nowrap;text-overflow:ellipsis;background:#4facfe14;border:1px solid #4facfe24;border-radius:999px;align-items:center;max-width:160px;min-height:22px;padding:0 8px;font-size:11px;display:inline-flex;overflow:hidden}.de-skill-recent{color:var(--de-text-muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.de-skill-card-foot{justify-content:space-between;align-items:center;display:flex}.de-skill-version{color:var(--de-text-muted);font-size:11px}.de-skill-status{font-size:11px;font-weight:600}.de-skill-status.enabled{color:var(--de-success-text)}.de-skill-status.disabled{color:var(--de-text-muted)}.de-skill-toolbar{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.de-input{height:40px;color:var(--de-text-primary);font-size:14px;font-family:var(--de-font-family);background:#ffffffe0;border:1px solid #4facfe2e;border-radius:12px;padding:0 14px}.de-input:focus{border-color:var(--de-primary);outline:none;box-shadow:0 0 0 3px #4facfe26}.de-capability-badge{letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.de-capability-core{color:#22659a;background:#4facfe1f}.de-capability-standard{color:#0f7a44;background:#20bf6b1f}.de-capability-specialized{color:#6d28d9;background:#7c3aed1a}.de-capability-experimental{color:#92400e;background:#f59e0b1f}.de-journal-list{flex-direction:column;gap:6px;display:flex}.de-journal-entry{border:1px solid var(--de-glass-border-lighter);border-radius:10px;grid-template-columns:60px 80px 1fr;align-items:baseline;gap:10px;padding:10px 12px;font-size:13px;display:grid}.de-journal-time{color:var(--de-text-muted);white-space:nowrap}.de-journal-kind{text-transform:uppercase;font-size:11px;font-weight:700}.de-journal-kind--error,.de-journal-kind--failed{color:var(--de-danger-text)}.de-journal-kind--success,.de-journal-kind--succeeded{color:var(--de-success-text)}.de-journal-kind--running{color:#22659a}.de-journal-msg{color:var(--de-text-primary);word-break:break-word}.de-card-meta-text{color:var(--de-text-muted);font-size:12px}.de-settings-section{margin-bottom:24px}.de-settings-heading{color:var(--de-text-heading);margin-bottom:4px;font-size:16px;font-weight:700}.de-settings-desc{color:var(--de-text-muted);margin-bottom:14px;font-size:13px}.de-role-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.de-role-card{text-align:center;cursor:pointer;border:1px solid var(--de-glass-border-light);background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:14px;padding:16px;transition:all .2s}.de-role-card:hover{border-color:var(--de-glass-border)}.de-role-card.active{border-color:var(--de-primary);box-shadow:0 0 0 2px #4facfe33}.de-role-label{color:var(--de-text-primary);font-size:15px;font-weight:600;display:block}.de-role-density{color:var(--de-text-muted);margin-top:4px;font-size:11px;display:block}.de-saved-hint{color:var(--de-success-text);margin-top:8px;font-size:12px}.de-btn-approve:disabled,.de-btn-reject:disabled{opacity:.45;cursor:not-allowed}@media(max-width:1023px){.de-mission-center-layout{grid-template-columns:1fr}}.de-shell{background:var(--de-page-bg);height:100vh;min-height:0;font-family:var(--de-font-family);flex-direction:column;display:flex;position:relative;overflow:hidden}.de-shell:before{content:"";background-image:linear-gradient(var(--de-page-grid) 1px,transparent 0),linear-gradient(90deg,var(--de-page-grid) 1px,transparent 0);pointer-events:none;z-index:0;background-size:40px 40px;position:fixed;top:0;right:0;bottom:0;left:0}.de-shell-header{background:var(--de-header-gradient);z-index:100;flex-shrink:0;height:56px;position:relative;box-shadow:0 2px 12px #1e90ff4d}.de-shell-header-content{z-index:2;justify-content:space-between;align-items:center;height:100%;padding:0 24px;display:flex;position:relative}.de-shell-header-left{align-items:center;gap:12px;display:flex}.de-shell-title{color:#fff;letter-spacing:1.5px;text-shadow:0 2px 6px #0003;font-size:18px;font-weight:700}.de-shell-header-right{align-items:center;gap:12px;display:flex}.de-dashboard{background:var(--de-page-bg);width:100%;height:100%;position:relative;overflow:hidden}.de-connection-layer{pointer-events:none;z-index:0;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.de-connection-svg{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.de-dashboard-content{z-index:1;flex:1;grid-template-columns:minmax(300px,.86fr) minmax(420px,1.08fr) minmax(280px,.78fr);align-items:stretch;gap:12px;min-height:0;padding:8px 18px 10px;display:grid;position:relative;overflow:hidden}.de-dashboard-left,.de-dashboard-center,.de-dashboard-right{z-index:2;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.de-dashboard-left{gap:12px;overflow:hidden}.de-dashboard-center{justify-content:center;align-items:center;padding:4px 0 76px;position:relative;overflow:visible}.de-dashboard-right{overflow:hidden}.de-right-panels{grid-template-rows:minmax(0,1fr) minmax(178px,.34fr);gap:8px;height:100%;display:grid;overflow:hidden}.de-info-grid{background:linear-gradient(135deg,#4facfe0f,#00f2fe08);border:1px solid #4facfe1a;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 14px;display:grid}.de-info-item{gap:6px;min-width:0;padding:6px 0;display:grid}.de-info-item label{color:#2d5a8a;font-size:14px;font-weight:700}.de-info-item span{color:#1e3a5c;word-break:break-all;font-size:15px;line-height:1.5}.de-status-working{font-weight:800;color:#0f7a44!important}.de-status-resting{font-weight:800;color:#8c5b04!important}.de-template-manager-card{flex-direction:column;flex:1;min-height:0;display:flex}.de-template-manager-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.de-template-overview{background:linear-gradient(#f6fbfff0,#e7f2fde6);border:1px solid #4facfe24;border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:12px;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff8c,0 2px 8px #1e90ff0a}.de-template-overview-item{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:6px;min-height:74px;padding:10px 16px 14px;display:flex;position:relative}.de-template-overview-item.active{background:linear-gradient(#e0f3fffa,#cce9fff0);box-shadow:inset 0 0 0 2px #2d8cf029}.de-template-overview-item+.de-template-overview-item{border-left:1px solid #4facfe1f}.de-template-overview-item:after{content:"";opacity:.92;border-radius:999px;height:3px;position:absolute;bottom:0;left:16px;right:16px}.de-template-overview-label{color:#6a8198;font-size:12px}.de-template-overview-value{color:#1e3a5c;font-size:34px;font-weight:700;line-height:1}.de-template-overview-item--total .de-template-overview-value{color:#0c4a6e}.de-template-overview-item--total:after{background:linear-gradient(90deg,#3b82f6b3,#7dd3fc80)}.de-template-overview-item--scheduled .de-template-overview-value{color:#8c5b04}.de-template-overview-item--scheduled:after{background:linear-gradient(90deg,#ffb83ddb,#ffd27080)}.de-template-overview-item--runnable .de-template-overview-value{color:#0369a1}.de-template-overview-item--runnable:after{background:linear-gradient(90deg,#22d3eec7,#3b82f675)}.de-template-list-scroll{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-template-card-row{cursor:pointer;background:linear-gradient(#f4faffeb,#ebf6ffdb);border:1px solid #4facfe1f;border-radius:12px;min-height:116px;padding:10px 12px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;box-shadow:0 2px 10px #1e90ff0a,inset 0 1px #ffffff80}.de-template-card-row:hover{border-color:#4facfe7a;transform:translateY(-1px);box-shadow:0 0 0 2px #4facfe1f}.de-template-card-main{flex:1;gap:7px;min-width:0;display:grid}.de-template-card-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.de-template-card-name{text-overflow:ellipsis;white-space:nowrap;color:#214566;min-width:0;font-size:15px;font-weight:700;line-height:1.2;overflow:hidden}.de-template-card-desc{color:#58728e;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.de-plan-progress-bar{background:#91b5d238;border-radius:999px;height:7px;overflow:hidden}.de-plan-progress-bar span{border-radius:inherit;background:linear-gradient(90deg,#22d3eedb,#3b82f6d1);height:100%;display:block}.de-template-card-meta{color:#5b7590;justify-content:space-between;align-items:center;gap:8px;min-width:0;font-size:11px;display:flex}.de-template-card-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-template-card-actions{justify-content:flex-end;gap:8px;display:flex}.de-person-card{cursor:default;transition:border-color .18s,box-shadow .18s}.de-person-card:hover{border-color:#4facfe5c;box-shadow:0 0 0 2px #4facfe1a}.de-workday-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-bottom:10px;display:grid}.de-workday-toolbar label{color:#5b7590;align-items:center;gap:8px;font-size:11px;display:flex}.de-workday-toolbar label span{white-space:nowrap;font-weight:800}.de-workday-toolbar input{color:#16324e;background:#f7fbfff5;border:1px solid #4facfe2e;border-radius:10px;min-width:0;height:32px;padding:0 10px}.de-management-sync-strip{color:#315576;background:#4facfe12;border:1px solid #4facfe24;border-radius:12px;align-items:center;gap:8px;min-height:34px;margin:-2px 0 10px;padding:7px 10px;font-size:12px;line-height:1.35;display:flex}.de-management-sync-strip>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-management-sync-strip--success{color:#176a3a;background:#1b9c5a14;border-color:#1b9c5a33}.de-management-sync-strip--warning{color:#7a5509;background:#f5ad2d1a;border-color:#f5ad2d38}.de-management-sync-strip--danger{color:#ad3434;background:#e0484814;border-color:#e0484833}.de-management-sync-failures{gap:6px;margin:-4px 0 10px;display:grid}.de-management-sync-failure{text-align:left;cursor:pointer;color:#7b4450;background:#e048480e;border:1px solid #e0484824;border-radius:10px;grid-template-columns:56px 54px minmax(54px,.7fr) minmax(0,1.6fr);align-items:center;gap:8px;width:100%;min-height:28px;padding:6px 9px;font-family:inherit;font-size:11px;display:grid}.de-management-sync-failure:hover{border-color:#e0484847;box-shadow:0 0 0 2px #e048480f}.de-management-sync-failure span,.de-management-sync-failure em,.de-management-sync-failure small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-management-sync-failure strong{color:#ad3434;font-weight:800}.de-management-sync-failure em{color:#59738b;font-style:normal}.de-management-sync-failure small{color:#6d5260}.de-duty-card{min-height:120px}.de-duty-card--selected{border-color:#20bf6b6b;box-shadow:inset 4px 0 #20bf6ba3,0 0 0 2px #20bf6b14}.de-duty-card--running{border-color:#ffb83d70;box-shadow:inset 4px 0 #ffb83db8,0 0 0 2px #ffb83d1a}.de-duty-card--disabled{cursor:pointer;opacity:.7;filter:grayscale(.28);background:linear-gradient(#f6f8faeb,#ecf1f5db)}.de-duty-card-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.de-duty-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.de-duty-card-actions .de-btn-sm{white-space:nowrap;min-height:26px;padding:4px 9px}.de-duty-selected-mark{color:#60758a;background:#94a3b81f;border-radius:999px;justify-content:center;align-items:center;min-width:42px;height:24px;font-size:11px;font-weight:700;display:inline-flex}.de-duty-selected-mark.active{color:#0f7a44;background:#20bf6b24}.de-task-date-context{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin-top:8px;display:flex}.de-template-manager-body>.de-task-date-context{background:#f4faffc2;border:1px solid #4facfe1a;border-radius:11px;margin:-2px 0 8px;padding:7px 8px}.de-task-date-context span{color:#0c5a85;background:#4facfe1f;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:800;display:inline-flex}.de-task-date-context em{color:#58728e;flex:1;min-width:0;font-size:11px;font-style:normal;line-height:1.35}.de-task-date-context .de-btn-sm{border-radius:9px;min-height:26px;padding:0 9px}.de-task-manager-preview{background:#f7fbffd1;border:1px solid #4facfe1f;border-radius:14px;flex:1;align-content:start;gap:8px;min-height:0;padding:10px;display:grid;overflow:hidden}.de-task-manager-preview-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;overflow-y:auto}.de-task-manager-preview-head{z-index:1;color:#5b7590;background:#f7fbfff5;justify-content:space-between;align-items:center;gap:8px;min-height:28px;padding:0 2px 6px;font-size:11px;display:flex;position:sticky;top:0}.de-task-manager-preview-head strong{color:#143450;font-size:12px}.de-task-manager-preview-row{color:#173550;text-align:left;min-width:0;font:inherit;background:#ffffffc7;border:1px solid #4facfe1f;border-radius:11px;gap:4px;padding:9px 10px;display:grid}.de-task-manager-preview-row.is-selected{border-color:#20bf6b5c;box-shadow:inset 3px 0 #20bf6b94}.de-template-task-main{min-width:0;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;gap:4px;padding:0;display:grid}.de-template-task-main:hover strong{color:#0877c7}.de-template-task-main strong,.de-template-task-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.de-template-task-main strong{font-size:13px}.de-template-task-main span{color:#5b7590;font-size:11px}.de-template-task-list .de-task-manager-preview-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.de-template-item-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.de-template-item-actions .de-btn-sm,.de-duty-card-actions .de-btn-sm{justify-content:center;align-items:center;gap:4px;display:inline-flex}.de-task-manager-modal-overlay{z-index:260;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d24373d;justify-content:center;align-items:center;padding:26px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.de-plan-action-overlay{z-index:320}.de-task-manager-modal{background:linear-gradient(#fcfefff5,#e7f3fff0);border:1px solid #4facfe33;border-radius:20px;grid-template-rows:auto minmax(0,1fr);gap:16px;width:min(1040px,100vw - 56px);max-height:min(760px,100vh - 54px);padding:18px;display:grid;box-shadow:0 24px 70px #1537543d,inset 0 1px #fff9}.de-task-manager-modal-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.de-task-manager-modal-head h3{color:#12344f;margin:2px 0 4px;font-size:22px}.de-task-manager-modal-head p{color:#58728e;margin:0;font-size:13px;line-height:1.55}.de-workday-guide-modal{grid-template-rows:auto auto minmax(0,1fr);width:min(1120px,100vw - 56px)}.de-workday-guide-head h3{font-size:24px}.de-workday-guide-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.de-workday-guide-step{background:#ffffffbd;border:1px solid #4facfe24;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:4px 8px;min-width:0;padding:10px 11px;display:grid}.de-workday-guide-step span{color:#fff;background:linear-gradient(135deg,#1e90ff,#20bf6b);border-radius:999px;grid-row:span 2;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:inline-flex}.de-workday-guide-step strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.de-workday-guide-step p{color:#5b7590;min-width:0;margin:0;font-size:11px;line-height:1.38}.de-workday-guide-body{grid-template-columns:minmax(0,1.35fr) minmax(280px,.72fr);gap:14px;min-height:0;display:grid}.de-workday-guide-column{grid-template-rows:auto minmax(0,1fr)}.de-workday-guide-duty-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.de-workday-guide-duty-list .de-duty-card{grid-template-columns:78px minmax(0,1fr);gap:9px;min-height:116px;display:grid}.de-duty-card--guide .de-template-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.de-workday-guide-side{background:#f7fbffeb;border:1px solid #4facfe24;border-radius:16px;align-content:start;gap:10px;min-height:0;padding:12px;display:grid;overflow-y:auto}.de-workday-guide-summary{background:#ffffffc7;border:1px solid #4facfe1f;border-radius:13px;gap:5px;padding:11px;display:grid}.de-workday-guide-summary span{color:#5b7590;font-size:11px;font-weight:700}.de-workday-guide-summary strong{color:#12344f;font-size:16px}.de-workday-guide-summary p{color:#58728e;margin:0;font-size:12px;line-height:1.5}.de-workday-guide-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.de-task-manager-modal-body{grid-template-columns:minmax(0,1.3fr) minmax(300px,.78fr);gap:14px;min-height:0;display:grid}.de-task-manager-column{background:#f7fbffe6;border:1px solid #4facfe24;border-radius:16px;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-task-manager-section-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.de-task-manager-section-head strong{color:#143450;font-size:15px;display:block}.de-task-manager-section-head span{color:#5b7590;margin-top:3px;font-size:11px;display:block}.de-task-manager-duty-list,.de-task-manager-decision-list{flex-direction:column;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-task-manager-duty-list .de-duty-card{grid-template-columns:86px minmax(0,1fr);gap:10px;min-height:104px;display:grid}.de-task-manager-duty-check{color:#315576;border-right:1px solid #4facfe1a;align-content:center;justify-items:center;gap:8px;min-width:0;font-size:12px;font-weight:700;display:grid}.de-task-manager-duty-check input{accent-color:#20bf6b;width:22px;height:22px}.de-task-manager-duty-check input:disabled{opacity:.48}.de-task-manager-decision-card{color:#16324e;background:#fffc;border:1px solid #4facfe1f;border-radius:12px;gap:8px;padding:11px 12px;display:grid}.de-task-manager-decision-card p{color:#58728e;margin:0;font-size:12px;line-height:1.48}.de-event-detail-modal,.de-event-history-modal{background:linear-gradient(#fcfefff7,#e7f3fff2);border:1px solid #4facfe33;border-radius:20px;grid-template-rows:auto auto auto;gap:14px;width:min(760px,100vw - 52px);max-height:min(720px,100vh - 48px);padding:18px;display:grid;box-shadow:0 24px 70px #1537543d,inset 0 1px #fff9}.de-event-history-modal{grid-template-rows:auto auto minmax(0,1fr);width:min(1080px,100vw - 56px)}.de-plan-action-modal{background:linear-gradient(#fcfefff7,#e8f4fff2);border:1px solid #4facfe38;border-radius:20px;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;width:min(640px,100vw - 56px);max-height:min(680px,100vh - 48px);padding:18px;display:grid;box-shadow:0 24px 70px #1537543d,inset 0 1px #ffffff9e}.de-plan-action-body{gap:12px;min-height:0;display:grid;overflow:auto}.de-plan-action-field{color:#41627f;gap:6px;font-size:12px;display:grid}.de-plan-action-field input{color:#173550;background:#ffffffe6;border:1px solid #4facfe33;border-radius:11px;height:36px;padding:0 12px}.de-plan-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.de-event-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.de-event-detail-grid>div,.de-event-detail-result{background:#f7fbffeb;border:1px solid #4facfe24;border-radius:12px;gap:4px;min-width:0;padding:10px 11px;display:grid}.de-event-detail-grid span,.de-event-detail-result span,.de-event-history-row em{color:#5b7590;font-size:11px;font-style:normal;font-weight:700}.de-event-detail-grid strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;line-height:1.36;overflow:hidden}.de-event-detail-result p{color:#173550;margin:0;font-size:13px;line-height:1.55}.de-sync-attempt-history{background:#f7fbffd1;border:1px solid #7ea3c233;border-radius:14px;gap:8px;padding:14px;display:grid}.de-sync-attempt-history>span{color:#6f8196;font-size:12px;font-weight:800}.de-sync-attempt-list{gap:8px;display:grid}.de-sync-attempt-row{background:#ffffffb8;border-radius:12px;gap:5px;padding:9px 10px;display:grid}.de-sync-attempt-row>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.de-sync-attempt-row strong{color:#153754;font-size:12px}.de-sync-attempt-row em{font-size:12px;font-style:normal;font-weight:800}.de-sync-attempt-row span,.de-sync-attempt-row small{color:#667b90;font-size:12px}.de-sync-attempt-row small{text-overflow:ellipsis;white-space:nowrap;line-height:1.45;overflow:hidden}.de-sync-attempt-row--success em{color:#23805d}.de-sync-attempt-row--danger em{color:#bb3b3b}.de-sync-attempt-row--info em{color:#2e6fa5}.de-event-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.de-event-modal-actions .de-btn-sm{align-items:center;gap:6px;display:inline-flex}.de-event-history-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.de-event-history-list{align-content:start;gap:8px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.de-event-history-row{color:#16324e;text-align:left;width:100%;min-height:64px;font:inherit;cursor:pointer;background:#f8fbfff5;border:1px solid #4facfe21;border-left:4px solid #4facfe6b;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(78px,.58fr) minmax(0,1.36fr);align-items:stretch;gap:8px;padding:8px 9px;display:grid}.de-event-history-row span{align-content:start;gap:3px;min-width:0;display:grid}.de-event-history-row strong{color:#173550;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;font-size:12px;line-height:1.35;display:-webkit-box;overflow:hidden}.de-event-history-row small{color:#6d8499;font-size:10px;line-height:1.1}.de-workday-execution{min-height:260px}.de-workday-execution--clickable{cursor:pointer;transition:border-color .16s,box-shadow .16s}.de-workday-execution--clickable:hover{border-color:#4facfe57;box-shadow:0 14px 34px #267dbf24,inset 0 1px #ffffff9e}.de-workday-execution--clickable:focus-visible{outline-offset:2px;outline:2px solid #4facfe8f}.de-workday-execution--clickable button,.de-workday-execution--clickable input{cursor:pointer}.de-live-feed{align-content:start;gap:8px;min-height:0;display:grid;overflow:hidden}.de-live-feed-row{border-left:4px solid #4facfe61;min-height:66px;animation:.28s both deFeedIn;position:relative}.de-live-feed-row--running{border-left-color:#ffb83de6}.de-live-feed-row--success{border-left-color:#20bf6bd1}.de-live-feed-row--danger{border-left-color:#f46060d1}.de-live-feed-row--warning{border-left-color:#ffb83de6}.de-workday-execution-body{grid-template-rows:auto minmax(96px,.58fr) auto minmax(0,1fr);gap:8px;min-height:0;display:grid;overflow:hidden}.de-execution-status-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.de-execution-status-strip span{background:#f7fbfff0;border:1px solid #4facfe1f;border-radius:10px;gap:3px;min-width:0;padding:7px 8px;display:grid}.de-execution-status-strip em{color:#5b7590;white-space:nowrap;font-size:11px;font-style:normal}.de-execution-status-strip strong{color:#12344f;font-size:18px;line-height:1}.de-task-summary-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding-right:4px;overflow-y:auto}.de-task-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-height:0;display:grid}.de-task-summary-scroll .de-task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.de-task-summary-card{text-align:left;cursor:pointer;background:#f7fbffe6;border:1px solid #4facfe24;border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:5px 6px;min-width:0;min-height:84px;padding:8px;display:grid}.de-task-summary-card:hover{border-color:#4facfe6b;box-shadow:0 0 0 2px #4facfe1a}.de-task-summary-title{text-overflow:ellipsis;white-space:nowrap;color:#143450;min-width:0;font-size:12px;font-weight:800;overflow:hidden}.de-task-summary-counts{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.de-task-summary-counts span{background:#ffffffbd;border:1px solid #4facfe1a;border-radius:9px;gap:2px;min-width:0;padding:6px;display:grid}.de-task-summary-counts em{color:#5b7590;font-size:10px;font-style:normal;line-height:1}.de-task-summary-counts strong{color:#0c4a6e;font-size:15px;line-height:1}.de-stage-feed-tools{justify-content:space-between;align-items:center;gap:8px;min-width:0;min-height:30px;padding:4px 2px 0;display:flex}.de-stage-feed-tools>span{color:#55718b;white-space:nowrap;font-size:11px;font-weight:700}.de-stage-feed-tools>div{align-items:center;gap:6px;min-width:0;display:flex}.de-task-agent-control-strip{gap:6px;min-width:0;display:grid}.de-task-agent-control{background:#f7fbffe6;border:1px solid #4facfe24;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:7px 8px;display:grid}.de-task-agent-control-main{gap:2px;min-width:0;display:grid}.de-task-agent-control-main span{color:#0c5a85;font-size:10px;font-weight:800;line-height:1}.de-task-agent-control-main strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.25;overflow:hidden}.de-task-agent-control-main small{color:#58728e;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;line-height:1.25;overflow:hidden}.de-task-agent-control-actions{align-items:center;gap:5px;min-width:0;display:flex}.de-task-agent-control-actions .de-btn-sm{justify-content:center;min-width:58px}.de-task-agent-cancel-btn{color:#b42318;border-color:#b4231838}.de-run-detail-list-scroll{overscroll-behavior:contain;scrollbar-gutter:stable}.de-run-detail-panel{grid-template-rows:auto minmax(0,1fr);gap:8px;min-height:0;display:grid}.de-run-detail-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.de-run-detail-head span{color:#12344f;font-size:14px;font-weight:800}.de-run-detail-head small{color:#5b7590;font-size:11px}.de-run-detail-list{align-content:start;gap:6px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.de-run-detail-row{color:#173550;text-align:left;background:#f7fbffe0;border:1px solid #4facfe1f;border-radius:10px;grid-template-columns:50px minmax(72px,.95fr) minmax(70px,.85fr) 74px minmax(90px,1.2fr);align-items:center;gap:7px;min-width:0;padding:7px 8px;font-size:11px;display:grid}.de-run-detail-row--head{z-index:1;color:#29577f;cursor:default;background:#dcecfcfa;font-weight:800;position:sticky;top:0}.de-run-detail-row strong,.de-run-detail-row span,.de-run-detail-row em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-run-detail-row em{color:#58728e;font-style:normal}.de-run-detail-row i{min-height:20px;padding:0 7px;font-size:10px;font-style:normal}.de-workday-result{min-height:0;overflow:auto}.de-workday-result-summary{color:#173550;margin:0;font-size:13px;line-height:1.55}.de-artifact-pills{flex-wrap:wrap;gap:8px;display:flex}.de-artifact-source-list{gap:8px;max-height:320px;padding-right:4px;display:grid;overflow-y:auto}.de-artifact-source-row{background:#f4faff9e;border:1px solid #4facfe1f;border-radius:8px;grid-template-columns:minmax(120px,1fr) minmax(88px,140px) auto;align-items:center;gap:4px 10px;padding:9px 10px;display:grid}.de-artifact-source-row strong{min-width:0;color:var(--de-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.de-artifact-source-row span{color:var(--de-text-muted);text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:12px;overflow:hidden}.de-artifact-source-row code,.de-artifact-source-row em{min-width:0;color:var(--de-text-body);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:12px;font-style:normal;overflow:hidden}.de-artifact-source-actions{justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.de-icon-btn{color:#275a82;cursor:pointer;background:#ffffffc7;border:1px solid #4facfe2e;border-radius:6px;place-items:center;width:28px;height:28px;display:inline-grid}.de-icon-btn:hover:not(:disabled){background:#fff;border-color:#4facfe73}.de-icon-btn:disabled{cursor:not-allowed;opacity:.42}.de-inline-notice{color:var(--de-text-muted);margin:8px 0 0;font-size:12px}.de-artifact-preview{background:#ffffffc7;border:1px solid #4facfe24;border-radius:8px;margin-top:10px;overflow:hidden}.de-artifact-preview>div{border-bottom:1px solid #4facfe1a;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.de-artifact-preview pre{white-space:pre-wrap;word-break:break-word;max-height:220px;color:var(--de-text-body);margin:0;padding:10px;font-size:12px;line-height:1.55;overflow:auto}.de-decision-card{background:#f7fbfff5}.de-decision-chain-note{color:#60758a;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px;line-height:1.45;display:flex}@keyframes deFeedIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.de-skill-manager-card{flex-direction:column;flex:1;min-height:0;display:flex}.de-skill-manager-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.de-skill-overview{background:linear-gradient(#f6fbfff0,#e7f2fde6);border:1px solid #4facfe24;border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:12px;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff8c,0 2px 8px #1e90ff0a}.de-skill-overview-item{flex-direction:column;justify-content:center;gap:6px;min-height:74px;padding:10px 16px 14px;display:flex;position:relative}.de-skill-overview-item+.de-skill-overview-item{border-left:1px solid #4facfe1f}.de-skill-overview-item:after{content:"";opacity:.92;border-radius:999px;height:3px;position:absolute;bottom:0;left:16px;right:16px}.de-skill-overview-label{color:#6a8198;font-size:12px}.de-skill-overview-value{color:#1e3a5c;font-size:34px;font-weight:700;line-height:1}.de-skill-overview-item--total .de-skill-overview-value{color:#0c4a6e}.de-skill-overview-item--total:after{background:linear-gradient(90deg,#3b82f6b3,#7dd3fc80)}.de-skill-overview-item--learned .de-skill-overview-value{color:#0369a1}.de-skill-overview-item--learned:after{background:linear-gradient(90deg,#22d3eec7,#3b82f675)}.de-skill-overview-item--unlearned .de-skill-overview-value{color:#c2410c}.de-skill-overview-item--unlearned:after{background:linear-gradient(90deg,#fb923cdb,#ffcd7c80)}.de-skill-tabs{background:#1e90ff0d;border:1px solid #4facfe14;border-radius:16px;gap:0;margin-bottom:12px;padding:2px;display:flex}.de-skill-tab{text-align:center;color:#4a6a8a;cursor:pointer;background:0 0;border:none;border-radius:14px;flex:1;padding:8px 10px;font-size:14px;transition:all .3s}.de-skill-tab.active{color:#fff;background:linear-gradient(135deg,#4facfee6,#00f2fed9);font-weight:700;box-shadow:0 2px 8px #4facfe40}.de-category-slider{grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:8px;margin-bottom:12px;display:grid}.de-category-nav{color:#4a6a8a;cursor:pointer;background:#f0f8ffb3;border:1px solid #4facfe1f;border-radius:999px;width:28px;height:28px;font-size:18px;line-height:1}.de-category-tags{scrollbar-width:none;gap:8px;padding:2px 4px 2px 0;display:flex;overflow-x:auto}.de-category-tags::-webkit-scrollbar{display:none}.de-workbench-table-wrap,.de-log-list,.de-shell-body{scrollbar-width:thin;scrollbar-color:#2ea1ffcc #c9e3fc7a}.de-workbench-table-wrap::-webkit-scrollbar{width:10px}.de-log-list::-webkit-scrollbar{width:10px}.de-shell-body::-webkit-scrollbar{width:10px}.de-workbench-table-wrap::-webkit-scrollbar-track{background:linear-gradient(#e7f3ffe0,#d2e6fa94);border:1px solid #97c6ee80;border-radius:999px}.de-log-list::-webkit-scrollbar-track{background:linear-gradient(#e7f3ffe0,#d2e6fa94);border:1px solid #97c6ee80;border-radius:999px}.de-shell-body::-webkit-scrollbar-track{background:linear-gradient(#e7f3ffe0,#d2e6fa94);border:1px solid #97c6ee80;border-radius:999px}.de-workbench-table-wrap::-webkit-scrollbar-thumb{background:linear-gradient(#46b3fffa,#2490f4f2);border:1px solid #ffffffd1;border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 0 8px #4facfe2e}.de-log-list::-webkit-scrollbar-thumb{background:linear-gradient(#46b3fffa,#2490f4f2);border:1px solid #ffffffd1;border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 0 8px #4facfe2e}.de-shell-body::-webkit-scrollbar-thumb{background:linear-gradient(#46b3fffa,#2490f4f2);border:1px solid #ffffffd1;border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 0 8px #4facfe2e}.de-workbench-table-wrap::-webkit-scrollbar-thumb:hover{background:linear-gradient(#3aaaff,#1780e7fa)}.de-log-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(#3aaaff,#1780e7fa)}.de-shell-body::-webkit-scrollbar-thumb:hover{background:linear-gradient(#3aaaff,#1780e7fa)}.de-tag{text-align:center;color:#4a6a8a;cursor:pointer;background:#1e90ff0f;border:1px solid #4facfe14;border-radius:999px;flex:none;min-width:58px;padding:8px 14px;font-size:13px;transition:all .3s}.de-tag-label{text-align:center;font-weight:600;display:block}.de-tag.active{color:#fff;background:linear-gradient(135deg,#4facfee6,#00f2fed9);border-color:#0000;box-shadow:0 4px 10px #4facfe2e}.de-skill-list-scroll{flex-direction:column;flex:1;gap:6px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-skill-card-row{background:linear-gradient(#f4faffeb,#ebf6ffdb);border:1px solid #4facfe1f;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:8px 12px;display:flex;box-shadow:0 2px 10px #1e90ff0a,inset 0 1px #ffffff80}.de-skill-card-row--clickable{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.de-skill-card-row--clickable:hover{border-color:#4facfe7a;transform:translateY(-1px);box-shadow:0 0 0 2px #4facfe1f}.de-skill-card-main{flex:1;gap:6px;min-width:0;display:grid}.de-skill-card-name{color:#214566;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;line-height:1.2;overflow:hidden}.de-skill-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.de-skill-card-badge,.de-skill-card-schedule{color:#41627f;background:#4facfe14;border:1px solid #4facfe1f;border-radius:999px;align-items:center;min-height:24px;padding:0 10px;font-size:12px;display:inline-flex}.de-skill-card-actions{align-items:center;gap:8px;display:flex}.de-skill-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#59adf5eb,#3ad6f3e6);border:none;border-radius:999px;min-width:68px;padding:7px 14px;font-size:13px;font-weight:600;box-shadow:0 2px 8px #4facfe29}.de-skill-btn--danger{background:linear-gradient(135deg,#ff9669eb,#ff785eeb)}.de-skill-btn:disabled{cursor:not-allowed;opacity:.62;box-shadow:none}.de-avatar-wrapper{flex:1;width:100%;max-width:780px;min-height:520px;position:relative}.de-speech-bubble{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:12;pointer-events:auto;background:linear-gradient(#fcfeffc7,#e1eeffad);border:1px solid #4facfe38;border-radius:24px 24px 24px 12px;width:min(100%,320px);max-width:320px;padding:16px 16px 14px;position:absolute;top:24%;right:2%;box-shadow:0 14px 28px #1e3a5c1a,inset 0 1px #ffffff94}.de-speech-label{color:#27567f;letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.de-speech-text{color:#16324e;min-height:60px;font-size:13px;line-height:1.52}.de-speech-bubble--employee{border-radius:18px 18px 18px 8px;box-shadow:0 10px 22px #1e3a5c1a,inset 0 1px #ffffff94}.de-speech-bubble--employee .de-speech-text{min-height:0;margin:0 0 8px}.de-speech-workflow{text-align:left;cursor:pointer;background:#f7fbffc7;border:1px solid #4facfe29;border-radius:12px;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;width:100%;min-width:0;padding:8px 9px;display:grid}.de-speech-workflow:hover{background:#eff8ffeb;border-color:#4facfe61}.de-speech-workflow:focus-visible{outline-offset:2px;outline:2px solid #4facfe8f}.de-speech-workflow span{color:#0c5a85;white-space:nowrap;font-size:10px;font-weight:800;line-height:1.35}.de-speech-workflow strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.35;overflow:hidden}.de-speech-workflow small{color:#58728e;-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-column:2;min-width:0;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.de-speech-workflow span:last-of-type,.de-speech-workflow span:last-of-type+small{margin-top:3px}.de-workbench{background:linear-gradient(#ffffffc7,#ebf4fff0);border:1px solid #4facfe29;border-radius:14px;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-workbench-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.de-workbench>.de-card-title-bar{border-radius:14px 14px 0 0;min-height:42px;margin:-12px -12px 0}.de-workbench-head--bar{flex-wrap:nowrap}.de-workbench-head--bar:after,.de-report-summary-head--bar:after{content:none}.de-workbench-title-row{align-items:baseline;gap:10px;min-width:0;display:flex}.de-workbench-title-row h3{color:#143450;margin:0;font-size:16px}.de-workbench-count{color:#5b7590;white-space:nowrap;font-size:11px}.de-workbench-table-wrap{background:#f7fbffeb;border:1px solid #4facfe24;border-radius:12px;min-height:0;overflow-y:auto}.de-workbench-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:12px}.de-workbench-table th{z-index:1;color:#29577f;text-align:left;background:#dcecfcfa;border-bottom:1px solid #4facfe14;padding:9px 8px;font-weight:700;position:sticky;top:0}.de-workbench-table td{color:#173550;vertical-align:top;border-bottom:1px solid #4facfe14;padding:9px 8px}.de-workbench-clickable-row{cursor:pointer;transition:background .18s,box-shadow .18s}.de-workbench-clickable-row:hover{background:#4facfe1a;box-shadow:inset 3px 0 #2ca8ffb8}.de-workbench-empty{text-align:center;color:#6b849d;padding:40px 12px}.de-workbench-task-name{color:#16324e;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.de-workbench-desc{color:#58728e;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.de-workbench-plan-progress{color:#5b7590;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.de-workbench-actions{flex-wrap:wrap;gap:6px;display:flex}.de-workbench-actions button{color:#22659a;cursor:pointer;background:#4facfe24;border:none;border-radius:999px;min-height:28px;padding:0 9px;font-size:11px}.de-workbench-action-accent{color:#8c5b04!important;background:#ffb83d33!important}.de-log-panel{background:linear-gradient(#ffffffc2,#eaf3fff0);border:1px solid #4facfe29;border-radius:14px;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-log-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.de-log-panel-title-row{align-items:baseline;gap:10px;min-width:0;display:flex}.de-log-panel-title-row h3{color:#143450;margin:0;font-size:16px}.de-log-panel-title-row p{color:#5b7590;margin:0;font-size:11px}.de-log-list{justify-content:center;align-items:center;min-height:0;display:flex;overflow-y:auto}.de-report-summary{background:linear-gradient(#ffffffc2,#e7f2fff0);border:1px solid #4facfe29;border-radius:14px;gap:10px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-report-summary-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.de-report-summary>.de-card-title-bar{border-radius:14px 14px 0 0;min-height:42px;margin:-12px -12px 0}.de-report-summary-head--bar{flex-wrap:nowrap}.de-report-summary-title-row{align-items:baseline;gap:10px;min-width:0;display:flex}.de-report-summary-title-row h3{color:#143450;margin:0;font-size:16px}.de-report-badge{font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.de-report-badge:hover{box-shadow:0 0 0 2px #4facfe24}.de-report-badge--waiting{color:#8c5b04;background:#ffb83d2e}.de-report-badge--ready{color:#0f7a44;background:#20bf6b24}.de-report-summary-body{gap:10px;display:grid}.de-report-schedule-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px;display:grid}.de-report-schedule-row label{color:#5b7590;grid-column:1/-1;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:800;display:flex}.de-report-schedule-row input{color:#16324e;background:#f7fbfff5;border:1px solid #4facfe2e;border-radius:9px;min-width:0;height:30px;padding:0 9px}.de-report-download-btn,.de-report-preview-btn{white-space:nowrap;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:30px;display:inline-flex}.de-report-download-btn:not(:disabled){color:#0c5a85;background:linear-gradient(#ebf8fffa,#c8e9ffe6);border-color:#2ca8ff6b;box-shadow:0 4px 10px #2ca8ff1f,inset 0 1px #ffffffad}.de-report-download-btn:disabled{opacity:.5;cursor:not-allowed}.de-report-preview-overlay{z-index:330}.de-report-preview-modal{background:linear-gradient(#fcfefffa,#e9f5fff5);border:1px solid #4facfe33;border-radius:20px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;width:min(780px,100vw - 56px);max-height:min(720px,100vh - 54px);padding:18px;display:grid;box-shadow:0 24px 70px #15375442,inset 0 1px #ffffff9e}.de-report-preview-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.de-report-preview-summary div{background:#f7fbfff5;border:1px solid #4facfe1f;border-radius:12px;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:9px 10px;display:flex}.de-report-preview-summary span{color:#5b7590;white-space:nowrap;font-size:12px}.de-report-preview-summary strong{color:#16324e;font-size:20px;line-height:1}.de-report-preview-content{scrollbar-gutter:stable;background:#f7fbffdb;border:1px solid #4facfe1f;border-radius:14px;align-content:start;gap:10px;min-height:0;max-height:min(460px,100vh - 260px);padding:14px;display:grid;overflow-y:auto}.de-report-preview-content p{color:#173550;margin:0;font-size:13px;line-height:1.65}.de-report-actions{gap:10px;display:flex}.de-report-generate-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2ca8ff,#00c6ff);border:none;border-radius:12px;min-width:118px;padding:10px 16px;font-size:14px;font-weight:700}.de-report-generate-btn:disabled{opacity:.6;cursor:not-allowed}.de-report-download{color:#16324e;background:#ffffffe6;border:1px solid #4facfe29;border-radius:12px;flex:1;align-items:center;padding:10px 16px;font-size:14px;display:flex}.de-report-download--disabled{opacity:.55}.de-report-meta{gap:4px;display:grid}.de-report-meta p{color:#5b7590;margin:0;font-size:12px}.de-profile-settings-modal{background:linear-gradient(#fafdfffa,#e8f4fffa);border:1px solid #4facfe38;border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;width:min(520px,100%);max-height:min(720px,100vh - 48px);padding:18px;display:grid;box-shadow:0 24px 60px #1d436d2e}.de-profile-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.de-profile-settings-grid label,.de-profile-status-toggle{color:#5b7590;gap:6px;font-size:12px;font-weight:800;display:grid}.de-profile-settings-grid input{color:#16324e;background:#f7fbfff5;border:1px solid #4facfe2e;border-radius:10px;min-width:0;height:36px;padding:0 10px}.de-profile-status-toggle div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.de-profile-status-toggle button{color:#22659a;cursor:pointer;background:#4facfe1a;border:1px solid #4facfe2e;border-radius:10px;min-height:36px;font-weight:800}.de-profile-status-toggle button.active{color:#fff;background:var(--de-btn-gradient-active);border-color:#0000;box-shadow:0 2px 8px #4facfe38}.de-gender-toggle{gap:0;display:flex}.de-gender-btn{color:#1e90ff80;cursor:pointer;background:#ffffff80;border:1px solid #4facfe40;padding:8px 36px;font-size:15px;font-weight:700;transition:all .3s;transform:skew(-15deg)}.de-gender-btn:first-child{border-radius:10px 0 0 10px}.de-gender-btn:last-child{border-radius:0 10px 10px 0}.de-gender-btn span{display:inline-block;transform:skew(15deg)}.de-gender-btn.active{color:#fff;background:linear-gradient(135deg,#4facfe,#00f2fe);border-color:#0000;box-shadow:0 3px 12px #4facfe66}.de-skin-row{-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);background:#e6f2ffbf;border:1px solid #4facfe38;border-radius:12px;gap:6px;margin-top:8px;padding:8px 10px;display:flex;box-shadow:0 4px 24px #1e90ff14}.de-skin-option{cursor:pointer;background:#ffffff4d;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:5px 8px;transition:all .3s;display:flex}.de-skin-option.active{background:linear-gradient(135deg,#4facfe33,#00f2fe26);border-color:#4facfe;box-shadow:0 0 12px #4facfe4d}.de-skin-preview{background:#ffffff80;border-radius:6px;width:38px;height:50px;overflow:hidden}.de-skin-preview img{object-fit:contain;object-position:center top;width:100%;height:100%}.de-skin-label{color:#4a6a8a;white-space:nowrap;font-size:11px}.de-shell-body{flex:1;min-height:0;position:relative;overflow:hidden auto}.de-dashboard .de-card{margin:0}.de-dashboard .de-card-body{padding:14px 16px}@media(max-width:1280px){.de-mission-center-page{padding:10px 12px}.de-dashboard{height:auto;min-height:calc(100vh - 60px)}.de-dashboard-content{grid-template-columns:minmax(248px,.76fr) minmax(340px,1.18fr) minmax(248px,.68fr);gap:8px;padding:7px 8px 72px;overflow:hidden}.de-dashboard-center{min-height:0;padding:0 0 44px;overflow:visible}.de-right-panels{grid-template-rows:minmax(0,1fr) minmax(158px,.34fr);gap:8px;overflow:hidden}.de-workbench-table-wrap,.de-log-list{max-height:none}.de-speech-bubble{width:min(260px,100% + 12px);padding:8px 10px;top:24%;left:50%;right:auto;transform:translate(-50%)}.de-card{border-radius:10px}.de-card-body{padding:10px 12px}.de-card-title-bar{padding:7px 13px}.de-card-title-bar-text{letter-spacing:.5px;font-size:14px}.de-badge{min-height:20px;padding:0 8px;font-size:11px}.de-speech-label{margin-bottom:5px;font-size:11px}.de-speech-text{min-height:36px;font-size:11px;line-height:1.4}.de-speech-bubble--employee .de-speech-text{min-height:0}.de-speech-workflow{gap:2px 6px;padding:7px 8px}.de-speech-workflow strong{font-size:11px}.de-speech-workflow small{-webkit-line-clamp:1;font-size:10px}.de-avatar-wrapper{max-width:560px;min-height:420px}.de-avatar-img{max-width:96%;height:56vh;max-height:470px;margin-bottom:-10px}.de-avatar-glass-space{width:100%;max-width:360px}.de-skin-switch{bottom:5px!important}.de-gender-btn{padding:6px 24px;font-size:13px}.de-skin-row{gap:5px;margin-top:6px;padding:6px 8px}.de-skin-preview{width:28px;height:36px}.de-skin-option{padding:3px 6px}.de-skin-label{font-size:10px}.de-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:7px 10px}.de-info-item{gap:3px;padding:4px 0}.de-info-item label{font-size:12px}.de-info-item span{font-size:13px;line-height:1.4}.de-template-overview,.de-skill-overview{border-radius:14px;margin-bottom:8px}.de-template-overview-item,.de-skill-overview-item{gap:4px;min-height:54px;padding:7px 10px 10px}.de-template-overview-label,.de-skill-overview-label{font-size:11px}.de-template-overview-value,.de-skill-overview-value{font-size:24px}.de-skill-tabs{border-radius:12px;margin-bottom:8px}.de-skill-tab{border-radius:10px;padding:6px 8px;font-size:12px}.de-category-slider{grid-template-columns:24px minmax(0,1fr) 24px;gap:6px;margin-bottom:8px}.de-category-nav{width:24px;height:24px;font-size:16px}.de-tag{min-width:50px;padding:6px 11px;font-size:12px}.de-workbench,.de-log-panel,.de-report-summary{border-radius:12px;gap:8px;padding:10px}.de-workbench-head,.de-log-panel-head,.de-report-summary-head{align-items:flex-start}.de-workbench-title-row,.de-log-panel-title-row,.de-report-summary-title-row{gap:2px;display:grid}.de-workbench-title-row h3,.de-log-panel-title-row h3,.de-report-summary-title-row h3{font-size:15px}.de-workbench-count,.de-log-panel-title-row p{font-size:11px}.de-workbench-table{table-layout:fixed;font-size:12px}.de-workbench-table th,.de-workbench-table td{padding:7px 6px}.de-workbench-table th:nth-child(4),.de-workbench-table td:nth-child(4){display:none}.de-workbench-actions button{min-height:26px;padding:0 7px;font-size:11px}.de-report-actions{flex-direction:column}.de-report-generate-btn{min-width:96px;padding:8px 12px;font-size:12px}.de-report-download{padding:8px 12px;font-size:12px}.de-mission-center-layout{grid-template-columns:minmax(300px,.9fr) minmax(380px,1.35fr);gap:10px}.de-mc-card-list{gap:6px}.de-mission-card{border-radius:10px;padding:9px 10px}.de-mission-card-header{margin-bottom:5px}.de-mission-card-title{font-size:13px}.de-mission-card-desc{-webkit-line-clamp:1;margin-bottom:5px;font-size:12px;line-height:1.38}.de-mission-card-meta{gap:8px;font-size:11px}.de-mission-card-actions{margin-top:7px;padding-top:7px}.de-mission-card-time{font-size:10px}.de-btn-run{padding:4px 10px;font-size:11px}.de-date-filter-row{gap:6px;margin-bottom:8px;padding:8px}.de-date-filter-field{justify-content:space-between;width:100%}.de-date-filter-field input{min-width:136px}.de-date-filter-summary{width:100%;margin-left:0}.de-filter-row{gap:5px;margin-bottom:8px}.de-filter-chip{padding:3px 9px;font-size:11px}.de-drawer{border-radius:14px;gap:10px;padding:12px}.de-drawer-title-group h3{font-size:17px}.de-drawer-eyebrow{font-size:10px}.de-drawer-meta{font-size:11px}.de-detail-section{border-radius:10px;padding:9px}.de-detail-section h4{margin-bottom:7px;font-size:12px}.de-detail-section-head h4{margin-bottom:0}.de-detail-kv{grid-template-columns:60px minmax(0,1fr);gap:5px 8px;font-size:11px}.de-chain-row{grid-template-columns:64px minmax(0,1fr);font-size:10px}.de-chain-row time{text-align:left;grid-column:1/-1}.de-step-node{grid-template-columns:20px 1fr;gap:8px;padding-bottom:11px}.de-step-content strong{font-size:13px}.de-step-content span{font-size:11px}.de-step-dot{width:10px;height:10px}.de-step-line{left:4px}.de-task-run-card{border-radius:9px;padding:7px 8px}.de-task-run-meta{gap:5px 8px;font-size:10px}.de-event-row{grid-template-columns:64px minmax(0,1fr);font-size:10px}.de-event-row time{text-align:left;grid-column:1/-1}.de-log-entry{border-radius:10px;gap:4px;padding:8px 10px;font-size:11px}.de-log-entry-meta strong{font-size:12px}.de-log-entry p{font-size:11px;line-height:1.38}}@media(max-width:1679px){.de-dashboard-content{grid-template-columns:minmax(278px,.86fr) minmax(360px,1.08fr) minmax(276px,.78fr);gap:12px;padding:8px 14px 10px}.de-dashboard-center{padding:4px 0 80px}}@media(max-width:1439px){.de-dashboard-content{grid-template-columns:minmax(260px,.9fr) minmax(300px,.96fr) minmax(260px,.74fr);gap:10px;padding:8px 12px}.de-dashboard-center{padding:4px 0 72px}}@media(max-width:1280px){.de-dashboard-content{gap:8px;padding:7px 8px 72px}.de-dashboard-center{padding:4px 0 56px}.de-log-entry{border-radius:10px;gap:4px;padding:8px 10px;font-size:11px}.de-log-entry-meta strong{font-size:12px}.de-log-entry p{font-size:11px;line-height:1.38}}@media(max-height:820px)and (min-width:1180px){.de-dashboard--compact .de-dashboard-content{grid-template-columns:minmax(320px,.9fr) minmax(360px,.86fr) minmax(410px,1.05fr);gap:10px;padding:6px 14px 8px}.de-dashboard--compact .de-dashboard-left{gap:8px}.de-dashboard--compact .de-card-title-bar{min-height:40px;padding:7px 14px}.de-dashboard--compact .de-card-title-bar-text{font-size:15px}.de-dashboard--compact .de-card-body{padding:10px 14px}.de-person-card--compact .de-info-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:7px 10px}.de-person-card--compact .de-info-item{gap:2px;padding:2px 0}.de-person-card--compact .de-info-item label{font-size:11px}.de-person-card--compact .de-info-item span{font-size:12px;line-height:1.32}.de-person-card--compact .de-report-download{padding:7px 10px;margin-top:8px!important;font-size:11px!important;line-height:1.32!important}.de-dashboard--compact .de-workday-toolbar{grid-template-columns:minmax(0,1fr) 92px;gap:8px;margin-bottom:8px}.de-dashboard--compact .de-workday-toolbar input{border-radius:9px;height:30px}.de-dashboard--compact .de-template-overview{border-radius:12px;margin-bottom:8px}.de-dashboard--compact .de-template-overview-item{gap:3px;min-height:54px;padding:7px 10px 10px}.de-dashboard--compact .de-template-overview-label{font-size:11px}.de-dashboard--compact .de-template-overview-value{font-size:24px}.de-dashboard--compact .de-template-list-scroll{gap:6px}.de-dashboard--compact .de-template-manager-body>.de-task-date-context{margin:-2px 0 6px;padding:6px 7px}.de-dashboard--compact .de-task-manager-preview{border-radius:12px;gap:6px;padding:8px}.de-dashboard--compact .de-task-manager-preview-row{border-radius:10px;padding:8px 9px}.de-dashboard--compact .de-template-task-list .de-task-manager-preview-row{grid-template-columns:minmax(0,1fr) auto;gap:6px}.de-dashboard--compact .de-template-item-actions .de-btn-sm{min-height:24px;padding:0 7px;font-size:10px}.de-dashboard--compact .de-duty-card--compact{border-radius:10px;min-height:86px;padding:8px 10px}.de-dashboard--compact .de-template-card-main{gap:4px}.de-dashboard--compact .de-template-card-name{font-size:13px}.de-dashboard--compact .de-template-card-desc{-webkit-line-clamp:1;font-size:11px;line-height:1.34}.de-dashboard--compact .de-template-card-meta{gap:6px;font-size:10px}.de-dashboard--compact .de-duty-card-foot{margin-top:0}.de-dashboard--compact .de-duty-card-foot .de-btn-sm{min-height:24px;padding:0 9px;font-size:11px}.de-dashboard--compact .de-duty-selected-mark{min-width:36px;height:22px;font-size:10px}.de-dashboard--compact .de-dashboard-center{padding:0 0 10px!important}.de-dashboard--compact .de-avatar-wrapper{max-width:520px!important;min-height:430px!important;transform:translateY(-2px)!important}.de-dashboard--compact .de-avatar-img{height:58vh;max-height:450px;margin-bottom:-32px}.de-dashboard--compact .de-avatar-glass-space{max-width:340px;max-height:520px}.de-dashboard--compact .de-avatar-state-label{min-height:24px;font-size:12px;top:17%}.de-dashboard--compact .de-speech-bubble{border-radius:18px 18px 18px 10px;width:250px!important;padding:9px 11px!important;top:38%!important;left:27%!important}.de-dashboard--compact .de-speech-label{margin-bottom:5px;font-size:11px}.de-dashboard--compact .de-speech-text{min-height:0;font-size:11px;line-height:1.38}.de-dashboard--compact .de-speech-workflow{gap:2px 6px;padding:7px 8px}.de-dashboard--compact .de-speech-workflow strong{font-size:11px}.de-dashboard--compact .de-speech-workflow small{-webkit-line-clamp:1;font-size:10px}.de-dashboard--compact .de-skin-row{gap:5px;margin-top:5px;padding:6px 8px}.de-dashboard--compact .de-right-panels{grid-template-rows:minmax(0,1fr) minmax(156px,.33fr);gap:8px}.de-dashboard--compact .de-workbench,.de-dashboard--compact .de-log-panel,.de-dashboard--compact .de-report-summary{border-radius:12px;gap:8px;padding:10px}.de-dashboard--compact .de-workbench-title-row,.de-dashboard--compact .de-log-panel-title-row,.de-dashboard--compact .de-report-summary-title-row{gap:2px;display:grid}.de-dashboard--compact .de-workbench-title-row h3,.de-dashboard--compact .de-log-panel-title-row h3,.de-dashboard--compact .de-report-summary-title-row h3{font-size:15px}.de-dashboard--compact .de-workday-execution-body{grid-template-rows:auto minmax(80px,.48fr) auto minmax(0,1fr);gap:6px}.de-dashboard--compact .de-execution-status-strip{gap:5px}.de-dashboard--compact .de-execution-status-strip span{padding:6px 7px}.de-dashboard--compact .de-execution-status-strip strong{font-size:16px}.de-dashboard--compact .de-task-summary-grid{gap:5px}.de-dashboard--compact .de-task-summary-scroll .de-task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.de-dashboard--compact .de-task-summary-card{border-radius:10px;gap:3px 5px;min-height:76px;padding:7px}.de-dashboard--compact .de-task-summary-title{font-size:11px}.de-dashboard--compact .de-task-summary-counts{gap:4px}.de-dashboard--compact .de-task-summary-counts span{padding:5px}.de-dashboard--compact .de-task-summary-counts em{font-size:9px}.de-dashboard--compact .de-task-summary-counts strong{font-size:13px}.de-dashboard--compact .de-log-entry{border-radius:10px;gap:4px;padding:7px 9px}.de-dashboard--compact .de-log-entry-meta strong{font-size:12px}.de-dashboard--compact .de-log-entry p{-webkit-line-clamp:1;font-size:11px;line-height:1.34}.de-dashboard--compact .de-decision-chain-note{margin-top:4px;font-size:10px}.de-dashboard--compact .de-report-summary,.de-dashboard--compact .de-report-summary-body,.de-dashboard--compact .de-report-schedule-row{gap:6px}.de-dashboard--compact .de-report-download-btn,.de-dashboard--compact .de-report-preview-btn{gap:4px;min-height:28px}.de-dashboard--compact .de-report-meta p{font-size:10px;line-height:1.3}.de-task-manager-modal-overlay{padding:16px}.de-task-manager-modal{border-radius:16px;gap:12px;width:min(1000px,100vw - 36px);max-height:calc(100vh - 36px);padding:14px}.de-task-manager-modal-body{grid-template-columns:minmax(0,1.24fr) minmax(280px,.78fr);gap:10px}.de-task-manager-modal-head h3{font-size:19px}.de-task-manager-modal-head p{font-size:12px;line-height:1.42}.de-workday-guide-modal{gap:10px;width:min(1040px,100vw - 36px)}.de-workday-guide-steps{gap:8px}.de-workday-guide-step{border-radius:12px;padding:8px 9px}.de-workday-guide-step span{width:22px;height:22px;font-size:11px}.de-workday-guide-step strong{font-size:12px}.de-workday-guide-step p{font-size:10px;line-height:1.32}.de-workday-guide-body{grid-template-columns:minmax(0,1.32fr) minmax(260px,.72fr);gap:10px}.de-workday-guide-duty-list{gap:7px}.de-workday-guide-duty-list .de-duty-card{grid-template-columns:68px minmax(0,1fr);gap:7px;min-height:94px}.de-workday-guide-side{border-radius:13px;gap:8px;padding:10px}.de-workday-guide-summary{border-radius:11px;padding:9px}.de-workday-guide-summary strong{font-size:14px}.de-workday-guide-summary p{font-size:11px;line-height:1.38}.de-task-manager-column{border-radius:13px;gap:8px;padding:10px}.de-task-manager-duty-list .de-duty-card{grid-template-columns:72px minmax(0,1fr);gap:8px;min-height:88px}.de-task-manager-duty-check{gap:6px;font-size:11px}.de-task-manager-duty-check input{width:20px;height:20px}.de-task-manager-decision-card{border-radius:10px;padding:9px 10px}}@media(max-width:1023px){.de-mission-center-page{height:auto;min-height:100%;padding:10px 12px 96px;overflow:visible}.de-mission-center-layout{grid-template-columns:1fr;height:auto;min-height:auto;overflow:visible}.de-mc-list,.de-mc-detail{min-height:auto;display:flex;overflow:visible}.de-mc-list>.de-card,.de-mc-detail>.de-card{height:auto;min-height:0}.de-mc-list .de-card-body,.de-mc-detail .de-card-body{overflow:visible}.de-dashboard{height:auto;min-height:100%;overflow:visible}.de-dashboard-content{grid-template-columns:1fr;min-height:auto;padding:8px 12px 96px;overflow:visible}.de-dashboard-left,.de-dashboard-center,.de-dashboard-right{overflow:visible}.de-right-panels{grid-template-rows:auto auto;height:auto}.de-workbench,.de-log-panel,.de-report-summary{min-height:180px}.de-workday-execution-body{grid-template-rows:auto auto auto auto}.de-task-summary-scroll,.de-run-detail-list{max-height:360px}.de-run-detail-panel{min-height:260px}}.de-log-entries{flex-direction:column;gap:6px;display:flex;overflow-y:auto}.de-log-entry{text-align:left;color:#16324e;cursor:pointer;background:#f8fbfff5;border:1px solid #4facfe1f;border-radius:12px;gap:6px;width:100%;padding:10px 12px;font-family:inherit;font-size:12px;transition:border-color .18s,box-shadow .18s;display:grid}.de-log-entry:hover,.de-log-entry--active{border-color:#4facfe57;box-shadow:0 0 0 2px #4facfe14}.de-log-entry-meta{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.de-log-entry-meta strong{font-size:13px;line-height:1.4}.de-log-entry-meta span{color:#5b7590;font-size:11px}.de-log-entry p{color:#5b7590;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.de-workbench-actions button:hover{background:#4facfe38}.de-workbench-actions button:disabled{opacity:.45;cursor:not-allowed}.de-status-dot--running{background:var(--de-primary);border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1.5s ease-in-out infinite de-pulse-dot;display:inline-block}.de-elapsed{color:var(--de-text-muted);font-variant-numeric:tabular-nums;font-size:11px}.de-tag-count-badge{color:#fff;background:linear-gradient(135deg,#ff7d66,#ff5b6b);border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-2px;box-shadow:0 3px 8px #ff5b6b47}.de-skill-btn--schedule{background:linear-gradient(135deg,#0ea5e9f0,#06b6d4e0)!important}.de-schedule-overlay{z-index:28;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a1c2c47;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.de-schedule-dialog{background:linear-gradient(#fcfeffe6,#e5f0ffe0);border:1px solid #4facfe33;border-radius:24px;gap:18px;width:min(520px,100vw - 32px);padding:20px;display:grid;box-shadow:0 20px 48px #1e3a5c2e,inset 0 1px #ffffff80}.de-schedule-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.de-schedule-title{color:#173553;font-size:18px;font-weight:700;display:block}.de-schedule-skill-id{color:#5b7590;margin-top:4px;font-size:13px;display:block}.de-schedule-close{cursor:pointer;color:#3c6486;background:#4facfe1f;border:none;border-radius:999px;padding:8px 14px}.de-schedule-section{gap:12px;display:grid}.de-schedule-label{color:#41627f;font-size:13px}.de-schedule-desc{color:#315576;margin:0;font-size:13px;line-height:1.6}.de-schedule-presets{flex-wrap:wrap;gap:10px;display:flex}.de-schedule-preset{color:#315576;cursor:pointer;background:#4facfe1a;border:none;border-radius:999px;padding:8px 14px;font-size:13px}.de-schedule-preset.is-active{color:#fff;background:linear-gradient(135deg,#4facfeeb,#00f2fedb);font-weight:700;box-shadow:0 4px 12px #4facfe38}.de-schedule-switch{color:#315576;background:#ffffffbd;border:1px solid #4facfe1f;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.de-schedule-switch input[type=checkbox]{accent-color:#4facfe;width:18px;height:18px}.de-schedule-notice{color:#315576;background:#4facfe14;border:1px solid #4facfe1f;border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.5}.de-schedule-result{border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5}.de-schedule-result--success{color:#176a3a;background:#1b9c5a1a;border:1px solid #1b9c5a33}.de-schedule-result--pending{color:#7a5509;background:#f5ad2d1f;border:1px solid #f5ad2d3d}.de-schedule-result--error{color:#ad3434;background:#e048481a;border:1px solid #e0484833}.de-schedule-footer{justify-content:flex-end;gap:12px;display:flex}.de-schedule-btn-secondary{cursor:pointer;color:#3c6486;background:#4facfe1f;border:none;border-radius:999px;padding:8px 14px}.de-schedule-btn-primary{cursor:pointer;color:#fff;background:linear-gradient(135deg,#4facfeeb,#00f2fedb);border:none;border-radius:999px;padding:8px 18px;box-shadow:0 4px 12px #4facfe38}.de-schedule-btn-primary:disabled{opacity:.55;cursor:not-allowed}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false} +/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:before,:after{box-sizing:border-box}body{background:var(--pc-bg-base);color:var(--pc-text-primary);font-family:var(--font-sans),ui-sans-serif,system-ui,sans-serif;margin:0}}@layer components{.btn-electric{border:1px solid var(--pc-accent-dim);background:linear-gradient(135deg,var(--pc-accent-glow),transparent);color:var(--pc-accent-light);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;font-weight:600;transition:all .2s;display:inline-flex}.btn-electric:hover{background:var(--pc-accent);color:#fff;border-color:var(--pc-accent)}.btn-electric:disabled{opacity:.4;cursor:not-allowed}.input-electric{border:1px solid var(--pc-border);background:var(--pc-bg-elevated);color:var(--pc-text-primary);border-radius:12px;outline:none;transition:border-color .2s}.input-electric:focus{border-color:var(--pc-accent);box-shadow:0 0 0 3px var(--pc-accent-glow)}.input-electric::placeholder{color:var(--pc-text-faint)}.card{border:1px solid var(--pc-border);background:var(--pc-bg-surface);border-radius:16px}.surface-panel{background:var(--pc-bg-elevated);border:1px solid var(--pc-border);border-radius:24px}.btn-icon{width:36px;height:36px;color:var(--pc-text-muted);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:inline-flex}.btn-icon:hover{background:var(--pc-hover);color:var(--pc-text-primary)}.table-electric{border-collapse:collapse;width:100%}.table-electric th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--pc-text-muted);border-bottom:1px solid var(--pc-border);padding:10px 16px;font-size:10px;font-weight:600}.table-electric td{border-bottom:1px solid var(--pc-border);padding:12px 16px;font-size:13px}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p{margin:0}.chat-markdown p+p{margin-top:.75em}.chat-markdown ul,.chat-markdown ol{margin:.5em 0;padding-left:1.25em}.chat-markdown pre{margin:.5em 0 0}.chat-markdown code{white-space:break-spaces}}@layer utilities{.visible{visibility:visible}.relative{position:relative}.static{position:static}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.border{border-style:var(--tw-border-style);border-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.text-gradient-blue{background:linear-gradient(135deg,var(--pc-accent),#818cf8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.animate-fade-in{animation:.3s ease-out fadeIn}.animate-fade-in-scale{animation:.3s ease-out fadeInScale}.animate-slide-in-up{animation:.4s ease-out slideInUp}.animate-float{animation:3s ease-in-out infinite float}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}}:root{--de-primary:#4facfe;--de-primary-2:#00f2fe;--de-primary-3:#00d4ff;--de-primary-4:#2d8cf0;--de-header-gradient:linear-gradient(135deg, #2d8cf0, #4facfe 40%, #00d4ff);--de-text-primary:#16324e;--de-text-heading:#1e3a5c;--de-text-body:#4a6a8a;--de-text-muted:#5b7590;--de-text-label:#6a8198;--de-success:#1b9c5a;--de-success-text:#0f7a44;--de-success-bg:#20bf6b24;--de-warning:#faad14;--de-warning-text:#8c5b04;--de-warning-bg:#ffb83d2e;--de-danger:#d94a4a;--de-danger-text:#a33b3b;--de-danger-bg:#f4606029;--de-glass-bg:#e6f2ffa6;--de-glass-border:#4facfe38;--de-glass-border-light:#4facfe1f;--de-glass-border-lighter:#4facfe14;--de-glass-blur:blur(20px) saturate(1.2);--de-overlay-bg:#4facfe0f;--de-overlay-md:#4facfe1f;--de-overlay-hover:#4facfe2e;--de-overlay-active:#4facfe38;--de-btn-gradient:linear-gradient(135deg, #2ca8ff, #00c6ff);--de-btn-shadow:0 10px 18px #2ca8ff38;--de-btn-gradient-blue:linear-gradient(135deg, #59adf5eb, #3ad6f3e6);--de-btn-gradient-active:linear-gradient(135deg, #4facfee6, #00f2fed9);--de-page-bg:linear-gradient(180deg, #d6e8f7, #e2f0fb 25%, #d8eaf8 50%, #cce2f5 75%, #c0d8f0);--de-page-grid:#4facfe0a;--de-font-family:Microsoft YaHei, PingFang SC, Helvetica Neue, Arial, sans-serif;--de-font-mono:Fira Code, Consolas, monospace}.de-page{background:var(--de-page-bg);min-height:100vh;font-family:var(--de-font-family);position:relative}.de-page:before{content:"";background-image:linear-gradient(var(--de-page-grid) 1px,transparent 0),linear-gradient(90deg,var(--de-page-grid) 1px,transparent 0);pointer-events:none;z-index:0;background-size:40px 40px;position:fixed;top:0;right:0;bottom:0;left:0}.de-page:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 20% 100%,#4facfe14 0,#0000 50%),radial-gradient(at 80% 100%,#00f2fe0f 0,#0000 50%),radial-gradient(at 50% 100%,#4facfe0d 0,#0000 40%);height:40%;position:fixed;bottom:0;left:0;right:0}.de-page-content{z-index:1;position:relative}.de-card{background:var(--de-glass-bg);border:1px solid var(--de-glass-border);-webkit-backdrop-filter:var(--de-glass-blur);backdrop-filter:var(--de-glass-blur);border-radius:12px;position:relative;overflow:hidden;box-shadow:0 4px 24px #1e90ff0f,inset 0 0 0 1px #ffffff80,inset 0 1px #fff9,inset 0 -1px #4facfe1a,0 0 0 1.5px #4facfe1f}.de-card:before{content:"";background:linear-gradient(90deg,#0000 5%,#4facfe59 25%,#00f2fe40,#4facfe59 75%,#0000 95%);height:2px;position:absolute;top:0;left:0;right:0}.de-card:after{content:"";pointer-events:none;z-index:0;background:linear-gradient(#ffffff40,#0000 40%);border-radius:10px;position:absolute;top:2px;right:2px;bottom:2px;left:2px}.de-card-body{z-index:1;padding:14px 16px;position:relative}.de-card-title-bar{z-index:1;background:linear-gradient(90deg,#9ccef6e6,#b8defbd6 46%,#d7eeffc2);border-bottom:1px solid #4facfe2e;justify-content:space-between;align-items:center;gap:8px;padding:10px 18px;display:flex;position:relative;box-shadow:inset 0 1px #ffffffad,inset 0 -1px #4facfe14}.de-card-title-bar:before{content:"";background:linear-gradient(#79bff7e0,#aae0ffc7);border-radius:2px;width:3px;height:12px;margin-right:4px;display:inline-block;box-shadow:0 0 8px #9bd6ff29}.de-card-title-bar:after{content:"";background:linear-gradient(135deg,#a8d8ff4d,#d0eeff1f);border-radius:5px;width:32px;height:10px;position:absolute;top:8px;right:14px;box-shadow:inset 0 1px #ffffff52}.de-card-title-bar-text{color:#1e3a5c;letter-spacing:1.5px;flex:1;min-width:0;font-size:16px;font-weight:700}.de-badge{border-radius:999px;justify-content:center;align-items:center;min-height:24px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.de-badge-info{color:#22659a;background:#4facfe1f}.de-badge-success{color:#0f7a44;background:#20bf6b24}.de-badge-warning{color:#8c5b04;background:#ffb83d2e}.de-badge-danger{color:#a33b3b;background:#f4606029}.de-nav-btn{color:#ffffffbf;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;padding:6px 26px;font-size:13px;transition:all .25s;position:relative;transform:skew(-15deg)}.de-nav-btn span{display:inline-block;transform:skew(15deg)}.de-nav-btn.active{color:#1e88e5;background:#fffffff2;border-color:#fff9;font-weight:700;box-shadow:0 2px 10px #00000026}.de-nav-btn:hover:not(.active){color:#fff;background:#ffffff2e}@media(max-width:1679px){.de-card-body{padding:12px 14px}.de-card-title-bar{padding:9px 16px}.de-nav-btn{padding:6px 20px;font-size:12px}}@media(max-width:1439px){.de-card-body{padding:12px}.de-card-title-bar-text{letter-spacing:1px;font-size:15px}.de-nav-btn{padding:5px 16px;font-size:12px}}.de-gem{z-index:8;background:radial-gradient(circle,#4facfe 0,#4facfe80);width:16px;height:16px;animation:2s ease-in-out infinite de-gem-pulse;position:absolute;transform:rotate(45deg);box-shadow:0 0 15px #4facfe,0 0 30px #4facfe99}@keyframes de-gem-pulse{0%,to{opacity:.5;transform:rotate(45deg)scale(.9)}50%{opacity:1;transform:rotate(45deg)scale(1.4)}}.de-gem-1{animation-delay:0s;top:35%;left:38%}.de-gem-2{animation-delay:.6s;top:54%;left:32%}.de-gem-3{animation-delay:1.2s;top:36%;right:28%}@media(prefers-reduced-motion:reduce){.de-gem{animation:none}}.de-stage{z-index:1;flex-shrink:0;justify-content:center;align-items:flex-end;width:58%;max-width:360px;height:50px;display:flex;position:relative}.de-stage-layer{border-radius:50%;position:absolute;left:50%;transform:translate(-50%)}.de-stage-layer-1{z-index:1;background:linear-gradient(#b3d9ff,#80bfff 25%,#4da6ff,#39f 75%,#1a8cff);width:100%;height:42px;bottom:0;box-shadow:0 3px 15px #1a8cff59,0 0 30px #4facfe33,inset 0 2px 8px #ffffff80,inset 0 -2px 6px #0050b426}.de-stage-layer-1:after{content:"";filter:blur(1px);background:linear-gradient(90deg,#0000,#fff9 20%,#fffc,#fff9 80%,#0000);border-radius:50%;height:3px;position:absolute;top:2px;left:3%;right:3%}.de-stage-layer-2{z-index:2;background:linear-gradient(#d4eaff,#a8d4ff 25%,#7ab8ff,#4da6ff 75%,#39f);width:75%;height:32px;bottom:6px;box-shadow:0 3px 12px #3399ff4d,0 0 25px #4facfe26,inset 0 2px 6px #fff9,inset 0 -2px 5px #0050b41f}.de-stage-layer-2:after{content:"";filter:blur(1px);background:linear-gradient(90deg,#0000,#ffffffb3 25%,#ffffffe6,#ffffffb3 75%,#0000);border-radius:50%;height:2px;position:absolute;top:2px;left:4%;right:4%}.de-stage-layer-3{z-index:3;background:linear-gradient(#e8f4ff,#c8e4ff 25%,#a8d4ff,#7ab8ff 75%,#4da6ff);width:48%;height:22px;bottom:12px;box-shadow:0 2px 10px #4da6ff4d,0 0 30px #4facfe40,0 0 60px #4facfe1a,inset 0 2px 8px #ffffffb3,inset 0 -2px 4px #0050b41a}.de-stage-layer-3:after{content:"";filter:blur(1px);background:linear-gradient(90deg,#0000,#fffc 30%,#fff,#fffc 70%,#0000);border-radius:50%;height:2px;position:absolute;top:1px;left:5%;right:5%}.de-stage-glow{filter:blur(10px);z-index:0;pointer-events:none;background:radial-gradient(#4facfe40 0,#00f2fe1a 35%,#4facfe0a 60%,#0000 80%);width:140%;height:55px;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.de-avatar-container{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;min-height:0;display:flex;position:relative}.de-avatar-glass-space{pointer-events:none;perspective:1200px;z-index:3;width:84%;max-width:560px;height:92%;max-height:760px;position:absolute;top:0;left:50%;transform:translate(-50%)}.de-avatar-roof{z-index:6;width:68%;max-width:440px;height:16%;position:absolute;top:0;left:50%;transform:translate(-50%)}.de-avatar-roof-face{clip-path:polygon(50% 0,3% 100%,97% 100%);background:linear-gradient(#4facfe73,#00f2fe40 45%,#4facfe14);position:absolute;top:0;right:0;bottom:15%;left:0}.de-avatar-roof-glow{background:linear-gradient(90deg,#0000,#4facfeb3 10%,#00f2fe,#4facfeb3 90%,#0000);height:2px;position:absolute;bottom:12%;left:2%;right:2%;box-shadow:0 0 8px #4facfecc,0 0 20px #00f2fe66}.de-avatar-glass-left{z-index:2;background:linear-gradient(90deg,#4facfe26,#0000);width:5%;position:absolute;top:18%;bottom:6%;left:6%}.de-avatar-glass-right{z-index:2;background:linear-gradient(270deg,#00f2fe26,#0000);width:5%;position:absolute;top:18%;bottom:6%;right:6%}.de-avatar-img{object-fit:contain;filter:drop-shadow(0 10px 40px #1e90ff59);z-index:5;flex-shrink:0;width:auto;height:56vh;max-height:calc(100vh - 236px);margin-bottom:-50px;position:relative}.de-avatar-state-label{z-index:8;color:#0b4a6d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f1f9ffe0;border:1px solid #4facfe4d;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;top:19%;left:50%;transform:translate(-50%);box-shadow:0 8px 18px #1e90ff1f}.de-dashboard-grid{grid-template-columns:minmax(240px,.9fr) minmax(420px,1.6fr) minmax(280px,1fr);align-items:stretch;gap:14px;min-height:0;display:grid}.de-dashboard-left,.de-dashboard-center,.de-dashboard-right{flex-direction:column;min-width:0;min-height:0;display:flex}.de-dashboard-center{justify-content:center;align-items:center;padding-bottom:56px;position:relative;overflow:visible}.de-header{background:var(--de-header-gradient);z-index:100;flex-shrink:0;height:52px;position:relative;box-shadow:0 2px 12px #1e90ff4d}.de-header:before,.de-header:after{content:none}.de-header-content{z-index:2;justify-content:space-between;align-items:center;height:100%;padding:0 36px;display:flex;position:relative}.de-header-left{align-items:center;gap:14px;min-width:300px;display:flex}.de-header-accent-bar{background:#ffffffe6;border-radius:3px;width:5px;height:30px;box-shadow:0 0 8px #fff9}.de-header-title{color:#fff;letter-spacing:3px;text-shadow:0 2px 6px #0003;font-size:24px;font-weight:700}.de-header-center{gap:4px;max-width:52%;display:flex;position:absolute;left:50%;transform:translate(-50%)}.de-header-right{justify-content:flex-end;align-items:center;gap:16px;min-width:220px;display:flex}.de-header-welcome{color:#fffffff2;font-size:13px}.de-header-icon{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;transition:background .18s,transform .18s;display:inline-flex}.de-header-icon:hover,.de-header-icon.active{background:#ffffff38;transform:translateY(-1px)}.de-header-close{background:#ffffff2e}.de-notification-anchor{align-items:center;display:inline-flex;position:relative}.de-notification-count{color:#fff;background:#ff5d73;border:1px solid #ffffffd1;border-radius:999px;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;line-height:15px;position:absolute;top:-5px;right:-8px;box-shadow:0 4px 12px #c6214652}.de-notification-popover{z-index:360;background:#fcfefffa;border:1px solid #3d84b82e;border-radius:14px;grid-template-rows:auto minmax(0,1fr);width:min(380px,100vw - 28px);max-height:min(620px,100vh - 88px);display:grid;position:absolute;top:38px;right:0;overflow:hidden;box-shadow:0 22px 60px #12344f3d}.de-notification-head{border-bottom:1px solid #3d84b81f;justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.de-notification-head div{gap:2px;min-width:0;display:grid}.de-notification-head strong{color:#12344f;font-size:15px}.de-notification-head span{color:#6a8094;font-size:12px}.de-notification-close{color:#496a85;background:#4facfe1a;width:26px;height:26px}.de-notification-list{gap:10px;min-height:0;padding:12px;display:grid;overflow-y:auto}.de-notification-empty{color:#6a8094;place-items:center;min-height:86px;font-size:13px;display:grid}.de-notification-item{background:#fff;border:1px solid #3d84b81f;border-radius:10px;gap:8px;padding:12px;display:grid}.de-notification-item--action{border-color:#4facfe4d}.de-notification-item--warn{border-color:#ffb83d57}.de-notification-item--error{border-color:#f460604d}.de-notification-item-head,.de-notification-title-row,.de-notification-actions,.de-notification-reply-row{align-items:center;gap:8px;display:flex}.de-notification-item-head,.de-notification-title-row{justify-content:space-between}.de-notification-level,.de-notification-title-row span{color:#22659a;background:#4facfe1a;border-radius:999px;flex-shrink:0;align-items:center;min-height:20px;padding:0 7px;font-size:11px;font-weight:700;display:inline-flex}.de-notification-time{color:#7890a7;font-size:11px}.de-notification-title-row h3{color:#12344f;min-width:0;margin:0;font-size:14px;line-height:1.32}.de-notification-item p,.de-notification-reply{color:#536b80;margin:0;font-size:12px;line-height:1.5}.de-notification-reply{color:#31526d;background:#4facfe14;border-radius:8px;padding:8px}.de-notification-actions{justify-content:flex-end}.de-notification-icon-btn{color:#31526d;cursor:pointer;background:#f7fbfff5;border:1px solid #3d84b829;border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.de-notification-icon-btn:hover{background:#4facfe24}.de-notification-reply-row input{color:#12344f;background:#fff;border:1px solid #3d84b82e;border-radius:8px;flex:1;min-width:0;height:30px;padding:0 9px}.de-digital-modal-close-hitbox{z-index:3;cursor:pointer;background:0 0;border:0;border-radius:999px;width:38px;height:38px;position:absolute;top:8px;right:24px}.de-mission-list{flex-direction:column;gap:8px;display:flex}.de-mission-card-mini{border:1px solid var(--de-glass-border-light);background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:12px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.de-mission-title{color:var(--de-text-primary);font-size:14px;font-weight:600}.de-approval-item{border-bottom:1px solid var(--de-glass-border-lighter);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.de-approval-item:last-child{border-bottom:none}.de-approval-actions{gap:6px;display:flex}.de-btn-approve,.de-btn-reject{cursor:pointer;border:none;border-radius:8px;padding:4px 12px;font-size:12px;font-weight:600}.de-btn-approve{background:var(--de-success-bg);color:var(--de-success-text)}.de-btn-reject{background:var(--de-danger-bg);color:var(--de-danger-text)}.de-stats-row{border-top:1px solid var(--de-glass-border-lighter);grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;padding-top:12px;display:grid}.de-stat{text-align:center}.de-stat strong{color:var(--de-text-primary);font-size:22px;display:block}.de-stat span{color:var(--de-text-muted);font-size:11px}.de-empty-text{text-align:center;color:var(--de-text-label);padding:32px 12px;font-size:13px}.de-loading-skeleton{background:linear-gradient(90deg,var(--de-overlay-bg),var(--de-overlay-md),var(--de-overlay-bg));background-size:200% 100%;border-radius:8px;animation:1.5s infinite de-shimmer}@keyframes de-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.de-btn-sm{padding:4px 10px;font-size:12px}.de-btn-sm svg{flex-shrink:0}.de-btn-primary{color:#fff;cursor:pointer;background:var(--de-btn-gradient);box-shadow:var(--de-btn-shadow);border:none;border-radius:12px;padding:11px 18px;font-weight:700}.de-btn-secondary{color:#22659a;cursor:pointer;background:linear-gradient(#f8fcfff5,#e5f3ffe0);border:1px solid #4facfe3d;border-radius:12px;font-weight:700;box-shadow:inset 0 1px #ffffffa3}.de-btn-secondary:hover:not(:disabled){background:linear-gradient(#fffffffa,#d6edfff0);border-color:#2ca8ff6b}.de-btn-secondary:disabled,.de-btn-primary:disabled{opacity:.52;cursor:not-allowed}@media(max-width:1679px){.de-header{height:50px}.de-header-content{padding:0 24px}.de-header-left{min-width:240px}.de-header-title{letter-spacing:2px;font-size:20px}.de-dashboard-grid{gap:12px}}@media(max-width:1439px){.de-header{height:48px}.de-header-content{padding:0 16px}.de-header-accent-bar{height:24px}.de-header-title{letter-spacing:1px;font-size:18px}}@media(max-width:1023px){.de-dashboard-grid{grid-template-columns:1fr 1fr}.de-dashboard-right{grid-column:1/-1}}@media(max-width:767px){.de-dashboard-grid{grid-template-columns:1fr}}.de-mission-center-layout{grid-template-columns:minmax(320px,1fr) minmax(400px,1.6fr);gap:16px;height:100%;min-height:0;display:grid}.de-mission-center-page{height:100%;min-height:0;padding:14px 18px;overflow:hidden}.de-mc-list,.de-mc-detail{flex-direction:column;min-height:0;display:flex}.de-mc-list>.de-card,.de-mc-detail>.de-card{flex-direction:column;height:100%;min-height:0;display:flex}.de-mc-list .de-card-body,.de-mc-detail .de-card-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.de-mc-card-list{flex-direction:column;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-mission-empty-panel{text-align:center;min-height:220px;color:var(--de-text-body);background:#ffffff75;border:1px dashed #4facfe4d;border-radius:14px;align-content:center;justify-items:center;gap:10px;padding:28px 18px;display:grid}.de-mission-empty-panel strong{color:var(--de-text-primary);font-size:15px}.de-mission-empty-panel p{max-width:520px;color:var(--de-text-muted);margin:0;font-size:13px;line-height:1.65}.de-mission-empty-panel--detail{min-height:100%}.de-mission-empty-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.de-mission-focus-notice{color:var(--de-text-primary);background:#4facfe1f;border:1px solid #4facfe3d;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;padding:9px 11px;font-size:12px;display:grid}.de-mission-focus-notice strong{color:#1769aa;white-space:nowrap}.de-mission-focus-notice span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:700;overflow:hidden}.de-mission-focus-notice code{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:180px;color:var(--de-text-muted);background:#ffffffb3;border-radius:6px;padding:2px 6px;overflow:hidden}.de-date-filter-row{background:#f4faffd1;border:1px solid #4facfe24;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;padding:9px 10px;display:flex}.de-date-filter-field{min-width:0;color:var(--de-text-muted);align-items:center;gap:8px;font-size:12px;font-weight:700;display:inline-flex}.de-date-filter-field input{min-width:138px;height:30px;color:var(--de-text-primary);font:inherit;background:#ffffffdb;border:1px solid #4facfe3d;border-radius:999px;padding:0 10px;font-size:12px}.de-date-filter-actions{flex-wrap:wrap;gap:6px;display:flex}.de-date-filter-summary{color:var(--de-text-muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:700}.de-mission-card{text-align:left;border:1px solid var(--de-glass-border-light);cursor:pointer;background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:14px;width:100%;padding:14px;transition:border-color .18s,box-shadow .18s;box-shadow:0 2px 10px #1e90ff0a,inset 0 1px #ffffff80}.de-mission-card:hover,.de-mission-card--selected{border-color:var(--de-glass-border);box-shadow:0 0 0 2px var(--de-overlay-hover)}.de-mission-card--selected{background:linear-gradient(#f0f8fffa,#e2f2fff5);border-color:#2d8cf0;box-shadow:0 0 0 2px #2d8cf038,0 8px 24px #1d436d1f}.de-mission-card-header{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.de-mission-card-title{color:var(--de-text-primary);font-size:15px;font-weight:600}.de-mission-card-badges{flex-shrink:0;align-items:center;gap:6px;display:flex}.de-mission-card-focus-chip{color:#1769aa;white-space:nowrap;background:#2d8cf024;border:1px solid #2d8cf03d;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.de-mission-card-desc{color:var(--de-text-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:8px;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.de-mission-card-meta{color:var(--de-text-muted);gap:12px;font-size:12px;display:flex}.de-mission-card-actions{border-top:1px solid var(--de-glass-border-light);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;padding-top:9px;display:flex}.de-mission-card-actions>.de-btn-restart,.de-mission-card-actions>.de-btn-run{flex-shrink:0}.de-mission-card-time{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-muted);flex:1;font-size:11px;font-weight:600;overflow:hidden}.de-btn-restart,.de-btn-run{cursor:pointer;border:none;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.de-btn-run{background:var(--de-btn-gradient-active);color:#fff;box-shadow:0 2px 8px #4facfe38}.de-btn-restart{color:#1769aa;background:#4facfe1f;border:1px solid #4facfe38}.de-btn-restart:not(:disabled):hover{background:#4facfe33;border-color:#2d8cf06b}.de-btn-restart:disabled,.de-btn-run:disabled{cursor:not-allowed;box-shadow:none;color:var(--de-text-muted);background:#8e8e932e;border-color:#0000}.de-filter-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.de-filter-chip{border:1px solid var(--de-glass-border-light);background:var(--de-overlay-bg);color:var(--de-text-body);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:12px;transition:all .2s}.de-filter-chip.active{background:var(--de-btn-gradient-active);color:#fff;border-color:#0000;box-shadow:0 2px 8px #4facfe40}.de-drawer{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffffff5,#e8f4fffa);border:1px solid #4facfe33;border-radius:24px;grid-template-rows:auto auto minmax(0,1fr);gap:14px;width:100%;height:100%;padding:18px;display:grid;position:relative;overflow-y:auto;box-shadow:0 24px 60px #1d436d2e,inset 0 1px #ffffffe6}.de-drawer-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.de-drawer-title-group h3{color:var(--de-text-primary);margin:0;font-size:22px}.de-drawer-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--de-primary);font-size:11px;font-weight:700}.de-drawer-status-line{align-items:center;gap:8px;display:flex}.de-drawer-meta{color:var(--de-text-muted);font-size:12px}.de-drawer-timeline{flex-direction:column;gap:12px;min-height:0;display:flex;overflow-y:auto}.de-detail-section{border:1px solid var(--de-glass-border-light);background:#ffffff8a;border-radius:14px;padding:12px}.de-detail-section h4{color:var(--de-text-primary);margin:0 0 10px;font-size:13px}.de-detail-section-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.de-detail-section-head h4{margin:0}.de-detail-kv{grid-template-columns:72px minmax(0,1fr);gap:7px 10px;font-size:12px;display:grid}.de-detail-kv span,.de-task-run-meta,.de-event-row time{color:var(--de-text-muted)}.de-detail-kv strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-primary);font-weight:600;overflow:hidden}.de-execution-chain{background:linear-gradient(#ffffffb8,#e8fff89e);border-color:#00b89438}.de-chain-plan-id{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-muted);font-size:11px;overflow:hidden}.de-chain-list{flex-direction:column;gap:7px;display:flex}.de-chain-row{background:#ffffffad;border:1px solid #00b89429;border-radius:10px;grid-template-columns:78px minmax(0,1fr) 132px;align-items:start;gap:8px;padding:8px 9px;font-size:11px;display:grid}.de-chain-row strong{color:#087f5b;font-weight:800}.de-chain-row span{min-width:0;color:var(--de-text-primary);text-overflow:clip;white-space:normal;word-break:break-word;line-height:1.35;overflow:visible}.de-chain-row time{color:var(--de-text-muted);text-align:right}.de-chain-row--danger strong{color:var(--de-danger)}.de-step-node{grid-template-columns:24px 1fr;align-items:start;gap:10px;padding-bottom:16px;display:grid;position:relative}.de-step-dot{border-radius:50%;width:12px;height:12px;margin-top:4px}.de-step-dot--succeeded,.de-step-dot--completed{background:var(--de-success);box-shadow:0 0 8px #1b9c5a66}.de-step-dot--running{background:var(--de-primary);animation:1.5s ease-in-out infinite de-pulse-dot;box-shadow:0 0 8px #4facfe99}.de-step-dot--failed{background:var(--de-danger)}.de-step-dot--pending,.de-step-dot--queued{background:#94a3b8}@keyframes de-pulse-dot{0%,to{box-shadow:0 0 4px #4facfe4d}50%{box-shadow:0 0 12px #4facfecc}}.de-step-line{background:#4facfe26;width:2px;height:calc(100% - 8px);position:absolute;top:20px;left:5px}.de-step-content{flex-direction:column;gap:4px;display:flex}.de-step-content strong{color:var(--de-text-primary);font-size:14px}.de-step-content span{color:var(--de-text-muted);font-size:12px}.de-task-run-card{border:1px solid var(--de-glass-border-light);background:#ffffffa3;border-radius:10px;margin-top:6px;padding:9px 10px}.de-task-run-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.de-task-run-head span{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--de-text-primary);font-size:12px;font-weight:700;overflow:hidden}.de-task-run-meta{flex-wrap:wrap;gap:8px 12px;margin-top:5px;font-size:11px;display:flex}.de-event-list{flex-direction:column;gap:6px;display:flex}.de-event-row{border:1px solid var(--de-glass-border-light);background:#ffffff94;border-radius:9px;grid-template-columns:74px minmax(0,1fr) 132px;align-items:start;gap:8px;padding:7px 8px;font-size:11px;display:grid}.de-event-row strong{color:var(--de-primary)}.de-event-row--danger strong{color:var(--de-danger)}.de-event-row span{text-overflow:clip;white-space:normal;min-width:0;color:var(--de-text-primary);word-break:break-word;line-height:1.35;overflow:visible}.de-event-row time{text-align:right}.de-session-message-list{flex-direction:column;gap:8px;display:flex}.de-session-message{border:1px solid var(--de-glass-border-light);background:#fff9;border-radius:10px;padding:8px 10px}.de-session-message--user{background:#4facfe1a;border-color:#4facfe2e}.de-session-message-role{color:var(--de-primary);margin-bottom:4px;font-size:11px;font-weight:700}.de-session-message p{color:var(--de-text-primary);white-space:pre-wrap;word-break:break-word;margin:0;font-size:12px;line-height:1.55}.de-skill-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.de-skill-card{border:1px solid var(--de-glass-border-light);cursor:pointer;background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:14px;flex-direction:column;gap:8px;padding:14px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.de-skill-card:hover,.de-skill-card--selected{border-color:#4facfe80;transform:translateY(-1px);box-shadow:0 0 0 2px #4facfe24}.de-skill-card-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.de-skill-name{color:var(--de-text-primary);font-size:15px;font-weight:600}.de-skill-desc{color:var(--de-text-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.de-skill-meta-row{flex-wrap:wrap;align-items:center;gap:6px;min-height:24px;display:flex}.de-skill-meta-chip{color:#41627f;white-space:nowrap;text-overflow:ellipsis;background:#4facfe14;border:1px solid #4facfe24;border-radius:999px;align-items:center;max-width:160px;min-height:22px;padding:0 8px;font-size:11px;display:inline-flex;overflow:hidden}.de-skill-recent{color:var(--de-text-muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.4;display:-webkit-box;overflow:hidden}.de-skill-card-foot{justify-content:space-between;align-items:center;display:flex}.de-skill-version{color:var(--de-text-muted);font-size:11px}.de-skill-status{font-size:11px;font-weight:600}.de-skill-status.enabled{color:var(--de-success-text)}.de-skill-status.disabled{color:var(--de-text-muted)}.de-skill-toolbar{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.de-input{height:40px;color:var(--de-text-primary);font-size:14px;font-family:var(--de-font-family);background:#ffffffe0;border:1px solid #4facfe2e;border-radius:12px;padding:0 14px}.de-input:focus{border-color:var(--de-primary);outline:none;box-shadow:0 0 0 3px #4facfe26}.de-capability-badge{letter-spacing:.04em;border-radius:999px;padding:2px 8px;font-size:10px;font-weight:700}.de-capability-core{color:#22659a;background:#4facfe1f}.de-capability-standard{color:#0f7a44;background:#20bf6b1f}.de-capability-specialized{color:#6d28d9;background:#7c3aed1a}.de-capability-experimental{color:#92400e;background:#f59e0b1f}.de-journal-list{flex-direction:column;gap:6px;display:flex}.de-journal-entry{border:1px solid var(--de-glass-border-lighter);border-radius:10px;grid-template-columns:60px 80px 1fr;align-items:baseline;gap:10px;padding:10px 12px;font-size:13px;display:grid}.de-journal-time{color:var(--de-text-muted);white-space:nowrap}.de-journal-kind{text-transform:uppercase;font-size:11px;font-weight:700}.de-journal-kind--error,.de-journal-kind--failed{color:var(--de-danger-text)}.de-journal-kind--success,.de-journal-kind--succeeded{color:var(--de-success-text)}.de-journal-kind--running{color:#22659a}.de-journal-msg{color:var(--de-text-primary);word-break:break-word}.de-card-meta-text{color:var(--de-text-muted);font-size:12px}.de-settings-section{margin-bottom:24px}.de-settings-heading{color:var(--de-text-heading);margin-bottom:4px;font-size:16px;font-weight:700}.de-settings-desc{color:var(--de-text-muted);margin-bottom:14px;font-size:13px}.de-role-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.de-role-card{text-align:center;cursor:pointer;border:1px solid var(--de-glass-border-light);background:linear-gradient(#f4faffeb,#ebf6ffdb);border-radius:14px;padding:16px;transition:all .2s}.de-role-card:hover{border-color:var(--de-glass-border)}.de-role-card.active{border-color:var(--de-primary);box-shadow:0 0 0 2px #4facfe33}.de-role-label{color:var(--de-text-primary);font-size:15px;font-weight:600;display:block}.de-role-density{color:var(--de-text-muted);margin-top:4px;font-size:11px;display:block}.de-saved-hint{color:var(--de-success-text);margin-top:8px;font-size:12px}.de-btn-approve:disabled,.de-btn-reject:disabled{opacity:.45;cursor:not-allowed}@media(max-width:1023px){.de-mission-center-layout{grid-template-columns:1fr}}.de-shell{background:var(--de-page-bg);height:100vh;min-height:0;font-family:var(--de-font-family);flex-direction:column;display:flex;position:relative;overflow:hidden}.de-shell:before{content:"";background-image:linear-gradient(var(--de-page-grid) 1px,transparent 0),linear-gradient(90deg,var(--de-page-grid) 1px,transparent 0);pointer-events:none;z-index:0;background-size:40px 40px;position:fixed;top:0;right:0;bottom:0;left:0}.de-shell-header{background:var(--de-header-gradient);z-index:100;flex-shrink:0;height:56px;position:relative;box-shadow:0 2px 12px #1e90ff4d}.de-shell-header-content{z-index:2;justify-content:space-between;align-items:center;height:100%;padding:0 24px;display:flex;position:relative}.de-shell-header-left{align-items:center;gap:12px;display:flex}.de-shell-title{color:#fff;letter-spacing:1.5px;text-shadow:0 2px 6px #0003;font-size:18px;font-weight:700}.de-shell-header-right{align-items:center;gap:12px;display:flex}.de-dashboard{background:var(--de-page-bg);width:100%;height:100%;position:relative;overflow:hidden}.de-connection-layer{pointer-events:none;z-index:0;position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.de-connection-svg{width:100%;height:100%;position:absolute;top:0;right:0;bottom:0;left:0}.de-dashboard-content{z-index:1;flex:1;grid-template-columns:minmax(300px,.86fr) minmax(420px,1.08fr) minmax(280px,.78fr);align-items:stretch;gap:12px;min-height:0;padding:8px 18px 10px;display:grid;position:relative;overflow:hidden}.de-dashboard-left,.de-dashboard-center,.de-dashboard-right{z-index:2;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.de-dashboard-left{gap:12px;overflow:hidden}.de-dashboard-center{justify-content:center;align-items:center;padding:4px 0 76px;position:relative;overflow:visible}.de-dashboard-right{overflow:hidden}.de-right-panels{grid-template-rows:minmax(0,1fr) minmax(178px,.34fr);gap:8px;height:100%;display:grid;overflow:hidden}.de-info-grid{background:linear-gradient(135deg,#4facfe0f,#00f2fe08);border:1px solid #4facfe1a;border-radius:10px;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:10px 14px;display:grid}.de-info-item{gap:6px;min-width:0;padding:6px 0;display:grid}.de-info-item label{color:#2d5a8a;font-size:14px;font-weight:700}.de-info-item span{color:#1e3a5c;word-break:break-all;font-size:15px;line-height:1.5}.de-status-working{font-weight:800;color:#0f7a44!important}.de-status-resting{font-weight:800;color:#8c5b04!important}.de-template-manager-card{flex-direction:column;flex:1;min-height:0;display:flex}.de-template-manager-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.de-template-overview{background:linear-gradient(#f6fbfff0,#e7f2fde6);border:1px solid #4facfe24;border-radius:16px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:12px;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff8c,0 2px 8px #1e90ff0a}.de-template-overview-item{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:6px;min-height:74px;padding:10px 16px 14px;display:flex;position:relative}.de-template-overview-item.active{background:linear-gradient(#e0f3fffa,#cce9fff0);box-shadow:inset 0 0 0 2px #2d8cf029}.de-template-overview-item+.de-template-overview-item{border-left:1px solid #4facfe1f}.de-template-overview-item:after{content:"";opacity:.92;border-radius:999px;height:3px;position:absolute;bottom:0;left:16px;right:16px}.de-template-overview-label{color:#6a8198;font-size:12px}.de-template-overview-value{color:#1e3a5c;font-size:34px;font-weight:700;line-height:1}.de-template-overview-item--total .de-template-overview-value{color:#0c4a6e}.de-template-overview-item--total:after{background:linear-gradient(90deg,#3b82f6b3,#7dd3fc80)}.de-template-overview-item--scheduled .de-template-overview-value{color:#8c5b04}.de-template-overview-item--scheduled:after{background:linear-gradient(90deg,#ffb83ddb,#ffd27080)}.de-template-overview-item--runnable .de-template-overview-value{color:#0369a1}.de-template-overview-item--runnable:after{background:linear-gradient(90deg,#22d3eec7,#3b82f675)}.de-template-list-scroll{flex-direction:column;flex:1;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-template-card-row{cursor:pointer;background:linear-gradient(#f4faffeb,#ebf6ffdb);border:1px solid #4facfe1f;border-radius:12px;min-height:116px;padding:10px 12px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;box-shadow:0 2px 10px #1e90ff0a,inset 0 1px #ffffff80}.de-template-card-row:hover{border-color:#4facfe7a;transform:translateY(-1px);box-shadow:0 0 0 2px #4facfe1f}.de-template-card-main{flex:1;gap:7px;min-width:0;display:grid}.de-template-card-head{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.de-template-card-name{text-overflow:ellipsis;white-space:nowrap;color:#214566;min-width:0;font-size:15px;font-weight:700;line-height:1.2;overflow:hidden}.de-template-card-desc{color:#58728e;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.45;display:-webkit-box;overflow:hidden}.de-plan-progress-bar{background:#91b5d238;border-radius:999px;height:7px;overflow:hidden}.de-plan-progress-bar span{border-radius:inherit;background:linear-gradient(90deg,#22d3eedb,#3b82f6d1);height:100%;display:block}.de-template-card-meta{color:#5b7590;justify-content:space-between;align-items:center;gap:8px;min-width:0;font-size:11px;display:flex}.de-template-card-meta span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-template-card-actions{justify-content:flex-end;gap:8px;display:flex}.de-person-card{cursor:default;transition:border-color .18s,box-shadow .18s}.de-person-card:hover{border-color:#4facfe5c;box-shadow:0 0 0 2px #4facfe1a}.de-workday-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-bottom:10px;display:grid}.de-workday-toolbar label{color:#5b7590;align-items:center;gap:8px;font-size:11px;display:flex}.de-workday-toolbar label span{white-space:nowrap;font-weight:800}.de-workday-toolbar input{color:#16324e;background:#f7fbfff5;border:1px solid #4facfe2e;border-radius:10px;min-width:0;height:32px;padding:0 10px}.de-management-sync-strip{color:#315576;background:#4facfe12;border:1px solid #4facfe24;border-radius:12px;align-items:center;gap:8px;min-height:34px;margin:-2px 0 10px;padding:7px 10px;font-size:12px;line-height:1.35;display:flex}.de-management-sync-strip>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-management-sync-strip--success{color:#176a3a;background:#1b9c5a14;border-color:#1b9c5a33}.de-management-sync-strip--warning{color:#7a5509;background:#f5ad2d1a;border-color:#f5ad2d38}.de-management-sync-strip--danger{color:#ad3434;background:#e0484814;border-color:#e0484833}.de-management-sync-failures{gap:6px;margin:-4px 0 10px;display:grid}.de-management-sync-failure{text-align:left;cursor:pointer;color:#7b4450;background:#e048480e;border:1px solid #e0484824;border-radius:10px;grid-template-columns:56px 54px minmax(54px,.7fr) minmax(0,1.6fr);align-items:center;gap:8px;width:100%;min-height:28px;padding:6px 9px;font-family:inherit;font-size:11px;display:grid}.de-management-sync-failure:hover{border-color:#e0484847;box-shadow:0 0 0 2px #e048480f}.de-management-sync-failure span,.de-management-sync-failure em,.de-management-sync-failure small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-management-sync-failure strong{color:#ad3434;font-weight:800}.de-management-sync-failure em{color:#59738b;font-style:normal}.de-management-sync-failure small{color:#6d5260}.de-duty-card{min-height:120px}.de-duty-card--selected{border-color:#20bf6b6b;box-shadow:inset 4px 0 #20bf6ba3,0 0 0 2px #20bf6b14}.de-duty-card--running{border-color:#ffb83d70;box-shadow:inset 4px 0 #ffb83db8,0 0 0 2px #ffb83d1a}.de-duty-card--disabled{cursor:pointer;opacity:.7;filter:grayscale(.28);background:linear-gradient(#f6f8faeb,#ecf1f5db)}.de-duty-card-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.de-duty-card-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.de-duty-card-actions .de-btn-sm{white-space:nowrap;min-height:26px;padding:4px 9px}.de-duty-selected-mark{color:#60758a;background:#94a3b81f;border-radius:999px;justify-content:center;align-items:center;min-width:42px;height:24px;font-size:11px;font-weight:700;display:inline-flex}.de-duty-selected-mark.active{color:#0f7a44;background:#20bf6b24}.de-task-date-context{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;margin-top:8px;display:flex}.de-template-manager-body>.de-task-date-context{background:#f4faffc2;border:1px solid #4facfe1a;border-radius:11px;margin:-2px 0 8px;padding:7px 8px}.de-task-date-context span{color:#0c5a85;background:#4facfe1f;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:800;display:inline-flex}.de-task-date-context em{color:#58728e;flex:1;min-width:0;font-size:11px;font-style:normal;line-height:1.35}.de-task-date-context .de-btn-sm{border-radius:9px;min-height:26px;padding:0 9px}.de-task-manager-preview{background:#f7fbffd1;border:1px solid #4facfe1f;border-radius:14px;flex:1;align-content:start;gap:8px;min-height:0;padding:10px;display:grid;overflow:hidden}.de-task-manager-preview-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;overflow-y:auto}.de-task-manager-preview-head{z-index:1;color:#5b7590;background:#f7fbfff5;justify-content:space-between;align-items:center;gap:8px;min-height:28px;padding:0 2px 6px;font-size:11px;display:flex;position:sticky;top:0}.de-task-manager-preview-head strong{color:#143450;font-size:12px}.de-task-manager-preview-row{color:#173550;text-align:left;min-width:0;font:inherit;background:#ffffffc7;border:1px solid #4facfe1f;border-radius:11px;gap:4px;padding:9px 10px;display:grid}.de-task-manager-preview-row.is-selected{border-color:#20bf6b5c;box-shadow:inset 3px 0 #20bf6b94}.de-template-task-main{min-width:0;color:inherit;text-align:left;font:inherit;cursor:pointer;background:0 0;border:0;gap:4px;padding:0;display:grid}.de-template-task-main:hover strong{color:#0877c7}.de-template-task-main strong,.de-template-task-main span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.de-template-task-main strong{font-size:13px}.de-template-task-main span{color:#5b7590;font-size:11px}.de-template-task-list .de-task-manager-preview-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px}.de-template-item-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.de-template-item-actions .de-btn-sm,.de-duty-card-actions .de-btn-sm{justify-content:center;align-items:center;gap:4px;display:inline-flex}.de-task-manager-modal-overlay{z-index:260;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0d24373d;justify-content:center;align-items:center;padding:26px;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.de-plan-action-overlay{z-index:320}.de-task-manager-modal{background:linear-gradient(#fcfefff5,#e7f3fff0);border:1px solid #4facfe33;border-radius:20px;grid-template-rows:auto minmax(0,1fr);gap:16px;width:min(1040px,100vw - 56px);max-height:min(760px,100vh - 54px);padding:18px;display:grid;box-shadow:0 24px 70px #1537543d,inset 0 1px #fff9}.de-task-manager-modal-head{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.de-task-manager-modal-head h3{color:#12344f;margin:2px 0 4px;font-size:22px}.de-task-manager-modal-head p{color:#58728e;margin:0;font-size:13px;line-height:1.55}.de-workday-guide-modal{grid-template-rows:auto auto minmax(0,1fr);width:min(1120px,100vw - 56px)}.de-workday-guide-head h3{font-size:24px}.de-workday-guide-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.de-workday-guide-step{background:#ffffffbd;border:1px solid #4facfe24;border-radius:14px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:4px 8px;min-width:0;padding:10px 11px;display:grid}.de-workday-guide-step span{color:#fff;background:linear-gradient(135deg,#1e90ff,#20bf6b);border-radius:999px;grid-row:span 2;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:800;display:inline-flex}.de-workday-guide-step strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.de-workday-guide-step p{color:#5b7590;min-width:0;margin:0;font-size:11px;line-height:1.38}.de-workday-guide-body{grid-template-columns:minmax(0,1.35fr) minmax(280px,.72fr);gap:14px;min-height:0;display:grid}.de-workday-guide-column{grid-template-rows:auto minmax(0,1fr)}.de-workday-guide-duty-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.de-workday-guide-duty-list .de-duty-card{grid-template-columns:78px minmax(0,1fr);gap:9px;min-height:116px;display:grid}.de-duty-card--guide .de-template-card-desc{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.de-workday-guide-side{background:#f7fbffeb;border:1px solid #4facfe24;border-radius:16px;align-content:start;gap:10px;min-height:0;padding:12px;display:grid;overflow-y:auto}.de-workday-guide-summary{background:#ffffffc7;border:1px solid #4facfe1f;border-radius:13px;gap:5px;padding:11px;display:grid}.de-workday-guide-summary span{color:#5b7590;font-size:11px;font-weight:700}.de-workday-guide-summary strong{color:#12344f;font-size:16px}.de-workday-guide-summary p{color:#58728e;margin:0;font-size:12px;line-height:1.5}.de-workday-guide-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.de-task-manager-modal-body{grid-template-columns:minmax(0,1.3fr) minmax(300px,.78fr);gap:14px;min-height:0;display:grid}.de-task-manager-column{background:#f7fbffe6;border:1px solid #4facfe24;border-radius:16px;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-task-manager-section-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.de-task-manager-section-head strong{color:#143450;font-size:15px;display:block}.de-task-manager-section-head span{color:#5b7590;margin-top:3px;font-size:11px;display:block}.de-task-manager-duty-list,.de-task-manager-decision-list{flex-direction:column;gap:8px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-task-manager-duty-list .de-duty-card{grid-template-columns:86px minmax(0,1fr);gap:10px;min-height:104px;display:grid}.de-task-manager-duty-check{color:#315576;border-right:1px solid #4facfe1a;align-content:center;justify-items:center;gap:8px;min-width:0;font-size:12px;font-weight:700;display:grid}.de-task-manager-duty-check input{accent-color:#20bf6b;width:22px;height:22px}.de-task-manager-duty-check input:disabled{opacity:.48}.de-task-manager-decision-card{color:#16324e;background:#fffc;border:1px solid #4facfe1f;border-radius:12px;gap:8px;padding:11px 12px;display:grid}.de-task-manager-decision-card p{color:#58728e;margin:0;font-size:12px;line-height:1.48}.de-event-detail-modal,.de-event-history-modal{background:linear-gradient(#fcfefff7,#e7f3fff2);border:1px solid #4facfe33;border-radius:20px;grid-template-rows:auto auto auto;gap:14px;width:min(760px,100vw - 52px);max-height:min(720px,100vh - 48px);padding:18px;display:grid;box-shadow:0 24px 70px #1537543d,inset 0 1px #fff9}.de-event-history-modal{grid-template-rows:auto auto minmax(0,1fr);width:min(1080px,100vw - 56px)}.de-plan-action-modal{background:linear-gradient(#fcfefff7,#e8f4fff2);border:1px solid #4facfe38;border-radius:20px;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;width:min(640px,100vw - 56px);max-height:min(680px,100vh - 48px);padding:18px;display:grid;box-shadow:0 24px 70px #1537543d,inset 0 1px #ffffff9e}.de-plan-action-body{gap:12px;min-height:0;display:grid;overflow:auto}.de-plan-action-field{color:#41627f;gap:6px;font-size:12px;display:grid}.de-plan-action-field input{color:#173550;background:#ffffffe6;border:1px solid #4facfe33;border-radius:11px;height:36px;padding:0 12px}.de-plan-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.de-event-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.de-event-detail-grid>div,.de-event-detail-result{background:#f7fbffeb;border:1px solid #4facfe24;border-radius:12px;gap:4px;min-width:0;padding:10px 11px;display:grid}.de-event-detail-grid span,.de-event-detail-result span,.de-event-history-row em{color:#5b7590;font-size:11px;font-style:normal;font-weight:700}.de-event-detail-grid strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;line-height:1.36;overflow:hidden}.de-event-detail-result p{color:#173550;margin:0;font-size:13px;line-height:1.55}.de-sync-attempt-history{background:#f7fbffd1;border:1px solid #7ea3c233;border-radius:14px;gap:8px;padding:14px;display:grid}.de-sync-attempt-history>span{color:#6f8196;font-size:12px;font-weight:800}.de-sync-attempt-list{gap:8px;display:grid}.de-sync-attempt-row{background:#ffffffb8;border-radius:12px;gap:5px;padding:9px 10px;display:grid}.de-sync-attempt-row>div{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.de-sync-attempt-row strong{color:#153754;font-size:12px}.de-sync-attempt-row em{font-size:12px;font-style:normal;font-weight:800}.de-sync-attempt-row span,.de-sync-attempt-row small{color:#667b90;font-size:12px}.de-sync-attempt-row small{text-overflow:ellipsis;white-space:nowrap;line-height:1.45;overflow:hidden}.de-sync-attempt-row--success em{color:#23805d}.de-sync-attempt-row--danger em{color:#bb3b3b}.de-sync-attempt-row--info em{color:#2e6fa5}.de-event-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.de-event-modal-actions .de-btn-sm{align-items:center;gap:6px;display:inline-flex}.de-event-history-toolbar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.de-event-history-list{align-content:start;gap:8px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.de-event-history-row{color:#16324e;text-align:left;width:100%;min-height:64px;font:inherit;cursor:pointer;background:#f8fbfff5;border:1px solid #4facfe21;border-left:4px solid #4facfe6b;border-radius:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(78px,.58fr) minmax(0,1.36fr);align-items:stretch;gap:8px;padding:8px 9px;display:grid}.de-event-history-row span{align-content:start;gap:3px;min-width:0;display:grid}.de-event-history-row strong{color:#173550;-webkit-line-clamp:2;-webkit-box-orient:vertical;min-width:0;font-size:12px;line-height:1.35;display:-webkit-box;overflow:hidden}.de-event-history-row small{color:#6d8499;font-size:10px;line-height:1.1}.de-workday-execution{min-height:260px}.de-workday-execution--clickable{cursor:pointer;transition:border-color .16s,box-shadow .16s}.de-workday-execution--clickable:hover{border-color:#4facfe57;box-shadow:0 14px 34px #267dbf24,inset 0 1px #ffffff9e}.de-workday-execution--clickable:focus-visible{outline-offset:2px;outline:2px solid #4facfe8f}.de-workday-execution--clickable button,.de-workday-execution--clickable input{cursor:pointer}.de-live-feed{align-content:start;gap:8px;min-height:0;display:grid;overflow:hidden}.de-live-feed-row{border-left:4px solid #4facfe61;min-height:66px;animation:.28s both deFeedIn;position:relative}.de-live-feed-row--running{border-left-color:#ffb83de6}.de-live-feed-row--success{border-left-color:#20bf6bd1}.de-live-feed-row--danger{border-left-color:#f46060d1}.de-live-feed-row--warning{border-left-color:#ffb83de6}.de-workday-execution-body{grid-template-rows:auto minmax(96px,.58fr) auto minmax(0,1fr);gap:8px;min-height:0;display:grid;overflow:hidden}.de-execution-status-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.de-execution-status-strip span{background:#f7fbfff0;border:1px solid #4facfe1f;border-radius:10px;gap:3px;min-width:0;padding:7px 8px;display:grid}.de-execution-status-strip em{color:#5b7590;white-space:nowrap;font-size:11px;font-style:normal}.de-execution-status-strip strong{color:#12344f;font-size:18px;line-height:1}.de-task-summary-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding-right:4px;overflow-y:auto}.de-task-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;min-height:0;display:grid}.de-task-summary-scroll .de-task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.de-task-summary-card{text-align:left;cursor:pointer;background:#f7fbffe6;border:1px solid #4facfe24;border-radius:11px;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:5px 6px;min-width:0;min-height:84px;padding:8px;display:grid}.de-task-summary-card:hover{border-color:#4facfe6b;box-shadow:0 0 0 2px #4facfe1a}.de-task-summary-title{text-overflow:ellipsis;white-space:nowrap;color:#143450;min-width:0;font-size:12px;font-weight:800;overflow:hidden}.de-task-summary-counts{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.de-task-summary-counts span{background:#ffffffbd;border:1px solid #4facfe1a;border-radius:9px;gap:2px;min-width:0;padding:6px;display:grid}.de-task-summary-counts em{color:#5b7590;font-size:10px;font-style:normal;line-height:1}.de-task-summary-counts strong{color:#0c4a6e;font-size:15px;line-height:1}.de-stage-feed-tools{justify-content:space-between;align-items:center;gap:8px;min-width:0;min-height:30px;padding:4px 2px 0;display:flex}.de-stage-feed-tools>span{color:#55718b;white-space:nowrap;font-size:11px;font-weight:700}.de-stage-feed-tools>div{align-items:center;gap:6px;min-width:0;display:flex}.de-task-agent-control-strip{gap:6px;min-width:0;display:grid}.de-task-agent-control{background:#f7fbffe6;border:1px solid #4facfe24;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;min-width:0;padding:7px 8px;display:grid}.de-task-agent-control-main{gap:2px;min-width:0;display:grid}.de-task-agent-control-main span{color:#0c5a85;font-size:10px;font-weight:800;line-height:1}.de-task-agent-control-main strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.25;overflow:hidden}.de-task-agent-control-main small{color:#58728e;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;line-height:1.25;overflow:hidden}.de-task-agent-control-actions{align-items:center;gap:5px;min-width:0;display:flex}.de-task-agent-control-actions .de-btn-sm{justify-content:center;min-width:58px}.de-task-agent-cancel-btn{color:#b42318;border-color:#b4231838}.de-run-detail-list-scroll{overscroll-behavior:contain;scrollbar-gutter:stable}.de-run-detail-panel{grid-template-rows:auto minmax(0,1fr);gap:8px;min-height:0;display:grid}.de-run-detail-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.de-run-detail-head span{color:#12344f;font-size:14px;font-weight:800}.de-run-detail-head small{color:#5b7590;font-size:11px}.de-run-detail-list{align-content:start;gap:6px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.de-run-detail-row{color:#173550;text-align:left;background:#f7fbffe0;border:1px solid #4facfe1f;border-radius:10px;grid-template-columns:50px minmax(72px,.95fr) minmax(70px,.85fr) 74px minmax(90px,1.2fr);align-items:center;gap:7px;min-width:0;padding:7px 8px;font-size:11px;display:grid}.de-run-detail-row--head{z-index:1;color:#29577f;cursor:default;background:#dcecfcfa;font-weight:800;position:sticky;top:0}.de-run-detail-row strong,.de-run-detail-row span,.de-run-detail-row em{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.de-run-detail-row em{color:#58728e;font-style:normal}.de-run-detail-row i{min-height:20px;padding:0 7px;font-size:10px;font-style:normal}.de-workday-result{min-height:0;overflow:auto}.de-workday-result-summary{color:#173550;margin:0;font-size:13px;line-height:1.55}.de-artifact-pills{flex-wrap:wrap;gap:8px;display:flex}.de-artifact-source-list{gap:8px;max-height:320px;padding-right:4px;display:grid;overflow-y:auto}.de-artifact-source-row{background:#f4faff9e;border:1px solid #4facfe1f;border-radius:8px;grid-template-columns:minmax(120px,1fr) minmax(88px,140px) auto;align-items:center;gap:4px 10px;padding:9px 10px;display:grid}.de-artifact-source-row strong{min-width:0;color:var(--de-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.de-artifact-source-row span{color:var(--de-text-muted);text-overflow:ellipsis;white-space:nowrap;text-align:right;font-size:12px;overflow:hidden}.de-artifact-source-row code,.de-artifact-source-row em{min-width:0;color:var(--de-text-body);text-overflow:ellipsis;white-space:nowrap;grid-column:1/-1;font-size:12px;font-style:normal;overflow:hidden}.de-artifact-source-actions{justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.de-artifact-source-meta{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:6px;min-width:0;display:flex}.de-artifact-source-meta span{color:#315a78;text-align:left;background:#4facfe14;border-radius:6px;width:auto;max-width:160px;padding:2px 6px}.de-icon-btn{color:#275a82;cursor:pointer;background:#ffffffc7;border:1px solid #4facfe2e;border-radius:6px;place-items:center;width:28px;height:28px;display:inline-grid}.de-icon-btn:hover:not(:disabled){background:#fff;border-color:#4facfe73}.de-icon-btn:disabled{cursor:not-allowed;opacity:.42}.de-inline-notice{color:var(--de-text-muted);margin:8px 0 0;font-size:12px}.de-artifact-preview{background:#ffffffc7;border:1px solid #4facfe24;border-radius:8px;margin-top:10px;overflow:hidden}.de-artifact-preview>div{border-bottom:1px solid #4facfe1a;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.de-artifact-preview pre{white-space:pre-wrap;word-break:break-word;max-height:220px;color:var(--de-text-body);margin:0;padding:10px;font-size:12px;line-height:1.55;overflow:auto}.de-artifact-retention-actions{flex-wrap:wrap;justify-content:flex-start!important}.de-artifact-version-list{gap:6px;border-bottom:0!important;justify-content:stretch!important;align-items:stretch!important;display:grid!important}.de-artifact-version-list div{background:#f4faffc7;border-radius:6px;grid-template-columns:minmax(72px,120px) minmax(90px,1fr);align-items:center;gap:2px 10px;padding:8px;display:grid}.de-artifact-version-list strong{color:var(--de-text-primary);font-size:12px}.de-artifact-version-list span,.de-artifact-version-list em{min-width:0;color:var(--de-text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;overflow:hidden}.de-artifact-version-list em{grid-column:1/-1}.de-decision-card{background:#f7fbfff5}.de-decision-chain-note{color:#60758a;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:12px;line-height:1.45;display:flex}@keyframes deFeedIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.de-skill-manager-card{flex-direction:column;flex:1;min-height:0;display:flex}.de-skill-manager-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.de-skill-overview{background:linear-gradient(#f6fbfff0,#e7f2fde6);border:1px solid #4facfe24;border-radius:18px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-bottom:12px;display:grid;overflow:hidden;box-shadow:inset 0 1px #ffffff8c,0 2px 8px #1e90ff0a}.de-skill-overview-item{flex-direction:column;justify-content:center;gap:6px;min-height:74px;padding:10px 16px 14px;display:flex;position:relative}.de-skill-overview-item+.de-skill-overview-item{border-left:1px solid #4facfe1f}.de-skill-overview-item:after{content:"";opacity:.92;border-radius:999px;height:3px;position:absolute;bottom:0;left:16px;right:16px}.de-skill-overview-label{color:#6a8198;font-size:12px}.de-skill-overview-value{color:#1e3a5c;font-size:34px;font-weight:700;line-height:1}.de-skill-overview-item--total .de-skill-overview-value{color:#0c4a6e}.de-skill-overview-item--total:after{background:linear-gradient(90deg,#3b82f6b3,#7dd3fc80)}.de-skill-overview-item--learned .de-skill-overview-value{color:#0369a1}.de-skill-overview-item--learned:after{background:linear-gradient(90deg,#22d3eec7,#3b82f675)}.de-skill-overview-item--unlearned .de-skill-overview-value{color:#c2410c}.de-skill-overview-item--unlearned:after{background:linear-gradient(90deg,#fb923cdb,#ffcd7c80)}.de-skill-tabs{background:#1e90ff0d;border:1px solid #4facfe14;border-radius:16px;gap:0;margin-bottom:12px;padding:2px;display:flex}.de-skill-tab{text-align:center;color:#4a6a8a;cursor:pointer;background:0 0;border:none;border-radius:14px;flex:1;padding:8px 10px;font-size:14px;transition:all .3s}.de-skill-tab.active{color:#fff;background:linear-gradient(135deg,#4facfee6,#00f2fed9);font-weight:700;box-shadow:0 2px 8px #4facfe40}.de-category-slider{grid-template-columns:28px minmax(0,1fr) 28px;align-items:center;gap:8px;margin-bottom:12px;display:grid}.de-category-nav{color:#4a6a8a;cursor:pointer;background:#f0f8ffb3;border:1px solid #4facfe1f;border-radius:999px;width:28px;height:28px;font-size:18px;line-height:1}.de-category-tags{scrollbar-width:none;gap:8px;padding:2px 4px 2px 0;display:flex;overflow-x:auto}.de-category-tags::-webkit-scrollbar{display:none}.de-workbench-table-wrap,.de-log-list,.de-shell-body{scrollbar-width:thin;scrollbar-color:#2ea1ffcc #c9e3fc7a}.de-workbench-table-wrap::-webkit-scrollbar{width:10px}.de-log-list::-webkit-scrollbar{width:10px}.de-shell-body::-webkit-scrollbar{width:10px}.de-workbench-table-wrap::-webkit-scrollbar-track{background:linear-gradient(#e7f3ffe0,#d2e6fa94);border:1px solid #97c6ee80;border-radius:999px}.de-log-list::-webkit-scrollbar-track{background:linear-gradient(#e7f3ffe0,#d2e6fa94);border:1px solid #97c6ee80;border-radius:999px}.de-shell-body::-webkit-scrollbar-track{background:linear-gradient(#e7f3ffe0,#d2e6fa94);border:1px solid #97c6ee80;border-radius:999px}.de-workbench-table-wrap::-webkit-scrollbar-thumb{background:linear-gradient(#46b3fffa,#2490f4f2);border:1px solid #ffffffd1;border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 0 8px #4facfe2e}.de-log-list::-webkit-scrollbar-thumb{background:linear-gradient(#46b3fffa,#2490f4f2);border:1px solid #ffffffd1;border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 0 8px #4facfe2e}.de-shell-body::-webkit-scrollbar-thumb{background:linear-gradient(#46b3fffa,#2490f4f2);border:1px solid #ffffffd1;border-radius:999px;box-shadow:inset 0 1px #ffffff8c,0 0 8px #4facfe2e}.de-workbench-table-wrap::-webkit-scrollbar-thumb:hover{background:linear-gradient(#3aaaff,#1780e7fa)}.de-log-list::-webkit-scrollbar-thumb:hover{background:linear-gradient(#3aaaff,#1780e7fa)}.de-shell-body::-webkit-scrollbar-thumb:hover{background:linear-gradient(#3aaaff,#1780e7fa)}.de-tag{text-align:center;color:#4a6a8a;cursor:pointer;background:#1e90ff0f;border:1px solid #4facfe14;border-radius:999px;flex:none;min-width:58px;padding:8px 14px;font-size:13px;transition:all .3s}.de-tag-label{text-align:center;font-weight:600;display:block}.de-tag.active{color:#fff;background:linear-gradient(135deg,#4facfee6,#00f2fed9);border-color:#0000;box-shadow:0 4px 10px #4facfe2e}.de-skill-list-scroll{flex-direction:column;flex:1;gap:6px;min-height:0;padding-right:4px;display:flex;overflow-y:auto}.de-skill-card-row{background:linear-gradient(#f4faffeb,#ebf6ffdb);border:1px solid #4facfe1f;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:8px 12px;display:flex;box-shadow:0 2px 10px #1e90ff0a,inset 0 1px #ffffff80}.de-skill-card-row--clickable{cursor:pointer;transition:border-color .18s,box-shadow .18s,transform .18s}.de-skill-card-row--clickable:hover{border-color:#4facfe7a;transform:translateY(-1px);box-shadow:0 0 0 2px #4facfe1f}.de-skill-card-main{flex:1;gap:6px;min-width:0;display:grid}.de-skill-card-name{color:#214566;text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:600;line-height:1.2;overflow:hidden}.de-skill-card-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.de-skill-card-badge,.de-skill-card-schedule{color:#41627f;background:#4facfe14;border:1px solid #4facfe1f;border-radius:999px;align-items:center;min-height:24px;padding:0 10px;font-size:12px;display:inline-flex}.de-skill-card-actions{align-items:center;gap:8px;display:flex}.de-skill-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#59adf5eb,#3ad6f3e6);border:none;border-radius:999px;min-width:68px;padding:7px 14px;font-size:13px;font-weight:600;box-shadow:0 2px 8px #4facfe29}.de-skill-btn--danger{background:linear-gradient(135deg,#ff9669eb,#ff785eeb)}.de-skill-btn:disabled{cursor:not-allowed;opacity:.62;box-shadow:none}.de-avatar-wrapper{flex:1;width:100%;max-width:780px;min-height:520px;position:relative}.de-speech-bubble{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:12;pointer-events:auto;background:linear-gradient(#fcfeffc7,#e1eeffad);border:1px solid #4facfe38;border-radius:24px 24px 24px 12px;width:min(100%,320px);max-width:320px;padding:16px 16px 14px;position:absolute;top:24%;right:2%;box-shadow:0 14px 28px #1e3a5c1a,inset 0 1px #ffffff94}.de-speech-label{color:#27567f;letter-spacing:.08em;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.de-speech-text{color:#16324e;min-height:60px;font-size:13px;line-height:1.52}.de-speech-bubble--employee{border-radius:18px 18px 18px 8px;box-shadow:0 10px 22px #1e3a5c1a,inset 0 1px #ffffff94}.de-speech-bubble--employee .de-speech-text{min-height:0;margin:0 0 8px}.de-speech-workflow{text-align:left;cursor:pointer;background:#f7fbffc7;border:1px solid #4facfe29;border-radius:12px;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;width:100%;min-width:0;padding:8px 9px;display:grid}.de-speech-workflow:hover{background:#eff8ffeb;border-color:#4facfe61}.de-speech-workflow:focus-visible{outline-offset:2px;outline:2px solid #4facfe8f}.de-speech-workflow span{color:#0c5a85;white-space:nowrap;font-size:10px;font-weight:800;line-height:1.35}.de-speech-workflow strong{color:#143450;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:12px;line-height:1.35;overflow:hidden}.de-speech-workflow small{color:#58728e;-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-column:2;min-width:0;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.de-speech-workflow span:last-of-type,.de-speech-workflow span:last-of-type+small{margin-top:3px}.de-workbench{background:linear-gradient(#ffffffc7,#ebf4fff0);border:1px solid #4facfe29;border-radius:14px;grid-template-rows:auto minmax(0,1fr);gap:10px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-workbench-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.de-workbench>.de-card-title-bar{border-radius:14px 14px 0 0;min-height:42px;margin:-12px -12px 0}.de-workbench-head--bar{flex-wrap:nowrap}.de-workbench-head--bar:after,.de-report-summary-head--bar:after{content:none}.de-workbench-title-row{align-items:baseline;gap:10px;min-width:0;display:flex}.de-workbench-title-row h3{color:#143450;margin:0;font-size:16px}.de-workbench-count{color:#5b7590;white-space:nowrap;font-size:11px}.de-workbench-table-wrap{background:#f7fbffeb;border:1px solid #4facfe24;border-radius:12px;min-height:0;overflow-y:auto}.de-workbench-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%;font-size:12px}.de-workbench-table th{z-index:1;color:#29577f;text-align:left;background:#dcecfcfa;border-bottom:1px solid #4facfe14;padding:9px 8px;font-weight:700;position:sticky;top:0}.de-workbench-table td{color:#173550;vertical-align:top;border-bottom:1px solid #4facfe14;padding:9px 8px}.de-workbench-clickable-row{cursor:pointer;transition:background .18s,box-shadow .18s}.de-workbench-clickable-row:hover{background:#4facfe1a;box-shadow:inset 3px 0 #2ca8ffb8}.de-workbench-empty{text-align:center;color:#6b849d;padding:40px 12px}.de-workbench-task-name{color:#16324e;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.de-workbench-desc{color:#58728e;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.de-workbench-plan-progress{color:#5b7590;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.de-workbench-actions{flex-wrap:wrap;gap:6px;display:flex}.de-workbench-actions button{color:#22659a;cursor:pointer;background:#4facfe24;border:none;border-radius:999px;min-height:28px;padding:0 9px;font-size:11px}.de-workbench-action-accent{color:#8c5b04!important;background:#ffb83d33!important}.de-log-panel{background:linear-gradient(#ffffffc2,#eaf3fff0);border:1px solid #4facfe29;border-radius:14px;grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-log-panel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.de-log-panel-title-row{align-items:baseline;gap:10px;min-width:0;display:flex}.de-log-panel-title-row h3{color:#143450;margin:0;font-size:16px}.de-log-panel-title-row p{color:#5b7590;margin:0;font-size:11px}.de-log-list{justify-content:center;align-items:center;min-height:0;display:flex;overflow-y:auto}.de-report-summary{background:linear-gradient(#ffffffc2,#e7f2fff0);border:1px solid #4facfe29;border-radius:14px;gap:10px;min-height:0;padding:12px;display:grid;overflow:hidden}.de-report-summary-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.de-report-summary>.de-card-title-bar{border-radius:14px 14px 0 0;min-height:42px;margin:-12px -12px 0}.de-report-summary-head--bar{flex-wrap:nowrap}.de-report-summary-title-row{align-items:baseline;gap:10px;min-width:0;display:flex}.de-report-summary-title-row h3{color:#143450;margin:0;font-size:16px}.de-report-badge{font:inherit;cursor:pointer;border:0;border-radius:999px;align-items:center;padding:6px 12px;font-size:12px;font-weight:700;display:inline-flex}.de-report-badge:hover{box-shadow:0 0 0 2px #4facfe24}.de-report-badge--waiting{color:#8c5b04;background:#ffb83d2e}.de-report-badge--ready{color:#0f7a44;background:#20bf6b24}.de-report-summary-body{gap:10px;display:grid}.de-report-schedule-row{grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:8px;display:grid}.de-report-schedule-row label{color:#5b7590;grid-column:1/-1;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:800;display:flex}.de-report-schedule-row input{color:#16324e;background:#f7fbfff5;border:1px solid #4facfe2e;border-radius:9px;min-width:0;height:30px;padding:0 9px}.de-report-download-btn,.de-report-preview-btn{white-space:nowrap;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:30px;display:inline-flex}.de-report-download-btn:not(:disabled){color:#0c5a85;background:linear-gradient(#ebf8fffa,#c8e9ffe6);border-color:#2ca8ff6b;box-shadow:0 4px 10px #2ca8ff1f,inset 0 1px #ffffffad}.de-report-download-btn:disabled{opacity:.5;cursor:not-allowed}.de-report-preview-overlay{z-index:330}.de-report-preview-modal{background:linear-gradient(#fcfefffa,#e9f5fff5);border:1px solid #4facfe33;border-radius:20px;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px;width:min(780px,100vw - 56px);max-height:min(720px,100vh - 54px);padding:18px;display:grid;box-shadow:0 24px 70px #15375442,inset 0 1px #ffffff9e}.de-report-preview-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.de-report-preview-summary div{background:#f7fbfff5;border:1px solid #4facfe1f;border-radius:12px;justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:9px 10px;display:flex}.de-report-preview-summary span{color:#5b7590;white-space:nowrap;font-size:12px}.de-report-preview-summary strong{color:#16324e;font-size:20px;line-height:1}.de-report-preview-content{scrollbar-gutter:stable;background:#f7fbffdb;border:1px solid #4facfe1f;border-radius:14px;align-content:start;gap:10px;min-height:0;max-height:min(460px,100vh - 260px);padding:14px;display:grid;overflow-y:auto}.de-report-preview-content p{color:#173550;margin:0;font-size:13px;line-height:1.65}.de-report-actions{gap:10px;display:flex}.de-report-generate-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#2ca8ff,#00c6ff);border:none;border-radius:12px;min-width:118px;padding:10px 16px;font-size:14px;font-weight:700}.de-report-generate-btn:disabled{opacity:.6;cursor:not-allowed}.de-report-download{color:#16324e;background:#ffffffe6;border:1px solid #4facfe29;border-radius:12px;flex:1;align-items:center;padding:10px 16px;font-size:14px;display:flex}.de-report-download--disabled{opacity:.55}.de-report-meta{gap:4px;display:grid}.de-report-meta p{color:#5b7590;margin:0;font-size:12px}.de-profile-settings-modal{background:linear-gradient(#fafdfffa,#e8f4fffa);border:1px solid #4facfe38;border-radius:18px;grid-template-rows:auto minmax(0,1fr) auto;gap:14px;width:min(520px,100%);max-height:min(720px,100vh - 48px);padding:18px;display:grid;box-shadow:0 24px 60px #1d436d2e}.de-profile-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.de-profile-settings-grid label,.de-profile-status-toggle{color:#5b7590;gap:6px;font-size:12px;font-weight:800;display:grid}.de-profile-settings-grid input{color:#16324e;background:#f7fbfff5;border:1px solid #4facfe2e;border-radius:10px;min-width:0;height:36px;padding:0 10px}.de-profile-status-toggle div{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.de-profile-status-toggle button{color:#22659a;cursor:pointer;background:#4facfe1a;border:1px solid #4facfe2e;border-radius:10px;min-height:36px;font-weight:800}.de-profile-status-toggle button.active{color:#fff;background:var(--de-btn-gradient-active);border-color:#0000;box-shadow:0 2px 8px #4facfe38}.de-gender-toggle{gap:0;display:flex}.de-gender-btn{color:#1e90ff80;cursor:pointer;background:#ffffff80;border:1px solid #4facfe40;padding:8px 36px;font-size:15px;font-weight:700;transition:all .3s;transform:skew(-15deg)}.de-gender-btn:first-child{border-radius:10px 0 0 10px}.de-gender-btn:last-child{border-radius:0 10px 10px 0}.de-gender-btn span{display:inline-block;transform:skew(15deg)}.de-gender-btn.active{color:#fff;background:linear-gradient(135deg,#4facfe,#00f2fe);border-color:#0000;box-shadow:0 3px 12px #4facfe66}.de-skin-row{-webkit-backdrop-filter:blur(20px)saturate(1.2);backdrop-filter:blur(20px)saturate(1.2);background:#e6f2ffbf;border:1px solid #4facfe38;border-radius:12px;gap:6px;margin-top:8px;padding:8px 10px;display:flex;box-shadow:0 4px 24px #1e90ff14}.de-skin-option{cursor:pointer;background:#ffffff4d;border:2px solid #0000;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:5px 8px;transition:all .3s;display:flex}.de-skin-option.active{background:linear-gradient(135deg,#4facfe33,#00f2fe26);border-color:#4facfe;box-shadow:0 0 12px #4facfe4d}.de-skin-preview{background:#ffffff80;border-radius:6px;width:38px;height:50px;overflow:hidden}.de-skin-preview img{object-fit:contain;object-position:center top;width:100%;height:100%}.de-skin-label{color:#4a6a8a;white-space:nowrap;font-size:11px}.de-shell-body{flex:1;min-height:0;position:relative;overflow:hidden auto}.de-dashboard .de-card{margin:0}.de-dashboard .de-card-body{padding:14px 16px}@media(max-width:1280px){.de-mission-center-page{padding:10px 12px}.de-dashboard{height:auto;min-height:calc(100vh - 60px)}.de-dashboard-content{grid-template-columns:minmax(248px,.76fr) minmax(340px,1.18fr) minmax(248px,.68fr);gap:8px;padding:7px 8px 72px;overflow:hidden}.de-dashboard-center{min-height:0;padding:0 0 44px;overflow:visible}.de-right-panels{grid-template-rows:minmax(0,1fr) minmax(158px,.34fr);gap:8px;overflow:hidden}.de-workbench-table-wrap,.de-log-list{max-height:none}.de-speech-bubble{width:min(260px,100% + 12px);padding:8px 10px;top:24%;left:50%;right:auto;transform:translate(-50%)}.de-card{border-radius:10px}.de-card-body{padding:10px 12px}.de-card-title-bar{padding:7px 13px}.de-card-title-bar-text{letter-spacing:.5px;font-size:14px}.de-badge{min-height:20px;padding:0 8px;font-size:11px}.de-speech-label{margin-bottom:5px;font-size:11px}.de-speech-text{min-height:36px;font-size:11px;line-height:1.4}.de-speech-bubble--employee .de-speech-text{min-height:0}.de-speech-workflow{gap:2px 6px;padding:7px 8px}.de-speech-workflow strong{font-size:11px}.de-speech-workflow small{-webkit-line-clamp:1;font-size:10px}.de-avatar-wrapper{max-width:560px;min-height:420px}.de-avatar-img{max-width:96%;height:56vh;max-height:470px;margin-bottom:-10px}.de-avatar-glass-space{width:100%;max-width:360px}.de-skin-switch{bottom:5px!important}.de-gender-btn{padding:6px 24px;font-size:13px}.de-skin-row{gap:5px;margin-top:6px;padding:6px 8px}.de-skin-preview{width:28px;height:36px}.de-skin-option{padding:3px 6px}.de-skin-label{font-size:10px}.de-info-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:7px 10px}.de-info-item{gap:3px;padding:4px 0}.de-info-item label{font-size:12px}.de-info-item span{font-size:13px;line-height:1.4}.de-template-overview,.de-skill-overview{border-radius:14px;margin-bottom:8px}.de-template-overview-item,.de-skill-overview-item{gap:4px;min-height:54px;padding:7px 10px 10px}.de-template-overview-label,.de-skill-overview-label{font-size:11px}.de-template-overview-value,.de-skill-overview-value{font-size:24px}.de-skill-tabs{border-radius:12px;margin-bottom:8px}.de-skill-tab{border-radius:10px;padding:6px 8px;font-size:12px}.de-category-slider{grid-template-columns:24px minmax(0,1fr) 24px;gap:6px;margin-bottom:8px}.de-category-nav{width:24px;height:24px;font-size:16px}.de-tag{min-width:50px;padding:6px 11px;font-size:12px}.de-workbench,.de-log-panel,.de-report-summary{border-radius:12px;gap:8px;padding:10px}.de-workbench-head,.de-log-panel-head,.de-report-summary-head{align-items:flex-start}.de-workbench-title-row,.de-log-panel-title-row,.de-report-summary-title-row{gap:2px;display:grid}.de-workbench-title-row h3,.de-log-panel-title-row h3,.de-report-summary-title-row h3{font-size:15px}.de-workbench-count,.de-log-panel-title-row p{font-size:11px}.de-workbench-table{table-layout:fixed;font-size:12px}.de-workbench-table th,.de-workbench-table td{padding:7px 6px}.de-workbench-table th:nth-child(4),.de-workbench-table td:nth-child(4){display:none}.de-workbench-actions button{min-height:26px;padding:0 7px;font-size:11px}.de-report-actions{flex-direction:column}.de-report-generate-btn{min-width:96px;padding:8px 12px;font-size:12px}.de-report-download{padding:8px 12px;font-size:12px}.de-mission-center-layout{grid-template-columns:minmax(300px,.9fr) minmax(380px,1.35fr);gap:10px}.de-mc-card-list{gap:6px}.de-mission-card{border-radius:10px;padding:9px 10px}.de-mission-card-header{margin-bottom:5px}.de-mission-card-title{font-size:13px}.de-mission-card-desc{-webkit-line-clamp:1;margin-bottom:5px;font-size:12px;line-height:1.38}.de-mission-card-meta{gap:8px;font-size:11px}.de-mission-card-actions{margin-top:7px;padding-top:7px}.de-mission-card-time{font-size:10px}.de-btn-run{padding:4px 10px;font-size:11px}.de-date-filter-row{gap:6px;margin-bottom:8px;padding:8px}.de-date-filter-field{justify-content:space-between;width:100%}.de-date-filter-field input{min-width:136px}.de-date-filter-summary{width:100%;margin-left:0}.de-filter-row{gap:5px;margin-bottom:8px}.de-filter-chip{padding:3px 9px;font-size:11px}.de-drawer{border-radius:14px;gap:10px;padding:12px}.de-drawer-title-group h3{font-size:17px}.de-drawer-eyebrow{font-size:10px}.de-drawer-meta{font-size:11px}.de-detail-section{border-radius:10px;padding:9px}.de-detail-section h4{margin-bottom:7px;font-size:12px}.de-detail-section-head h4{margin-bottom:0}.de-detail-kv{grid-template-columns:60px minmax(0,1fr);gap:5px 8px;font-size:11px}.de-chain-row{grid-template-columns:64px minmax(0,1fr);font-size:10px}.de-chain-row time{text-align:left;grid-column:1/-1}.de-step-node{grid-template-columns:20px 1fr;gap:8px;padding-bottom:11px}.de-step-content strong{font-size:13px}.de-step-content span{font-size:11px}.de-step-dot{width:10px;height:10px}.de-step-line{left:4px}.de-task-run-card{border-radius:9px;padding:7px 8px}.de-task-run-meta{gap:5px 8px;font-size:10px}.de-event-row{grid-template-columns:64px minmax(0,1fr);font-size:10px}.de-event-row time{text-align:left;grid-column:1/-1}.de-log-entry{border-radius:10px;gap:4px;padding:8px 10px;font-size:11px}.de-log-entry-meta strong{font-size:12px}.de-log-entry p{font-size:11px;line-height:1.38}}@media(max-width:1679px){.de-dashboard-content{grid-template-columns:minmax(278px,.86fr) minmax(360px,1.08fr) minmax(276px,.78fr);gap:12px;padding:8px 14px 10px}.de-dashboard-center{padding:4px 0 80px}}@media(max-width:1439px){.de-dashboard-content{grid-template-columns:minmax(260px,.9fr) minmax(300px,.96fr) minmax(260px,.74fr);gap:10px;padding:8px 12px}.de-dashboard-center{padding:4px 0 72px}}@media(max-width:1280px){.de-dashboard-content{gap:8px;padding:7px 8px 72px}.de-dashboard-center{padding:4px 0 56px}.de-log-entry{border-radius:10px;gap:4px;padding:8px 10px;font-size:11px}.de-log-entry-meta strong{font-size:12px}.de-log-entry p{font-size:11px;line-height:1.38}}@media(max-height:820px)and (min-width:1180px){.de-dashboard--compact .de-dashboard-content{grid-template-columns:minmax(320px,.9fr) minmax(360px,.86fr) minmax(410px,1.05fr);gap:10px;padding:6px 14px 8px}.de-dashboard--compact .de-dashboard-left{gap:8px}.de-dashboard--compact .de-card-title-bar{min-height:40px;padding:7px 14px}.de-dashboard--compact .de-card-title-bar-text{font-size:15px}.de-dashboard--compact .de-card-body{padding:10px 14px}.de-person-card--compact .de-info-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:7px 10px}.de-person-card--compact .de-info-item{gap:2px;padding:2px 0}.de-person-card--compact .de-info-item label{font-size:11px}.de-person-card--compact .de-info-item span{font-size:12px;line-height:1.32}.de-person-card--compact .de-report-download{padding:7px 10px;margin-top:8px!important;font-size:11px!important;line-height:1.32!important}.de-dashboard--compact .de-workday-toolbar{grid-template-columns:minmax(0,1fr) 92px;gap:8px;margin-bottom:8px}.de-dashboard--compact .de-workday-toolbar input{border-radius:9px;height:30px}.de-dashboard--compact .de-template-overview{border-radius:12px;margin-bottom:8px}.de-dashboard--compact .de-template-overview-item{gap:3px;min-height:54px;padding:7px 10px 10px}.de-dashboard--compact .de-template-overview-label{font-size:11px}.de-dashboard--compact .de-template-overview-value{font-size:24px}.de-dashboard--compact .de-template-list-scroll{gap:6px}.de-dashboard--compact .de-template-manager-body>.de-task-date-context{margin:-2px 0 6px;padding:6px 7px}.de-dashboard--compact .de-task-manager-preview{border-radius:12px;gap:6px;padding:8px}.de-dashboard--compact .de-task-manager-preview-row{border-radius:10px;padding:8px 9px}.de-dashboard--compact .de-template-task-list .de-task-manager-preview-row{grid-template-columns:minmax(0,1fr) auto;gap:6px}.de-dashboard--compact .de-template-item-actions .de-btn-sm{min-height:24px;padding:0 7px;font-size:10px}.de-dashboard--compact .de-duty-card--compact{border-radius:10px;min-height:86px;padding:8px 10px}.de-dashboard--compact .de-template-card-main{gap:4px}.de-dashboard--compact .de-template-card-name{font-size:13px}.de-dashboard--compact .de-template-card-desc{-webkit-line-clamp:1;font-size:11px;line-height:1.34}.de-dashboard--compact .de-template-card-meta{gap:6px;font-size:10px}.de-dashboard--compact .de-duty-card-foot{margin-top:0}.de-dashboard--compact .de-duty-card-foot .de-btn-sm{min-height:24px;padding:0 9px;font-size:11px}.de-dashboard--compact .de-duty-selected-mark{min-width:36px;height:22px;font-size:10px}.de-dashboard--compact .de-dashboard-center{padding:0 0 10px!important}.de-dashboard--compact .de-avatar-wrapper{max-width:520px!important;min-height:430px!important;transform:translateY(-2px)!important}.de-dashboard--compact .de-avatar-img{height:58vh;max-height:450px;margin-bottom:-32px}.de-dashboard--compact .de-avatar-glass-space{max-width:340px;max-height:520px}.de-dashboard--compact .de-avatar-state-label{min-height:24px;font-size:12px;top:17%}.de-dashboard--compact .de-speech-bubble{border-radius:18px 18px 18px 10px;width:250px!important;padding:9px 11px!important;top:38%!important;left:27%!important}.de-dashboard--compact .de-speech-label{margin-bottom:5px;font-size:11px}.de-dashboard--compact .de-speech-text{min-height:0;font-size:11px;line-height:1.38}.de-dashboard--compact .de-speech-workflow{gap:2px 6px;padding:7px 8px}.de-dashboard--compact .de-speech-workflow strong{font-size:11px}.de-dashboard--compact .de-speech-workflow small{-webkit-line-clamp:1;font-size:10px}.de-dashboard--compact .de-skin-row{gap:5px;margin-top:5px;padding:6px 8px}.de-dashboard--compact .de-right-panels{grid-template-rows:minmax(0,1fr) minmax(156px,.33fr);gap:8px}.de-dashboard--compact .de-workbench,.de-dashboard--compact .de-log-panel,.de-dashboard--compact .de-report-summary{border-radius:12px;gap:8px;padding:10px}.de-dashboard--compact .de-workbench-title-row,.de-dashboard--compact .de-log-panel-title-row,.de-dashboard--compact .de-report-summary-title-row{gap:2px;display:grid}.de-dashboard--compact .de-workbench-title-row h3,.de-dashboard--compact .de-log-panel-title-row h3,.de-dashboard--compact .de-report-summary-title-row h3{font-size:15px}.de-dashboard--compact .de-workday-execution-body{grid-template-rows:auto minmax(80px,.48fr) auto minmax(0,1fr);gap:6px}.de-dashboard--compact .de-execution-status-strip{gap:5px}.de-dashboard--compact .de-execution-status-strip span{padding:6px 7px}.de-dashboard--compact .de-execution-status-strip strong{font-size:16px}.de-dashboard--compact .de-task-summary-grid{gap:5px}.de-dashboard--compact .de-task-summary-scroll .de-task-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.de-dashboard--compact .de-task-summary-card{border-radius:10px;gap:3px 5px;min-height:76px;padding:7px}.de-dashboard--compact .de-task-summary-title{font-size:11px}.de-dashboard--compact .de-task-summary-counts{gap:4px}.de-dashboard--compact .de-task-summary-counts span{padding:5px}.de-dashboard--compact .de-task-summary-counts em{font-size:9px}.de-dashboard--compact .de-task-summary-counts strong{font-size:13px}.de-dashboard--compact .de-log-entry{border-radius:10px;gap:4px;padding:7px 9px}.de-dashboard--compact .de-log-entry-meta strong{font-size:12px}.de-dashboard--compact .de-log-entry p{-webkit-line-clamp:1;font-size:11px;line-height:1.34}.de-dashboard--compact .de-decision-chain-note{margin-top:4px;font-size:10px}.de-dashboard--compact .de-report-summary,.de-dashboard--compact .de-report-summary-body,.de-dashboard--compact .de-report-schedule-row{gap:6px}.de-dashboard--compact .de-report-download-btn,.de-dashboard--compact .de-report-preview-btn{gap:4px;min-height:28px}.de-dashboard--compact .de-report-meta p{font-size:10px;line-height:1.3}.de-task-manager-modal-overlay{padding:16px}.de-task-manager-modal{border-radius:16px;gap:12px;width:min(1000px,100vw - 36px);max-height:calc(100vh - 36px);padding:14px}.de-task-manager-modal-body{grid-template-columns:minmax(0,1.24fr) minmax(280px,.78fr);gap:10px}.de-task-manager-modal-head h3{font-size:19px}.de-task-manager-modal-head p{font-size:12px;line-height:1.42}.de-workday-guide-modal{gap:10px;width:min(1040px,100vw - 36px)}.de-workday-guide-steps{gap:8px}.de-workday-guide-step{border-radius:12px;padding:8px 9px}.de-workday-guide-step span{width:22px;height:22px;font-size:11px}.de-workday-guide-step strong{font-size:12px}.de-workday-guide-step p{font-size:10px;line-height:1.32}.de-workday-guide-body{grid-template-columns:minmax(0,1.32fr) minmax(260px,.72fr);gap:10px}.de-workday-guide-duty-list{gap:7px}.de-workday-guide-duty-list .de-duty-card{grid-template-columns:68px minmax(0,1fr);gap:7px;min-height:94px}.de-workday-guide-side{border-radius:13px;gap:8px;padding:10px}.de-workday-guide-summary{border-radius:11px;padding:9px}.de-workday-guide-summary strong{font-size:14px}.de-workday-guide-summary p{font-size:11px;line-height:1.38}.de-task-manager-column{border-radius:13px;gap:8px;padding:10px}.de-task-manager-duty-list .de-duty-card{grid-template-columns:72px minmax(0,1fr);gap:8px;min-height:88px}.de-task-manager-duty-check{gap:6px;font-size:11px}.de-task-manager-duty-check input{width:20px;height:20px}.de-task-manager-decision-card{border-radius:10px;padding:9px 10px}}@media(max-width:1023px){.de-mission-center-page{height:auto;min-height:100%;padding:10px 12px 96px;overflow:visible}.de-mission-center-layout{grid-template-columns:1fr;height:auto;min-height:auto;overflow:visible}.de-mc-list,.de-mc-detail{min-height:auto;display:flex;overflow:visible}.de-mc-list>.de-card,.de-mc-detail>.de-card{height:auto;min-height:0}.de-mc-list .de-card-body,.de-mc-detail .de-card-body{overflow:visible}.de-dashboard{height:auto;min-height:100%;overflow:visible}.de-dashboard-content{grid-template-columns:1fr;min-height:auto;padding:8px 12px 96px;overflow:visible}.de-dashboard-left,.de-dashboard-center,.de-dashboard-right{overflow:visible}.de-right-panels{grid-template-rows:auto auto;height:auto}.de-workbench,.de-log-panel,.de-report-summary{min-height:180px}.de-workday-execution-body{grid-template-rows:auto auto auto auto}.de-task-summary-scroll,.de-run-detail-list{max-height:360px}.de-run-detail-panel{min-height:260px}}.de-log-entries{flex-direction:column;gap:6px;display:flex;overflow-y:auto}.de-log-entry{text-align:left;color:#16324e;cursor:pointer;background:#f8fbfff5;border:1px solid #4facfe1f;border-radius:12px;gap:6px;width:100%;padding:10px 12px;font-family:inherit;font-size:12px;transition:border-color .18s,box-shadow .18s;display:grid}.de-log-entry:hover,.de-log-entry--active{border-color:#4facfe57;box-shadow:0 0 0 2px #4facfe14}.de-log-entry-meta{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.de-log-entry-meta strong{font-size:13px;line-height:1.4}.de-log-entry-meta span{color:#5b7590;font-size:11px}.de-log-entry p{color:#5b7590;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.de-workbench-actions button:hover{background:#4facfe38}.de-workbench-actions button:disabled{opacity:.45;cursor:not-allowed}.de-status-dot--running{background:var(--de-primary);border-radius:50%;width:8px;height:8px;margin-right:6px;animation:1.5s ease-in-out infinite de-pulse-dot;display:inline-block}.de-elapsed{color:var(--de-text-muted);font-variant-numeric:tabular-nums;font-size:11px}.de-tag-count-badge{color:#fff;background:linear-gradient(135deg,#ff7d66,#ff5b6b);border-radius:999px;justify-content:center;align-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:700;line-height:1;display:inline-flex;position:absolute;top:-6px;right:-2px;box-shadow:0 3px 8px #ff5b6b47}.de-skill-btn--schedule{background:linear-gradient(135deg,#0ea5e9f0,#06b6d4e0)!important}.de-schedule-overlay{z-index:28;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a1c2c47;justify-content:center;align-items:center;display:flex;position:fixed;top:0;right:0;bottom:0;left:0}.de-schedule-dialog{background:linear-gradient(#fcfeffe6,#e5f0ffe0);border:1px solid #4facfe33;border-radius:24px;gap:18px;width:min(520px,100vw - 32px);padding:20px;display:grid;box-shadow:0 20px 48px #1e3a5c2e,inset 0 1px #ffffff80}.de-schedule-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.de-schedule-title{color:#173553;font-size:18px;font-weight:700;display:block}.de-schedule-skill-id{color:#5b7590;margin-top:4px;font-size:13px;display:block}.de-schedule-close{cursor:pointer;color:#3c6486;background:#4facfe1f;border:none;border-radius:999px;padding:8px 14px}.de-schedule-section{gap:12px;display:grid}.de-schedule-label{color:#41627f;font-size:13px}.de-schedule-desc{color:#315576;margin:0;font-size:13px;line-height:1.6}.de-schedule-presets{flex-wrap:wrap;gap:10px;display:flex}.de-schedule-preset{color:#315576;cursor:pointer;background:#4facfe1a;border:none;border-radius:999px;padding:8px 14px;font-size:13px}.de-schedule-preset.is-active{color:#fff;background:linear-gradient(135deg,#4facfeeb,#00f2fedb);font-weight:700;box-shadow:0 4px 12px #4facfe38}.de-schedule-switch{color:#315576;background:#ffffffbd;border:1px solid #4facfe1f;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:13px;display:flex}.de-schedule-switch input[type=checkbox]{accent-color:#4facfe;width:18px;height:18px}.de-schedule-notice{color:#315576;background:#4facfe14;border:1px solid #4facfe1f;border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.5}.de-schedule-result{border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.5}.de-schedule-result--success{color:#176a3a;background:#1b9c5a1a;border:1px solid #1b9c5a33}.de-schedule-result--pending{color:#7a5509;background:#f5ad2d1f;border:1px solid #f5ad2d3d}.de-schedule-result--error{color:#ad3434;background:#e048481a;border:1px solid #e0484833}.de-schedule-footer{justify-content:flex-end;gap:12px;display:flex}.de-schedule-btn-secondary{cursor:pointer;color:#3c6486;background:#4facfe1f;border:none;border-radius:999px;padding:8px 14px}.de-schedule-btn-primary{cursor:pointer;color:#fff;background:linear-gradient(135deg,#4facfeeb,#00f2fedb);border:none;border-radius:999px;padding:8px 18px;box-shadow:0 4px 12px #4facfe38}.de-schedule-btn-primary:disabled{opacity:.55;cursor:not-allowed}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false} diff --git a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-CtCKBhxB.js b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-CtCKBhxB.js new file mode 100644 index 00000000..089129b2 --- /dev/null +++ b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-CtCKBhxB.js @@ -0,0 +1,159 @@ +(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const f of o)if(f.type==="childList")for(const m of f.addedNodes)m.tagName==="LINK"&&m.rel==="modulepreload"&&r(m)}).observe(document,{childList:!0,subtree:!0});function s(o){const f={};return o.integrity&&(f.integrity=o.integrity),o.referrerPolicy&&(f.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?f.credentials="include":o.crossOrigin==="anonymous"?f.credentials="omit":f.credentials="same-origin",f}function r(o){if(o.ep)return;o.ep=!0;const f=s(o);fetch(o.href,f)}})();function vb(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var cd={exports:{}},Ls={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Jp;function bb(){if(Jp)return Ls;Jp=1;var n=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function s(r,o,f){var m=null;if(f!==void 0&&(m=""+f),o.key!==void 0&&(m=""+o.key),"key"in o){f={};for(var _ in o)_!=="key"&&(f[_]=o[_])}else f=o;return o=f.ref,{$$typeof:n,type:r,key:m,ref:o!==void 0?o:null,props:f}}return Ls.Fragment=l,Ls.jsx=s,Ls.jsxs=s,Ls}var Fp;function Sb(){return Fp||(Fp=1,cd.exports=bb()),cd.exports}var u=Sb(),ud={exports:{}},_e={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Wp;function xb(){if(Wp)return _e;Wp=1;var n=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),f=Symbol.for("react.consumer"),m=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),j=Symbol.for("react.activity"),k=Symbol.iterator;function D(A){return A===null||typeof A!="object"?null:(A=k&&A[k]||A["@@iterator"],typeof A=="function"?A:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},T=Object.assign,R={};function U(A,Y,F){this.props=A,this.context=Y,this.refs=R,this.updater=F||E}U.prototype.isReactComponent={},U.prototype.setState=function(A,Y){if(typeof A!="object"&&typeof A!="function"&&A!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,A,Y,"setState")},U.prototype.forceUpdate=function(A){this.updater.enqueueForceUpdate(this,A,"forceUpdate")};function I(){}I.prototype=U.prototype;function $(A,Y,F){this.props=A,this.context=Y,this.refs=R,this.updater=F||E}var W=$.prototype=new I;W.constructor=$,T(W,U.prototype),W.isPureReactComponent=!0;var ne=Array.isArray;function fe(){}var P={H:null,A:null,T:null,S:null},G=Object.prototype.hasOwnProperty;function ee(A,Y,F){var te=F.ref;return{$$typeof:n,type:A,key:Y,ref:te!==void 0?te:null,props:F}}function pe(A,Y){return ee(A.type,Y,A.props)}function Ye(A){return typeof A=="object"&&A!==null&&A.$$typeof===n}function $e(A){var Y={"=":"=0",":":"=2"};return"$"+A.replace(/[=:]/g,function(F){return Y[F]})}var V=/\/+/g;function ce(A,Y){return typeof A=="object"&&A!==null&&A.key!=null?$e(""+A.key):Y.toString(36)}function B(A){switch(A.status){case"fulfilled":return A.value;case"rejected":throw A.reason;default:switch(typeof A.status=="string"?A.then(fe,fe):(A.status="pending",A.then(function(Y){A.status==="pending"&&(A.status="fulfilled",A.value=Y)},function(Y){A.status==="pending"&&(A.status="rejected",A.reason=Y)})),A.status){case"fulfilled":return A.value;case"rejected":throw A.reason}}throw A}function M(A,Y,F,te,de){var be=typeof A;(be==="undefined"||be==="boolean")&&(A=null);var Z=!1;if(A===null)Z=!0;else switch(be){case"bigint":case"string":case"number":Z=!0;break;case"object":switch(A.$$typeof){case n:case l:Z=!0;break;case S:return Z=A._init,M(Z(A._payload),Y,F,te,de)}}if(Z)return de=de(A),Z=te===""?"."+ce(A,0):te,ne(de)?(F="",Z!=null&&(F=Z.replace(V,"$&/")+"/"),M(de,Y,F,"",function(qe){return qe})):de!=null&&(Ye(de)&&(de=pe(de,F+(de.key==null||A&&A.key===de.key?"":(""+de.key).replace(V,"$&/")+"/")+Z)),Y.push(de)),1;Z=0;var ae=te===""?".":te+":";if(ne(A))for(var Oe=0;Oe>>1,xe=M[he];if(0>>1;heo(F,ie))teo(de,F)?(M[he]=de,M[te]=ie,he=te):(M[he]=F,M[Y]=ie,he=Y);else if(teo(de,ie))M[he]=de,M[te]=ie,he=te;else break e}}return X}function o(M,X){var ie=M.sortIndex-X.sortIndex;return ie!==0?ie:M.id-X.id}if(n.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var f=performance;n.unstable_now=function(){return f.now()}}else{var m=Date,_=m.now();n.unstable_now=function(){return m.now()-_}}var p=[],g=[],S=1,j=null,k=3,D=!1,E=!1,T=!1,R=!1,U=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,$=typeof setImmediate<"u"?setImmediate:null;function W(M){for(var X=s(g);X!==null;){if(X.callback===null)r(g);else if(X.startTime<=M)r(g),X.sortIndex=X.expirationTime,l(p,X);else break;X=s(g)}}function ne(M){if(T=!1,W(M),!E)if(s(p)!==null)E=!0,fe||(fe=!0,$e());else{var X=s(g);X!==null&&B(ne,X.startTime-M)}}var fe=!1,P=-1,G=5,ee=-1;function pe(){return R?!0:!(n.unstable_now()-eeM&&pe());){var he=j.callback;if(typeof he=="function"){j.callback=null,k=j.priorityLevel;var xe=he(j.expirationTime<=M);if(M=n.unstable_now(),typeof xe=="function"){j.callback=xe,W(M),X=!0;break t}j===s(p)&&r(p),W(M)}else r(p);j=s(p)}if(j!==null)X=!0;else{var A=s(g);A!==null&&B(ne,A.startTime-M),X=!1}}break e}finally{j=null,k=ie,D=!1}X=void 0}}finally{X?$e():fe=!1}}}var $e;if(typeof $=="function")$e=function(){$(Ye)};else if(typeof MessageChannel<"u"){var V=new MessageChannel,ce=V.port2;V.port1.onmessage=Ye,$e=function(){ce.postMessage(null)}}else $e=function(){U(Ye,0)};function B(M,X){P=U(function(){M(n.unstable_now())},X)}n.unstable_IdlePriority=5,n.unstable_ImmediatePriority=1,n.unstable_LowPriority=4,n.unstable_NormalPriority=3,n.unstable_Profiling=null,n.unstable_UserBlockingPriority=2,n.unstable_cancelCallback=function(M){M.callback=null},n.unstable_forceFrameRate=function(M){0>M||125he?(M.sortIndex=ie,l(g,M),s(p)===null&&M===s(g)&&(T?(I(P),P=-1):T=!0,B(ne,ie-he))):(M.sortIndex=xe,l(p,M),E||D||(E=!0,fe||(fe=!0,$e()))),M},n.unstable_shouldYield=pe,n.unstable_wrapCallback=function(M){var X=k;return function(){var ie=k;k=X;try{return M.apply(this,arguments)}finally{k=ie}}}})(fd)),fd}var tg;function wb(){return tg||(tg=1,dd.exports=kb()),dd.exports}var md={exports:{}},Tt={};/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ng;function Eb(){if(ng)return Tt;ng=1;var n=Vd();function l(p){var g="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(l){console.error(l)}}return n(),md.exports=Eb(),md.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var lg;function Cb(){if(lg)return Us;lg=1;var n=wb(),l=Vd(),s=Ab();function r(e){var t="https://react.dev/errors/"+e;if(1xe||(e.current=he[xe],he[xe]=null,xe--)}function F(e,t){xe++,he[xe]=e.current,e.current=t}var te=A(null),de=A(null),be=A(null),Z=A(null);function ae(e,t){switch(F(be,t),F(de,e),F(te,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?vp(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=vp(t),e=bp(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}Y(te),F(te,e)}function Oe(){Y(te),Y(de),Y(be)}function qe(e){e.memoizedState!==null&&F(Z,e);var t=te.current,a=bp(t,e.type);t!==a&&(F(de,e),F(te,a))}function je(e){de.current===e&&(Y(te),Y(de)),Z.current===e&&(Y(Z),zs._currentValue=ie)}var Rt,vt;function Te(e){if(Rt===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Rt=t&&t[1]||"",vt=-1)":-1c||w[i]!==O[c]){var H=` +`+w[i].replace(" at new "," at ");return e.displayName&&H.includes("")&&(H=H.replace("",e.displayName)),H}while(1<=i&&0<=c);break}}}finally{at=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?Te(a):""}function $i(e,t){switch(e.tag){case 26:case 27:case 5:return Te(e.type);case 16:return Te("Lazy");case 13:return e.child!==t&&t!==null?Te("Suspense Fallback"):Te("Suspense");case 19:return Te("SuspenseList");case 0:case 15:return Kn(e.type,!1);case 11:return Kn(e.type.render,!1);case 1:return Kn(e.type,!0);case 31:return Te("Activity");default:return""}}function Ll(e){try{var t="",a=null;do t+=$i(e,a),a=e,e=e.return;while(e);return t}catch(i){return` +Error generating stack: `+i.message+` +`+i.stack}}var Oi=Object.prototype.hasOwnProperty,qi=n.unstable_scheduleCallback,xt=n.unstable_cancelCallback,lr=n.unstable_shouldYield,ke=n.unstable_requestPaint,gt=n.unstable_now,Ot=n.unstable_getCurrentPriorityLevel,rn=n.unstable_ImmediatePriority,ll=n.unstable_UserBlockingPriority,qt=n.unstable_NormalPriority,Mt=n.unstable_LowPriority,il=n.unstable_IdlePriority,Xn=n.log,sl=n.unstable_setDisableYieldValue,Vn=null,Ie=null;function Dn(e){if(typeof Xn=="function"&&sl(e),Ie&&typeof Ie.setStrictMode=="function")try{Ie.setStrictMode(Vn,e)}catch{}}var Nt=Math.clz32?Math.clz32:Li,ya=Math.log,lu=Math.LN2;function Li(e){return e>>>=0,e===0?32:31-(ya(e)/lu|0)|0}var Ul=256,Bl=262144,Hl=4194304;function Zn(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Lt(e,t,a){var i=e.pendingLanes;if(i===0)return 0;var c=0,d=e.suspendedLanes,h=e.pingedLanes;e=e.warmLanes;var v=i&134217727;return v!==0?(i=v&~d,i!==0?c=Zn(i):(h&=v,h!==0?c=Zn(h):a||(a=v&~e,a!==0&&(c=Zn(a))))):(v=i&~d,v!==0?c=Zn(v):h!==0?c=Zn(h):a||(a=i&~e,a!==0&&(c=Zn(a)))),c===0?0:t!==0&&t!==c&&(t&d)===0&&(d=c&-c,a=t&-t,d>=a||d===32&&(a&4194048)!==0)?t:c}function He(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function De(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Gl(){var e=Hl;return Hl<<=1,(Hl&62914560)===0&&(Hl=4194304),e}function ir(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function Ut(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function bf(e,t,a,i,c,d){var h=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var v=e.entanglements,w=e.expirationTimes,O=e.hiddenUpdates;for(a=h&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var or=/[\n"\\]/g;function Ht(e){return e.replace(or,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function Xi(e,t,a,i,c,d,h,v){e.name="",h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?e.type=h:e.removeAttribute("type"),t!=null?h==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+Bt(t)):e.value!==""+Bt(t)&&(e.value=""+Bt(t)):h!=="submit"&&h!=="reset"||e.removeAttribute("value"),t!=null?Vi(e,h,Bt(t)):a!=null?Vi(e,h,Bt(a)):i!=null&&e.removeAttribute("value"),c==null&&d!=null&&(e.defaultChecked=!!d),c!=null&&(e.checked=c&&typeof c!="function"&&typeof c!="symbol"),v!=null&&typeof v!="function"&&typeof v!="symbol"&&typeof v!="boolean"?e.name=""+Bt(v):e.removeAttribute("name")}function dr(e,t,a,i,c,d,h,v){if(d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.type=d),t!=null||a!=null){if(!(d!=="submit"&&d!=="reset"||t!=null)){Qi(e);return}a=a!=null?""+Bt(a):"",t=t!=null?""+Bt(t):a,v||t===e.value||(e.value=t),e.defaultValue=t}i=i??c,i=typeof i!="function"&&typeof i!="symbol"&&!!i,e.checked=v?e.checked:!!i,e.defaultChecked=!!i,h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"&&(e.name=h),Qi(e)}function Vi(e,t,a){t==="number"&&rl(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function ka(e,t,a,i){if(e=e.options,t){t={};for(var c=0;c"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Vl=!1;if(cn)try{var Ca={};Object.defineProperty(Ca,"passive",{get:function(){Vl=!0}}),window.addEventListener("test",Ca,Ca),window.removeEventListener("test",Ca,Ca)}catch{Vl=!1}var jn=null,b=null,J=null;function se(){if(J)return J;var e,t=b,a=t.length,i,c="value"in jn?jn.value:jn.textContent,d=c.length;for(e=0;e=ts),Ef=" ",Af=!1;function Cf(e,t){switch(e){case"keyup":return Hy.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Nf(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Zl=!1;function Yy(e,t){switch(e){case"compositionend":return Nf(t);case"keypress":return t.which!==32?null:(Af=!0,Ef);case"textInput":return e=t.data,e===Ef&&Af?null:e;default:return null}}function Qy(e,t){if(Zl)return e==="compositionend"||!mu&&Cf(e,t)?(e=se(),J=b=jn=null,Zl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:a,offset:t-e};e=i}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=qf(a)}}function Uf(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Uf(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Bf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=rl(e.document);t instanceof e.HTMLIFrameElement;){try{var a=typeof t.contentWindow.location.href=="string"}catch{a=!1}if(a)e=t.contentWindow;else break;t=rl(e.document)}return t}function gu(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var Wy=cn&&"documentMode"in document&&11>=document.documentMode,Il=null,_u=null,is=null,yu=!1;function Hf(e,t,a){var i=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;yu||Il==null||Il!==rl(i)||(i=Il,"selectionStart"in i&&gu(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focusNode:i.focusNode,focusOffset:i.focusOffset}),is&&ls(is,i)||(is=i,i=lc(_u,"onSelect"),0>=h,c-=h,Un=1<<32-Nt(t)+c|a<Se?(Ne=re,re=null):Ne=re.sibling;var Be=q(N,re,z[Se],Q);if(Be===null){re===null&&(re=Ne);break}e&&re&&Be.alternate===null&&t(N,re),C=d(Be,C,Se),Ue===null?ue=Be:Ue.sibling=Be,Ue=Be,re=Ne}if(Se===z.length)return a(N,re),Re&&Wn(N,Se),ue;if(re===null){for(;SeSe?(Ne=re,re=null):Ne=re.sibling;var Ja=q(N,re,Be.value,Q);if(Ja===null){re===null&&(re=Ne);break}e&&re&&Ja.alternate===null&&t(N,re),C=d(Ja,C,Se),Ue===null?ue=Ja:Ue.sibling=Ja,Ue=Ja,re=Ne}if(Be.done)return a(N,re),Re&&Wn(N,Se),ue;if(re===null){for(;!Be.done;Se++,Be=z.next())Be=K(N,Be.value,Q),Be!==null&&(C=d(Be,C,Se),Ue===null?ue=Be:Ue.sibling=Be,Ue=Be);return Re&&Wn(N,Se),ue}for(re=i(re);!Be.done;Se++,Be=z.next())Be=L(re,N,Se,Be.value,Q),Be!==null&&(e&&Be.alternate!==null&&re.delete(Be.key===null?Se:Be.key),C=d(Be,C,Se),Ue===null?ue=Be:Ue.sibling=Be,Ue=Be);return e&&re.forEach(function(yb){return t(N,yb)}),Re&&Wn(N,Se),ue}function Ze(N,C,z,Q){if(typeof z=="object"&&z!==null&&z.type===T&&z.key===null&&(z=z.props.children),typeof z=="object"&&z!==null){switch(z.$$typeof){case D:e:{for(var ue=z.key;C!==null;){if(C.key===ue){if(ue=z.type,ue===T){if(C.tag===7){a(N,C.sibling),Q=c(C,z.props.children),Q.return=N,N=Q;break e}}else if(C.elementType===ue||typeof ue=="object"&&ue!==null&&ue.$$typeof===G&&vl(ue)===C.type){a(N,C.sibling),Q=c(C,z.props),ds(Q,z),Q.return=N,N=Q;break e}a(N,C);break}else t(N,C);C=C.sibling}z.type===T?(Q=hl(z.props.children,N.mode,Q,z.key),Q.return=N,N=Q):(Q=Sr(z.type,z.key,z.props,null,N.mode,Q),ds(Q,z),Q.return=N,N=Q)}return h(N);case E:e:{for(ue=z.key;C!==null;){if(C.key===ue)if(C.tag===4&&C.stateNode.containerInfo===z.containerInfo&&C.stateNode.implementation===z.implementation){a(N,C.sibling),Q=c(C,z.children||[]),Q.return=N,N=Q;break e}else{a(N,C);break}else t(N,C);C=C.sibling}Q=wu(z,N.mode,Q),Q.return=N,N=Q}return h(N);case G:return z=vl(z),Ze(N,C,z,Q)}if(B(z))return le(N,C,z,Q);if($e(z)){if(ue=$e(z),typeof ue!="function")throw Error(r(150));return z=ue.call(z),me(N,C,z,Q)}if(typeof z.then=="function")return Ze(N,C,Cr(z),Q);if(z.$$typeof===$)return Ze(N,C,kr(N,z),Q);Nr(N,z)}return typeof z=="string"&&z!==""||typeof z=="number"||typeof z=="bigint"?(z=""+z,C!==null&&C.tag===6?(a(N,C.sibling),Q=c(C,z),Q.return=N,N=Q):(a(N,C),Q=ku(z,N.mode,Q),Q.return=N,N=Q),h(N)):a(N,C)}return function(N,C,z,Q){try{os=0;var ue=Ze(N,C,z,Q);return si=null,ue}catch(re){if(re===ii||re===Er)throw re;var Ue=Ft(29,re,null,N.mode);return Ue.lanes=Q,Ue.return=N,Ue}finally{}}}var Sl=om(!0),dm=om(!1),Ma=!1;function qu(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Lu(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function za(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function $a(e,t,a){var i=e.updateQueue;if(i===null)return null;if(i=i.shared,(Ge&2)!==0){var c=i.pending;return c===null?t.next=t:(t.next=c.next,c.next=t),i.pending=t,t=br(e),Zf(e,null,a),t}return vr(e,i,t,a),br(e)}function fs(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var i=t.lanes;i&=e.pendingLanes,a|=i,t.lanes=a,ge(e,a)}}function Uu(e,t){var a=e.updateQueue,i=e.alternate;if(i!==null&&(i=i.updateQueue,a===i)){var c=null,d=null;if(a=a.firstBaseUpdate,a!==null){do{var h={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};d===null?c=d=h:d=d.next=h,a=a.next}while(a!==null);d===null?c=d=t:d=d.next=t}else c=d=t;a={baseState:i.baseState,firstBaseUpdate:c,lastBaseUpdate:d,shared:i.shared,callbacks:i.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var Bu=!1;function ms(){if(Bu){var e=li;if(e!==null)throw e}}function hs(e,t,a,i){Bu=!1;var c=e.updateQueue;Ma=!1;var d=c.firstBaseUpdate,h=c.lastBaseUpdate,v=c.shared.pending;if(v!==null){c.shared.pending=null;var w=v,O=w.next;w.next=null,h===null?d=O:h.next=O,h=w;var H=e.alternate;H!==null&&(H=H.updateQueue,v=H.lastBaseUpdate,v!==h&&(v===null?H.firstBaseUpdate=O:v.next=O,H.lastBaseUpdate=w))}if(d!==null){var K=c.baseState;h=0,H=O=w=null,v=d;do{var q=v.lane&-536870913,L=q!==v.lane;if(L?(Ce&q)===q:(i&q)===q){q!==0&&q===ai&&(Bu=!0),H!==null&&(H=H.next={lane:0,tag:v.tag,payload:v.payload,callback:null,next:null});e:{var le=e,me=v;q=t;var Ze=a;switch(me.tag){case 1:if(le=me.payload,typeof le=="function"){K=le.call(Ze,K,q);break e}K=le;break e;case 3:le.flags=le.flags&-65537|128;case 0:if(le=me.payload,q=typeof le=="function"?le.call(Ze,K,q):le,q==null)break e;K=j({},K,q);break e;case 2:Ma=!0}}q=v.callback,q!==null&&(e.flags|=64,L&&(e.flags|=8192),L=c.callbacks,L===null?c.callbacks=[q]:L.push(q))}else L={lane:q,tag:v.tag,payload:v.payload,callback:v.callback,next:null},H===null?(O=H=L,w=K):H=H.next=L,h|=q;if(v=v.next,v===null){if(v=c.shared.pending,v===null)break;L=v,v=L.next,L.next=null,c.lastBaseUpdate=L,c.shared.pending=null}}while(!0);H===null&&(w=K),c.baseState=w,c.firstBaseUpdate=O,c.lastBaseUpdate=H,d===null&&(c.shared.lanes=0),Ba|=h,e.lanes=h,e.memoizedState=K}}function fm(e,t){if(typeof e!="function")throw Error(r(191,e));e.call(t)}function mm(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;ed?d:8;var h=M.T,v={};M.T=v,io(e,!1,t,a);try{var w=c(),O=M.S;if(O!==null&&O(v,w),w!==null&&typeof w=="object"&&typeof w.then=="function"){var H=rv(w,i);_s(e,t,H,nn(e))}else _s(e,t,i,nn(e))}catch(K){_s(e,t,{then:function(){},status:"rejected",reason:K},nn())}finally{X.p=d,h!==null&&v.types!==null&&(h.types=v.types),M.T=h}}function mv(){}function ao(e,t,a,i){if(e.tag!==5)throw Error(r(476));var c=Km(e).queue;Qm(e,c,t,ie,a===null?mv:function(){return Xm(e),a(i)})}function Km(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:na,lastRenderedState:ie},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:na,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Xm(e){var t=Km(e);t.next===null&&(t=e.alternate.memoizedState),_s(e,t.next.queue,{},nn())}function lo(){return wt(zs)}function Vm(){return ut().memoizedState}function Zm(){return ut().memoizedState}function hv(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=nn();e=za(a);var i=$a(t,e,a);i!==null&&(Vt(i,t,a),fs(i,t,a)),t={cache:Mu()},e.payload=t;return}t=t.return}}function pv(e,t,a){var i=nn();a={lane:i,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Ur(e)?Jm(t,a):(a=xu(e,t,a,i),a!==null&&(Vt(a,e,i),Fm(a,t,i)))}function Im(e,t,a){var i=nn();_s(e,t,a,i)}function _s(e,t,a,i){var c={lane:i,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(Ur(e))Jm(t,c);else{var d=e.alternate;if(e.lanes===0&&(d===null||d.lanes===0)&&(d=t.lastRenderedReducer,d!==null))try{var h=t.lastRenderedState,v=d(h,a);if(c.hasEagerState=!0,c.eagerState=v,Jt(v,h))return vr(e,t,c,0),Fe===null&&yr(),!1}catch{}finally{}if(a=xu(e,t,c,i),a!==null)return Vt(a,e,i),Fm(a,t,i),!0}return!1}function io(e,t,a,i){if(i={lane:2,revertLane:Lo(),gesture:null,action:i,hasEagerState:!1,eagerState:null,next:null},Ur(e)){if(t)throw Error(r(479))}else t=xu(e,a,i,2),t!==null&&Vt(t,e,2)}function Ur(e){var t=e.alternate;return e===ve||t!==null&&t===ve}function Jm(e,t){ci=Rr=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function Fm(e,t,a){if((a&4194048)!==0){var i=t.lanes;i&=e.pendingLanes,a|=i,t.lanes=a,ge(e,a)}}var ys={readContext:wt,use:$r,useCallback:lt,useContext:lt,useEffect:lt,useImperativeHandle:lt,useLayoutEffect:lt,useInsertionEffect:lt,useMemo:lt,useReducer:lt,useRef:lt,useState:lt,useDebugValue:lt,useDeferredValue:lt,useTransition:lt,useSyncExternalStore:lt,useId:lt,useHostTransitionStatus:lt,useFormState:lt,useActionState:lt,useOptimistic:lt,useMemoCache:lt,useCacheRefresh:lt};ys.useEffectEvent=lt;var Wm={readContext:wt,use:$r,useCallback:function(e,t){return zt().memoizedState=[e,t===void 0?null:t],e},useContext:wt,useEffect:$m,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,qr(4194308,4,Um.bind(null,t,e),a)},useLayoutEffect:function(e,t){return qr(4194308,4,e,t)},useInsertionEffect:function(e,t){qr(4,2,e,t)},useMemo:function(e,t){var a=zt();t=t===void 0?null:t;var i=e();if(xl){Dn(!0);try{e()}finally{Dn(!1)}}return a.memoizedState=[i,t],i},useReducer:function(e,t,a){var i=zt();if(a!==void 0){var c=a(t);if(xl){Dn(!0);try{a(t)}finally{Dn(!1)}}}else c=t;return i.memoizedState=i.baseState=c,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:c},i.queue=e,e=e.dispatch=pv.bind(null,ve,e),[i.memoizedState,e]},useRef:function(e){var t=zt();return e={current:e},t.memoizedState=e},useState:function(e){e=Wu(e);var t=e.queue,a=Im.bind(null,ve,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:to,useDeferredValue:function(e,t){var a=zt();return no(a,e,t)},useTransition:function(){var e=Wu(!1);return e=Qm.bind(null,ve,e.queue,!0,!1),zt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var i=ve,c=zt();if(Re){if(a===void 0)throw Error(r(407));a=a()}else{if(a=t(),Fe===null)throw Error(r(349));(Ce&127)!==0||vm(i,t,a)}c.memoizedState=a;var d={value:a,getSnapshot:t};return c.queue=d,$m(Sm.bind(null,i,d,e),[e]),i.flags|=2048,oi(9,{destroy:void 0},bm.bind(null,i,d,a,t),null),a},useId:function(){var e=zt(),t=Fe.identifierPrefix;if(Re){var a=Bn,i=Un;a=(i&~(1<<32-Nt(i)-1)).toString(32)+a,t="_"+t+"R_"+a,a=Mr++,0<\/script>",d=d.removeChild(d.firstChild);break;case"select":d=typeof i.is=="string"?h.createElement("select",{is:i.is}):h.createElement("select"),i.multiple?d.multiple=!0:i.size&&(d.size=i.size);break;default:d=typeof i.is=="string"?h.createElement(c,{is:i.is}):h.createElement(c)}}d[_t]=t,d[Je]=i;e:for(h=t.child;h!==null;){if(h.tag===5||h.tag===6)d.appendChild(h.stateNode);else if(h.tag!==4&&h.tag!==27&&h.child!==null){h.child.return=h,h=h.child;continue}if(h===t)break e;for(;h.sibling===null;){if(h.return===null||h.return===t)break e;h=h.return}h.sibling.return=h.return,h=h.sibling}t.stateNode=d;e:switch(At(d,c,i),c){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}i&&la(t)}}return et(t),bo(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==i&&la(t);else{if(typeof i!="string"&&t.stateNode===null)throw Error(r(166));if(e=be.current,ti(t)){if(e=t.stateNode,a=t.memoizedProps,i=null,c=kt,c!==null)switch(c.tag){case 27:case 5:i=c.memoizedProps}e[_t]=t,e=!!(e.nodeValue===a||i!==null&&i.suppressHydrationWarning===!0||_p(e.nodeValue,a)),e||Da(t,!0)}else e=ic(e).createTextNode(i),e[_t]=t,t.stateNode=e}return et(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(i=ti(t),a!==null){if(e===null){if(!i)throw Error(r(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(r(557));e[_t]=t}else pl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;et(t),e=!1}else a=Nu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(Pt(t),t):(Pt(t),null);if((t.flags&128)!==0)throw Error(r(558))}return et(t),null;case 13:if(i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(c=ti(t),i!==null&&i.dehydrated!==null){if(e===null){if(!c)throw Error(r(318));if(c=t.memoizedState,c=c!==null?c.dehydrated:null,!c)throw Error(r(317));c[_t]=t}else pl(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;et(t),c=!1}else c=Nu(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=c),c=!0;if(!c)return t.flags&256?(Pt(t),t):(Pt(t),null)}return Pt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=i!==null,e=e!==null&&e.memoizedState!==null,a&&(i=t.child,c=null,i.alternate!==null&&i.alternate.memoizedState!==null&&i.alternate.memoizedState.cachePool!==null&&(c=i.alternate.memoizedState.cachePool.pool),d=null,i.memoizedState!==null&&i.memoizedState.cachePool!==null&&(d=i.memoizedState.cachePool.pool),d!==c&&(i.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),Qr(t,t.updateQueue),et(t),null);case 4:return Oe(),e===null&&Go(t.stateNode.containerInfo),et(t),null;case 10:return ea(t.type),et(t),null;case 19:if(Y(ct),i=t.memoizedState,i===null)return et(t),null;if(c=(t.flags&128)!==0,d=i.rendering,d===null)if(c)bs(i,!1);else{if(it!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(d=Dr(e),d!==null){for(t.flags|=128,bs(i,!1),e=d.updateQueue,t.updateQueue=e,Qr(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)If(a,e),a=a.sibling;return F(ct,ct.current&1|2),Re&&Wn(t,i.treeForkCount),t.child}e=e.sibling}i.tail!==null&>()>Ir&&(t.flags|=128,c=!0,bs(i,!1),t.lanes=4194304)}else{if(!c)if(e=Dr(d),e!==null){if(t.flags|=128,c=!0,e=e.updateQueue,t.updateQueue=e,Qr(t,e),bs(i,!0),i.tail===null&&i.tailMode==="hidden"&&!d.alternate&&!Re)return et(t),null}else 2*gt()-i.renderingStartTime>Ir&&a!==536870912&&(t.flags|=128,c=!0,bs(i,!1),t.lanes=4194304);i.isBackwards?(d.sibling=t.child,t.child=d):(e=i.last,e!==null?e.sibling=d:t.child=d,i.last=d)}return i.tail!==null?(e=i.tail,i.rendering=e,i.tail=e.sibling,i.renderingStartTime=gt(),e.sibling=null,a=ct.current,F(ct,c?a&1|2:a&1),Re&&Wn(t,i.treeForkCount),e):(et(t),null);case 22:case 23:return Pt(t),Gu(),i=t.memoizedState!==null,e!==null?e.memoizedState!==null!==i&&(t.flags|=8192):i&&(t.flags|=8192),i?(a&536870912)!==0&&(t.flags&128)===0&&(et(t),t.subtreeFlags&6&&(t.flags|=8192)):et(t),a=t.updateQueue,a!==null&&Qr(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),i=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(i=t.memoizedState.cachePool.pool),i!==a&&(t.flags|=2048),e!==null&&Y(yl),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),ea(ft),et(t),null;case 25:return null;case 30:return null}throw Error(r(156,t.tag))}function bv(e,t){switch(Au(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return ea(ft),Oe(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return je(t),null;case 31:if(t.memoizedState!==null){if(Pt(t),t.alternate===null)throw Error(r(340));pl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Pt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));pl()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Y(ct),null;case 4:return Oe(),null;case 10:return ea(t.type),null;case 22:case 23:return Pt(t),Gu(),e!==null&&Y(yl),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return ea(ft),null;case 25:return null;default:return null}}function xh(e,t){switch(Au(t),t.tag){case 3:ea(ft),Oe();break;case 26:case 27:case 5:je(t);break;case 4:Oe();break;case 31:t.memoizedState!==null&&Pt(t);break;case 13:Pt(t);break;case 19:Y(ct);break;case 10:ea(t.type);break;case 22:case 23:Pt(t),Gu(),e!==null&&Y(yl);break;case 24:ea(ft)}}function Ss(e,t){try{var a=t.updateQueue,i=a!==null?a.lastEffect:null;if(i!==null){var c=i.next;a=c;do{if((a.tag&e)===e){i=void 0;var d=a.create,h=a.inst;i=d(),h.destroy=i}a=a.next}while(a!==c)}}catch(v){Ke(t,t.return,v)}}function La(e,t,a){try{var i=t.updateQueue,c=i!==null?i.lastEffect:null;if(c!==null){var d=c.next;i=d;do{if((i.tag&e)===e){var h=i.inst,v=h.destroy;if(v!==void 0){h.destroy=void 0,c=t;var w=a,O=v;try{O()}catch(H){Ke(c,w,H)}}}i=i.next}while(i!==d)}}catch(H){Ke(t,t.return,H)}}function jh(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{mm(t,a)}catch(i){Ke(e,e.return,i)}}}function kh(e,t,a){a.props=jl(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(i){Ke(e,t,i)}}function xs(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var i=e.stateNode;break;case 30:i=e.stateNode;break;default:i=e.stateNode}typeof a=="function"?e.refCleanup=a(i):a.current=i}}catch(c){Ke(e,t,c)}}function Hn(e,t){var a=e.ref,i=e.refCleanup;if(a!==null)if(typeof i=="function")try{i()}catch(c){Ke(e,t,c)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(c){Ke(e,t,c)}else a.current=null}function wh(e){var t=e.type,a=e.memoizedProps,i=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&i.focus();break e;case"img":a.src?i.src=a.src:a.srcSet&&(i.srcset=a.srcSet)}}catch(c){Ke(e,e.return,c)}}function So(e,t,a){try{var i=e.stateNode;Gv(i,e.type,a,t),i[Je]=t}catch(c){Ke(e,e.return,c)}}function Eh(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Ka(e.type)||e.tag===4}function xo(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Eh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Ka(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function jo(e,t,a){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,t):(t=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,t.appendChild(e),a=a._reactRootContainer,a!=null||t.onclick!==null||(t.onclick=xn));else if(i!==4&&(i===27&&Ka(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(jo(e,t,a),e=e.sibling;e!==null;)jo(e,t,a),e=e.sibling}function Kr(e,t,a){var i=e.tag;if(i===5||i===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(i!==4&&(i===27&&Ka(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(Kr(e,t,a),e=e.sibling;e!==null;)Kr(e,t,a),e=e.sibling}function Ah(e){var t=e.stateNode,a=e.memoizedProps;try{for(var i=e.type,c=t.attributes;c.length;)t.removeAttributeNode(c[0]);At(t,i,a),t[_t]=e,t[Je]=a}catch(d){Ke(e,e.return,d)}}var ia=!1,pt=!1,ko=!1,Ch=typeof WeakSet=="function"?WeakSet:Set,bt=null;function Sv(e,t){if(e=e.containerInfo,Ko=fc,e=Bf(e),gu(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var i=a.getSelection&&a.getSelection();if(i&&i.rangeCount!==0){a=i.anchorNode;var c=i.anchorOffset,d=i.focusNode;i=i.focusOffset;try{a.nodeType,d.nodeType}catch{a=null;break e}var h=0,v=-1,w=-1,O=0,H=0,K=e,q=null;t:for(;;){for(var L;K!==a||c!==0&&K.nodeType!==3||(v=h+c),K!==d||i!==0&&K.nodeType!==3||(w=h+i),K.nodeType===3&&(h+=K.nodeValue.length),(L=K.firstChild)!==null;)q=K,K=L;for(;;){if(K===e)break t;if(q===a&&++O===c&&(v=h),q===d&&++H===i&&(w=h),(L=K.nextSibling)!==null)break;K=q,q=K.parentNode}K=L}a=v===-1||w===-1?null:{start:v,end:w}}else a=null}a=a||{start:0,end:0}}else a=null;for(Xo={focusedElem:e,selectionRange:a},fc=!1,bt=t;bt!==null;)if(t=bt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,bt=e;else for(;bt!==null;){switch(t=bt,d=t.alternate,e=t.flags,t.tag){case 0:if((e&4)!==0&&(e=t.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a title"))),At(d,i,a),d[_t]=e,rt(d),i=d;break e;case"link":var h=zp("link","href",c).get(i+(a.href||""));if(h){for(var v=0;vZe&&(h=Ze,Ze=me,me=h);var N=Lf(v,me),C=Lf(v,Ze);if(N&&C&&(L.rangeCount!==1||L.anchorNode!==N.node||L.anchorOffset!==N.offset||L.focusNode!==C.node||L.focusOffset!==C.offset)){var z=K.createRange();z.setStart(N.node,N.offset),L.removeAllRanges(),me>Ze?(L.addRange(z),L.extend(C.node,C.offset)):(z.setEnd(C.node,C.offset),L.addRange(z))}}}}for(K=[],L=v;L=L.parentNode;)L.nodeType===1&&K.push({element:L,left:L.scrollLeft,top:L.scrollTop});for(typeof v.focus=="function"&&v.focus(),v=0;va?32:a,M.T=null,a=Do,Do=null;var d=Ga,h=oa;if(yt=0,pi=Ga=null,oa=0,(Ge&6)!==0)throw Error(r(331));var v=Ge;if(Ge|=4,Uh(d.current),Oh(d,d.current,h,a),Ge=v,Cs(0,!1),Ie&&typeof Ie.onPostCommitFiberRoot=="function")try{Ie.onPostCommitFiberRoot(Vn,d)}catch{}return!0}finally{X.p=c,M.T=i,ap(e,t)}}function ip(e,t,a){t=on(a,t),t=uo(e.stateNode,t,2),e=$a(e,t,2),e!==null&&(Ut(e,2),Gn(e))}function Ke(e,t,a){if(e.tag===3)ip(e,e,a);else for(;t!==null;){if(t.tag===3){ip(t,e,a);break}else if(t.tag===1){var i=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(Ha===null||!Ha.has(i))){e=on(a,e),a=sh(2),i=$a(t,a,2),i!==null&&(rh(a,i,t,e),Ut(i,2),Gn(i));break}}t=t.return}}function $o(e,t,a){var i=e.pingCache;if(i===null){i=e.pingCache=new kv;var c=new Set;i.set(t,c)}else c=i.get(t),c===void 0&&(c=new Set,i.set(t,c));c.has(a)||(Ao=!0,c.add(a),e=Nv.bind(null,e,t,a),t.then(e,e))}function Nv(e,t,a){var i=e.pingCache;i!==null&&i.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Fe===e&&(Ce&a)===a&&(it===4||it===3&&(Ce&62914560)===Ce&&300>gt()-Zr?(Ge&2)===0&&gi(e,0):Co|=a,hi===Ce&&(hi=0)),Gn(e)}function sp(e,t){t===0&&(t=Gl()),e=ml(e,t),e!==null&&(Ut(e,t),Gn(e))}function Tv(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),sp(e,a)}function Dv(e,t){var a=0;switch(e.tag){case 31:case 13:var i=e.stateNode,c=e.memoizedState;c!==null&&(a=c.retryLane);break;case 19:i=e.stateNode;break;case 22:i=e.stateNode._retryCache;break;default:throw Error(r(314))}i!==null&&i.delete(t),sp(e,a)}function Rv(e,t){return qi(e,t)}var tc=null,yi=null,Oo=!1,nc=!1,qo=!1,Qa=0;function Gn(e){e!==yi&&e.next===null&&(yi===null?tc=yi=e:yi=yi.next=e),nc=!0,Oo||(Oo=!0,zv())}function Cs(e,t){if(!qo&&nc){qo=!0;do for(var a=!1,i=tc;i!==null;){if(e!==0){var c=i.pendingLanes;if(c===0)var d=0;else{var h=i.suspendedLanes,v=i.pingedLanes;d=(1<<31-Nt(42|e)+1)-1,d&=c&~(h&~v),d=d&201326741?d&201326741|1:d?d|2:0}d!==0&&(a=!0,op(i,d))}else d=Ce,d=Lt(i,i===Fe?d:0,i.cancelPendingCommit!==null||i.timeoutHandle!==-1),(d&3)===0||He(i,d)||(a=!0,op(i,d));i=i.next}while(a);qo=!1}}function Mv(){rp()}function rp(){nc=Oo=!1;var e=0;Qa!==0&&Qv()&&(e=Qa);for(var t=gt(),a=null,i=tc;i!==null;){var c=i.next,d=cp(i,t);d===0?(i.next=null,a===null?tc=c:a.next=c,c===null&&(yi=a)):(a=i,(e!==0||(d&3)!==0)&&(nc=!0)),i=c}yt!==0&&yt!==5||Cs(e),Qa!==0&&(Qa=0)}function cp(e,t){for(var a=e.suspendedLanes,i=e.pingedLanes,c=e.expirationTimes,d=e.pendingLanes&-62914561;0v)break;var H=w.transferSize,K=w.initiatorType;H&&yp(K)&&(w=w.responseEnd,h+=H*(w"u"?null:document;function Tp(e,t,a){var i=vi;if(i&&typeof t=="string"&&t){var c=Ht(t);c='link[rel="'+e+'"][href="'+c+'"]',typeof a=="string"&&(c+='[crossorigin="'+a+'"]'),Np.has(c)||(Np.add(c),e={rel:e,crossOrigin:a,href:t},i.querySelector(c)===null&&(t=i.createElement("link"),At(t,"link",e),rt(t),i.head.appendChild(t)))}}function Pv(e){da.D(e),Tp("dns-prefetch",e,null)}function eb(e,t){da.C(e,t),Tp("preconnect",e,t)}function tb(e,t,a){da.L(e,t,a);var i=vi;if(i&&e&&t){var c='link[rel="preload"][as="'+Ht(t)+'"]';t==="image"&&a&&a.imageSrcSet?(c+='[imagesrcset="'+Ht(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(c+='[imagesizes="'+Ht(a.imageSizes)+'"]')):c+='[href="'+Ht(e)+'"]';var d=c;switch(t){case"style":d=bi(e);break;case"script":d=Si(e)}gn.has(d)||(e=j({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),gn.set(d,e),i.querySelector(c)!==null||t==="style"&&i.querySelector(Rs(d))||t==="script"&&i.querySelector(Ms(d))||(t=i.createElement("link"),At(t,"link",e),rt(t),i.head.appendChild(t)))}}function nb(e,t){da.m(e,t);var a=vi;if(a&&e){var i=t&&typeof t.as=="string"?t.as:"script",c='link[rel="modulepreload"][as="'+Ht(i)+'"][href="'+Ht(e)+'"]',d=c;switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":d=Si(e)}if(!gn.has(d)&&(e=j({rel:"modulepreload",href:e},t),gn.set(d,e),a.querySelector(c)===null)){switch(i){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Ms(d)))return}i=a.createElement("link"),At(i,"link",e),rt(i),a.head.appendChild(i)}}}function ab(e,t,a){da.S(e,t,a);var i=vi;if(i&&e){var c=$n(i).hoistableStyles,d=bi(e);t=t||"default";var h=c.get(d);if(!h){var v={loading:0,preload:null};if(h=i.querySelector(Rs(d)))v.loading=5;else{e=j({rel:"stylesheet",href:e,"data-precedence":t},a),(a=gn.get(d))&&Po(e,a);var w=h=i.createElement("link");rt(w),At(w,"link",e),w._p=new Promise(function(O,H){w.onload=O,w.onerror=H}),w.addEventListener("load",function(){v.loading|=1}),w.addEventListener("error",function(){v.loading|=2}),v.loading|=4,rc(h,t,i)}h={type:"stylesheet",instance:h,count:1,state:v},c.set(d,h)}}}function lb(e,t){da.X(e,t);var a=vi;if(a&&e){var i=$n(a).hoistableScripts,c=Si(e),d=i.get(c);d||(d=a.querySelector(Ms(c)),d||(e=j({src:e,async:!0},t),(t=gn.get(c))&&ed(e,t),d=a.createElement("script"),rt(d),At(d,"link",e),a.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},i.set(c,d))}}function ib(e,t){da.M(e,t);var a=vi;if(a&&e){var i=$n(a).hoistableScripts,c=Si(e),d=i.get(c);d||(d=a.querySelector(Ms(c)),d||(e=j({src:e,async:!0,type:"module"},t),(t=gn.get(c))&&ed(e,t),d=a.createElement("script"),rt(d),At(d,"link",e),a.head.appendChild(d)),d={type:"script",instance:d,count:1,state:null},i.set(c,d))}}function Dp(e,t,a,i){var c=(c=be.current)?sc(c):null;if(!c)throw Error(r(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=bi(a.href),a=$n(c).hoistableStyles,i=a.get(t),i||(i={type:"style",instance:null,count:0,state:null},a.set(t,i)),i):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=bi(a.href);var d=$n(c).hoistableStyles,h=d.get(e);if(h||(c=c.ownerDocument||c,h={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},d.set(e,h),(d=c.querySelector(Rs(e)))&&!d._p&&(h.instance=d,h.state.loading=5),gn.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},gn.set(e,a),d||sb(c,e,a,h.state))),t&&i===null)throw Error(r(528,""));return h}if(t&&i!==null)throw Error(r(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Si(a),a=$n(c).hoistableScripts,i=a.get(t),i||(i={type:"script",instance:null,count:0,state:null},a.set(t,i)),i):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,e))}}function bi(e){return'href="'+Ht(e)+'"'}function Rs(e){return'link[rel="stylesheet"]['+e+"]"}function Rp(e){return j({},e,{"data-precedence":e.precedence,precedence:null})}function sb(e,t,a,i){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?i.loading=1:(t=e.createElement("link"),i.preload=t,t.addEventListener("load",function(){return i.loading|=1}),t.addEventListener("error",function(){return i.loading|=2}),At(t,"link",a),rt(t),e.head.appendChild(t))}function Si(e){return'[src="'+Ht(e)+'"]'}function Ms(e){return"script[async]"+e}function Mp(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var i=e.querySelector('style[data-href~="'+Ht(a.href)+'"]');if(i)return t.instance=i,rt(i),i;var c=j({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return i=(e.ownerDocument||e).createElement("style"),rt(i),At(i,"style",c),rc(i,a.precedence,e),t.instance=i;case"stylesheet":c=bi(a.href);var d=e.querySelector(Rs(c));if(d)return t.state.loading|=4,t.instance=d,rt(d),d;i=Rp(a),(c=gn.get(c))&&Po(i,c),d=(e.ownerDocument||e).createElement("link"),rt(d);var h=d;return h._p=new Promise(function(v,w){h.onload=v,h.onerror=w}),At(d,"link",i),t.state.loading|=4,rc(d,a.precedence,e),t.instance=d;case"script":return d=Si(a.src),(c=e.querySelector(Ms(d)))?(t.instance=c,rt(c),c):(i=a,(c=gn.get(d))&&(i=j({},a),ed(i,c)),e=e.ownerDocument||e,c=e.createElement("script"),rt(c),At(c,"link",i),e.head.appendChild(c),t.instance=c);case"void":return null;default:throw Error(r(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(i=t.instance,t.state.loading|=4,rc(i,a.precedence,e));return t.instance}function rc(e,t,a){for(var i=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),c=i.length?i[i.length-1]:null,d=c,h=0;h title"):null)}function rb(e,t,a){if(a===1||t.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return e=t.disabled,typeof t.precedence=="string"&&e==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function Op(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function cb(e,t,a,i){if(a.type==="stylesheet"&&(typeof i.media!="string"||matchMedia(i.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var c=bi(i.href),d=t.querySelector(Rs(c));if(d){t=d._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=uc.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=d,rt(d);return}d=t.ownerDocument||t,i=Rp(i),(c=gn.get(c))&&Po(i,c),d=d.createElement("link"),rt(d);var h=d;h._p=new Promise(function(v,w){h.onload=v,h.onerror=w}),At(d,"link",i),a.instance=d}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=uc.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var td=0;function ub(e,t){return e.stylesheets&&e.count===0&&dc(e,e.stylesheets),0td?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(i),clearTimeout(c)}}:null}function uc(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)dc(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var oc=null;function dc(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,oc=new Map,t.forEach(ob,e),oc=null,uc.call(e))}function ob(e,t){if(!(t.state.loading&4)){var a=oc.get(e);if(a)var i=a.get(null);else{a=new Map,oc.set(e,a);for(var c=e.querySelectorAll("link[data-precedence],style[data-precedence]"),d=0;d"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(l){console.error(l)}}return n(),od.exports=Cb(),od.exports}var Tb=Nb();/** + * react-router v7.17.0 + * + * Copyright (c) Remix Software Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE.md file in the root directory of this source tree. + * + * @license MIT + */var sg="popstate";function rg(n){return typeof n=="object"&&n!=null&&"pathname"in n&&"search"in n&&"hash"in n&&"state"in n&&"key"in n}function Db(n={}){function l(o,f){let{pathname:m="/",search:_="",hash:p=""}=zl(o.location.hash.substring(1));return!m.startsWith("/")&&!m.startsWith(".")&&(m="/"+m),Nd("",{pathname:m,search:_,hash:p},f.state&&f.state.usr||null,f.state&&f.state.key||"default")}function s(o,f){let m=o.document.querySelector("base"),_="";if(m&&m.getAttribute("href")){let p=o.location.href,g=p.indexOf("#");_=g===-1?p:p.slice(0,g)}return _+"#"+(typeof f=="string"?f:Zs(f))}function r(o,f){_n(o.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(f)})`)}return Mb(l,s,r,n)}function nt(n,l){if(n===!1||n===null||typeof n>"u")throw new Error(l)}function _n(n,l){if(!n){typeof console<"u"&&console.warn(l);try{throw new Error(l)}catch{}}}function Rb(){return Math.random().toString(36).substring(2,10)}function cg(n,l){return{usr:n.state,key:n.key,idx:l,masked:n.mask?{pathname:n.pathname,search:n.search,hash:n.hash}:void 0}}function Nd(n,l,s=null,r,o){return{pathname:typeof n=="string"?n:n.pathname,search:"",hash:"",...typeof l=="string"?zl(l):l,state:s,key:l&&l.key||r||Rb(),mask:o}}function Zs({pathname:n="/",search:l="",hash:s=""}){return l&&l!=="?"&&(n+=l.charAt(0)==="?"?l:"?"+l),s&&s!=="#"&&(n+=s.charAt(0)==="#"?s:"#"+s),n}function zl(n){let l={};if(n){let s=n.indexOf("#");s>=0&&(l.hash=n.substring(s),n=n.substring(0,s));let r=n.indexOf("?");r>=0&&(l.search=n.substring(r),n=n.substring(0,r)),n&&(l.pathname=n)}return l}function Mb(n,l,s,r={}){let{window:o=document.defaultView,v5Compat:f=!1}=r,m=o.history,_="POP",p=null,g=S();g==null&&(g=0,m.replaceState({...m.state,idx:g},""));function S(){return(m.state||{idx:null}).idx}function j(){_="POP";let R=S(),U=R==null?null:R-g;g=R,p&&p({action:_,location:T.location,delta:U})}function k(R,U){_="PUSH";let I=rg(R)?R:Nd(T.location,R,U);s&&s(I,R),g=S()+1;let $=cg(I,g),W=T.createHref(I.mask||I);try{m.pushState($,"",W)}catch(ne){if(ne instanceof DOMException&&ne.name==="DataCloneError")throw ne;o.location.assign(W)}f&&p&&p({action:_,location:T.location,delta:1})}function D(R,U){_="REPLACE";let I=rg(R)?R:Nd(T.location,R,U);s&&s(I,R),g=S();let $=cg(I,g),W=T.createHref(I.mask||I);m.replaceState($,"",W),f&&p&&p({action:_,location:T.location,delta:0})}function E(R){return zb(o,R)}let T={get action(){return _},get location(){return n(o,m)},listen(R){if(p)throw new Error("A history only accepts one active listener");return o.addEventListener(sg,j),p=R,()=>{o.removeEventListener(sg,j),p=null}},createHref(R){return l(o,R)},createURL:E,encodeLocation(R){let U=E(R);return{pathname:U.pathname,search:U.search,hash:U.hash}},push:k,replace:D,go(R){return m.go(R)}};return T}function zb(n,l,s=!1){let r="http://localhost";n&&(r=n.location.origin!=="null"?n.location.origin:n.location.href),nt(r,"No window.location.(origin|href) available to create URL");let o=typeof l=="string"?l:Zs(l);return o=o.replace(/ $/,"%20"),!s&&o.startsWith("//")&&(o=r+o),new URL(o,r)}function t_(n,l,s="/"){return $b(n,l,s,!1)}function $b(n,l,s,r,o){let f=typeof l=="string"?zl(l):l,m=ha(f.pathname||"/",s);if(m==null)return null;let _=Ob(n),p=null,g=Zb(m);for(let S=0;p==null&&S<_.length;++S)p=Xb(_[S],g,r);return p}function Ob(n){let l=n_(n);return qb(l),l}function n_(n,l=[],s=[],r="",o=!1){let f=(m,_,p=o,g)=>{let S={relativePath:g===void 0?m.path||"":g,caseSensitive:m.caseSensitive===!0,childrenIndex:_,route:m};if(S.relativePath.startsWith("/")){if(!S.relativePath.startsWith(r)&&p)return;nt(S.relativePath.startsWith(r),`Absolute route path "${S.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),S.relativePath=S.relativePath.slice(r.length)}let j=Cn([r,S.relativePath]),k=s.concat(S);m.children&&m.children.length>0&&(nt(m.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${j}".`),n_(m.children,l,k,j,p)),!(m.path==null&&!m.index)&&l.push({path:j,score:Qb(j,m.index),routesMeta:k})};return n.forEach((m,_)=>{var p;if(m.path===""||!((p=m.path)!=null&&p.includes("?")))f(m,_);else for(let g of a_(m.path))f(m,_,!0,g)}),l}function a_(n){let l=n.split("/");if(l.length===0)return[];let[s,...r]=l,o=s.endsWith("?"),f=s.replace(/\?$/,"");if(r.length===0)return o?[f,""]:[f];let m=a_(r.join("/")),_=[];return _.push(...m.map(p=>p===""?f:[f,p].join("/"))),o&&_.push(...m),_.map(p=>n.startsWith("/")&&p===""?"/":p)}function qb(n){n.sort((l,s)=>l.score!==s.score?s.score-l.score:Kb(l.routesMeta.map(r=>r.childrenIndex),s.routesMeta.map(r=>r.childrenIndex)))}var Lb=/^:[\w-]+$/,Ub=3,Bb=2,Hb=1,Gb=10,Yb=-2,ug=n=>n==="*";function Qb(n,l){let s=n.split("/"),r=s.length;return s.some(ug)&&(r+=Yb),l&&(r+=Bb),s.filter(o=>!ug(o)).reduce((o,f)=>o+(Lb.test(f)?Ub:f===""?Hb:Gb),r)}function Kb(n,l){return n.length===l.length&&n.slice(0,-1).every((r,o)=>r===l[o])?n[n.length-1]-l[l.length-1]:0}function Xb(n,l,s=!1){let{routesMeta:r}=n,o={},f="/",m=[];for(let _=0;_{if(S==="*"){let E=_[k]||"";m=f.slice(0,f.length-E.length).replace(/(.)\/+$/,"$1")}const D=_[k];return j&&!D?g[S]=void 0:g[S]=(D||"").replace(/%2F/g,"/"),g},{}),pathname:f,pathnameBase:m,pattern:n}}function Vb(n,l=!1,s=!0){_n(n==="*"||!n.endsWith("*")||n.endsWith("/*"),`Route path "${n}" will be treated as if it were "${n.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${n.replace(/\*$/,"/*")}".`);let r=[],o="^"+n.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(m,_,p,g,S)=>{if(r.push({paramName:_,isOptional:p!=null}),p){let j=S.charAt(g+m.length);return j&&j!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return n.endsWith("*")?(r.push({paramName:"*"}),o+=n==="*"||n==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):s?o+="\\/*$":n!==""&&n!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,l?void 0:"i"),r]}function Zb(n){try{return n.split("/").map(l=>decodeURIComponent(l).replace(/\//g,"%2F")).join("/")}catch(l){return _n(!1,`The URL path "${n}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${l}).`),n}}function ha(n,l){if(l==="/")return n;if(!n.toLowerCase().startsWith(l.toLowerCase()))return null;let s=l.endsWith("/")?l.length-1:l.length,r=n.charAt(s);return r&&r!=="/"?null:n.slice(s)||"/"}var Ib=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function Jb(n,l="/"){let{pathname:s,search:r="",hash:o=""}=typeof n=="string"?zl(n):n,f;return s?(s=l_(s),s.startsWith("/")?f=og(s.substring(1),"/"):f=og(s,l)):f=l,{pathname:f,search:Pb(r),hash:e0(o)}}function og(n,l){let s=zc(l).split("/");return n.split("/").forEach(o=>{o===".."?s.length>1&&s.pop():o!=="."&&s.push(o)}),s.length>1?s.join("/"):"/"}function hd(n,l,s,r){return`Cannot include a '${n}' character in a manually specified \`to.${l}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${s}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Fb(n){return n.filter((l,s)=>s===0||l.route.path&&l.route.path.length>0)}function Zd(n){let l=Fb(n);return l.map((s,r)=>r===l.length-1?s.pathname:s.pathnameBase)}function Yc(n,l,s,r=!1){let o;typeof n=="string"?o=zl(n):(o={...n},nt(!o.pathname||!o.pathname.includes("?"),hd("?","pathname","search",o)),nt(!o.pathname||!o.pathname.includes("#"),hd("#","pathname","hash",o)),nt(!o.search||!o.search.includes("#"),hd("#","search","hash",o)));let f=n===""||o.pathname==="",m=f?"/":o.pathname,_;if(m==null)_=s;else{let j=l.length-1;if(!r&&m.startsWith("..")){let k=m.split("/");for(;k[0]==="..";)k.shift(),j-=1;o.pathname=k.join("/")}_=j>=0?l[j]:"/"}let p=Jb(o,_),g=m&&m!=="/"&&m.endsWith("/"),S=(f||m===".")&&s.endsWith("/");return!p.pathname.endsWith("/")&&(g||S)&&(p.pathname+="/"),p}var l_=n=>n.replace(/\/\/+/g,"/"),Cn=n=>l_(n.join("/")),zc=n=>n.replace(/\/+$/,""),Wb=n=>zc(n).replace(/^\/*/,"/"),Pb=n=>!n||n==="?"?"":n.startsWith("?")?n:"?"+n,e0=n=>!n||n==="#"?"":n.startsWith("#")?n:"#"+n,t0=class{constructor(n,l,s,r=!1){this.status=n,this.statusText=l||"",this.internal=r,s instanceof Error?(this.data=s.toString(),this.error=s):this.data=s}};function n0(n){return n!=null&&typeof n.status=="number"&&typeof n.statusText=="string"&&typeof n.internal=="boolean"&&"data"in n}function a0(n){let l=n.map(s=>s.route.path).filter(Boolean);return Cn(l)||"/"}var i_=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function s_(n,l){let s=n;if(typeof s!="string"||!Ib.test(s))return{absoluteURL:void 0,isExternal:!1,to:s};let r=s,o=!1;if(i_)try{let f=new URL(window.location.href),m=s.startsWith("//")?new URL(f.protocol+s):new URL(s),_=ha(m.pathname,l);m.origin===f.origin&&_!=null?s=_+m.search+m.hash:o=!0}catch{_n(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:o,to:s}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var r_=["POST","PUT","PATCH","DELETE"];new Set(r_);var l0=["GET",...r_];new Set(l0);var Ti=x.createContext(null);Ti.displayName="DataRouter";var Qc=x.createContext(null);Qc.displayName="DataRouterState";var c_=x.createContext(!1);function i0(){return x.useContext(c_)}var u_=x.createContext({isTransitioning:!1});u_.displayName="ViewTransition";var s0=x.createContext(new Map);s0.displayName="Fetchers";var r0=x.createContext(null);r0.displayName="Await";var sn=x.createContext(null);sn.displayName="Navigation";var Ws=x.createContext(null);Ws.displayName="Location";var Qn=x.createContext({outlet:null,matches:[],isDataRoute:!1});Qn.displayName="Route";var Id=x.createContext(null);Id.displayName="RouteError";var o_="REACT_ROUTER_ERROR",c0="REDIRECT",u0="ROUTE_ERROR_RESPONSE";function o0(n){if(n.startsWith(`${o_}:${c0}:{`))try{let l=JSON.parse(n.slice(28));if(typeof l=="object"&&l&&typeof l.status=="number"&&typeof l.statusText=="string"&&typeof l.location=="string"&&typeof l.reloadDocument=="boolean"&&typeof l.replace=="boolean")return l}catch{}}function d0(n){if(n.startsWith(`${o_}:${u0}:{`))try{let l=JSON.parse(n.slice(40));if(typeof l=="object"&&l&&typeof l.status=="number"&&typeof l.statusText=="string")return new t0(l.status,l.statusText,l.data)}catch{}}function f0(n,{relative:l}={}){nt(Di(),"useHref() may be used only in the context of a component.");let{basename:s,navigator:r}=x.useContext(sn),{hash:o,pathname:f,search:m}=Ps(n,{relative:l}),_=f;return s!=="/"&&(_=f==="/"?s:Cn([s,f])),r.createHref({pathname:_,search:m,hash:o})}function Di(){return x.useContext(Ws)!=null}function Tn(){return nt(Di(),"useLocation() may be used only in the context of a component."),x.useContext(Ws).location}var d_="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function f_(n){x.useContext(sn).static||x.useLayoutEffect(n)}function Jd(){let{isDataRoute:n}=x.useContext(Qn);return n?w0():m0()}function m0(){nt(Di(),"useNavigate() may be used only in the context of a component.");let n=x.useContext(Ti),{basename:l,navigator:s}=x.useContext(sn),{matches:r}=x.useContext(Qn),{pathname:o}=Tn(),f=JSON.stringify(Zd(r)),m=x.useRef(!1);return f_(()=>{m.current=!0}),x.useCallback((p,g={})=>{if(_n(m.current,d_),!m.current)return;if(typeof p=="number"){s.go(p);return}let S=Yc(p,JSON.parse(f),o,g.relative==="path");n==null&&l!=="/"&&(S.pathname=S.pathname==="/"?l:Cn([l,S.pathname])),(g.replace?s.replace:s.push)(S,g.state,g)},[l,s,f,o,n])}x.createContext(null);function Ps(n,{relative:l}={}){let{matches:s}=x.useContext(Qn),{pathname:r}=Tn(),o=JSON.stringify(Zd(s));return x.useMemo(()=>Yc(n,JSON.parse(o),r,l==="path"),[n,o,r,l])}function h0(n,l){return m_(n,l)}function m_(n,l,s){var R;nt(Di(),"useRoutes() may be used only in the context of a component.");let{navigator:r}=x.useContext(sn),{matches:o}=x.useContext(Qn),f=o[o.length-1],m=f?f.params:{},_=f?f.pathname:"/",p=f?f.pathnameBase:"/",g=f&&f.route;{let U=g&&g.path||"";p_(_,!g||U.endsWith("*")||U.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${_}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let S=Tn(),j;if(l){let U=typeof l=="string"?zl(l):l;nt(p==="/"||((R=U.pathname)==null?void 0:R.startsWith(p)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${p}" but pathname "${U.pathname}" was given in the \`location\` prop.`),j=U}else j=S;let k=j.pathname||"/",D=k;if(p!=="/"){let U=p.replace(/^\//,"").split("/");D="/"+k.replace(/^\//,"").split("/").slice(U.length).join("/")}let E=s&&s.state.matches.length?s.state.matches.map(U=>Object.assign(U,{route:s.manifest[U.route.id]||U.route})):t_(n,{pathname:D});_n(g||E!=null,`No routes matched location "${j.pathname}${j.search}${j.hash}" `),_n(E==null||E[E.length-1].route.element!==void 0||E[E.length-1].route.Component!==void 0||E[E.length-1].route.lazy!==void 0,`Matched leaf route at location "${j.pathname}${j.search}${j.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let T=v0(E&&E.map(U=>Object.assign({},U,{params:Object.assign({},m,U.params),pathname:Cn([p,r.encodeLocation?r.encodeLocation(U.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:U.pathname]),pathnameBase:U.pathnameBase==="/"?p:Cn([p,r.encodeLocation?r.encodeLocation(U.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:U.pathnameBase])})),o,s);return l&&T?x.createElement(Ws.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...j},navigationType:"POP"}},T):T}function p0(){let n=k0(),l=n0(n)?`${n.status} ${n.statusText}`:n instanceof Error?n.message:JSON.stringify(n),s=n instanceof Error?n.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},f={padding:"2px 4px",backgroundColor:r},m=null;return console.error("Error handled by React Router default ErrorBoundary:",n),m=x.createElement(x.Fragment,null,x.createElement("p",null,"💿 Hey developer 👋"),x.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",x.createElement("code",{style:f},"ErrorBoundary")," or"," ",x.createElement("code",{style:f},"errorElement")," prop on your route.")),x.createElement(x.Fragment,null,x.createElement("h2",null,"Unexpected Application Error!"),x.createElement("h3",{style:{fontStyle:"italic"}},l),s?x.createElement("pre",{style:o},s):null,m)}var g0=x.createElement(p0,null),h_=class extends x.Component{constructor(n){super(n),this.state={location:n.location,revalidation:n.revalidation,error:n.error}}static getDerivedStateFromError(n){return{error:n}}static getDerivedStateFromProps(n,l){return l.location!==n.location||l.revalidation!=="idle"&&n.revalidation==="idle"?{error:n.error,location:n.location,revalidation:n.revalidation}:{error:n.error!==void 0?n.error:l.error,location:l.location,revalidation:n.revalidation||l.revalidation}}componentDidCatch(n,l){this.props.onError?this.props.onError(n,l):console.error("React Router caught the following error during render",n)}render(){let n=this.state.error;if(this.context&&typeof n=="object"&&n&&"digest"in n&&typeof n.digest=="string"){const s=d0(n.digest);s&&(n=s)}let l=n!==void 0?x.createElement(Qn.Provider,{value:this.props.routeContext},x.createElement(Id.Provider,{value:n,children:this.props.component})):this.props.children;return this.context?x.createElement(_0,{error:n},l):l}};h_.contextType=c_;var pd=new WeakMap;function _0({children:n,error:l}){let{basename:s}=x.useContext(sn);if(typeof l=="object"&&l&&"digest"in l&&typeof l.digest=="string"){let r=o0(l.digest);if(r){let o=pd.get(l);if(o)throw o;let f=s_(r.location,s);if(i_&&!pd.get(l))if(f.isExternal||r.reloadDocument)window.location.href=f.absoluteURL||f.to;else{const m=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(f.to,{replace:r.replace}));throw pd.set(l,m),m}return x.createElement("meta",{httpEquiv:"refresh",content:`0;url=${f.absoluteURL||f.to}`})}}return n}function y0({routeContext:n,match:l,children:s}){let r=x.useContext(Ti);return r&&r.static&&r.staticContext&&(l.route.errorElement||l.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=l.route.id),x.createElement(Qn.Provider,{value:n},s)}function v0(n,l=[],s){let r=s==null?void 0:s.state;if(n==null){if(!r)return null;if(r.errors)n=r.matches;else if(l.length===0&&!r.initialized&&r.matches.length>0)n=r.matches;else return null}let o=n,f=r==null?void 0:r.errors;if(f!=null){let S=o.findIndex(j=>j.route.id&&(f==null?void 0:f[j.route.id])!==void 0);nt(S>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(f).join(",")}`),o=o.slice(0,Math.min(o.length,S+1))}let m=!1,_=-1;if(s&&r){m=r.renderFallback;for(let S=0;S=0?o=o.slice(0,_+1):o=[o[0]];break}}}}let p=s==null?void 0:s.onError,g=r&&p?(S,j)=>{var k,D;p(S,{location:r.location,params:((D=(k=r.matches)==null?void 0:k[0])==null?void 0:D.params)??{},pattern:a0(r.matches),errorInfo:j})}:void 0;return o.reduceRight((S,j,k)=>{let D,E=!1,T=null,R=null;r&&(D=f&&j.route.id?f[j.route.id]:void 0,T=j.route.errorElement||g0,m&&(_<0&&k===0?(p_("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),E=!0,R=null):_===k&&(E=!0,R=j.route.hydrateFallbackElement||null)));let U=l.concat(o.slice(0,k+1)),I=()=>{let $;return D?$=T:E?$=R:j.route.Component?$=x.createElement(j.route.Component,null):j.route.element?$=j.route.element:$=S,x.createElement(y0,{match:j,routeContext:{outlet:S,matches:U,isDataRoute:r!=null},children:$})};return r&&(j.route.ErrorBoundary||j.route.errorElement||k===0)?x.createElement(h_,{location:r.location,revalidation:r.revalidation,component:T,error:D,children:I(),routeContext:{outlet:null,matches:U,isDataRoute:!0},onError:g}):I()},null)}function Fd(n){return`${n} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function b0(n){let l=x.useContext(Ti);return nt(l,Fd(n)),l}function S0(n){let l=x.useContext(Qc);return nt(l,Fd(n)),l}function x0(n){let l=x.useContext(Qn);return nt(l,Fd(n)),l}function Wd(n){let l=x0(n),s=l.matches[l.matches.length-1];return nt(s.route.id,`${n} can only be used on routes that contain a unique "id"`),s.route.id}function j0(){return Wd("useRouteId")}function k0(){var r;let n=x.useContext(Id),l=S0("useRouteError"),s=Wd("useRouteError");return n!==void 0?n:(r=l.errors)==null?void 0:r[s]}function w0(){let{router:n}=b0("useNavigate"),l=Wd("useNavigate"),s=x.useRef(!1);return f_(()=>{s.current=!0}),x.useCallback(async(o,f={})=>{_n(s.current,d_),s.current&&(typeof o=="number"?await n.navigate(o):await n.navigate(o,{fromRouteId:l,...f}))},[n,l])}var dg={};function p_(n,l,s){!l&&!dg[n]&&(dg[n]=!0,_n(!1,s))}x.memo(E0);function E0({routes:n,manifest:l,future:s,state:r,isStatic:o,onError:f}){return m_(n,void 0,{manifest:l,state:r,isStatic:o,onError:f})}function A0({to:n,replace:l,state:s,relative:r}){nt(Di()," may be used only in the context of a component.");let{static:o}=x.useContext(sn);_n(!o," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:f}=x.useContext(Qn),{pathname:m}=Tn(),_=Jd(),p=Yc(n,Zd(f),m,r==="path"),g=JSON.stringify(p);return x.useEffect(()=>{_(JSON.parse(g),{replace:l,state:s,relative:r})},[_,g,r,l,s]),null}function Td(n){nt(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function C0({basename:n="/",children:l=null,location:s,navigationType:r="POP",navigator:o,static:f=!1,useTransitions:m}){nt(!Di(),"You cannot render a inside another . You should never have more than one in your app.");let _=n.replace(/^\/*/,"/"),p=x.useMemo(()=>({basename:_,navigator:o,static:f,useTransitions:m,future:{}}),[_,o,f,m]);typeof s=="string"&&(s=zl(s));let{pathname:g="/",search:S="",hash:j="",state:k=null,key:D="default",mask:E}=s,T=x.useMemo(()=>{let R=ha(g,_);return R==null?null:{location:{pathname:R,search:S,hash:j,state:k,key:D,mask:E},navigationType:r}},[_,g,S,j,k,D,r,E]);return _n(T!=null,` is not able to match the URL "${g}${S}${j}" because it does not start with the basename, so the won't render anything.`),T==null?null:x.createElement(sn.Provider,{value:p},x.createElement(Ws.Provider,{children:l,value:T}))}function N0({children:n,location:l}){return h0(Dd(n),l)}function Dd(n,l=[]){let s=[];return x.Children.forEach(n,(r,o)=>{if(!x.isValidElement(r))return;let f=[...l,o];if(r.type===x.Fragment){s.push.apply(s,Dd(r.props.children,f));return}nt(r.type===Td,`[${typeof r.type=="string"?r.type:r.type.name}] is not a component. All component children of must be a or `),nt(!r.props.index||!r.props.children,"An index route cannot have child routes.");let m={id:r.props.id||f.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(m.children=Dd(r.props.children,f)),s.push(m)}),s}var wc="get",Ec="application/x-www-form-urlencoded";function Kc(n){return typeof HTMLElement<"u"&&n instanceof HTMLElement}function T0(n){return Kc(n)&&n.tagName.toLowerCase()==="button"}function D0(n){return Kc(n)&&n.tagName.toLowerCase()==="form"}function R0(n){return Kc(n)&&n.tagName.toLowerCase()==="input"}function M0(n){return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}function z0(n,l){return n.button===0&&(!l||l==="_self")&&!M0(n)}var vc=null;function $0(){if(vc===null)try{new FormData(document.createElement("form"),0),vc=!1}catch{vc=!0}return vc}var O0=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function gd(n){return n!=null&&!O0.has(n)?(_n(!1,`"${n}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Ec}"`),null):n}function q0(n,l){let s,r,o,f,m;if(D0(n)){let _=n.getAttribute("action");r=_?ha(_,l):null,s=n.getAttribute("method")||wc,o=gd(n.getAttribute("enctype"))||Ec,f=new FormData(n)}else if(T0(n)||R0(n)&&(n.type==="submit"||n.type==="image")){let _=n.form;if(_==null)throw new Error('Cannot submit a