From 0672e82fc707f8109084d7f30785d227b77b6973 Mon Sep 17 00:00:00 2001 From: baiyanyun Date: Sun, 7 Jun 2026 01:05:49 +0800 Subject: [PATCH] feat(client): show digital sync failure details --- .../embedded/sgrobot-digital/src/index.css | 17 +++ .../src/lib/qimingclawAdapter.ts | 33 ++++- .../src/pages/digital/CommandDeck.tsx | 52 ++++++++ .../sgrobot-digital/assets/index-BcFvWJ2w.css | 1 - .../sgrobot-digital/assets/index-Bpj7JfZ9.js | 121 ------------------ .../sgrobot-digital/assets/index-Dt_PM3Yb.css | 1 + .../sgrobot-digital/assets/index-QTsL0vuL.js | 121 ++++++++++++++++++ .../public/sgrobot-digital/index.html | 4 +- .../services/digitalEmployee/syncService.ts | 53 ++++++++ ...ital-employee-frontend-integration-plan.md | 3 +- 10 files changed, 280 insertions(+), 126 deletions(-) delete mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-BcFvWJ2w.css delete mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-Bpj7JfZ9.js create mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-Dt_PM3Yb.css create mode 100644 qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-QTsL0vuL.js 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 8e1e1840..0e045864 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 @@ -1207,6 +1207,23 @@ .de-management-sync-strip--danger { color: #ad3434; border-color: rgba(224,72,72,0.2); background: rgba(224,72,72,0.08); } +.de-management-sync-failures { + display: grid; gap: 6px; margin: -4px 0 10px; +} +.de-management-sync-failure { + display: grid; grid-template-columns: 56px 54px minmax(54px, 0.7fr) minmax(0, 1.6fr); + align-items: center; gap: 8px; min-height: 28px; padding: 6px 9px; + border-radius: 10px; border: 1px solid rgba(224,72,72,0.14); + background: rgba(224,72,72,0.055); color: #7b4450; font-size: 11px; +} +.de-management-sync-failure span, +.de-management-sync-failure em, +.de-management-sync-failure small { + min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} +.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: rgba(32,191,107,0.42); 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 386b3fe2..df5f8bfc 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 @@ -61,6 +61,19 @@ interface QimingclawSyncStatus { failed: number; lastSyncAt: string | null; lastSyncError: string | null; + recentFailures?: QimingclawSyncFailure[]; +} + +interface QimingclawSyncFailure { + id: string; + entityType: string; + entityId: string; + operation: string; + attempts: number; + lastAttemptAt: string | null; + error: string | null; + createdAt: string; + updatedAt: string; } interface QimingclawSnapshot { @@ -372,6 +385,16 @@ function syncLine(snapshot: QimingclawSnapshot | null): string { return sync.lastSyncAt ? `管理端同步:已同步,最近 ${sync.lastSyncAt}` : '管理端同步:等待本地数据'; } +function compactSyncText(value?: string | null): string { + return String(value || '').replace(/\s+/g, ' ').trim(); +} + +function syncFailureLine(failure: QimingclawSyncFailure): string { + const error = compactSyncText(failure.error); + const detail = error.length > 120 ? `${error.slice(0, 120)}...` : error; + return `${failure.entityType}/${failure.operation} ${failure.id} 重试 ${failure.attempts} 次${detail ? `,${detail}` : ''}`; +} + function withRuntimePlan(plan: DebugPlan, snapshot: QimingclawSnapshot | null): DebugPlan { return { ...plan, status: runtimeStatusForPlan(plan, snapshot) }; } @@ -543,13 +566,21 @@ function buildEvents(duties: DigitalEmployeeDuty[], confirmed: boolean, snapshot })); const sync = snapshot?.sync; if (sync && (sync.pending > 0 || sync.failed > 0 || sync.lastSyncAt)) { + const recentFailureText = (sync.recentFailures || []) + .slice(0, 3) + .map(syncFailureLine) + .join(';'); events.push({ id: 'event-management-sync', time: sync.syncing ? '实时' : '同步', plan_title: '管理端联动', task_title: '同步数字员工本地状态', step_title: sync.failed > 0 ? '同步补偿' : 'outbox 推送', - detail: `${syncLine(snapshot)}${sync.lastSyncError ? `。错误:${sync.lastSyncError}` : ''}`, + detail: [ + syncLine(snapshot), + sync.lastSyncError ? `错误:${sync.lastSyncError}` : '', + recentFailureText ? `最近失败:${recentFailureText}` : '', + ].filter(Boolean).join('。'), status: sync.failed > 0 ? 'failed' : sync.syncing || sync.pending > 0 ? 'running' : 'completed', status_label: sync.failed > 0 ? '异常' : sync.syncing || sync.pending > 0 ? '同步中' : '已同步', status_tone: sync.failed > 0 ? 'danger' : sync.syncing || sync.pending > 0 ? 'running' : 'success', diff --git a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx index 3688bac7..e0e18ea9 100644 --- a/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx +++ b/qimingclaw/crates/agent-electron-client/embedded/sgrobot-digital/src/pages/digital/CommandDeck.tsx @@ -61,6 +61,19 @@ interface ManagementSyncStatus { failed: number; lastSyncAt: string | null; lastSyncError: string | null; + recentFailures?: ManagementSyncFailure[]; +} + +interface ManagementSyncFailure { + id: string; + entityType: string; + entityId: string; + operation: string; + attempts: number; + lastAttemptAt: string | null; + error: string | null; + createdAt: string; + updatedAt: string; } // 技术侧 PlanTemplate 是任务模板来源;用户侧只展示为“任务”,运行时 Task/PlanStep 展示为“步骤”。 @@ -448,6 +461,31 @@ function syncStatusSummary(status: ManagementSyncStatus | null): string { : '等待本地 outbox 数据。'; } +function entityTypeLabel(entityType: string): string { + const labels: Record = { + plan: 'Plan', + task: 'Task', + run: 'Run', + event: 'Event', + artifact: 'Artifact', + approval: 'Approval', + }; + return labels[entityType] || entityType || 'Entity'; +} + +function syncFailureSummary(failure: ManagementSyncFailure): string { + const error = summarizeSyncError(failure.error); + return [ + `${entityTypeLabel(failure.entityType)} / ${failure.operation}`, + `重试 ${failure.attempts} 次`, + error, + ].filter(Boolean).join(' · '); +} + +function syncFailureTime(failure: ManagementSyncFailure): string { + return formatBeijingDateTime(failure.lastAttemptAt || failure.updatedAt || failure.createdAt) || '未尝试'; +} + async function readManagementSyncStatus(): Promise { const bridge = window.QimingClawBridge?.digital; if (!bridge?.getSyncStatus) return null; @@ -824,6 +862,7 @@ export default function CommandDeck({ onNavigate }: { onNavigate: (target: Digit const managementSyncLabel = syncStatusLabel(managementSyncStatus); const managementSyncSummary = syncStatusSummary(managementSyncStatus); const managementSyncError = summarizeSyncError(managementSyncStatus?.lastSyncError); + const managementSyncFailures = managementSyncStatus?.recentFailures ?? []; const resolvedVisualState = resolveEmployeeVisualState({ confirmed: Boolean(workday?.confirmed), currentEvent, @@ -1332,6 +1371,19 @@ export default function CommandDeck({ onNavigate }: { onNavigate: (target: Digit {managementSyncSummary} + {managementSyncFailures.length > 0 && ( +
+ {managementSyncFailures.map((failure) => ( +
+ {syncFailureTime(failure)} + {entityTypeLabel(failure.entityType)} + {failure.id} + {syncFailureSummary(failure)} +
+ ))} +
+ )} + {(actionNotice || actionError || planDataError || workdayProjection?.demo_reason) && (
{actionError || actionNotice || planDataError || workdayProjection?.demo_reason} diff --git a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-BcFvWJ2w.css b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-BcFvWJ2w.css deleted file mode 100644 index d9714081..00000000 --- a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-BcFvWJ2w.css +++ /dev/null @@ -1 +0,0 @@ -/*! 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{background:#ffffff38;transform:translateY(-1px)}.de-header-close{background:#ffffff2e}.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-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-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-event-modal-actions{justify-content:flex-end;gap:8px;display: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-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-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-Bpj7JfZ9.js b/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-Bpj7JfZ9.js deleted file mode 100644 index ef52a701..00000000 --- a/qimingclaw/crates/agent-electron-client/public/sgrobot-digital/assets/index-Bpj7JfZ9.js +++ /dev/null @@ -1,121 +0,0 @@ -(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const f of document.querySelectorAll('link[rel="modulepreload"]'))o(f);new MutationObserver(f=>{for(const m of f)if(m.type==="childList")for(const p of m.addedNodes)p.tagName==="LINK"&&p.rel==="modulepreload"&&o(p)}).observe(document,{childList:!0,subtree:!0});function u(f){const m={};return f.integrity&&(m.integrity=f.integrity),f.referrerPolicy&&(m.referrerPolicy=f.referrerPolicy),f.crossOrigin==="use-credentials"?m.credentials="include":f.crossOrigin==="anonymous"?m.credentials="omit":m.credentials="same-origin",m}function o(f){if(f.ep)return;f.ep=!0;const m=u(f);fetch(f.href,m)}})();function kv(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var fo={exports:{}},as={};/** - * @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 Uh;function Av(){if(Uh)return as;Uh=1;var l=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function u(o,f,m){var p=null;if(m!==void 0&&(p=""+m),f.key!==void 0&&(p=""+f.key),"key"in f){m={};for(var j in f)j!=="key"&&(m[j]=f[j])}else m=f;return f=m.ref,{$$typeof:l,type:o,key:p,ref:f!==void 0?f:null,props:m}}return as.Fragment=s,as.jsx=u,as.jsxs=u,as}var Hh;function Dv(){return Hh||(Hh=1,fo.exports=Av()),fo.exports}var c=Dv(),mo={exports:{}},me={};/** - * @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 qh;function zv(){if(qh)return me;qh=1;var l=Symbol.for("react.transitional.element"),s=Symbol.for("react.portal"),u=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),f=Symbol.for("react.profiler"),m=Symbol.for("react.consumer"),p=Symbol.for("react.context"),j=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),y=Symbol.for("react.memo"),w=Symbol.for("react.lazy"),S=Symbol.for("react.activity"),N=Symbol.iterator;function B(x){return x===null||typeof x!="object"?null:(x=N&&x[N]||x["@@iterator"],typeof x=="function"?x:null)}var M={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},$=Object.assign,H={};function Q(x,R,K){this.props=x,this.context=R,this.refs=H,this.updater=K||M}Q.prototype.isReactComponent={},Q.prototype.setState=function(x,R){if(typeof x!="object"&&typeof x!="function"&&x!=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,x,R,"setState")},Q.prototype.forceUpdate=function(x){this.updater.enqueueForceUpdate(this,x,"forceUpdate")};function I(){}I.prototype=Q.prototype;function J(x,R,K){this.props=x,this.context=R,this.refs=H,this.updater=K||M}var ne=J.prototype=new I;ne.constructor=J,$(ne,Q.prototype),ne.isPureReactComponent=!0;var ie=Array.isArray;function he(){}var Z={H:null,A:null,T:null,S:null},ee=Object.prototype.hasOwnProperty;function Te(x,R,K){var W=K.ref;return{$$typeof:l,type:x,key:R,ref:W!==void 0?W:null,props:K}}function st(x,R){return Te(x.type,R,x.props)}function Ze(x){return typeof x=="object"&&x!==null&&x.$$typeof===l}function oe(x){var R={"=":"=0",":":"=2"};return"$"+x.replace(/[=:]/g,function(K){return R[K]})}var X=/\/+/g;function se(x,R){return typeof x=="object"&&x!==null&&x.key!=null?oe(""+x.key):R.toString(36)}function q(x){switch(x.status){case"fulfilled":return x.value;case"rejected":throw x.reason;default:switch(typeof x.status=="string"?x.then(he,he):(x.status="pending",x.then(function(R){x.status==="pending"&&(x.status="fulfilled",x.value=R)},function(R){x.status==="pending"&&(x.status="rejected",x.reason=R)})),x.status){case"fulfilled":return x.value;case"rejected":throw x.reason}}throw x}function A(x,R,K,W,re){var pe=typeof x;(pe==="undefined"||pe==="boolean")&&(x=null);var Ne=!1;if(x===null)Ne=!0;else switch(pe){case"bigint":case"string":case"number":Ne=!0;break;case"object":switch(x.$$typeof){case l:case s:Ne=!0;break;case w:return Ne=x._init,A(Ne(x._payload),R,K,W,re)}}if(Ne)return re=re(x),Ne=W===""?"."+se(x,0):W,ie(re)?(K="",Ne!=null&&(K=Ne.replace(X,"$&/")+"/"),A(re,R,K,"",function(V){return V})):re!=null&&(Ze(re)&&(re=st(re,K+(re.key==null||x&&x.key===re.key?"":(""+re.key).replace(X,"$&/")+"/")+Ne)),R.push(re)),1;Ne=0;var Fe=W===""?".":W+":";if(ie(x))for(var G=0;G>>1,be=A[de];if(0>>1;def(K,te))Wf(re,K)?(A[de]=re,A[W]=te,de=W):(A[de]=K,A[R]=te,de=R);else if(Wf(re,te))A[de]=re,A[W]=te,de=W;else break e}}return Y}function f(A,Y){var te=A.sortIndex-Y.sortIndex;return te!==0?te:A.id-Y.id}if(l.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var m=performance;l.unstable_now=function(){return m.now()}}else{var p=Date,j=p.now();l.unstable_now=function(){return p.now()-j}}var g=[],y=[],w=1,S=null,N=3,B=!1,M=!1,$=!1,H=!1,Q=typeof setTimeout=="function"?setTimeout:null,I=typeof clearTimeout=="function"?clearTimeout:null,J=typeof setImmediate<"u"?setImmediate:null;function ne(A){for(var Y=u(y);Y!==null;){if(Y.callback===null)o(y);else if(Y.startTime<=A)o(y),Y.sortIndex=Y.expirationTime,s(g,Y);else break;Y=u(y)}}function ie(A){if($=!1,ne(A),!M)if(u(g)!==null)M=!0,he||(he=!0,oe());else{var Y=u(y);Y!==null&&q(ie,Y.startTime-A)}}var he=!1,Z=-1,ee=5,Te=-1;function st(){return H?!0:!(l.unstable_now()-TeA&&st());){var de=S.callback;if(typeof de=="function"){S.callback=null,N=S.priorityLevel;var be=de(S.expirationTime<=A);if(A=l.unstable_now(),typeof be=="function"){S.callback=be,ne(A),Y=!0;break t}S===u(g)&&o(g),ne(A)}else o(g);S=u(g)}if(S!==null)Y=!0;else{var x=u(y);x!==null&&q(ie,x.startTime-A),Y=!1}}break e}finally{S=null,N=te,B=!1}Y=void 0}}finally{Y?oe():he=!1}}}var oe;if(typeof J=="function")oe=function(){J(Ze)};else if(typeof MessageChannel<"u"){var X=new MessageChannel,se=X.port2;X.port1.onmessage=Ze,oe=function(){se.postMessage(null)}}else oe=function(){Q(Ze,0)};function q(A,Y){Z=Q(function(){A(l.unstable_now())},Y)}l.unstable_IdlePriority=5,l.unstable_ImmediatePriority=1,l.unstable_LowPriority=4,l.unstable_NormalPriority=3,l.unstable_Profiling=null,l.unstable_UserBlockingPriority=2,l.unstable_cancelCallback=function(A){A.callback=null},l.unstable_forceFrameRate=function(A){0>A||125de?(A.sortIndex=te,s(y,A),u(g)===null&&A===u(y)&&($?(I(Z),Z=-1):$=!0,q(ie,te-de))):(A.sortIndex=be,s(g,A),M||B||(M=!0,he||(he=!0,oe()))),A},l.unstable_shouldYield=st,l.unstable_wrapCallback=function(A){var Y=N;return function(){var te=N;N=Y;try{return A.apply(this,arguments)}finally{N=te}}}})(go)),go}var Yh;function Ov(){return Yh||(Yh=1,po.exports=Rv()),po.exports}var yo={exports:{}},Nt={};/** - * @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 Gh;function Lv(){if(Gh)return Nt;Gh=1;var l=Qo();function s(g){var y="https://react.dev/errors/"+g;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(s){console.error(s)}}return l(),yo.exports=Lv(),yo.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 Xh;function Hv(){if(Xh)return ns;Xh=1;var l=Ov(),s=Qo(),u=Uv();function o(e){var t="https://react.dev/errors/"+e;if(1be||(e.current=de[be],de[be]=null,be--)}function K(e,t){be++,de[be]=e.current,e.current=t}var W=x(null),re=x(null),pe=x(null),Ne=x(null);function Fe(e,t){switch(K(pe,t),K(re,e),K(W,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?sh(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=sh(t),e=rh(t,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}R(W),K(W,e)}function G(){R(W),R(re),R(pe)}function V(e){e.memoizedState!==null&&K(Ne,e);var t=W.current,a=rh(t,e.type);t!==a&&(K(re,e),K(W,a))}function Me(e){re.current===e&&(R(W),R(re)),Ne.current===e&&(R(Ne),Ii._currentValue=te)}var Re,dt;function St(e){if(Re===void 0)try{throw Error()}catch(a){var t=a.stack.trim().match(/\n( *(at )?)/);Re=t&&t[1]||"",dt=-1)":-1i||_[n]!==k[i]){var O=` -`+_[n].replace(" at new "," at ");return e.displayName&&O.includes("")&&(O=O.replace("",e.displayName)),O}while(1<=n&&0<=i);break}}}finally{oa=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?St(a):""}function ht(e,t){switch(e.tag){case 26:case 27:case 5:return St(e.type);case 16:return St("Lazy");case 13:return e.child!==t&&t!==null?St("Suspense Fallback"):St("Suspense");case 19:return St("SuspenseList");case 0:case 15:return Le(e.type,!1);case 11:return Le(e.type.render,!1);case 1:return Le(e.type,!0);case 31:return St("Activity");default:return""}}function va(e){try{var t="",a=null;do t+=ht(e,a),a=e,e=e.return;while(e);return t}catch(n){return` -Error generating stack: `+n.message+` -`+n.stack}}var Ge=Object.prototype.hasOwnProperty,$t=l.unstable_scheduleCallback,fe=l.unstable_cancelCallback,Ln=l.unstable_shouldYield,ba=l.unstable_requestPaint,tt=l.unstable_now,ol=l.unstable_getCurrentPriorityLevel,Wt=l.unstable_ImmediatePriority,xt=l.unstable_UserBlockingPriority,Ta=l.unstable_NormalPriority,Ca=l.unstable_LowPriority,Wa=l.unstable_IdlePriority,ii=l.log,Tt=l.unstable_setDisableYieldValue,Un=null,jt=null;function Ct(e){if(typeof ii=="function"&&Tt(e),jt&&typeof jt.setStrictMode=="function")try{jt.setStrictMode(Un,e)}catch{}}var kt=Math.clz32?Math.clz32:ic,si=Math.log,lc=Math.LN2;function ic(e){return e>>>=0,e===0?32:31-(si(e)/lc|0)|0}var dl=256,fl=262144,Dt=4194304;function Ce(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 _e(e,t,a){var n=e.pendingLanes;if(n===0)return 0;var i=0,r=e.suspendedLanes,d=e.pingedLanes;e=e.warmLanes;var h=n&134217727;return h!==0?(n=h&~r,n!==0?i=Ce(n):(d&=h,d!==0?i=Ce(d):a||(a=h&~e,a!==0&&(i=Ce(a))))):(h=n&~r,h!==0?i=Ce(h):d!==0?i=Ce(d):a||(a=n&~e,a!==0&&(i=Ce(a)))),i===0?0:t!==0&&t!==i&&(t&r)===0&&(r=i&-i,a=t&-t,r>=a||r===32&&(a&4194048)!==0)?t:i}function ka(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function ye(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 ri(){var e=Dt;return Dt<<=1,(Dt&62914560)===0&&(Dt=4194304),e}function Hn(e){for(var t=[],a=0;31>a;a++)t.push(e);return t}function qn(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ia(e,t,a,n,i,r){var d=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 h=e.entanglements,_=e.expirationTimes,k=e.hiddenUpdates;for(a=d&~a;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var gl=/[\n"\\]/g;function Mt(e){return e.replace(gl,function(t){return"\\"+t.charCodeAt(0).toString(16)+" "})}function mi(e,t,a,n,i,r,d,h){e.name="",d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"?e.type=d:e.removeAttribute("type"),t!=null?d==="number"?(t===0&&e.value===""||e.value!=t)&&(e.value=""+zt(t)):e.value!==""+zt(t)&&(e.value=""+zt(t)):d!=="submit"&&d!=="reset"||e.removeAttribute("value"),t!=null?vl(e,d,zt(t)):a!=null?vl(e,d,zt(a)):n!=null&&e.removeAttribute("value"),i==null&&r!=null&&(e.defaultChecked=!!r),i!=null&&(e.checked=i&&typeof i!="function"&&typeof i!="symbol"),h!=null&&typeof h!="function"&&typeof h!="symbol"&&typeof h!="boolean"?e.name=""+zt(h):e.removeAttribute("name")}function yl(e,t,a,n,i,r,d,h){if(r!=null&&typeof r!="function"&&typeof r!="symbol"&&typeof r!="boolean"&&(e.type=r),t!=null||a!=null){if(!(r!=="submit"&&r!=="reset"||t!=null)){di(e);return}a=a!=null?""+zt(a):"",t=t!=null?""+zt(t):a,h||t===e.value||(e.value=t),e.defaultValue=t}n=n??i,n=typeof n!="function"&&typeof n!="symbol"&&!!n,e.checked=h?e.checked:!!n,e.defaultChecked=!!n,d!=null&&typeof d!="function"&&typeof d!="symbol"&&typeof d!="boolean"&&(e.name=d),di(e)}function vl(e,t,a){t==="number"&&pl(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function sn(e,t,a,n){if(e=e.options,t){t={};for(var i=0;i"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),dc=!1;if(Ma)try{var gi={};Object.defineProperty(gi,"passive",{get:function(){dc=!0}}),window.addEventListener("test",gi,gi),window.removeEventListener("test",gi,gi)}catch{dc=!1}var un=null,fc=null,ws=null;function sd(){if(ws)return ws;var e,t=fc,a=t.length,n,i="value"in un?un.value:un.textContent,r=i.length;for(e=0;e=bi),fd=" ",md=!1;function hd(e,t){switch(e){case"keyup":return Wg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Sl=!1;function Pg(e,t){switch(e){case"compositionend":return pd(t);case"keypress":return t.which!==32?null:(md=!0,fd);case"textInput":return e=t.data,e===fd&&md?null:e;default:return null}}function ey(e,t){if(Sl)return e==="compositionend"||!yc&&hd(e,t)?(e=sd(),ws=fc=un=null,Sl=!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=n}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=jd(a)}}function wd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?wd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Nd(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=pl(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=pl(e.document)}return t}function _c(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 cy=Ma&&"documentMode"in document&&11>=document.documentMode,xl=null,Sc=null,ji=null,xc=!1;function Td(e,t,a){var n=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;xc||xl==null||xl!==pl(n)||(n=xl,"selectionStart"in n&&_c(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),ji&&xi(ji,n)||(ji=n,n=vr(Sc,"onSelect"),0>=d,i-=d,Sa=1<<32-kt(t)+i|a<ve?(Ee=ae,ae=null):Ee=ae.sibling;var ze=D(T,ae,C[ve],L);if(ze===null){ae===null&&(ae=Ee);break}e&&ae&&ze.alternate===null&&t(T,ae),E=r(ze,E,ve),De===null?le=ze:De.sibling=ze,De=ze,ae=Ee}if(ve===C.length)return a(T,ae),we&&Oa(T,ve),le;if(ae===null){for(;veve?(Ee=ae,ae=null):Ee=ae.sibling;var Dn=D(T,ae,ze.value,L);if(Dn===null){ae===null&&(ae=Ee);break}e&&ae&&Dn.alternate===null&&t(T,ae),E=r(Dn,E,ve),De===null?le=Dn:De.sibling=Dn,De=Dn,ae=Ee}if(ze.done)return a(T,ae),we&&Oa(T,ve),le;if(ae===null){for(;!ze.done;ve++,ze=C.next())ze=U(T,ze.value,L),ze!==null&&(E=r(ze,E,ve),De===null?le=ze:De.sibling=ze,De=ze);return we&&Oa(T,ve),le}for(ae=n(ae);!ze.done;ve++,ze=C.next())ze=z(ae,T,ve,ze.value,L),ze!==null&&(e&&ze.alternate!==null&&ae.delete(ze.key===null?ve:ze.key),E=r(ze,E,ve),De===null?le=ze:De.sibling=ze,De=ze);return e&&ae.forEach(function(Cv){return t(T,Cv)}),we&&Oa(T,ve),le}function $e(T,E,C,L){if(typeof C=="object"&&C!==null&&C.type===$&&C.key===null&&(C=C.props.children),typeof C=="object"&&C!==null){switch(C.$$typeof){case B:e:{for(var le=C.key;E!==null;){if(E.key===le){if(le=C.type,le===$){if(E.tag===7){a(T,E.sibling),L=i(E,C.props.children),L.return=T,T=L;break e}}else if(E.elementType===le||typeof le=="object"&&le!==null&&le.$$typeof===ee&&In(le)===E.type){a(T,E.sibling),L=i(E,C.props),ki(L,C),L.return=T,T=L;break e}a(T,E);break}else t(T,E);E=E.sibling}C.type===$?(L=Zn(C.props.children,T.mode,L,C.key),L.return=T,T=L):(L=Os(C.type,C.key,C.props,null,T.mode,L),ki(L,C),L.return=T,T=L)}return d(T);case M:e:{for(le=C.key;E!==null;){if(E.key===le)if(E.tag===4&&E.stateNode.containerInfo===C.containerInfo&&E.stateNode.implementation===C.implementation){a(T,E.sibling),L=i(E,C.children||[]),L.return=T,T=L;break e}else{a(T,E);break}else t(T,E);E=E.sibling}L=kc(C,T.mode,L),L.return=T,T=L}return d(T);case ee:return C=In(C),$e(T,E,C,L)}if(q(C))return P(T,E,C,L);if(oe(C)){if(le=oe(C),typeof le!="function")throw Error(o(150));return C=le.call(C),ce(T,E,C,L)}if(typeof C.then=="function")return $e(T,E,Ys(C),L);if(C.$$typeof===J)return $e(T,E,Hs(T,C),L);Gs(T,C)}return typeof C=="string"&&C!==""||typeof C=="number"||typeof C=="bigint"?(C=""+C,E!==null&&E.tag===6?(a(T,E.sibling),L=i(E,C),L.return=T,T=L):(a(T,E),L=Cc(C,T.mode,L),L.return=T,T=L),d(T)):a(T,E)}return function(T,E,C,L){try{Ci=0;var le=$e(T,E,C,L);return Ml=null,le}catch(ae){if(ae===zl||ae===Bs)throw ae;var De=Qt(29,ae,null,T.mode);return De.lanes=L,De.return=T,De}finally{}}}var el=Fd(!0),Wd=Fd(!1),hn=!1;function $c(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Yc(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 pn(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function gn(e,t,a){var n=e.updateQueue;if(n===null)return null;if(n=n.shared,(Oe&2)!==0){var i=n.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),n.pending=t,t=Rs(e),Rd(e,null,a),t}return Ms(e,n,t,a),Rs(e)}function Ai(e,t,a){if(t=t.updateQueue,t!==null&&(t=t.shared,(a&4194048)!==0)){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,ps(e,a)}}function Gc(e,t){var a=e.updateQueue,n=e.alternate;if(n!==null&&(n=n.updateQueue,a===n)){var i=null,r=null;if(a=a.firstBaseUpdate,a!==null){do{var d={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};r===null?i=r=d:r=r.next=d,a=a.next}while(a!==null);r===null?i=r=t:r=r.next=t}else i=r=t;a={baseState:n.baseState,firstBaseUpdate:i,lastBaseUpdate:r,shared:n.shared,callbacks:n.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=t:e.next=t,a.lastBaseUpdate=t}var Qc=!1;function Di(){if(Qc){var e=Dl;if(e!==null)throw e}}function zi(e,t,a,n){Qc=!1;var i=e.updateQueue;hn=!1;var r=i.firstBaseUpdate,d=i.lastBaseUpdate,h=i.shared.pending;if(h!==null){i.shared.pending=null;var _=h,k=_.next;_.next=null,d===null?r=k:d.next=k,d=_;var O=e.alternate;O!==null&&(O=O.updateQueue,h=O.lastBaseUpdate,h!==d&&(h===null?O.firstBaseUpdate=k:h.next=k,O.lastBaseUpdate=_))}if(r!==null){var U=i.baseState;d=0,O=k=_=null,h=r;do{var D=h.lane&-536870913,z=D!==h.lane;if(z?(je&D)===D:(n&D)===D){D!==0&&D===Al&&(Qc=!0),O!==null&&(O=O.next={lane:0,tag:h.tag,payload:h.payload,callback:null,next:null});e:{var P=e,ce=h;D=t;var $e=a;switch(ce.tag){case 1:if(P=ce.payload,typeof P=="function"){U=P.call($e,U,D);break e}U=P;break e;case 3:P.flags=P.flags&-65537|128;case 0:if(P=ce.payload,D=typeof P=="function"?P.call($e,U,D):P,D==null)break e;U=S({},U,D);break e;case 2:hn=!0}}D=h.callback,D!==null&&(e.flags|=64,z&&(e.flags|=8192),z=i.callbacks,z===null?i.callbacks=[D]:z.push(D))}else z={lane:D,tag:h.tag,payload:h.payload,callback:h.callback,next:null},O===null?(k=O=z,_=U):O=O.next=z,d|=D;if(h=h.next,h===null){if(h=i.shared.pending,h===null)break;z=h,h=z.next,z.next=null,i.lastBaseUpdate=z,i.shared.pending=null}}while(!0);O===null&&(_=U),i.baseState=_,i.firstBaseUpdate=k,i.lastBaseUpdate=O,r===null&&(i.shared.lanes=0),Sn|=d,e.lanes=d,e.memoizedState=U}}function Id(e,t){if(typeof e!="function")throw Error(o(191,e));e.call(t)}function Pd(e,t){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;er?r:8;var d=A.T,h={};A.T=h,uu(e,!1,t,a);try{var _=i(),k=A.S;if(k!==null&&k(h,_),_!==null&&typeof _=="object"&&typeof _.then=="function"){var O=yy(_,n);Oi(e,t,O,Jt(e))}else Oi(e,t,n,Jt(e))}catch(U){Oi(e,t,{then:function(){},status:"rejected",reason:U},Jt())}finally{Y.p=r,d!==null&&h.types!==null&&(d.types=h.types),A.T=d}}function jy(){}function ru(e,t,a,n){if(e.tag!==5)throw Error(o(476));var i=zf(e).queue;Df(e,i,t,te,a===null?jy:function(){return Mf(e),a(n)})}function zf(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:qa,lastRenderedState:te},next:null};var a={};return t.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:qa,lastRenderedState:a},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Mf(e){var t=zf(e);t.next===null&&(t=e.alternate.memoizedState),Oi(e,t.next.queue,{},Jt())}function cu(){return vt(Ii)}function Rf(){return it().memoizedState}function Of(){return it().memoizedState}function Ey(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var a=Jt();e=pn(a);var n=gn(t,e,a);n!==null&&(qt(n,t,a),Ai(n,t,a)),t={cache:Uc()},e.payload=t;return}t=t.return}}function wy(e,t,a){var n=Jt();a={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Ps(e)?Uf(t,a):(a=Nc(e,t,a,n),a!==null&&(qt(a,e,n),Hf(a,t,n)))}function Lf(e,t,a){var n=Jt();Oi(e,t,a,n)}function Oi(e,t,a,n){var i={lane:n,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(Ps(e))Uf(t,i);else{var r=e.alternate;if(e.lanes===0&&(r===null||r.lanes===0)&&(r=t.lastRenderedReducer,r!==null))try{var d=t.lastRenderedState,h=r(d,a);if(i.hasEagerState=!0,i.eagerState=h,Gt(h,d))return Ms(e,t,i,0),Ye===null&&zs(),!1}catch{}finally{}if(a=Nc(e,t,i,n),a!==null)return qt(a,e,n),Hf(a,t,n),!0}return!1}function uu(e,t,a,n){if(n={lane:2,revertLane:$u(),gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ps(e)){if(t)throw Error(o(479))}else t=Nc(e,a,n,2),t!==null&&qt(t,e,2)}function Ps(e){var t=e.alternate;return e===ge||t!==null&&t===ge}function Uf(e,t){Ol=Ks=!0;var a=e.pending;a===null?t.next=t:(t.next=a.next,a.next=t),e.pending=t}function Hf(e,t,a){if((a&4194048)!==0){var n=t.lanes;n&=e.pendingLanes,a|=n,t.lanes=a,ps(e,a)}}var Li={readContext:vt,use:Js,useCallback:Pe,useContext:Pe,useEffect:Pe,useImperativeHandle:Pe,useLayoutEffect:Pe,useInsertionEffect:Pe,useMemo:Pe,useReducer:Pe,useRef:Pe,useState:Pe,useDebugValue:Pe,useDeferredValue:Pe,useTransition:Pe,useSyncExternalStore:Pe,useId:Pe,useHostTransitionStatus:Pe,useFormState:Pe,useActionState:Pe,useOptimistic:Pe,useMemoCache:Pe,useCacheRefresh:Pe};Li.useEffectEvent=Pe;var qf={readContext:vt,use:Js,useCallback:function(e,t){return At().memoizedState=[e,t===void 0?null:t],e},useContext:vt,useEffect:xf,useImperativeHandle:function(e,t,a){a=a!=null?a.concat([e]):null,Ws(4194308,4,Nf.bind(null,t,e),a)},useLayoutEffect:function(e,t){return Ws(4194308,4,e,t)},useInsertionEffect:function(e,t){Ws(4,2,e,t)},useMemo:function(e,t){var a=At();t=t===void 0?null:t;var n=e();if(tl){Ct(!0);try{e()}finally{Ct(!1)}}return a.memoizedState=[n,t],n},useReducer:function(e,t,a){var n=At();if(a!==void 0){var i=a(t);if(tl){Ct(!0);try{a(t)}finally{Ct(!1)}}}else i=t;return n.memoizedState=n.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},n.queue=e,e=e.dispatch=wy.bind(null,ge,e),[n.memoizedState,e]},useRef:function(e){var t=At();return e={current:e},t.memoizedState=e},useState:function(e){e=au(e);var t=e.queue,a=Lf.bind(null,ge,t);return t.dispatch=a,[e.memoizedState,a]},useDebugValue:iu,useDeferredValue:function(e,t){var a=At();return su(a,e,t)},useTransition:function(){var e=au(!1);return e=Df.bind(null,ge,e.queue,!0,!1),At().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,a){var n=ge,i=At();if(we){if(a===void 0)throw Error(o(407));a=a()}else{if(a=t(),Ye===null)throw Error(o(349));(je&127)!==0||sf(n,t,a)}i.memoizedState=a;var r={value:a,getSnapshot:t};return i.queue=r,xf(cf.bind(null,n,r,e),[e]),n.flags|=2048,Ul(9,{destroy:void 0},rf.bind(null,n,r,a,t),null),a},useId:function(){var e=At(),t=Ye.identifierPrefix;if(we){var a=xa,n=Sa;a=(n&~(1<<32-kt(n)-1)).toString(32)+a,t="_"+t+"R_"+a,a=Zs++,0<\/script>",r=r.removeChild(r.firstChild);break;case"select":r=typeof n.is=="string"?d.createElement("select",{is:n.is}):d.createElement("select"),n.multiple?r.multiple=!0:n.size&&(r.size=n.size);break;default:r=typeof n.is=="string"?d.createElement(i,{is:n.is}):d.createElement(i)}}r[at]=t,r[gt]=n;e:for(d=t.child;d!==null;){if(d.tag===5||d.tag===6)r.appendChild(d.stateNode);else if(d.tag!==4&&d.tag!==27&&d.child!==null){d.child.return=d,d=d.child;continue}if(d===t)break e;for(;d.sibling===null;){if(d.return===null||d.return===t)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}t.stateNode=r;e:switch(_t(r,i,n),i){case"button":case"input":case"select":case"textarea":n=!!n.autoFocus;break e;case"img":n=!0;break e;default:n=!1}n&&$a(t)}}return Ke(t),ju(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,a),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==n&&$a(t);else{if(typeof n!="string"&&t.stateNode===null)throw Error(o(166));if(e=pe.current,Cl(t)){if(e=t.stateNode,a=t.memoizedProps,n=null,i=yt,i!==null)switch(i.tag){case 27:case 5:n=i.memoizedProps}e[at]=t,e=!!(e.nodeValue===a||n!==null&&n.suppressHydrationWarning===!0||lh(e.nodeValue,a)),e||fn(t,!0)}else e=br(e).createTextNode(n),e[at]=t,t.stateNode=e}return Ke(t),null;case 31:if(a=t.memoizedState,e===null||e.memoizedState!==null){if(n=Cl(t),a!==null){if(e===null){if(!n)throw Error(o(318));if(e=t.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(o(557));e[at]=t}else Vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ke(t),e=!1}else a=Mc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return t.flags&256?(Kt(t),t):(Kt(t),null);if((t.flags&128)!==0)throw Error(o(558))}return Ke(t),null;case 13:if(n=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Cl(t),n!==null&&n.dehydrated!==null){if(e===null){if(!i)throw Error(o(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(o(317));i[at]=t}else Vn(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;Ke(t),i=!1}else i=Mc(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Kt(t),t):(Kt(t),null)}return Kt(t),(t.flags&128)!==0?(t.lanes=a,t):(a=n!==null,e=e!==null&&e.memoizedState!==null,a&&(n=t.child,i=null,n.alternate!==null&&n.alternate.memoizedState!==null&&n.alternate.memoizedState.cachePool!==null&&(i=n.alternate.memoizedState.cachePool.pool),r=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(r=n.memoizedState.cachePool.pool),r!==i&&(n.flags|=2048)),a!==e&&a&&(t.child.flags|=8192),lr(t,t.updateQueue),Ke(t),null);case 4:return G(),e===null&&Xu(t.stateNode.containerInfo),Ke(t),null;case 10:return Ua(t.type),Ke(t),null;case 19:if(R(lt),n=t.memoizedState,n===null)return Ke(t),null;if(i=(t.flags&128)!==0,r=n.rendering,r===null)if(i)Hi(n,!1);else{if(et!==0||e!==null&&(e.flags&128)!==0)for(e=t.child;e!==null;){if(r=Xs(e),r!==null){for(t.flags|=128,Hi(n,!1),e=r.updateQueue,t.updateQueue=e,lr(t,e),t.subtreeFlags=0,e=a,a=t.child;a!==null;)Od(a,e),a=a.sibling;return K(lt,lt.current&1|2),we&&Oa(t,n.treeForkCount),t.child}e=e.sibling}n.tail!==null&&tt()>ur&&(t.flags|=128,i=!0,Hi(n,!1),t.lanes=4194304)}else{if(!i)if(e=Xs(r),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,lr(t,e),Hi(n,!0),n.tail===null&&n.tailMode==="hidden"&&!r.alternate&&!we)return Ke(t),null}else 2*tt()-n.renderingStartTime>ur&&a!==536870912&&(t.flags|=128,i=!0,Hi(n,!1),t.lanes=4194304);n.isBackwards?(r.sibling=t.child,t.child=r):(e=n.last,e!==null?e.sibling=r:t.child=r,n.last=r)}return n.tail!==null?(e=n.tail,n.rendering=e,n.tail=e.sibling,n.renderingStartTime=tt(),e.sibling=null,a=lt.current,K(lt,i?a&1|2:a&1),we&&Oa(t,n.treeForkCount),e):(Ke(t),null);case 22:case 23:return Kt(t),Kc(),n=t.memoizedState!==null,e!==null?e.memoizedState!==null!==n&&(t.flags|=8192):n&&(t.flags|=8192),n?(a&536870912)!==0&&(t.flags&128)===0&&(Ke(t),t.subtreeFlags&6&&(t.flags|=8192)):Ke(t),a=t.updateQueue,a!==null&&lr(t,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),n=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(n=t.memoizedState.cachePool.pool),n!==a&&(t.flags|=2048),e!==null&&R(Wn),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),t.memoizedState.cache!==a&&(t.flags|=2048),Ua(rt),Ke(t),null;case 25:return null;case 30:return null}throw Error(o(156,t.tag))}function Ay(e,t){switch(Dc(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Ua(rt),G(),e=t.flags,(e&65536)!==0&&(e&128)===0?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Me(t),null;case 31:if(t.memoizedState!==null){if(Kt(t),t.alternate===null)throw Error(o(340));Vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Kt(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(o(340));Vn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return R(lt),null;case 4:return G(),null;case 10:return Ua(t.type),null;case 22:case 23:return Kt(t),Kc(),e!==null&&R(Wn),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Ua(rt),null;case 25:return null;default:return null}}function um(e,t){switch(Dc(t),t.tag){case 3:Ua(rt),G();break;case 26:case 27:case 5:Me(t);break;case 4:G();break;case 31:t.memoizedState!==null&&Kt(t);break;case 13:Kt(t);break;case 19:R(lt);break;case 10:Ua(t.type);break;case 22:case 23:Kt(t),Kc(),e!==null&&R(Wn);break;case 24:Ua(rt)}}function qi(e,t){try{var a=t.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var i=n.next;a=i;do{if((a.tag&e)===e){n=void 0;var r=a.create,d=a.inst;n=r(),d.destroy=n}a=a.next}while(a!==i)}}catch(h){He(t,t.return,h)}}function bn(e,t,a){try{var n=t.updateQueue,i=n!==null?n.lastEffect:null;if(i!==null){var r=i.next;n=r;do{if((n.tag&e)===e){var d=n.inst,h=d.destroy;if(h!==void 0){d.destroy=void 0,i=t;var _=a,k=h;try{k()}catch(O){He(i,_,O)}}}n=n.next}while(n!==r)}}catch(O){He(t,t.return,O)}}function om(e){var t=e.updateQueue;if(t!==null){var a=e.stateNode;try{Pd(t,a)}catch(n){He(e,e.return,n)}}}function dm(e,t,a){a.props=al(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(n){He(e,t,n)}}function Bi(e,t){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var n=e.stateNode;break;case 30:n=e.stateNode;break;default:n=e.stateNode}typeof a=="function"?e.refCleanup=a(n):a.current=n}}catch(i){He(e,t,i)}}function ja(e,t){var a=e.ref,n=e.refCleanup;if(a!==null)if(typeof n=="function")try{n()}catch(i){He(e,t,i)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(i){He(e,t,i)}else a.current=null}function fm(e){var t=e.type,a=e.memoizedProps,n=e.stateNode;try{e:switch(t){case"button":case"input":case"select":case"textarea":a.autoFocus&&n.focus();break e;case"img":a.src?n.src=a.src:a.srcSet&&(n.srcset=a.srcSet)}}catch(i){He(e,e.return,i)}}function Eu(e,t,a){try{var n=e.stateNode;Iy(n,e.type,a,t),n[gt]=t}catch(i){He(e,e.return,i)}}function mm(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Nn(e.type)||e.tag===4}function wu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||mm(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&&Nn(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 Nu(e,t,a){var n=e.tag;if(n===5||n===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=Ae));else if(n!==4&&(n===27&&Nn(e.type)&&(a=e.stateNode,t=null),e=e.child,e!==null))for(Nu(e,t,a),e=e.sibling;e!==null;)Nu(e,t,a),e=e.sibling}function ir(e,t,a){var n=e.tag;if(n===5||n===6)e=e.stateNode,t?a.insertBefore(e,t):a.appendChild(e);else if(n!==4&&(n===27&&Nn(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(ir(e,t,a),e=e.sibling;e!==null;)ir(e,t,a),e=e.sibling}function hm(e){var t=e.stateNode,a=e.memoizedProps;try{for(var n=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);_t(t,n,a),t[at]=e,t[gt]=a}catch(r){He(e,e.return,r)}}var Ya=!1,ot=!1,Tu=!1,pm=typeof WeakSet=="function"?WeakSet:Set,pt=null;function Dy(e,t){if(e=e.containerInfo,Vu=Nr,e=Nd(e),_c(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var n=a.getSelection&&a.getSelection();if(n&&n.rangeCount!==0){a=n.anchorNode;var i=n.anchorOffset,r=n.focusNode;n=n.focusOffset;try{a.nodeType,r.nodeType}catch{a=null;break e}var d=0,h=-1,_=-1,k=0,O=0,U=e,D=null;t:for(;;){for(var z;U!==a||i!==0&&U.nodeType!==3||(h=d+i),U!==r||n!==0&&U.nodeType!==3||(_=d+n),U.nodeType===3&&(d+=U.nodeValue.length),(z=U.firstChild)!==null;)D=U,U=z;for(;;){if(U===e)break t;if(D===a&&++k===i&&(h=d),D===r&&++O===n&&(_=d),(z=U.nextSibling)!==null)break;U=D,D=U.parentNode}U=z}a=h===-1||_===-1?null:{start:h,end:_}}else a=null}a=a||{start:0,end:0}}else a=null;for(Ju={focusedElem:e,selectionRange:a},Nr=!1,pt=t;pt!==null;)if(t=pt,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,pt=e;else for(;pt!==null;){switch(t=pt,r=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"))),_t(r,n,a),r[at]=e,nt(r),n=r;break e;case"link":var d=Sh("link","href",i).get(n+(a.href||""));if(d){for(var h=0;h$e&&(d=$e,$e=ce,ce=d);var T=Ed(h,ce),E=Ed(h,$e);if(T&&E&&(z.rangeCount!==1||z.anchorNode!==T.node||z.anchorOffset!==T.offset||z.focusNode!==E.node||z.focusOffset!==E.offset)){var C=U.createRange();C.setStart(T.node,T.offset),z.removeAllRanges(),ce>$e?(z.addRange(C),z.extend(E.node,E.offset)):(C.setEnd(E.node,E.offset),z.addRange(C))}}}}for(U=[],z=h;z=z.parentNode;)z.nodeType===1&&U.push({element:z,left:z.scrollLeft,top:z.scrollTop});for(typeof h.focus=="function"&&h.focus(),h=0;ha?32:a,A.T=null,a=Ru,Ru=null;var r=jn,d=Za;if(mt=0,Yl=jn=null,Za=0,(Oe&6)!==0)throw Error(o(331));var h=Oe;if(Oe|=4,Nm(r.current),jm(r,r.current,d,a),Oe=h,Ki(0,!1),jt&&typeof jt.onPostCommitFiberRoot=="function")try{jt.onPostCommitFiberRoot(Un,r)}catch{}return!0}finally{Y.p=i,A.T=n,Qm(e,t)}}function Km(e,t,a){t=ea(a,t),t=mu(e.stateNode,t,2),e=gn(e,t,2),e!==null&&(qn(e,2),Ea(e))}function He(e,t,a){if(e.tag===3)Km(e,e,a);else for(;t!==null;){if(t.tag===3){Km(t,e,a);break}else if(t.tag===1){var n=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof n.componentDidCatch=="function"&&(xn===null||!xn.has(n))){e=ea(a,e),a=Zf(2),n=gn(t,a,2),n!==null&&(Vf(a,n,t,e),qn(n,2),Ea(n));break}}t=t.return}}function Hu(e,t,a){var n=e.pingCache;if(n===null){n=e.pingCache=new Ry;var i=new Set;n.set(t,i)}else i=n.get(t),i===void 0&&(i=new Set,n.set(t,i));i.has(a)||(Au=!0,i.add(a),e=qy.bind(null,e,t,a),t.then(e,e))}function qy(e,t,a){var n=e.pingCache;n!==null&&n.delete(t),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,Ye===e&&(je&a)===a&&(et===4||et===3&&(je&62914560)===je&&300>tt()-cr?(Oe&2)===0&&Gl(e,0):Du|=a,$l===je&&($l=0)),Ea(e)}function Zm(e,t){t===0&&(t=ri()),e=Kn(e,t),e!==null&&(qn(e,t),Ea(e))}function By(e){var t=e.memoizedState,a=0;t!==null&&(a=t.retryLane),Zm(e,a)}function $y(e,t){var a=0;switch(e.tag){case 31:case 13:var n=e.stateNode,i=e.memoizedState;i!==null&&(a=i.retryLane);break;case 19:n=e.stateNode;break;case 22:n=e.stateNode._retryCache;break;default:throw Error(o(314))}n!==null&&n.delete(t),Zm(e,a)}function Yy(e,t){return $t(e,t)}var pr=null,Xl=null,qu=!1,gr=!1,Bu=!1,wn=0;function Ea(e){e!==Xl&&e.next===null&&(Xl===null?pr=Xl=e:Xl=Xl.next=e),gr=!0,qu||(qu=!0,Qy())}function Ki(e,t){if(!Bu&&gr){Bu=!0;do for(var a=!1,n=pr;n!==null;){if(e!==0){var i=n.pendingLanes;if(i===0)var r=0;else{var d=n.suspendedLanes,h=n.pingedLanes;r=(1<<31-kt(42|e)+1)-1,r&=i&~(d&~h),r=r&201326741?r&201326741|1:r?r|2:0}r!==0&&(a=!0,Wm(n,r))}else r=je,r=_e(n,n===Ye?r:0,n.cancelPendingCommit!==null||n.timeoutHandle!==-1),(r&3)===0||ka(n,r)||(a=!0,Wm(n,r));n=n.next}while(a);Bu=!1}}function Gy(){Vm()}function Vm(){gr=qu=!1;var e=0;wn!==0&&ev()&&(e=wn);for(var t=tt(),a=null,n=pr;n!==null;){var i=n.next,r=Jm(n,t);r===0?(n.next=null,a===null?pr=i:a.next=i,i===null&&(Xl=a)):(a=n,(e!==0||(r&3)!==0)&&(gr=!0)),n=i}mt!==0&&mt!==5||Ki(e),wn!==0&&(wn=0)}function Jm(e,t){for(var a=e.suspendedLanes,n=e.pingedLanes,i=e.expirationTimes,r=e.pendingLanes&-62914561;0h)break;var O=_.transferSize,U=_.initiatorType;O&&ih(U)&&(_=_.responseEnd,d+=O*(_"u"?null:document;function yh(e,t,a){var n=Kl;if(n&&typeof t=="string"&&t){var i=Mt(t);i='link[rel="'+e+'"][href="'+i+'"]',typeof a=="string"&&(i+='[crossorigin="'+a+'"]'),gh.has(i)||(gh.add(i),e={rel:e,crossOrigin:a,href:t},n.querySelector(i)===null&&(t=n.createElement("link"),_t(t,"link",e),nt(t),n.head.appendChild(t)))}}function uv(e){Va.D(e),yh("dns-prefetch",e,null)}function ov(e,t){Va.C(e,t),yh("preconnect",e,t)}function dv(e,t,a){Va.L(e,t,a);var n=Kl;if(n&&e&&t){var i='link[rel="preload"][as="'+Mt(t)+'"]';t==="image"&&a&&a.imageSrcSet?(i+='[imagesrcset="'+Mt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(i+='[imagesizes="'+Mt(a.imageSizes)+'"]')):i+='[href="'+Mt(e)+'"]';var r=i;switch(t){case"style":r=Zl(e);break;case"script":r=Vl(e)}sa.has(r)||(e=S({rel:"preload",href:t==="image"&&a&&a.imageSrcSet?void 0:e,as:t},a),sa.set(r,e),n.querySelector(i)!==null||t==="style"&&n.querySelector(Fi(r))||t==="script"&&n.querySelector(Wi(r))||(t=n.createElement("link"),_t(t,"link",e),nt(t),n.head.appendChild(t)))}}function fv(e,t){Va.m(e,t);var a=Kl;if(a&&e){var n=t&&typeof t.as=="string"?t.as:"script",i='link[rel="modulepreload"][as="'+Mt(n)+'"][href="'+Mt(e)+'"]',r=i;switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":r=Vl(e)}if(!sa.has(r)&&(e=S({rel:"modulepreload",href:e},t),sa.set(r,e),a.querySelector(i)===null)){switch(n){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Wi(r)))return}n=a.createElement("link"),_t(n,"link",e),nt(n),a.head.appendChild(n)}}}function mv(e,t,a){Va.S(e,t,a);var n=Kl;if(n&&e){var i=an(n).hoistableStyles,r=Zl(e);t=t||"default";var d=i.get(r);if(!d){var h={loading:0,preload:null};if(d=n.querySelector(Fi(r)))h.loading=5;else{e=S({rel:"stylesheet",href:e,"data-precedence":t},a),(a=sa.get(r))&&ao(e,a);var _=d=n.createElement("link");nt(_),_t(_,"link",e),_._p=new Promise(function(k,O){_.onload=k,_.onerror=O}),_.addEventListener("load",function(){h.loading|=1}),_.addEventListener("error",function(){h.loading|=2}),h.loading|=4,Sr(d,t,n)}d={type:"stylesheet",instance:d,count:1,state:h},i.set(r,d)}}}function hv(e,t){Va.X(e,t);var a=Kl;if(a&&e){var n=an(a).hoistableScripts,i=Vl(e),r=n.get(i);r||(r=a.querySelector(Wi(i)),r||(e=S({src:e,async:!0},t),(t=sa.get(i))&&no(e,t),r=a.createElement("script"),nt(r),_t(r,"link",e),a.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},n.set(i,r))}}function pv(e,t){Va.M(e,t);var a=Kl;if(a&&e){var n=an(a).hoistableScripts,i=Vl(e),r=n.get(i);r||(r=a.querySelector(Wi(i)),r||(e=S({src:e,async:!0,type:"module"},t),(t=sa.get(i))&&no(e,t),r=a.createElement("script"),nt(r),_t(r,"link",e),a.head.appendChild(r)),r={type:"script",instance:r,count:1,state:null},n.set(i,r))}}function vh(e,t,a,n){var i=(i=pe.current)?_r(i):null;if(!i)throw Error(o(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(t=Zl(a.href),a=an(i).hoistableStyles,n=a.get(t),n||(n={type:"style",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Zl(a.href);var r=an(i).hoistableStyles,d=r.get(e);if(d||(i=i.ownerDocument||i,d={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},r.set(e,d),(r=i.querySelector(Fi(e)))&&!r._p&&(d.instance=r,d.state.loading=5),sa.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},sa.set(e,a),r||gv(i,e,a,d.state))),t&&n===null)throw Error(o(528,""));return d}if(t&&n!==null)throw Error(o(529,""));return null;case"script":return t=a.async,a=a.src,typeof a=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=Vl(a),a=an(i).hoistableScripts,n=a.get(t),n||(n={type:"script",instance:null,count:0,state:null},a.set(t,n)),n):{type:"void",instance:null,count:0,state:null};default:throw Error(o(444,e))}}function Zl(e){return'href="'+Mt(e)+'"'}function Fi(e){return'link[rel="stylesheet"]['+e+"]"}function bh(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function gv(e,t,a,n){e.querySelector('link[rel="preload"][as="style"]['+t+"]")?n.loading=1:(t=e.createElement("link"),n.preload=t,t.addEventListener("load",function(){return n.loading|=1}),t.addEventListener("error",function(){return n.loading|=2}),_t(t,"link",a),nt(t),e.head.appendChild(t))}function Vl(e){return'[src="'+Mt(e)+'"]'}function Wi(e){return"script[async]"+e}function _h(e,t,a){if(t.count++,t.instance===null)switch(t.type){case"style":var n=e.querySelector('style[data-href~="'+Mt(a.href)+'"]');if(n)return t.instance=n,nt(n),n;var i=S({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return n=(e.ownerDocument||e).createElement("style"),nt(n),_t(n,"style",i),Sr(n,a.precedence,e),t.instance=n;case"stylesheet":i=Zl(a.href);var r=e.querySelector(Fi(i));if(r)return t.state.loading|=4,t.instance=r,nt(r),r;n=bh(a),(i=sa.get(i))&&ao(n,i),r=(e.ownerDocument||e).createElement("link"),nt(r);var d=r;return d._p=new Promise(function(h,_){d.onload=h,d.onerror=_}),_t(r,"link",n),t.state.loading|=4,Sr(r,a.precedence,e),t.instance=r;case"script":return r=Vl(a.src),(i=e.querySelector(Wi(r)))?(t.instance=i,nt(i),i):(n=a,(i=sa.get(r))&&(n=S({},a),no(n,i)),e=e.ownerDocument||e,i=e.createElement("script"),nt(i),_t(i,"link",n),e.head.appendChild(i),t.instance=i);case"void":return null;default:throw Error(o(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(n=t.instance,t.state.loading|=4,Sr(n,a.precedence,e));return t.instance}function Sr(e,t,a){for(var n=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),i=n.length?n[n.length-1]:null,r=i,d=0;d title"):null)}function yv(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 jh(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function vv(e,t,a,n){if(a.type==="stylesheet"&&(typeof n.media!="string"||matchMedia(n.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var i=Zl(n.href),r=t.querySelector(Fi(i));if(r){t=r._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=jr.bind(e),t.then(e,e)),a.state.loading|=4,a.instance=r,nt(r);return}r=t.ownerDocument||t,n=bh(n),(i=sa.get(i))&&ao(n,i),r=r.createElement("link"),nt(r);var d=r;d._p=new Promise(function(h,_){d.onload=h,d.onerror=_}),_t(r,"link",n),a.instance=r}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,t),(t=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=jr.bind(e),t.addEventListener("load",a),t.addEventListener("error",a))}}var lo=0;function bv(e,t){return e.stylesheets&&e.count===0&&wr(e,e.stylesheets),0lo?50:800)+t);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(n),clearTimeout(i)}}:null}function jr(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)wr(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Er=null;function wr(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Er=new Map,t.forEach(_v,e),Er=null,jr.call(e))}function _v(e,t){if(!(t.state.loading&4)){var a=Er.get(e);if(a)var n=a.get(null);else{a=new Map,Er.set(e,a);for(var i=e.querySelectorAll("link[data-precedence],style[data-precedence]"),r=0;r"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(l)}catch(s){console.error(s)}}return l(),ho.exports=Hv(),ho.exports}var Bv=qv();/** - * 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 Zh="popstate";function Vh(l){return typeof l=="object"&&l!=null&&"pathname"in l&&"search"in l&&"hash"in l&&"state"in l&&"key"in l}function $v(l={}){function s(f,m){let{pathname:p="/",search:j="",hash:g=""}=ul(f.location.hash.substring(1));return!p.startsWith("/")&&!p.startsWith(".")&&(p="/"+p),Mo("",{pathname:p,search:j,hash:g},m.state&&m.state.usr||null,m.state&&m.state.key||"default")}function u(f,m){let p=f.document.querySelector("base"),j="";if(p&&p.getAttribute("href")){let g=f.location.href,y=g.indexOf("#");j=y===-1?g:g.slice(0,y)}return j+"#"+(typeof m=="string"?m:os(m))}function o(f,m){ca(f.pathname.charAt(0)==="/",`relative pathnames are not supported in hash history.push(${JSON.stringify(m)})`)}return Gv(s,u,o,l)}function Je(l,s){if(l===!1||l===null||typeof l>"u")throw new Error(s)}function ca(l,s){if(!l){typeof console<"u"&&console.warn(s);try{throw new Error(s)}catch{}}}function Yv(){return Math.random().toString(36).substring(2,10)}function Jh(l,s){return{usr:l.state,key:l.key,idx:s,masked:l.mask?{pathname:l.pathname,search:l.search,hash:l.hash}:void 0}}function Mo(l,s,u=null,o,f){return{pathname:typeof l=="string"?l:l.pathname,search:"",hash:"",...typeof s=="string"?ul(s):s,state:u,key:s&&s.key||o||Yv(),mask:f}}function os({pathname:l="/",search:s="",hash:u=""}){return s&&s!=="?"&&(l+=s.charAt(0)==="?"?s:"?"+s),u&&u!=="#"&&(l+=u.charAt(0)==="#"?u:"#"+u),l}function ul(l){let s={};if(l){let u=l.indexOf("#");u>=0&&(s.hash=l.substring(u),l=l.substring(0,u));let o=l.indexOf("?");o>=0&&(s.search=l.substring(o),l=l.substring(0,o)),l&&(s.pathname=l)}return s}function Gv(l,s,u,o={}){let{window:f=document.defaultView,v5Compat:m=!1}=o,p=f.history,j="POP",g=null,y=w();y==null&&(y=0,p.replaceState({...p.state,idx:y},""));function w(){return(p.state||{idx:null}).idx}function S(){j="POP";let H=w(),Q=H==null?null:H-y;y=H,g&&g({action:j,location:$.location,delta:Q})}function N(H,Q){j="PUSH";let I=Vh(H)?H:Mo($.location,H,Q);u&&u(I,H),y=w()+1;let J=Jh(I,y),ne=$.createHref(I.mask||I);try{p.pushState(J,"",ne)}catch(ie){if(ie instanceof DOMException&&ie.name==="DataCloneError")throw ie;f.location.assign(ne)}m&&g&&g({action:j,location:$.location,delta:1})}function B(H,Q){j="REPLACE";let I=Vh(H)?H:Mo($.location,H,Q);u&&u(I,H),y=w();let J=Jh(I,y),ne=$.createHref(I.mask||I);p.replaceState(J,"",ne),m&&g&&g({action:j,location:$.location,delta:0})}function M(H){return Qv(f,H)}let $={get action(){return j},get location(){return l(f,p)},listen(H){if(g)throw new Error("A history only accepts one active listener");return f.addEventListener(Zh,S),g=H,()=>{f.removeEventListener(Zh,S),g=null}},createHref(H){return s(f,H)},createURL:M,encodeLocation(H){let Q=M(H);return{pathname:Q.pathname,search:Q.search,hash:Q.hash}},push:N,replace:B,go(H){return p.go(H)}};return $}function Qv(l,s,u=!1){let o="http://localhost";l&&(o=l.location.origin!=="null"?l.location.origin:l.location.href),Je(o,"No window.location.(origin|href) available to create URL");let f=typeof s=="string"?s:os(s);return f=f.replace(/ $/,"%20"),!u&&f.startsWith("//")&&(f=o+f),new URL(f,o)}function zp(l,s,u="/"){return Xv(l,s,u,!1)}function Xv(l,s,u,o,f){let m=typeof s=="string"?ul(s):s,p=Fa(m.pathname||"/",u);if(p==null)return null;let j=Kv(l),g=null,y=lb(p);for(let w=0;g==null&&w{let w={relativePath:y===void 0?p.path||"":y,caseSensitive:p.caseSensitive===!0,childrenIndex:j,route:p};if(w.relativePath.startsWith("/")){if(!w.relativePath.startsWith(o)&&g)return;Je(w.relativePath.startsWith(o),`Absolute route path "${w.relativePath}" nested under path "${o}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),w.relativePath=w.relativePath.slice(o.length)}let S=ga([o,w.relativePath]),N=u.concat(w);p.children&&p.children.length>0&&(Je(p.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${S}".`),Mp(p.children,s,N,S,g)),!(p.path==null&&!p.index)&&s.push({path:S,score:eb(S,p.index),routesMeta:N})};return l.forEach((p,j)=>{var g;if(p.path===""||!((g=p.path)!=null&&g.includes("?")))m(p,j);else for(let y of Rp(p.path))m(p,j,!0,y)}),s}function Rp(l){let s=l.split("/");if(s.length===0)return[];let[u,...o]=s,f=u.endsWith("?"),m=u.replace(/\?$/,"");if(o.length===0)return f?[m,""]:[m];let p=Rp(o.join("/")),j=[];return j.push(...p.map(g=>g===""?m:[m,g].join("/"))),f&&j.push(...p),j.map(g=>l.startsWith("/")&&g===""?"/":g)}function Zv(l){l.sort((s,u)=>s.score!==u.score?u.score-s.score:tb(s.routesMeta.map(o=>o.childrenIndex),u.routesMeta.map(o=>o.childrenIndex)))}var Vv=/^:[\w-]+$/,Jv=3,Fv=2,Wv=1,Iv=10,Pv=-2,Fh=l=>l==="*";function eb(l,s){let u=l.split("/"),o=u.length;return u.some(Fh)&&(o+=Pv),s&&(o+=Fv),u.filter(f=>!Fh(f)).reduce((f,m)=>f+(Vv.test(m)?Jv:m===""?Wv:Iv),o)}function tb(l,s){return l.length===s.length&&l.slice(0,-1).every((o,f)=>o===s[f])?l[l.length-1]-s[s.length-1]:0}function ab(l,s,u=!1){let{routesMeta:o}=l,f={},m="/",p=[];for(let j=0;j{if(w==="*"){let M=j[N]||"";p=m.slice(0,m.length-M.length).replace(/(.)\/+$/,"$1")}const B=j[N];return S&&!B?y[w]=void 0:y[w]=(B||"").replace(/%2F/g,"/"),y},{}),pathname:m,pathnameBase:p,pattern:l}}function nb(l,s=!1,u=!0){ca(l==="*"||!l.endsWith("*")||l.endsWith("/*"),`Route path "${l}" will be treated as if it were "${l.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${l.replace(/\*$/,"/*")}".`);let o=[],f="^"+l.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(p,j,g,y,w)=>{if(o.push({paramName:j,isOptional:g!=null}),g){let S=w.charAt(y+p.length);return S&&S!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return l.endsWith("*")?(o.push({paramName:"*"}),f+=l==="*"||l==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):u?f+="\\/*$":l!==""&&l!=="/"&&(f+="(?:(?=\\/|$))"),[new RegExp(f,s?void 0:"i"),o]}function lb(l){try{return l.split("/").map(s=>decodeURIComponent(s).replace(/\//g,"%2F")).join("/")}catch(s){return ca(!1,`The URL path "${l}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${s}).`),l}}function Fa(l,s){if(s==="/")return l;if(!l.toLowerCase().startsWith(s.toLowerCase()))return null;let u=s.endsWith("/")?s.length-1:s.length,o=l.charAt(u);return o&&o!=="/"?null:l.slice(u)||"/"}var ib=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function sb(l,s="/"){let{pathname:u,search:o="",hash:f=""}=typeof l=="string"?ul(l):l,m;return u?(u=Op(u),u.startsWith("/")?m=Wh(u.substring(1),"/"):m=Wh(u,s)):m=s,{pathname:m,search:ub(o),hash:ob(f)}}function Wh(l,s){let u=Qr(s).split("/");return l.split("/").forEach(f=>{f===".."?u.length>1&&u.pop():f!=="."&&u.push(f)}),u.length>1?u.join("/"):"/"}function vo(l,s,u,o){return`Cannot include a '${l}' character in a manually specified \`to.${s}\` field [${JSON.stringify(o)}]. Please separate it out to the \`to.${u}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function rb(l){return l.filter((s,u)=>u===0||s.route.path&&s.route.path.length>0)}function Xo(l){let s=rb(l);return s.map((u,o)=>o===s.length-1?u.pathname:u.pathnameBase)}function Jr(l,s,u,o=!1){let f;typeof l=="string"?f=ul(l):(f={...l},Je(!f.pathname||!f.pathname.includes("?"),vo("?","pathname","search",f)),Je(!f.pathname||!f.pathname.includes("#"),vo("#","pathname","hash",f)),Je(!f.search||!f.search.includes("#"),vo("#","search","hash",f)));let m=l===""||f.pathname==="",p=m?"/":f.pathname,j;if(p==null)j=u;else{let S=s.length-1;if(!o&&p.startsWith("..")){let N=p.split("/");for(;N[0]==="..";)N.shift(),S-=1;f.pathname=N.join("/")}j=S>=0?s[S]:"/"}let g=sb(f,j),y=p&&p!=="/"&&p.endsWith("/"),w=(m||p===".")&&u.endsWith("/");return!g.pathname.endsWith("/")&&(y||w)&&(g.pathname+="/"),g}var Op=l=>l.replace(/\/\/+/g,"/"),ga=l=>Op(l.join("/")),Qr=l=>l.replace(/\/+$/,""),cb=l=>Qr(l).replace(/^\/*/,"/"),ub=l=>!l||l==="?"?"":l.startsWith("?")?l:"?"+l,ob=l=>!l||l==="#"?"":l.startsWith("#")?l:"#"+l,db=class{constructor(l,s,u,o=!1){this.status=l,this.statusText=s||"",this.internal=o,u instanceof Error?(this.data=u.toString(),this.error=u):this.data=u}};function fb(l){return l!=null&&typeof l.status=="number"&&typeof l.statusText=="string"&&typeof l.internal=="boolean"&&"data"in l}function mb(l){let s=l.map(u=>u.route.path).filter(Boolean);return ga(s)||"/"}var Lp=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Up(l,s){let u=l;if(typeof u!="string"||!ib.test(u))return{absoluteURL:void 0,isExternal:!1,to:u};let o=u,f=!1;if(Lp)try{let m=new URL(window.location.href),p=u.startsWith("//")?new URL(m.protocol+u):new URL(u),j=Fa(p.pathname,s);p.origin===m.origin&&j!=null?u=j+p.search+p.hash:f=!0}catch{ca(!1,` contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:o,isExternal:f,to:u}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Hp=["POST","PUT","PATCH","DELETE"];new Set(Hp);var hb=["GET",...Hp];new Set(hb);var ti=v.createContext(null);ti.displayName="DataRouter";var Fr=v.createContext(null);Fr.displayName="DataRouterState";var qp=v.createContext(!1);function pb(){return v.useContext(qp)}var Bp=v.createContext({isTransitioning:!1});Bp.displayName="ViewTransition";var gb=v.createContext(new Map);gb.displayName="Fetchers";var yb=v.createContext(null);yb.displayName="Await";var Ft=v.createContext(null);Ft.displayName="Navigation";var ms=v.createContext(null);ms.displayName="Location";var Na=v.createContext({outlet:null,matches:[],isDataRoute:!1});Na.displayName="Route";var Ko=v.createContext(null);Ko.displayName="RouteError";var $p="REACT_ROUTER_ERROR",vb="REDIRECT",bb="ROUTE_ERROR_RESPONSE";function _b(l){if(l.startsWith(`${$p}:${vb}:{`))try{let s=JSON.parse(l.slice(28));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string"&&typeof s.location=="string"&&typeof s.reloadDocument=="boolean"&&typeof s.replace=="boolean")return s}catch{}}function Sb(l){if(l.startsWith(`${$p}:${bb}:{`))try{let s=JSON.parse(l.slice(40));if(typeof s=="object"&&s&&typeof s.status=="number"&&typeof s.statusText=="string")return new db(s.status,s.statusText,s.data)}catch{}}function xb(l,{relative:s}={}){Je(ai(),"useHref() may be used only in the context of a component.");let{basename:u,navigator:o}=v.useContext(Ft),{hash:f,pathname:m,search:p}=hs(l,{relative:s}),j=m;return u!=="/"&&(j=m==="/"?u:ga([u,m])),o.createHref({pathname:j,search:p,hash:f})}function ai(){return v.useContext(ms)!=null}function ya(){return Je(ai(),"useLocation() may be used only in the context of a component."),v.useContext(ms).location}var Yp="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Gp(l){v.useContext(Ft).static||v.useLayoutEffect(l)}function Zo(){let{isDataRoute:l}=v.useContext(Na);return l?Ob():jb()}function jb(){Je(ai(),"useNavigate() may be used only in the context of a component.");let l=v.useContext(ti),{basename:s,navigator:u}=v.useContext(Ft),{matches:o}=v.useContext(Na),{pathname:f}=ya(),m=JSON.stringify(Xo(o)),p=v.useRef(!1);return Gp(()=>{p.current=!0}),v.useCallback((g,y={})=>{if(ca(p.current,Yp),!p.current)return;if(typeof g=="number"){u.go(g);return}let w=Jr(g,JSON.parse(m),f,y.relative==="path");l==null&&s!=="/"&&(w.pathname=w.pathname==="/"?s:ga([s,w.pathname])),(y.replace?u.replace:u.push)(w,y.state,y)},[s,u,m,f,l])}v.createContext(null);function hs(l,{relative:s}={}){let{matches:u}=v.useContext(Na),{pathname:o}=ya(),f=JSON.stringify(Xo(u));return v.useMemo(()=>Jr(l,JSON.parse(f),o,s==="path"),[l,f,o,s])}function Eb(l,s){return Qp(l,s)}function Qp(l,s,u){var H;Je(ai(),"useRoutes() may be used only in the context of a component.");let{navigator:o}=v.useContext(Ft),{matches:f}=v.useContext(Na),m=f[f.length-1],p=m?m.params:{},j=m?m.pathname:"/",g=m?m.pathnameBase:"/",y=m&&m.route;{let Q=y&&y.path||"";Kp(j,!y||Q.endsWith("*")||Q.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${j}" (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 w=ya(),S;if(s){let Q=typeof s=="string"?ul(s):s;Je(g==="/"||((H=Q.pathname)==null?void 0:H.startsWith(g)),`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 "${g}" but pathname "${Q.pathname}" was given in the \`location\` prop.`),S=Q}else S=w;let N=S.pathname||"/",B=N;if(g!=="/"){let Q=g.replace(/^\//,"").split("/");B="/"+N.replace(/^\//,"").split("/").slice(Q.length).join("/")}let M=u&&u.state.matches.length?u.state.matches.map(Q=>Object.assign(Q,{route:u.manifest[Q.route.id]||Q.route})):zp(l,{pathname:B});ca(y||M!=null,`No routes matched location "${S.pathname}${S.search}${S.hash}" `),ca(M==null||M[M.length-1].route.element!==void 0||M[M.length-1].route.Component!==void 0||M[M.length-1].route.lazy!==void 0,`Matched leaf route at location "${S.pathname}${S.search}${S.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 $=kb(M&&M.map(Q=>Object.assign({},Q,{params:Object.assign({},p,Q.params),pathname:ga([g,o.encodeLocation?o.encodeLocation(Q.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Q.pathname]),pathnameBase:Q.pathnameBase==="/"?g:ga([g,o.encodeLocation?o.encodeLocation(Q.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:Q.pathnameBase])})),f,u);return s&&$?v.createElement(ms.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...S},navigationType:"POP"}},$):$}function wb(){let l=Rb(),s=fb(l)?`${l.status} ${l.statusText}`:l instanceof Error?l.message:JSON.stringify(l),u=l instanceof Error?l.stack:null,o="rgba(200,200,200, 0.5)",f={padding:"0.5rem",backgroundColor:o},m={padding:"2px 4px",backgroundColor:o},p=null;return console.error("Error handled by React Router default ErrorBoundary:",l),p=v.createElement(v.Fragment,null,v.createElement("p",null,"💿 Hey developer 👋"),v.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",v.createElement("code",{style:m},"ErrorBoundary")," or"," ",v.createElement("code",{style:m},"errorElement")," prop on your route.")),v.createElement(v.Fragment,null,v.createElement("h2",null,"Unexpected Application Error!"),v.createElement("h3",{style:{fontStyle:"italic"}},s),u?v.createElement("pre",{style:f},u):null,p)}var Nb=v.createElement(wb,null),Xp=class extends v.Component{constructor(l){super(l),this.state={location:l.location,revalidation:l.revalidation,error:l.error}}static getDerivedStateFromError(l){return{error:l}}static getDerivedStateFromProps(l,s){return s.location!==l.location||s.revalidation!=="idle"&&l.revalidation==="idle"?{error:l.error,location:l.location,revalidation:l.revalidation}:{error:l.error!==void 0?l.error:s.error,location:s.location,revalidation:l.revalidation||s.revalidation}}componentDidCatch(l,s){this.props.onError?this.props.onError(l,s):console.error("React Router caught the following error during render",l)}render(){let l=this.state.error;if(this.context&&typeof l=="object"&&l&&"digest"in l&&typeof l.digest=="string"){const u=Sb(l.digest);u&&(l=u)}let s=l!==void 0?v.createElement(Na.Provider,{value:this.props.routeContext},v.createElement(Ko.Provider,{value:l,children:this.props.component})):this.props.children;return this.context?v.createElement(Tb,{error:l},s):s}};Xp.contextType=qp;var bo=new WeakMap;function Tb({children:l,error:s}){let{basename:u}=v.useContext(Ft);if(typeof s=="object"&&s&&"digest"in s&&typeof s.digest=="string"){let o=_b(s.digest);if(o){let f=bo.get(s);if(f)throw f;let m=Up(o.location,u);if(Lp&&!bo.get(s))if(m.isExternal||o.reloadDocument)window.location.href=m.absoluteURL||m.to;else{const p=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(m.to,{replace:o.replace}));throw bo.set(s,p),p}return v.createElement("meta",{httpEquiv:"refresh",content:`0;url=${m.absoluteURL||m.to}`})}}return l}function Cb({routeContext:l,match:s,children:u}){let o=v.useContext(ti);return o&&o.static&&o.staticContext&&(s.route.errorElement||s.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=s.route.id),v.createElement(Na.Provider,{value:l},u)}function kb(l,s=[],u){let o=u==null?void 0:u.state;if(l==null){if(!o)return null;if(o.errors)l=o.matches;else if(s.length===0&&!o.initialized&&o.matches.length>0)l=o.matches;else return null}let f=l,m=o==null?void 0:o.errors;if(m!=null){let w=f.findIndex(S=>S.route.id&&(m==null?void 0:m[S.route.id])!==void 0);Je(w>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(m).join(",")}`),f=f.slice(0,Math.min(f.length,w+1))}let p=!1,j=-1;if(u&&o){p=o.renderFallback;for(let w=0;w=0?f=f.slice(0,j+1):f=[f[0]];break}}}}let g=u==null?void 0:u.onError,y=o&&g?(w,S)=>{var N,B;g(w,{location:o.location,params:((B=(N=o.matches)==null?void 0:N[0])==null?void 0:B.params)??{},pattern:mb(o.matches),errorInfo:S})}:void 0;return f.reduceRight((w,S,N)=>{let B,M=!1,$=null,H=null;o&&(B=m&&S.route.id?m[S.route.id]:void 0,$=S.route.errorElement||Nb,p&&(j<0&&N===0?(Kp("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),M=!0,H=null):j===N&&(M=!0,H=S.route.hydrateFallbackElement||null)));let Q=s.concat(f.slice(0,N+1)),I=()=>{let J;return B?J=$:M?J=H:S.route.Component?J=v.createElement(S.route.Component,null):S.route.element?J=S.route.element:J=w,v.createElement(Cb,{match:S,routeContext:{outlet:w,matches:Q,isDataRoute:o!=null},children:J})};return o&&(S.route.ErrorBoundary||S.route.errorElement||N===0)?v.createElement(Xp,{location:o.location,revalidation:o.revalidation,component:$,error:B,children:I(),routeContext:{outlet:null,matches:Q,isDataRoute:!0},onError:y}):I()},null)}function Vo(l){return`${l} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Ab(l){let s=v.useContext(ti);return Je(s,Vo(l)),s}function Db(l){let s=v.useContext(Fr);return Je(s,Vo(l)),s}function zb(l){let s=v.useContext(Na);return Je(s,Vo(l)),s}function Jo(l){let s=zb(l),u=s.matches[s.matches.length-1];return Je(u.route.id,`${l} can only be used on routes that contain a unique "id"`),u.route.id}function Mb(){return Jo("useRouteId")}function Rb(){var o;let l=v.useContext(Ko),s=Db("useRouteError"),u=Jo("useRouteError");return l!==void 0?l:(o=s.errors)==null?void 0:o[u]}function Ob(){let{router:l}=Ab("useNavigate"),s=Jo("useNavigate"),u=v.useRef(!1);return Gp(()=>{u.current=!0}),v.useCallback(async(f,m={})=>{ca(u.current,Yp),u.current&&(typeof f=="number"?await l.navigate(f):await l.navigate(f,{fromRouteId:s,...m}))},[l,s])}var Ih={};function Kp(l,s,u){!s&&!Ih[l]&&(Ih[l]=!0,ca(!1,u))}v.memo(Lb);function Lb({routes:l,manifest:s,future:u,state:o,isStatic:f,onError:m}){return Qp(l,void 0,{manifest:s,state:o,isStatic:f,onError:m})}function Ub({to:l,replace:s,state:u,relative:o}){Je(ai()," may be used only in the context of a component.");let{static:f}=v.useContext(Ft);ca(!f," 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:m}=v.useContext(Na),{pathname:p}=ya(),j=Zo(),g=Jr(l,Xo(m),p,o==="path"),y=JSON.stringify(g);return v.useEffect(()=>{j(JSON.parse(y),{replace:s,state:u,relative:o})},[j,y,o,s,u]),null}function Ro(l){Je(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Hb({basename:l="/",children:s=null,location:u,navigationType:o="POP",navigator:f,static:m=!1,useTransitions:p}){Je(!ai(),"You cannot render a inside another . You should never have more than one in your app.");let j=l.replace(/^\/*/,"/"),g=v.useMemo(()=>({basename:j,navigator:f,static:m,useTransitions:p,future:{}}),[j,f,m,p]);typeof u=="string"&&(u=ul(u));let{pathname:y="/",search:w="",hash:S="",state:N=null,key:B="default",mask:M}=u,$=v.useMemo(()=>{let H=Fa(y,j);return H==null?null:{location:{pathname:H,search:w,hash:S,state:N,key:B,mask:M},navigationType:o}},[j,y,w,S,N,B,o,M]);return ca($!=null,` is not able to match the URL "${y}${w}${S}" because it does not start with the basename, so the won't render anything.`),$==null?null:v.createElement(Ft.Provider,{value:g},v.createElement(ms.Provider,{children:s,value:$}))}function qb({children:l,location:s}){return Eb(Oo(l),s)}function Oo(l,s=[]){let u=[];return v.Children.forEach(l,(o,f)=>{if(!v.isValidElement(o))return;let m=[...s,f];if(o.type===v.Fragment){u.push.apply(u,Oo(o.props.children,m));return}Je(o.type===Ro,`[${typeof o.type=="string"?o.type:o.type.name}] is not a component. All component children of must be a or `),Je(!o.props.index||!o.props.children,"An index route cannot have child routes.");let p={id:o.props.id||m.join("-"),caseSensitive:o.props.caseSensitive,element:o.props.element,Component:o.props.Component,index:o.props.index,path:o.props.path,middleware:o.props.middleware,loader:o.props.loader,action:o.props.action,hydrateFallbackElement:o.props.hydrateFallbackElement,HydrateFallback:o.props.HydrateFallback,errorElement:o.props.errorElement,ErrorBoundary:o.props.ErrorBoundary,hasErrorBoundary:o.props.hasErrorBoundary===!0||o.props.ErrorBoundary!=null||o.props.errorElement!=null,shouldRevalidate:o.props.shouldRevalidate,handle:o.props.handle,lazy:o.props.lazy};o.props.children&&(p.children=Oo(o.props.children,m)),u.push(p)}),u}var Ur="get",Hr="application/x-www-form-urlencoded";function Wr(l){return typeof HTMLElement<"u"&&l instanceof HTMLElement}function Bb(l){return Wr(l)&&l.tagName.toLowerCase()==="button"}function $b(l){return Wr(l)&&l.tagName.toLowerCase()==="form"}function Yb(l){return Wr(l)&&l.tagName.toLowerCase()==="input"}function Gb(l){return!!(l.metaKey||l.altKey||l.ctrlKey||l.shiftKey)}function Qb(l,s){return l.button===0&&(!s||s==="_self")&&!Gb(l)}var Mr=null;function Xb(){if(Mr===null)try{new FormData(document.createElement("form"),0),Mr=!1}catch{Mr=!0}return Mr}var Kb=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function _o(l){return l!=null&&!Kb.has(l)?(ca(!1,`"${l}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${Hr}"`),null):l}function Zb(l,s){let u,o,f,m,p;if($b(l)){let j=l.getAttribute("action");o=j?Fa(j,s):null,u=l.getAttribute("method")||Ur,f=_o(l.getAttribute("enctype"))||Hr,m=new FormData(l)}else if(Bb(l)||Yb(l)&&(l.type==="submit"||l.type==="image")){let j=l.form;if(j==null)throw new Error('Cannot submit a