cc-viewer 1.6.321 → 1.6.323
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.js +38 -0
- package/concepts/ar/UltraPlan.md +2 -2
- package/concepts/da/UltraPlan.md +2 -2
- package/concepts/de/UltraPlan.md +2 -2
- package/concepts/en/UltraPlan.md +2 -2
- package/concepts/es/UltraPlan.md +2 -2
- package/concepts/fr/UltraPlan.md +2 -2
- package/concepts/it/UltraPlan.md +2 -2
- package/concepts/ja/UltraPlan.md +2 -2
- package/concepts/ko/UltraPlan.md +2 -2
- package/concepts/no/UltraPlan.md +2 -2
- package/concepts/pl/UltraPlan.md +2 -2
- package/concepts/pt-BR/UltraPlan.md +2 -2
- package/concepts/ru/UltraPlan.md +2 -2
- package/concepts/th/UltraPlan.md +2 -2
- package/concepts/tr/UltraPlan.md +2 -2
- package/concepts/uk/UltraPlan.md +2 -2
- package/concepts/zh/UltraPlan.md +2 -2
- package/concepts/zh-TW/UltraPlan.md +2 -2
- package/dist/assets/App-BxLvhawm.js +2 -0
- package/dist/assets/{MdxEditorPanel-6eNsWzcm.js → MdxEditorPanel-Bsdt2-sG.js} +1 -1
- package/dist/assets/Mobile-NzzhDBV0.js +1 -0
- package/dist/assets/index-d2L6kDE9.js +2 -0
- package/dist/assets/seqResourceLoaders-3quDY60a.js +2 -0
- package/dist/assets/{seqResourceLoaders-CYyLXB3m.css → seqResourceLoaders-D6YenrBg.css} +1 -1
- package/dist/index.html +1 -1
- package/package.json +1 -1
- package/server/i18n.js +62 -2
- package/server/lib/auth.js +20 -5
- package/server/lib/instance-registry.js +57 -0
- package/server/lib/prefs-store.js +83 -0
- package/server/lib/project-prefs.js +94 -0
- package/server/lib/session-pin-store.js +67 -0
- package/server/routes/preferences.js +62 -27
- package/server/routes/project-meta.js +3 -2
- package/server/routes/project-prefs.js +132 -0
- package/server/routes/session-pin.js +41 -0
- package/server/server.js +21 -0
- package/ultraAgents/code-expert.json +1 -1
- package/ultraAgents/research-expert.json +1 -1
- package/dist/assets/App-p1qTInVY.js +0 -2
- package/dist/assets/Mobile-Dv1tCwAr.js +0 -1
- package/dist/assets/index-Df8f8Vqb.js +0 -2
- package/dist/assets/seqResourceLoaders-Cp4iHemM.js +0 -2
|
@@ -38,4 +38,4 @@
|
|
|
38
38
|
|
|
39
39
|
Outdated base version: https://github.com/primer/github-syntax-dark
|
|
40
40
|
Current colors taken from GitHub's CSS
|
|
41
|
-
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}._fullFileDiffView_1o8kb_1{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-base-alt);overflow:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}._diffSummary_1o8kb_12{padding:8px 16px;background:var(--bg-container);border-bottom:1px solid var(--border-primary);display:flex;gap:8px;align-items:center;flex-shrink:0}._addedBadge_1o8kb_22{padding:2px 8px;background:var(--color-diff-add-bg);border:1px solid var(--color-diff-add-bg);border-radius:4px;font-size:11px;font-weight:600;color:var(--color-diff-add);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}._deletedBadge_1o8kb_33{padding:2px 8px;background:var(--color-error-bg-light);border:1px solid var(--color-error-bg-medium);border-radius:4px;font-size:11px;font-weight:600;color:var(--color-error);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}._codeContainer_1o8kb_44{flex:1;overflow:hidden;display:flex;min-height:0;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:12px;line-height:1.6}._lineNumberCol_1o8kb_54{flex-shrink:0;overflow:hidden;background:var(--bg-base-alt);border-right:1px solid var(--border-primary);-webkit-user-select:none;user-select:none}._lineNumRow_1o8kb_62{display:flex;min-height:20px}._oldLineNum_1o8kb_67,._newLineNum_1o8kb_68{display:inline-block;width:40px;text-align:right;padding:0 6px;font-size:12px;box-sizing:border-box}._lineNumNormal_1o8kb_77 ._oldLineNum_1o8kb_67,._lineNumNormal_1o8kb_77 ._newLineNum_1o8kb_68{color:var(--text-disabled)}._lineNumAdd_1o8kb_82{border-right:3px solid var(--color-diff-add)}._lineNumAdd_1o8kb_82 ._oldLineNum_1o8kb_67{color:var(--text-disabled)}._lineNumAdd_1o8kb_82 ._newLineNum_1o8kb_68{color:var(--color-diff-add);font-weight:600}._lineNumDelete_1o8kb_95{border-right:3px solid var(--color-error)}._lineNumDelete_1o8kb_95 ._oldLineNum_1o8kb_67{color:var(--color-error);font-weight:600}._lineNumDelete_1o8kb_95 ._newLineNum_1o8kb_68{color:var(--text-disabled)}._codeColWrap_1o8kb_108{flex:1;position:relative;min-width:0;overflow:hidden}._codeCol_1o8kb_108{width:100%;height:100%;overflow:auto;min-width:0}._codeInner_1o8kb_122{width:fit-content;min-width:100%}._codeLine_1o8kb_127{position:relative;min-height:20px;display:flex;transition:background .1s}._codeLine_1o8kb_127:hover{background:var(--overlay-light-faint)}._linePrefix_1o8kb_138{display:inline-block;width:16px;text-align:center;color:var(--text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}._lineContent_1o8kb_147{padding-right:16px;color:var(--text-secondary);white-space:pre}._lineNormal_1o8kb_153{background:#0000}._lineAdd_1o8kb_157{background:var(--color-diff-add-bg)}._lineAdd_1o8kb_157 ._linePrefix_1o8kb_138{color:var(--color-diff-add)}._lineDelete_1o8kb_165{background:var(--color-error-bg-faint)}._lineDelete_1o8kb_165 ._linePrefix_1o8kb_138{color:var(--color-error)}._lineDelete_1o8kb_165 ._lineContent_1o8kb_147{text-decoration:line-through;opacity:.8}._miniMap_1ho3j_1{position:absolute;top:0;right:0;width:10px;height:100%;cursor:pointer;z-index:10}._marker_1ho3j_11{position:absolute;left:0;width:100%;border-radius:1px;pointer-events:none}._gitDiffView_ypk84_1{flex:1;display:flex;flex-direction:column;background:var(--bg-base-alt);overflow:hidden;animation:_slideInFromRight_ypk84_1 .25s ease-out}@keyframes _slideInFromRight_ypk84_1{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}._closing_ypk84_21{animation:_slideOutToRight_ypk84_1 .2s ease-in forwards}@keyframes _slideOutToRight_ypk84_1{0%{transform:translate(0);opacity:1}to{transform:translate(-40px);opacity:0}}._header_ypk84_36{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid var(--border-primary);background:var(--bg-container);flex-shrink:0}._headerLeft_ypk84_46{display:flex;align-items:center;gap:12px;flex:1;min-width:0}._backBtn_ypk84_54{width:28px;height:28px;border:none;background:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0;flex-shrink:0;transition:all .15s}._backBtn_ypk84_54:hover{color:var(--text-secondary);background:var(--bg-surface)}._filePath_ypk84_75{font-size:13px;color:var(--text-secondary);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:color .15s}._filePath_ypk84_75:hover{color:var(--color-info-light);text-decoration:underline}._diffBadge_ypk84_91{padding:2px 8px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:4px;font-size:10px;font-weight:600;color:var(--color-accent-yellow);letter-spacing:.5px;flex-shrink:0}._headerRight_ypk84_103{display:flex;align-items:center;flex-shrink:0}._closeBtn_ypk84_109{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--text-tertiary);border-radius:6px;cursor:pointer;transition:background .15s,color .15s}._closeBtn_ypk84_109:hover{background:var(--overlay-light-medium);color:var(--text-primary)}._contentContainer_ypk84_129{flex:1;overflow:auto;position:relative}._loading_ypk84_135{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px}._error_ypk84_144{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-error-light);font-size:13px;padding:20px;text-align:center}._binaryNotice_ypk84_155{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px;font-style:italic;padding:20px;text-align:center}._largeFileWarning_ypk84_167{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-accent-yellow);font-size:13px;padding:20px;text-align:center;gap:8px}._fileSize_ypk84_180{color:var(--text-tertiary);font-size:12px;margin:0}._imagePreviewWrap_ypk84_186{display:flex;align-items:center;justify-content:center;height:100%;padding:20px}._imagePreview_ypk84_186{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;cursor:zoom-in;transition:opacity .2s}._imagePreview_ypk84_186:hover{opacity:.85}._panel_sccpn_1{position:absolute;bottom:100%;margin-bottom:8px;left:16px;right:16px;z-index:99999;background:var(--bg-elevated);border:none;border-radius:12px;padding:12px 16px;box-shadow:0 4px 32px var(--shadow-approval-heavy),0 0 12px var(--shadow-approval-glow);animation:_slideUp_sccpn_1 .2s ease-out}._panelGlobal_sccpn_20{position:fixed;bottom:max(calc(var(--chat-input-bar-height, 200px) + 12px),56px);left:10px;right:10px;z-index:99999;background:var(--bg-elevated);border:none;border-radius:12px;padding:10px 14px;box-shadow:0 4px 32px var(--shadow-approval-heavy),0 0 12px var(--shadow-approval-glow);animation:_slideUp_sccpn_1 .2s ease-out;font-size:80%}._panelGlobal_sccpn_20 ._toolName_sccpn_43{font-size:14px}._panelGlobal_sccpn_20 ._command_sccpn_47{font-size:12px;max-height:80px;padding:6px 10px}._panelGlobal_sccpn_20 ._allowBtn_sccpn_53,._panelGlobal_sccpn_20 ._allowSessionBtn_sccpn_54,._panelGlobal_sccpn_20 ._denyBtn_sccpn_55{padding:7px 18px;font-size:14px}._borderSvg_sccpn_60{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgInset_sccpn_69{overflow:hidden}._borderRect_sccpn_73{animation:_dashRotate_sccpn_1 4s linear infinite}@keyframes _dashRotate_sccpn_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}@keyframes _slideUp_sccpn_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideDown_sccpn_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}._exiting_sccpn_92{animation:_slideDown_sccpn_1 .2s ease-in forwards}._header_sccpn_96{display:flex;align-items:center;gap:8px;margin-bottom:8px}._toolName_sccpn_43{color:var(--text-primary);font-weight:600;font-size:13px;font-family:SF Mono,Menlo,Monaco,Consolas,monospace}._label_sccpn_110{color:var(--color-approval-label);font-size:12px;font-weight:500;margin-left:auto}._subAgentBadge_sccpn_117{display:inline-block;padding:1px 6px;border-radius:4px;background:var(--color-primary-bg-light);color:var(--color-primary-light);font-size:11px;font-weight:500;letter-spacing:.02em}._body_sccpn_128{margin-bottom:12px}._command_sccpn_47{background:var(--bg-container-alt);border:1px solid var(--border-primary);border-radius:6px;padding:8px 12px;color:var(--text-secondary);font-size:12px;font-family:SF Mono,Menlo,Monaco,Consolas,monospace;line-height:1.5;max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;margin:0}._detail_sccpn_148{margin-top:6px;color:var(--text-tertiary);font-size:11px;font-family:SF Mono,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;word-break:break-all;max-height:40px;overflow:hidden}._actions_sccpn_159{display:flex;align-items:center;gap:8px}._autoApproveBtn_sccpn_165{margin-right:auto;padding:4px 10px;border-radius:4px;border:1px solid var(--border-light);background:transparent;color:var(--text-muted);font-size:11px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}._autoApproveBtn_sccpn_165:hover{color:var(--text-secondary);border-color:var(--text-muted)}._autoApproveActive_sccpn_183{color:var(--color-success);border-color:var(--color-success)}._autoApproveActive_sccpn_183:hover{color:var(--color-success-light);border-color:var(--color-success-light)}._allowBtn_sccpn_53{padding:6px 20px;border-radius:6px;border:1px solid var(--color-success);background:var(--color-success-bg-light);color:var(--color-success);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}._allowBtn_sccpn_53:hover{background:var(--color-success-bg-medium)}._allowSessionBtn_sccpn_54{padding:6px 16px;border-radius:6px;border:1px solid var(--color-primary-light);background:var(--color-primary-bg-light);color:var(--color-primary-light);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}._allowSessionBtn_sccpn_54:hover{background:var(--color-primary-bg-medium)}._denyBtn_sccpn_55{padding:6px 20px;border-radius:6px;border:1px solid var(--color-error);background:var(--color-error-bg-light);color:var(--color-error);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}._denyBtn_sccpn_55:hover{background:var(--color-error-bg-medium)}._allowBtn_sccpn_53:focus-visible,._allowSessionBtn_sccpn_54:focus-visible,._denyBtn_sccpn_55:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(max-width:768px){._panel_sccpn_1{right:10px;left:10px;border-radius:12px;padding:16px 20px}._toolName_sccpn_43{font-size:18px}._command_sccpn_47{font-size:16px;max-height:160px}._allowBtn_sccpn_53,._allowSessionBtn_sccpn_54,._denyBtn_sccpn_55{padding:10px 28px;font-size:18px}}html.pad-mode ._panel_sccpn_1{right:16px;left:16px;padding:12px 16px;z-index:99999}html.pad-mode ._toolName_sccpn_43{font-size:13px}html.pad-mode ._command_sccpn_47{font-size:12px;max-height:120px}html.pad-mode ._allowBtn_sccpn_53,html.pad-mode ._allowSessionBtn_sccpn_54,html.pad-mode ._denyBtn_sccpn_55{padding:6px 20px;font-size:13px}html.pad-mode ._panelGlobal_sccpn_20{font-size:90%}html.pad-mode ._panelGlobal_sccpn_20 ._toolName_sccpn_43{font-size:14px}html.pad-mode ._panelGlobal_sccpn_20 ._command_sccpn_47{font-size:13px;max-height:100px}html.pad-mode ._panelGlobal_sccpn_20 ._allowBtn_sccpn_53,html.pad-mode ._panelGlobal_sccpn_20 ._allowSessionBtn_sccpn_54,html.pad-mode ._panelGlobal_sccpn_20 ._denyBtn_sccpn_55{padding:8px 22px;font-size:14px}._teamActiveSpinner_jsskf_1{position:absolute;bottom:4px;right:4px;width:10px;height:10px;border:2px solid var(--overlay-light-medium);border-top-color:var(--color-warning);border-radius:50%;animation:_teamSpin_jsskf_1 .8s linear infinite}@keyframes _teamSpin_jsskf_1{to{transform:rotate(360deg)}}._teamPopover_jsskf_17{min-width:200px;max-width:320px;padding:8px 0}._teamPopoverTitle_jsskf_23{font-size:13px;font-weight:600;color:var(--text-primary);padding:4px 12px 8px;border-bottom:1px solid var(--border-primary)}._teamPopoverItem_jsskf_31{display:flex;align-items:center;padding:6px 12px;cursor:pointer;transition:background .15s;font-size:12px;color:var(--text-secondary)}._teamPopoverItem_jsskf_31:hover{background:var(--bg-elevated)}._teamPopoverName_jsskf_45{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._teamPopoverMeta_jsskf_53{color:var(--text-muted);font-size:11px;margin:0 8px;flex-shrink:0}._teamPopoverTime_jsskf_60{color:var(--text-disabled);font-size:11px;flex-shrink:0}._teamModalBody_jsskf_66{flex:1;min-width:0;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:4px}._teamGanttToggle_jsskf_76{cursor:pointer;padding:8px 16px;font-size:12px;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-primary);transition:color .15s}._teamGanttToggle_jsskf_76:hover{color:var(--text-secondary)}._ganttExportBtn_jsskf_90{display:inline-flex;align-items:center;margin-left:8px;padding:2px 4px;color:var(--text-muted);cursor:pointer;border-radius:3px;transition:color .15s,background .15s}._ganttExportBtn_jsskf_90:hover{color:var(--text-secondary);background:var(--bg-surface)}._teamGanttWrap_jsskf_106{--gantt-label-width: 110px;padding:8px 16px 4px;position:relative;max-height:120px;overflow-y:auto;flex-shrink:0}._teamGanttResizer_jsskf_115{height:5px;cursor:ns-resize;background:#0000;border-bottom:1px solid var(--border-primary);flex-shrink:0;transition:background .15s}._teamGanttResizer_jsskf_115:hover{background:var(--border-secondary)}._teamGanttRow_jsskf_128{display:flex;align-items:center;height:22px;margin-bottom:3px}._teamGanttLabel_jsskf_135{width:calc(var(--gantt-label-width) - 10px);font-size:11px;color:var(--text-tertiary);text-align:right;padding-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}._teamGanttTrack_jsskf_147{flex:1;height:14px;background:var(--bg-container);border-radius:3px;position:relative;overflow:hidden}._teamGanttBar_jsskf_156{position:absolute;height:100%;border-radius:3px;min-width:4px;top:0}._teamGanttDiamond_jsskf_164{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:12px;line-height:1;z-index:2;pointer-events:auto;cursor:default;filter:drop-shadow(0 0 2px var(--overlay-dark-strong));transition:transform .15s}._teamGanttDiamond_jsskf_164:hover{transform:translate(-50%,-50%) scale(1.4)}._teamGanttArrows_jsskf_181{position:absolute;top:0;left:var(--gantt-label-width);right:0;width:calc(100% - var(--gantt-label-width));pointer-events:none;z-index:5}._teamGanttIndicator_jsskf_191{position:absolute;top:0;bottom:0;width:2px;background:var(--color-primary-pale);z-index:10;pointer-events:none;box-shadow:0 0 6px var(--color-primary-pale-shadow);transition:left .15s ease-out}._teamModalLayout_jsskf_203{display:flex;height:100%}._teamAgentCards_jsskf_208{width:160px;flex-shrink:0;border-right:1px solid var(--border-primary);overflow-y:auto;background:var(--bg-base-alt);padding:8px}._teamAgentCard_jsskf_208{padding:8px;border-radius:0;margin-bottom:6px;border-left:3px solid var(--border-secondary);background:var(--bg-container);transition:background .15s}._teamAgentCard_jsskf_208:hover,._teamAgentCard_jsskf_208._teamAgentCardActive_jsskf_232{background:var(--bg-elevated)}._teamAgentCardHeader_jsskf_236{display:flex;align-items:center;gap:6px}._teamAgentAvatar_jsskf_242{width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--model-logo-mono)}._teamAgentAvatar_jsskf_242 svg{width:14px;height:14px;fill:currentColor}._teamAgentName_jsskf_260{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._teamAgentType_jsskf_269{font-size:10px;color:var(--text-muted);margin-top:2px}._teamAgentStatus_jsskf_275{font-size:10px;margin-top:4px}._teamAgentPopover_jsskf_280{padding:10px 12px;min-width:200px}._teamAgentPopTeammateMsg_jsskf_285{background:var(--bg-code-system);border:1px solid var(--border-code-system);border-radius:6px;padding:10px 12px;margin-bottom:8px}._teamAgentPopTmSummary_jsskf_293{font-size:12px;font-weight:600;color:var(--color-primary-pale);margin-bottom:6px}._teamAgentPopTmContent_jsskf_300{font-size:12px;color:var(--text-secondary);line-height:1.6}._teamAgentPopTask_jsskf_306{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-primary)}._teamAgentPopMsg_jsskf_315{font-size:12px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word;margin-bottom:8px;padding:6px 8px;background:var(--bg-container);border-radius:4px;border:1px solid var(--border-primary)}._teammateReportEntry_jsskf_328{background:var(--bg-code-system);border:1px solid var(--border-code-system);border-radius:8px;padding:12px;margin:4px 0}._teammateReportHeader_jsskf_336{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-code-system)}._teammateReportName_jsskf_345{font-size:13px;font-weight:600;color:var(--text-primary)}._teammateReportSummary_jsskf_351{font-size:12px;color:var(--color-primary-pale);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}._teammateReportBody_jsskf_360{font-size:12px;color:var(--text-secondary);line-height:1.6}._teamModalContent_jsskf_366{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}._teamBtnRelative_jsskf_374{position:relative}._ganttLabelLead_jsskf_378{color:var(--color-primary);font-weight:600}._ganttLabelAgent_jsskf_383{color:var(--text-primary)}._ganttTimeAxisRow_jsskf_387{margin-top:2px}._ganttTimeAxisTrack_jsskf_391{background:#0000;height:16px;position:relative}._ganttTickLabel_jsskf_397{position:absolute;transform:translate(-50%);font-size:9px;color:var(--text-disabled);white-space:nowrap}._teamPopoverStatus_jsskf_405{margin-right:6px;font-size:10px}._statusConverged_jsskf_411{color:var(--color-success);opacity:.55}._statusPending_jsskf_417{color:var(--text-tertiary)}._statusPossiblyAlive_jsskf_422{color:var(--color-warning-light)}._statusReused_jsskf_427{color:var(--text-tertiary);font-style:italic}._ganttIndicatorInitial_jsskf_432{left:110px}._teamModalTitle_jsskf_436{color:var(--text-primary);font-size:15px}._teamLeadCard_jsskf_441{border-left-color:var(--color-primary)}._agentNoMessages_jsskf_445{color:var(--text-muted);font-size:12px}._teamAgentCardClickable_jsskf_450{border-left-color:var(--text-primary);cursor:pointer}._agentStatusDurSuffix_jsskf_455{color:var(--text-tertiary)}._wfPopover_1fpr3_3{min-width:220px;max-width:360px;padding:8px 0}._wfPopoverScroll_1fpr3_10{max-height:calc(100vh - 48px);overflow-y:auto;overflow-x:hidden}._wfPopoverTitle_1fpr3_16{font-size:13px;font-weight:600;color:var(--text-primary);padding:4px 12px 8px;border-bottom:1px solid var(--border-primary)}._wfPopoverItem_1fpr3_24{display:flex;align-items:center;padding:6px 12px;cursor:pointer;transition:background .15s;font-size:12px;color:var(--text-secondary)}._wfPopoverItem_1fpr3_24:hover{background:var(--bg-elevated)}._wfPopoverStatus_1fpr3_38{margin-right:6px;font-size:10px;flex-shrink:0}._wfPopoverName_1fpr3_44{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._wfPopoverMeta_1fpr3_52{color:var(--text-muted);font-size:11px;margin:0 6px;flex-shrink:0}._wfPopoverTime_1fpr3_59{color:var(--text-disabled);font-size:11px;flex-shrink:0}._wfModalTitle_1fpr3_65{font-weight:600}._wfModalBody_1fpr3_69{max-height:calc(100vh - 160px);overflow-y:auto}._snapLine_1qd8k_1{position:absolute;top:0;bottom:0;width:2px;background:#0000;border-left:2px dashed var(--overlay-light-medium);pointer-events:none;z-index:1000;transition:all .15s}._snapLineActive_1qd8k_13{position:absolute;top:0;bottom:0;width:2px;background:#0000;border-left:2px dashed var(--overlay-light-half);pointer-events:none;z-index:1001}._snapPreview_1qd8k_24{position:absolute;top:0;bottom:0;background:var(--overlay-light-medium);pointer-events:none;z-index:999}._roleFilterBar_122ad_1{display:flex;align-items:center;gap:6px;padding:0 12px;height:41px;background:var(--bg-base-pure);border-bottom:1px solid var(--border-secondary);overflow-x:auto;flex-shrink:0}._roleChip_122ad_12,._roleChipActive_122ad_12{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;border:1px solid var(--border-secondary);background:#0000;color:var(--text-tertiary);font-size:11px;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}._roleChipActive_122ad_12{border-color:var(--color-primary-pale);color:var(--text-secondary)}._roleChip_122ad_12:hover,._roleChipActive_122ad_12:hover{border-color:var(--text-disabled)}._roleAvatar_122ad_33{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}._roleAvatar_122ad_33 svg{width:10px;height:10px}._roleAvatarImg_122ad_47{width:16px;height:16px;border-radius:50%;flex-shrink:0;object-fit:cover}._roleName_122ad_54{max-width:80px;overflow:hidden;text-overflow:ellipsis}._roleCheck_122ad_59{color:var(--color-primary-pale);font-size:10px}._chatInputBar_uvhdv_1{padding:8px 16px 12px;background:var(--bg-input-bar);flex-shrink:0}._chatInputWrapper_uvhdv_7{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-secondary);border-radius:16px;transition:border-color .2s;overflow:visible}._chatInputWrapper_uvhdv_7:focus-within{border-color:var(--text-disabled)}._chatTextareaWrap_uvhdv_21{position:relative;flex:1}._textareaWithGhost_uvhdv_28{position:relative}._chatTextarea_uvhdv_21{width:100%;min-height:22px;max-height:120px;padding:12px 14px 4px;background:#0000;color:var(--text-primary);border:none;outline:none;resize:none;font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box}._chatTextarea_uvhdv_21::placeholder{color:var(--text-disabled)}._chatInputBottom_uvhdv_52{display:flex;align-items:center;padding:4px 6px 6px;gap:4px}._chatInputBottomLeft_uvhdv_60,._chatInputBottomRight_uvhdv_62{display:flex;align-items:center;gap:4px;flex:0 0 auto}._chatInputBottomRight_uvhdv_62{margin-left:auto}._plusArea_uvhdv_74{position:relative}._plusBtn_uvhdv_78,._micBtn_uvhdv_79{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-light);background:#0000;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s,border-color .15s,transform .25s ease}._plusBtnOpen_uvhdv_94{transform:rotate(45deg)}._plusBtn_uvhdv_78:hover,._micBtn_uvhdv_79:hover{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--text-muted)}._micBtnRecording_uvhdv_105,._micBtnRecording_uvhdv_105:hover{background:var(--color-error);color:#fff;border-color:var(--color-error);animation:_ccvMicPulse_uvhdv_1 1.4s ease-in-out infinite}@keyframes _ccvMicPulse_uvhdv_1{0%,to{box-shadow:0 0 rgba(var(--color-error-rgb),.45)}50%{box-shadow:0 0 0 6px rgba(var(--color-error-rgb),0)}}@media(prefers-reduced-motion:reduce){._micBtnRecording_uvhdv_105,._micBtnRecording_uvhdv_105:hover{animation:none}}._interimPreview_uvhdv_125{position:absolute;left:14px;right:14px;bottom:4px;z-index:101;color:var(--text-secondary);font-size:12px;font-style:italic;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;white-space:pre-wrap;max-height:40px;overflow:hidden;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to bottom,transparent 0%,var(--bg-elevated) 30%);padding-top:8px}._plusOverlay_uvhdv_144{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}._plusMenu_uvhdv_153{position:absolute;bottom:36px;left:0;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:10px;padding:4px;min-width:140px;box-shadow:0 4px 16px var(--overlay-dark-light);z-index:100}._plusMenuItem_uvhdv_166{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:#0000;color:var(--text-secondary);font-size:13px;cursor:pointer;border-radius:6px;transition:background .15s;white-space:nowrap}._plusMenuItem_uvhdv_166:hover{background:var(--bg-surface)}._plusMenuItemMuted_uvhdv_186{color:var(--text-tertiary);border-bottom:1px solid var(--border-light);margin-bottom:2px}._plusMenuItemMuted_uvhdv_186:hover{color:var(--text-primary)}._plusMenuItem_uvhdv_166 svg{width:16px;height:16px;flex-shrink:0}._plusMenuItemMuted_uvhdv_186 svg{stroke:var(--text-tertiary);transition:stroke .15s}._plusMenuItemMuted_uvhdv_186:hover svg{stroke:var(--text-primary)}._presetLabel_uvhdv_212{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._plusMenuQuick_uvhdv_220{min-width:200px}._plusBtn_uvhdv_78 svg{width:16px;height:16px}._quickMenuPresetItem_uvhdv_232{max-width:260px;overflow:hidden;text-overflow:ellipsis}._chatInputHint_uvhdv_238{font-size:11px;color:var(--border-light);-webkit-user-select:none;user-select:none;padding:0 4px}._ctxBarSlot_uvhdv_61{flex:0 1 200px;max-width:200px;min-width:0;display:flex;align-items:stretch;height:28px;margin-left:4px}._ctxBarSlot_uvhdv_61>*{flex:1 1 0;min-width:0}._sendBtn_uvhdv_263{width:28px;height:28px;border-radius:50%;border:none;background:var(--text-white);color:var(--bg-base-pure);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}._sendBtnDisabled_uvhdv_278{background:var(--border-light);color:var(--text-tertiary);cursor:default}._sendBtn_uvhdv_263 svg{width:16px;height:16px}._ghostText_uvhdv_289{position:absolute;top:0;left:0;right:0;padding:12px 14px 4px;color:var(--border-light);font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none;white-space:pre-wrap;overflow:hidden;max-height:120px}._suggestionChip_uvhdv_305{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-elevated);border-top:1px solid var(--border-primary);cursor:pointer;flex-shrink:0;transition:background .15s;height:35px}._suggestionChip_uvhdv_305:hover{background:var(--bg-elevated)}._suggestionChipText_uvhdv_322{flex:1;color:var(--text-disabled);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._suggestionChipAction_uvhdv_331{color:var(--color-primary-pale);font-size:14px;flex-shrink:0}._imagePreviewStrip_uvhdv_338{display:flex;gap:8px;padding:8px 14px 0;overflow-x:auto;scrollbar-width:none}._imagePreviewStrip_uvhdv_338::-webkit-scrollbar{display:none}._imagePreviewItem_uvhdv_350{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;flex-shrink:0;border:1px solid var(--border-light);transition:border-color .15s}._imagePreviewItem_uvhdv_350:hover{border-color:var(--color-primary-pale)}._imagePreviewThumb_uvhdv_365{width:100%;height:100%;object-fit:cover;cursor:pointer}._imagePreviewUploading_uvhdv_373{cursor:default}._imagePreviewSpinner_uvhdv_377{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059}._imagePreviewRemove_uvhdv_386{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:#000000b3;color:#fff;border:none;font-size:12px;line-height:14px;text-align:center;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}._imagePreviewItem_uvhdv_350:hover ._imagePreviewRemove_uvhdv_386{opacity:1}@media(hover:none){._imagePreviewRemove_uvhdv_386,._filePreviewClose_uvhdv_414{opacity:1;min-width:22px;min-height:22px}}._filePreviewChip_uvhdv_421{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-surface);border:1px solid var(--border-hover);border-radius:8px;flex-shrink:0;max-width:200px;color:var(--text-secondary);transition:border-color .15s}._filePreviewChip_uvhdv_421:hover{border-color:var(--color-primary-pale)}._filePreviewChip_uvhdv_421 svg{flex-shrink:0;color:var(--text-tertiary)}._filePreviewName_uvhdv_444{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._filePreviewClose_uvhdv_414{flex-shrink:0;width:16px;height:16px;border-radius:50%;background:transparent;color:var(--text-muted);border:none;font-size:14px;line-height:14px;text-align:center;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:color .15s}._filePreviewClose_uvhdv_414:hover{color:var(--text-primary)}@media(max-width:768px){._chatInputBar_uvhdv_1{padding:10px 21px 16px;background:transparent}._chatInputWrapper_uvhdv_7{border-radius:21px}._chatTextarea_uvhdv_21{min-height:52px;max-height:208px;padding:18px 21px 8px;font-size:22px}._ghostText_uvhdv_289{padding:18px 21px 8px;font-size:22px}._chatInputBottom_uvhdv_52{padding:8px 10px 10px;gap:8px}._plusBtn_uvhdv_78,._micBtn_uvhdv_79{width:47px;height:47px}._plusBtn_uvhdv_78 svg,._micBtn_uvhdv_79 svg{width:23px;height:23px}._interimPreview_uvhdv_125{left:21px;right:21px;bottom:8px;font-size:17px;max-height:60px;padding-top:12px}._plusMenu_uvhdv_153{bottom:57px}._plusMenuItem_uvhdv_166{padding:13px 18px;font-size:20px}._chatInputHint_uvhdv_238{font-size:17px}._sendBtn_uvhdv_263{width:47px;height:47px}._sendBtn_uvhdv_263 svg{width:23px;height:23px}._imagePreviewStrip_uvhdv_338{gap:10px;padding:10px 18px 0}._imagePreviewItem_uvhdv_350{width:56px;height:56px;border-radius:8px}._imagePreviewRemove_uvhdv_386{width:20px;height:20px;font-size:14px;opacity:1}._filePreviewChip_uvhdv_421{padding:8px 12px;gap:8px;border-radius:10px;max-width:240px}._filePreviewName_uvhdv_444{font-size:15px}._filePreviewClose_uvhdv_414{width:20px;height:20px;font-size:16px}}html.pad-mode ._chatInputBar_uvhdv_1{padding:8px 16px 12px}html.pad-mode ._chatInputWrapper_uvhdv_7{border-radius:16px}html.pad-mode ._chatTextarea_uvhdv_21{min-height:22px;max-height:120px;padding:12px 14px 4px;font-size:14px}html.pad-mode ._ghostText_uvhdv_289{padding:12px 14px 4px;font-size:14px}html.pad-mode ._chatInputBottom_uvhdv_52{padding:4px 6px 6px;gap:4px}html.pad-mode ._plusBtn_uvhdv_78,html.pad-mode ._micBtn_uvhdv_79{width:28px;height:28px}html.pad-mode ._plusBtn_uvhdv_78 svg,html.pad-mode ._micBtn_uvhdv_79 svg{width:16px;height:16px}html.pad-mode ._interimPreview_uvhdv_125{left:14px;right:14px;bottom:4px;font-size:12px;max-height:40px;padding-top:8px}html.pad-mode ._plusMenu_uvhdv_153{bottom:36px}html.pad-mode ._plusMenuItem_uvhdv_166{padding:8px 12px;font-size:13px}html.pad-mode ._chatInputHint_uvhdv_238{font-size:11px}html.pad-mode ._sendBtn_uvhdv_263{width:28px;height:28px}html.pad-mode ._sendBtn_uvhdv_263 svg{width:16px;height:16px}html.pad-mode ._imagePreviewStrip_uvhdv_338{gap:8px;padding:8px 14px 0}html.pad-mode ._imagePreviewItem_uvhdv_350{width:48px;height:48px;border-radius:6px}html.pad-mode ._imagePreviewRemove_uvhdv_386{width:16px;height:16px;font-size:12px;opacity:0}html.pad-mode ._filePreviewChip_uvhdv_421{padding:6px 10px;gap:6px;border-radius:8px;max-width:200px}html.pad-mode ._filePreviewName_uvhdv_444{font-size:12px}html.pad-mode ._filePreviewClose_uvhdv_414{width:16px;height:16px;font-size:12px}._sendBtnWrap_uvhdv_608{position:relative;display:flex;flex-shrink:0}._bar_m7vks_2{flex:0 0 auto;margin:0 8px 6px;background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:8px;font-size:12px;overflow:hidden}._header_m7vks_12{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--border-secondary)}._title_m7vks_21{flex:0 0 auto;max-width:200px;font-weight:600;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._stat_m7vks_31{flex:1 1 auto;min-width:0;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._actions_m7vks_41{flex:0 0 auto;display:flex;align-items:center;gap:4px}._viewToggle_m7vks_48{display:inline-flex;gap:0;padding:2px;background:var(--bg-sub-avatar, rgba(127, 127, 127, .12));border-radius:6px}._viewBtn_m7vks_56{background:transparent;border:none;color:var(--text-secondary);font-size:11px;line-height:1.5;padding:1px 10px;cursor:pointer;border-radius:4px;transition:color .12s ease,background .12s ease}._viewBtn_m7vks_56:hover{color:var(--color-primary)}._viewBtnActive_m7vks_70,._viewBtnActive_m7vks_70:hover{color:#fffffff5;background:var(--color-primary)}._iconBtn_m7vks_76{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px;border-radius:4px}._iconBtn_m7vks_76:hover{color:var(--color-primary);background:var(--color-primary-pale)}._rows_m7vks_92{max-height:60vh;overflow-y:auto;padding:4px 0}._row_m7vks_92{display:flex;align-items:baseline;gap:8px;padding:2px 10px;line-height:1.6}._head_m7vks_12{color:var(--text-gray);font-size:11px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-secondary);padding-top:2px;padding-bottom:5px;margin-bottom:2px}._head_m7vks_12 ._labelCell_m7vks_118{color:var(--text-gray)}._dot_m7vks_120{flex:0 0 auto;width:1em;text-align:center;font-size:11px}._labelCell_m7vks_118{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:6px;overflow:hidden}._label_m7vks_118{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-primary)}._doing_m7vks_146{flex:0 0 auto;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--color-primary);border-radius:4px;padding:0 6px;font-size:11px;color:#fffffff5}._model_m7vks_160{flex:0 0 96px;color:var(--text-gray);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tok_m7vks_169,._tool_m7vks_169,._dur_m7vks_169{flex:0 0 auto;text-align:right;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}._tok_m7vks_169{flex-basis:60px}._tool_m7vks_169{flex-basis:44px}._dur_m7vks_169{flex-basis:52px;color:var(--text-gray)}._liveDot_m7vks_181{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--color-success, #3fb950)}._stateDone_m7vks_189{color:var(--color-success, #3fb950)}._stateFailed_m7vks_190{color:var(--color-error, #f85149)}._stateRunning_m7vks_191{color:var(--text-secondary)}._stateQueued_m7vks_192{color:var(--text-gray)}._statePulse_m7vks_194{animation:_ccvHudPulse_m7vks_1 1.1s ease-in-out infinite}@keyframes _ccvHudPulse_m7vks_1{0%,to{opacity:1}50%{opacity:.3}}@media(prefers-reduced-motion:reduce){._statePulse_m7vks_194{animation:none}}@media(max-width:768px){._model_m7vks_160{display:none}._row_m7vks_92{gap:8px}}._phases_m7vks_211{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:5px 10px;border-bottom:1px solid var(--border-secondary);max-height:96px;overflow-y:auto}._phasesLabel_m7vks_222{flex:0 0 auto;color:var(--text-gray);font-size:11px;text-transform:uppercase;letter-spacing:.03em;margin-right:2px}._phaseChip_m7vks_231{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:4px;max-width:220px;padding:1px 8px;font-size:11px;line-height:1.6;color:var(--text-secondary);background:var(--bg-sub-avatar);border-radius:10px}._phaseChipIdx_m7vks_245{flex:0 0 auto;color:var(--text-gray);font-variant-numeric:tabular-nums}._phaseChipTitle_m7vks_251{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._backdrop_jg8gb_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#00000080;display:flex;align-items:center;justify-content:center}._modal_jg8gb_11{width:95vw;max-width:560px;height:480px;max-height:85vh;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;position:relative}._modalContent_jg8gb_37{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;width:100%}._header_jg8gb_45{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}._title_jg8gb_52{font-size:16px;font-weight:600;color:var(--text-primary)}._closeBtn_jg8gb_58{width:28px;height:28px;border:none;background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px}._closeBtn_jg8gb_58:hover{background:var(--bg-surface);color:var(--text-secondary)}._headerActions_jg8gb_76{display:flex;align-items:center;gap:4px}._customWrap_jg8gb_83{position:relative;display:inline-flex;align-items:center;flex-shrink:0}._customTitle_jg8gb_90{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._editPencil_jg8gb_97{position:absolute;top:-4px;inset-inline-end:-4px;width:16px;height:16px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border-primary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;z-index:2}._customWrap_jg8gb_83:hover ._editPencil_jg8gb_97{opacity:1}._editPencil_jg8gb_97:hover{color:var(--color-primary);border-color:var(--color-primary)}@media(max-width:768px){._editPencil_jg8gb_97{opacity:1}}._disabledTip_jg8gb_129{padding:16px;font-size:13px;color:var(--text-muted);line-height:1.5}._variantRow_jg8gb_141{display:flex;align-items:flex-end;gap:8px;padding:0 20px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}._variantRow_jg8gb_141::-webkit-scrollbar{display:none}._roleBtn_jg8gb_158{display:inline-flex;align-items:center;gap:5px;padding:9px 14px;font-size:15px;line-height:1.6;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-main);color:var(--text-secondary);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._roleBtn_jg8gb_158:hover{border-color:var(--color-primary);color:var(--color-primary)}._roleBtn_jg8gb_158._roleBtnActive_jg8gb_187{background:var(--bg-container);color:var(--color-primary);border-color:var(--border-primary);border-bottom-color:var(--bg-container);border-radius:10px 10px 0 0;font-weight:500;margin-bottom:-1px;position:relative;z-index:1}._variantRow_jg8gb_141>._roleBtn_jg8gb_158._roleBtnActive_jg8gb_187,._customWrap_jg8gb_83:has(>._roleBtn_jg8gb_158._roleBtnActive_jg8gb_187){position:sticky;left:0;right:0;z-index:2}[data-theme=light] ._textareaWrap_jg8gb_23{box-shadow:0 3px 8px #00000014}[data-theme=light] ._roleBtnActive_jg8gb_187{box-shadow:0 -3px 8px #0000000f}._addExpertBtn_jg8gb_236{display:inline-flex;align-items:center;align-self:center;gap:5px;padding:6px 14px;font-size:15px;line-height:1.6;margin-left:4px;margin-bottom:2px;border:none;border-radius:14px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._addExpertBtn_jg8gb_236:hover{color:var(--color-primary);background:var(--bg-surface)}[data-theme=light] ._addExpertBtn_jg8gb_236{color:var(--text-secondary)}._fileList_jg8gb_272{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;max-height:80px;overflow-y:auto;flex-shrink:0}._fileChip_jg8gb_287{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:var(--bg-elevated);border:1px solid var(--border-primary);font-size:11px;color:var(--text-secondary);max-width:180px;white-space:nowrap;transition:border-color .15s}._fileChip_jg8gb_287:hover{border-color:var(--color-primary-pale)}._fileChip_jg8gb_287 svg{flex-shrink:0}._fileName_jg8gb_310{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}._fileRemove_jg8gb_317{flex-shrink:0;cursor:pointer;color:var(--text-disabled)}._fileRemove_jg8gb_317:hover{color:var(--text-primary)}._imageItem_jg8gb_327{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;border:1px solid var(--border-primary);transition:border-color .15s}._imageItem_jg8gb_327:hover{border-color:var(--color-primary-pale)}._imageThumb_jg8gb_341{width:100%;height:100%;object-fit:cover;cursor:pointer}._imageRemove_jg8gb_348{position:absolute;top:0;right:0;width:18px;height:18px;border:none;background:#0009;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 0 0 6px;opacity:0;transition:opacity .15s}._imageItem_jg8gb_327:hover ._imageRemove_jg8gb_348{opacity:1}@media(hover:none){._imageRemove_jg8gb_348,._fileRemove_jg8gb_317{opacity:1;min-width:22px;min-height:22px}}._textareaWrap_jg8gb_23{margin:0 16px;display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--bg-container);border-radius:8px;overflow:hidden;padding:4px}._textarea_jg8gb_23{flex:1 1 0;width:100%;min-height:0;box-sizing:border-box;padding:12px 14px;background:transparent;border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:16px;line-height:1.5;font-family:inherit;transition:border-color .15s;resize:none;outline:none}._textarea_jg8gb_23:focus{border-color:var(--color-primary-pale)}._resizeHandle_jg8gb_33{position:absolute;top:6px;left:6px;width:18px;height:18px;cursor:nwse-resize;z-index:5;touch-action:none;color:var(--text-disabled-faint);opacity:.7;transition:opacity .15s ease;display:block;line-height:0}._resizeHandle_jg8gb_33 svg{width:100%;height:100%;display:block}._resizeHandle_jg8gb_33:hover,._resizeHandle_jg8gb_33:active{opacity:1}.pad-mode ._resizeHandle_jg8gb_33{width:22px;height:22px;top:8px;left:8px}._textarea_jg8gb_23::placeholder{color:var(--text-disabled)}._footer_jg8gb_468{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px}._sendBtn_jg8gb_475{height:38px;padding:0 24px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:16px;cursor:pointer;white-space:nowrap;transition:opacity .15s}._sendBtn_jg8gb_475:hover{opacity:.85}._sendBtn_jg8gb_475:disabled{opacity:.4;cursor:not-allowed}._uploadBtn_jg8gb_497{display:flex;align-items:center;gap:5px;height:38px;padding:0 18px;border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-elevated);color:var(--text-light);font-size:16px;cursor:pointer;white-space:nowrap;transition:background .15s}._uploadBtn_jg8gb_497:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--text-disabled)}@media(max-width:768px){._backdrop_jg8gb_1{zoom:1.4}}html.pad-mode ._backdrop_jg8gb_1{zoom:1}._centerEmpty_wt9xa_1{display:flex;align-items:center;justify-content:center;height:100%}._container_wt9xa_8{flex:1;overflow-x:hidden;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._mobileVirtuoso_wt9xa_19{flex:1;min-height:0}._sessionDividerText_wt9xa_24{font-size:11px;color:var(--text-disabled)}._lastResponseLabel_wt9xa_29{font-size:11px}._splitContainer_wt9xa_33{display:flex;flex-direction:row;height:100%;overflow:hidden}._chatSection_wt9xa_40{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}._vResizer_wt9xa_48{width:5px;background:var(--bg-elevated);cursor:col-resize;flex-shrink:0;border-left:1px solid var(--border-primary);border-right:1px solid var(--border-primary);transition:background .15s}._vResizer_wt9xa_48:hover{background:var(--border-secondary)}._terminalToggle_wt9xa_62{display:flex;align-items:center;justify-content:center;align-self:center;width:14px;height:48px;margin-left:-14px;flex-shrink:0;cursor:pointer;color:var(--text-disabled);background:var(--overlay-light-faint);border-radius:4px 0 0 4px;transition:background .2s,color .2s;z-index:20;position:relative}._terminalToggle_wt9xa_62:hover{background:var(--overlay-light-medium);color:var(--text-tertiary)}._messageListWrap_wt9xa_85{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._stickyBottomBtn_wt9xa_93{position:absolute;right:12px;bottom:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;justify-content:flex-end;border-radius:0;border:none;background:none;color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:color .15s;z-index:10;box-shadow:none}._stickyBottomBtn_wt9xa_93 span{background:var(--bg-sticky-btn);padding:2px 10px;border-radius:10px}._loadingPet_wt9xa_120{width:48px;height:48px;image-rendering:pixelated}._stickyBottomBtn_wt9xa_93:hover{color:var(--text-white);background:none}@media(max-width:768px){._stickyBottomBtn_wt9xa_93{right:auto;left:0;gap:4px;padding:16px 18px;font-size:24px}._stickyBottomBtn_wt9xa_93 span{padding:4px 20px;border-radius:20px}._stickyBottomBtn_wt9xa_93 svg{width:28px;height:28px}}html.pad-mode ._stickyBottomBtn_wt9xa_93{right:0;left:auto;padding:8px 18px;font-size:12px}html.pad-mode ._stickyBottomBtn_wt9xa_93 span{padding:2px 10px;border-radius:10px}html.pad-mode ._stickyBottomBtn_wt9xa_93 svg{width:auto;height:auto}._loadMoreWrap_wt9xa_154{display:flex;justify-content:center;padding:12px 0 4px}._loadMoreBtn_wt9xa_160{padding:6px 18px;border-radius:16px;border:1px solid var(--border-hover);background:var(--overlay-light-faint);color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:background .15s,color .15s}._loadMoreBtn_wt9xa_160:hover{background:var(--overlay-light-medium);color:var(--text-secondary)}._navSidebar_wt9xa_176{width:40px;flex-shrink:0;background:var(--bg-elevated);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;align-items:center;padding-top:4px;gap:4px}@media(max-width:768px){._navSidebar_wt9xa_176{display:none}}._navBtn_wt9xa_193{width:32px;height:32px;border:none;background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navBtn_wt9xa_193:hover{color:var(--text-secondary);background:var(--bg-elevated)}._navBtnActive_wt9xa_213{width:32px;height:32px;border:none;background:var(--color-primary-bg-light);color:var(--color-primary-pale);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navDivider_wt9xa_228{width:60%;height:0;border:0;border-top:1px dashed var(--border-primary);margin:6px auto}._navBtnActive_wt9xa_213:hover{background:var(--color-primary-bg-medium);color:var(--color-info-light)}._navAvatarImg_wt9xa_241{width:19px;height:19px;border-radius:50%;object-fit:cover}._userPromptNavWrap_wt9xa_248{display:flex;flex-direction:column;min-width:200px;max-width:360px;max-height:calc(100vh - 48px)}._userPromptNavTitle_wt9xa_257{font-size:13px;font-weight:600;color:var(--text-primary);padding:4px 12px 8px;border-bottom:1px solid var(--border-primary);flex-shrink:0}._userPromptNavList_wt9xa_266{overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0}._userPromptNavItem_wt9xa_273{display:flex;align-items:baseline;gap:8px;padding:6px 10px;font-size:12px;color:var(--text-secondary);cursor:pointer;border-bottom:1px solid var(--border-primary)}._userPromptNavTime_wt9xa_285{flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.7}._userPromptNavText_wt9xa_293{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userPromptNavItem_wt9xa_273:hover{background:var(--bg-surface);color:var(--text-white)}._userPromptNavItem_wt9xa_273:last-child{border-bottom:none}._userPromptNavSessionSep_wt9xa_311{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px;color:var(--text-disabled);-webkit-user-select:none;user-select:none}._userPromptNavSessionSep_wt9xa_311:before,._userPromptNavSessionSep_wt9xa_311:after{content:"";flex:1 1 auto;border-top:1px solid var(--border-secondary)}._userPromptNavItem_wt9xa_273:has(+._userPromptNavSessionSep_wt9xa_311){border-bottom:none}._terminalPanelWrap_wt9xa_333{flex-shrink:0;min-width:200px;min-height:0;overflow:hidden;display:flex;flex-direction:column}._navSidebarContent_wt9xa_344{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}._innerSplitArea_wt9xa_352{flex:1;display:flex;min-width:0;position:relative}._chatSectionFlex_wt9xa_359{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}._inputStack_wt9xa_369{position:relative;flex-shrink:0}._overlayPanel_wt9xa_374{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column}._streamingSpinnerWrap_wt9xa_382{display:flex;justify-content:center;padding:4px 0;transition:opacity .5s ease-out;user-select:none;-webkit-user-select:none;pointer-events:none}._streamingSpinnerHidden_wt9xa_393{opacity:0}._sessionDivider_wt9xa_24{border-color:var(--border-secondary);margin:16px 0}._loadMoreBtnLoading_wt9xa_402{cursor:default;opacity:.7;display:inline-flex;align-items:center;gap:8px}._loadMoreSpinner_wt9xa_410{width:14px;height:14px;border:2px solid var(--overlay-light-medium);border-top-color:var(--color-primary-pale);border-radius:50%;animation:_loadMoreSpin_wt9xa_410 .8s linear infinite;flex-shrink:0}@keyframes _loadMoreSpin_wt9xa_410{to{transform:rotate(360deg)}}._lastResponseDivider_wt9xa_424{border-color:var(--border-primary);margin:8px 0}._lastResponseDivider_wt9xa_424._lastResponseDivider_wt9xa_424:before,._lastResponseDivider_wt9xa_424._lastResponseDivider_wt9xa_424:after{border-block-start-style:dashed}._hideLastResponseDivider_wt9xa_439 ._lastResponseDivider_wt9xa_424{display:none}._backdrop_1fcbc_7{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:32px 16px;animation:_backdropFadeIn_1fcbc_1 .16s ease-out}@keyframes _backdropFadeIn_1fcbc_1{0%{opacity:0}to{opacity:1}}._modal_1fcbc_25{width:min(90vw,1100px);max-height:calc(100vh - 64px);background:var(--bg-elevated, #1f1f1f);color:var(--text-primary, #e8e8e8);border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;box-shadow:0 16px 48px #0006;display:flex;flex-direction:column;overflow:hidden;animation:_modalSlideIn_1fcbc_1 .2s cubic-bezier(.2,.9,.3,1)}@keyframes _modalSlideIn_1fcbc_1{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}._header_1fcbc_44{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .06));flex-wrap:wrap}._title_1fcbc_53{font-size:14px;font-weight:600;flex:1}._chip_1fcbc_59{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-size:12px;border-radius:999px;background:var(--bg-code, rgba(255, 255, 255, .06));color:var(--text-secondary, #b8b8b8)}._chipAction_1fcbc_70{cursor:pointer;background:var(--color-primary-soft, rgba(22, 104, 220, .18));color:var(--color-primary-light, #4096ff);border:1px solid var(--color-primary-light, #4096ff);transition:background .12s}._chipAction_1fcbc_70:hover{background:var(--color-primary, #1668dc);color:#fff}._body_1fcbc_83{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:12px}._slot_1fcbc_91{display:flex;flex-direction:column}._slotHidden_1fcbc_96{display:none}._footer_1fcbc_100{display:flex;justify-content:flex-start;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--border-color, rgba(255, 255, 255, .06));font-size:12px;color:var(--text-tertiary, #888)}._footerHint_1fcbc_111{color:var(--text-secondary, #b8b8b8)}._footerHintLabel_1fcbc_115{color:var(--text-tertiary, #888);font-weight:500}._headerDismissBtn_1fcbc_122{margin-left:auto;background:transparent;border:1px solid var(--border-color, rgba(255, 255, 255, .12));color:var(--text-secondary, #b8b8b8);padding:4px 12px;border-radius:6px;cursor:pointer;font-size:12px;transition:background .12s,border-color .12s}._headerDismissBtn_1fcbc_122:hover{background:var(--bg-code, rgba(255, 255, 255, .06));border-color:var(--color-primary-light, #4096ff)}._kindTabs_1fcbc_139{display:flex;gap:6px;padding:6px 18px 0;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .06))}._kindTab_1fcbc_139{padding:6px 12px;border:0;background:transparent;color:var(--text-tertiary, #888);font-size:13px;cursor:pointer;border-radius:6px 6px 0 0;border-bottom:2px solid transparent}._kindTabActive_1fcbc_157{color:var(--color-primary-light, #4096ff);border-bottom-color:var(--color-primary-light, #4096ff)}._container_1mrxf_1{display:flex;flex-direction:column;gap:8px;padding:8px 0}._collapseArea_1mrxf_11{display:flex;flex-direction:column;gap:8px;background:var(--bg-base-alt);border-radius:6px;padding:10px 12px}._headerRow_1mrxf_20{display:flex;align-items:center;justify-content:space-between;gap:12px}._headerLabel_1mrxf_27{font-weight:600;color:var(--text-color, #333)}._row_1mrxf_32{display:flex;align-items:center;gap:8px}._rowLabel_1mrxf_38{min-width:64px;color:var(--text-color-secondary, #666);font-size:12px}._sliderWrap_1mrxf_44{flex:1;min-width:120px}._eventsList_1mrxf_49{display:flex;flex-direction:column;gap:6px}._eventRow_1mrxf_55{display:flex;align-items:center;gap:8px}._eventLabel_1mrxf_61{flex:0 0 auto;min-width:140px;color:var(--text-color, #333);font-size:12px}._eventLabelHelp_1mrxf_71{cursor:help;text-decoration:underline dotted;text-underline-offset:2px}._uploadHintIcon_1mrxf_77{color:var(--text-color-secondary, #888);cursor:help;font-size:14px;margin-left:2px}._eventSelect_1mrxf_84{flex:1;min-width:120px}._uploadRow_1mrxf_89{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:4px}._uploadRow_1mrxf_89 ._uploadBtn_1mrxf_98{font-size:12px}._uploadedList_1mrxf_103{display:flex;flex-direction:column;gap:4px;padding-top:4px}._uploadedTitle_1mrxf_110{font-size:12px;font-weight:600;color:var(--text-color-secondary, #666)}._uploadedRow_1mrxf_116{display:flex;align-items:center;gap:8px;padding:4px 6px;background:var(--card-bg, rgba(0, 0, 0, .03));border-radius:4px}._uploadedName_1mrxf_125{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._uploadedMeta_1mrxf_133{font-size:11px;color:var(--text-color-secondary, #888);flex:0 0 auto}@media(max-width:480px){._eventRow_1mrxf_55{flex-wrap:wrap}._eventLabel_1mrxf_61{flex:1 0 100%;min-width:0}._eventSelect_1mrxf_84{flex:1}}._cachePopover_mn1kq_3{max-width:800px}._cacheScrollArea_mn1kq_7{max-height:calc(100vh - 140px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._cacheScrollAreaInDrawer_mn1kq_19{max-height:none;overflow-y:visible}._cachePopoverTitle_mn1kq_24{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-primary)}._cachePopoverHeader_mn1kq_33{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-secondary)}._cacheSection_mn1kq_39{margin-bottom:10px}._cacheSectionBordered_mn1kq_43{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;background:var(--bg-container)}._cacheSectionBordered_mn1kq_43>._cacheSectionLabel_mn1kq_50,._cacheSectionBordered_mn1kq_43>._cacheSectionHeader_mn1kq_51{border-bottom:1px solid var(--border-secondary);padding-bottom:6px;margin-bottom:8px}._cacheSectionHeader_mn1kq_51{display:flex;align-items:center;justify-content:space-between;gap:6px}._cacheSectionHeader_mn1kq_51>._cacheSectionLabel_mn1kq_50{margin-bottom:0}._cacheSectionLabel_mn1kq_50{font-size:12px;font-weight:600;color:var(--text-light);margin-bottom:4px;padding:4px 0;-webkit-user-select:none;user-select:none}._toolChipGridVertical_mn1kq_77{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:2px 0 6px}._claudeMdChip_mn1kq_85{font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-size:11px;padding:0 6px;border-radius:3px;background:var(--bg-surface);color:var(--text-secondary);line-height:18px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border-primary);display:inline-flex;align-items:center;gap:5px}._claudeMdChip_mn1kq_85:hover{background:var(--bg-hover, var(--bg-surface));color:var(--text-primary)}._cacheChipBadge_mn1kq_112{font-size:10px;line-height:14px;padding:0 5px;border-radius:2px;font-weight:500;letter-spacing:.2px}._cacheChipBadgeProject_mn1kq_121{background:var(--color-primary-bg-light);color:var(--color-primary-light)}._cacheChipBadgeGlobal_mn1kq_126{background:var(--color-success-bg-light);color:var(--color-success-light)}._chipDetailBody_mn1kq_131{margin:0;font-family:inherit;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow-y:auto;color:var(--text-primary)}._chipDetailEmpty_mn1kq_143{color:var(--text-muted);font-style:italic}._mcpServerGroup_mn1kq_148{margin-bottom:6px}._mcpServerName_mn1kq_152{font-size:11px;font-weight:600;color:var(--text-muted);padding:2px 0 6px 2px}._cacheUsageLabel_mn1kq_159{font-size:13px;color:var(--text-primary);font-weight:400;margin-right:4px}._cachePercent_mn1kq_166{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}._cacheCalibrationLabel_mn1kq_173{margin-left:auto;color:var(--text-tertiary);font-size:12px;font-weight:400;white-space:nowrap}._calibrationSelect_mn1kq_181{width:80px;flex-shrink:0}._memoryStatus_mn1kq_186{padding:6px 4px}._memoryDirHint_mn1kq_190{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text-tertiary);margin-top:4px;word-break:break-all;-webkit-user-select:text;user-select:text}._skillsList_ap3j0_4{display:flex;flex-direction:column;gap:8px}._skillCard_ap3j0_10{border:1px solid var(--border-secondary);border-radius:6px;padding:10px 12px;background:var(--bg-container)}._skillCardHeader_ap3j0_17{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}._skillCardName_ap3j0_25{font-size:14px;font-weight:600;color:var(--text-primary);word-break:break-word;flex:1}._skillCardActions_ap3j0_33{flex-shrink:0;display:flex;align-items:center;gap:6px}._skillDeleteBtn_ap3j0_41{display:inline-flex;align-items:center;justify-content:center;padding:2px 4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:4px;font-size:14px;line-height:1;transition:color .15s,background .15s}._skillDeleteBtn_ap3j0_41:hover{color:#cf1322;background:#fff1f0}[data-theme=dark] ._skillDeleteBtn_ap3j0_41:hover{color:#ff7875;background:#2a1215}._skillCardDesc_ap3j0_64{font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--text-secondary)}._skillsEmpty_ap3j0_72{padding:32px 12px;text-align:center;color:var(--text-muted);font-style:italic}._skillsReadonlySection_ap3j0_80{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-secondary)}._skillsReadonlyLabel_ap3j0_86{font-size:12px;color:var(--text-muted);margin-bottom:6px}._skillCardDisabled_ap3j0_93{opacity:.55;background:var(--bg-elevated, var(--bg-surface))}._skillCardDisabled_ap3j0_93 ._skillCardName_ap3j0_25{text-decoration:line-through}._skillCardTitleRow_ap3j0_100{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._skillSourceBadge_ap3j0_107{font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px;letter-spacing:.3px;flex-shrink:0;white-space:nowrap;text-transform:uppercase}._skillSource_user_ap3j0_117{background:#e6f4ff;color:#0958d9}._skillSource_project_ap3j0_118{background:#f6ffed;color:#389e0d}._skillSource_plugin_ap3j0_119{background:#fff7e6;color:#d46b08}._skillSource_builtin_ap3j0_120{background:#f9f0ff;color:#531dab}[data-theme=dark] ._skillSource_user_ap3j0_117{background:#111d2c;color:#69b1ff}[data-theme=dark] ._skillSource_project_ap3j0_118{background:#162312;color:#73d13d}[data-theme=dark] ._skillSource_plugin_ap3j0_119{background:#2b1d11;color:#ffa940}[data-theme=dark] ._skillSource_builtin_ap3j0_120{background:#1a1325;color:#b37feb}._skillDuplicateBadge_ap3j0_128{font-size:11px;line-height:1;padding:2px 5px;border-radius:3px;flex-shrink:0;cursor:help;background:#fff1f0;color:#cf1322;border:1px solid #ffccc7}[data-theme=dark] ._skillDuplicateBadge_ap3j0_128{background:#2a1215;color:#ff7875;border-color:#58181c}._pluginDirHint_1nu7t_3{margin-bottom:12px;font-size:12px;color:var(--text-tertiary)}._pluginDirPath_1nu7t_9{font-family:Menlo,Monaco,monospace;color:var(--text-light);cursor:pointer;padding:1px 4px;border-radius:3px;background:var(--bg-elevated)}._pluginDirPath_1nu7t_9:hover{color:var(--color-primary-light)}._pluginList_1nu7t_22{display:flex;flex-direction:column;gap:8px}._pluginItem_1nu7t_28{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-container)}._pluginInfo_1nu7t_38{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_1nu7t_46{font-size:14px;color:var(--text-primary);font-weight:500}._pluginFile_1nu7t_52{font-size:12px;color:var(--text-muted);font-family:Menlo,Monaco,monospace}._pluginHooks_1nu7t_58{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_1nu7t_65{font-size:11px;padding:0 5px;border-radius:3px;background:var(--color-primary-dark-bg);color:var(--color-primary-lighter);line-height:18px}._pluginActions_1nu7t_74{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_1nu7t_82{text-align:center;padding:32px 0;color:var(--text-tertiary)}._pluginModalFooter_1nu7t_88{display:flex;justify-content:space-between;width:100%}._pluginModalFooterLeft_1nu7t_94{display:flex;gap:8px}._pluginDirLabel_1nu7t_99{color:var(--text-tertiary)}._pluginEmptyTitle_1nu7t_103{font-size:14px;margin-bottom:4px}._pluginEmptyHint_1nu7t_108{font-size:12px;color:var(--text-muted)}._cdnUrlLabel_1nu7t_113{margin-bottom:6px;color:var(--text-secondary);font-size:13px}._cdnInput_1nu7t_119{background:var(--bg-elevated);border-color:var(--border-secondary);color:var(--text-primary)}._pluginModalScroll_1nu7t_125{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}._pluginModalFooterBar_1nu7t_132{padding:16px 0;margin-top:16px;border-top:1px solid var(--border-primary)}._currentProcessBtn_1rte5_5{color:var(--color-success);border-color:var(--color-success)}._processModalScroll_1rte5_10{flex:1;min-height:0;overflow:auto;padding:24px 16px 0}._processModalFooterBar_1rte5_17{padding:16px 0;margin-top:16px;border-top:1px solid var(--border-primary)}._fullWidthSelect_16z2q_4{width:100%}._proxyWarning_16z2q_8{background:var(--color-warning-dark-bg);border:1px solid var(--color-warning-dark-border);border-radius:4px;color:var(--color-warning-light);font-size:12px;padding:6px 10px;margin-bottom:10px}._proxyList_16z2q_18{display:flex;flex-direction:column;gap:4px}._proxyItem_16z2q_24{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;border:1px solid transparent;transition:background .15s}._proxyItem_16z2q_24:hover{background:var(--bg-elevated)}._proxyItemActive_16z2q_38{background:var(--color-selection-bg);border-color:var(--color-primary)}._proxyItemMain_16z2q_43{display:flex;align-items:center;cursor:pointer;flex:1;min-width:0}._proxyItemInfo_16z2q_51{display:flex;flex-direction:column;min-width:0}._proxyItemNameRow_16z2q_57{display:flex;align-items:center;gap:6px}._proxyItemName_16z2q_57{font-size:13px;color:var(--text-primary);font-weight:500}._proxyItemDetail_16z2q_69{font-size:11px;color:var(--text-gray);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._proxyBuiltinTag_16z2q_78{font-size:10px;padding:0 4px;border-radius:3px;background:var(--color-primary-dark-bg);color:var(--color-primary-lighter);line-height:16px;border:none}._proxyItemActions_16z2q_88{display:flex;gap:2px;flex-shrink:0}._proxyEditForm_16z2q_94{margin-top:12px;padding:12px;border-radius:6px;background:var(--bg-elevated);border:1px solid var(--border-secondary)}._proxyEditRow_16z2q_102{margin-bottom:8px}._proxyEditRow_16z2q_102 label{display:block;font-size:12px;color:var(--text-tertiary);margin-bottom:4px}._proxyRequired_16z2q_113{color:var(--color-error);margin-left:2px}._proxyEditDivider_16z2q_118{border-top:1px dashed var(--border-secondary);margin:10px 0 8px}._proxyEditBtns_16z2q_123{display:flex;gap:8px;margin-top:12px}._proxyModalScroll_16z2q_129{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}
|
|
41
|
+
*/.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#79c0ff}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-comment,.hljs-code,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}._fullFileDiffView_1o8kb_1{width:100%;height:100%;display:flex;flex-direction:column;background:var(--bg-base-alt);overflow:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}._diffSummary_1o8kb_12{padding:8px 16px;background:var(--bg-container);border-bottom:1px solid var(--border-primary);display:flex;gap:8px;align-items:center;flex-shrink:0}._addedBadge_1o8kb_22{padding:2px 8px;background:var(--color-diff-add-bg);border:1px solid var(--color-diff-add-bg);border-radius:4px;font-size:11px;font-weight:600;color:var(--color-diff-add);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}._deletedBadge_1o8kb_33{padding:2px 8px;background:var(--color-error-bg-light);border:1px solid var(--color-error-bg-medium);border-radius:4px;font-size:11px;font-weight:600;color:var(--color-error);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}._codeContainer_1o8kb_44{flex:1;overflow:hidden;display:flex;min-height:0;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:12px;line-height:1.6}._lineNumberCol_1o8kb_54{flex-shrink:0;overflow:hidden;background:var(--bg-base-alt);border-right:1px solid var(--border-primary);-webkit-user-select:none;user-select:none}._lineNumRow_1o8kb_62{display:flex;min-height:20px}._oldLineNum_1o8kb_67,._newLineNum_1o8kb_68{display:inline-block;width:40px;text-align:right;padding:0 6px;font-size:12px;box-sizing:border-box}._lineNumNormal_1o8kb_77 ._oldLineNum_1o8kb_67,._lineNumNormal_1o8kb_77 ._newLineNum_1o8kb_68{color:var(--text-disabled)}._lineNumAdd_1o8kb_82{border-right:3px solid var(--color-diff-add)}._lineNumAdd_1o8kb_82 ._oldLineNum_1o8kb_67{color:var(--text-disabled)}._lineNumAdd_1o8kb_82 ._newLineNum_1o8kb_68{color:var(--color-diff-add);font-weight:600}._lineNumDelete_1o8kb_95{border-right:3px solid var(--color-error)}._lineNumDelete_1o8kb_95 ._oldLineNum_1o8kb_67{color:var(--color-error);font-weight:600}._lineNumDelete_1o8kb_95 ._newLineNum_1o8kb_68{color:var(--text-disabled)}._codeColWrap_1o8kb_108{flex:1;position:relative;min-width:0;overflow:hidden}._codeCol_1o8kb_108{width:100%;height:100%;overflow:auto;min-width:0}._codeInner_1o8kb_122{width:fit-content;min-width:100%}._codeLine_1o8kb_127{position:relative;min-height:20px;display:flex;transition:background .1s}._codeLine_1o8kb_127:hover{background:var(--overlay-light-faint)}._linePrefix_1o8kb_138{display:inline-block;width:16px;text-align:center;color:var(--text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}._lineContent_1o8kb_147{padding-right:16px;color:var(--text-secondary);white-space:pre}._lineNormal_1o8kb_153{background:#0000}._lineAdd_1o8kb_157{background:var(--color-diff-add-bg)}._lineAdd_1o8kb_157 ._linePrefix_1o8kb_138{color:var(--color-diff-add)}._lineDelete_1o8kb_165{background:var(--color-error-bg-faint)}._lineDelete_1o8kb_165 ._linePrefix_1o8kb_138{color:var(--color-error)}._lineDelete_1o8kb_165 ._lineContent_1o8kb_147{text-decoration:line-through;opacity:.8}._miniMap_1ho3j_1{position:absolute;top:0;right:0;width:10px;height:100%;cursor:pointer;z-index:10}._marker_1ho3j_11{position:absolute;left:0;width:100%;border-radius:1px;pointer-events:none}._gitDiffView_ypk84_1{flex:1;display:flex;flex-direction:column;background:var(--bg-base-alt);overflow:hidden;animation:_slideInFromRight_ypk84_1 .25s ease-out}@keyframes _slideInFromRight_ypk84_1{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}._closing_ypk84_21{animation:_slideOutToRight_ypk84_1 .2s ease-in forwards}@keyframes _slideOutToRight_ypk84_1{0%{transform:translate(0);opacity:1}to{transform:translate(-40px);opacity:0}}._header_ypk84_36{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;border-bottom:1px solid var(--border-primary);background:var(--bg-container);flex-shrink:0}._headerLeft_ypk84_46{display:flex;align-items:center;gap:12px;flex:1;min-width:0}._backBtn_ypk84_54{width:28px;height:28px;border:none;background:none;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;padding:0;flex-shrink:0;transition:all .15s}._backBtn_ypk84_54:hover{color:var(--text-secondary);background:var(--bg-surface)}._filePath_ypk84_75{font-size:13px;color:var(--text-secondary);font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:color .15s}._filePath_ypk84_75:hover{color:var(--color-info-light);text-decoration:underline}._diffBadge_ypk84_91{padding:2px 8px;background:var(--bg-surface);border:1px solid var(--border-light);border-radius:4px;font-size:10px;font-weight:600;color:var(--color-accent-yellow);letter-spacing:.5px;flex-shrink:0}._headerRight_ypk84_103{display:flex;align-items:center;flex-shrink:0}._closeBtn_ypk84_109{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;background:transparent;color:var(--text-tertiary);border-radius:6px;cursor:pointer;transition:background .15s,color .15s}._closeBtn_ypk84_109:hover{background:var(--overlay-light-medium);color:var(--text-primary)}._contentContainer_ypk84_129{flex:1;overflow:auto;position:relative}._loading_ypk84_135{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px}._error_ypk84_144{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-error-light);font-size:13px;padding:20px;text-align:center}._binaryNotice_ypk84_155{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px;font-style:italic;padding:20px;text-align:center}._largeFileWarning_ypk84_167{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--color-accent-yellow);font-size:13px;padding:20px;text-align:center;gap:8px}._fileSize_ypk84_180{color:var(--text-tertiary);font-size:12px;margin:0}._imagePreviewWrap_ypk84_186{display:flex;align-items:center;justify-content:center;height:100%;padding:20px}._imagePreview_ypk84_186{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;cursor:zoom-in;transition:opacity .2s}._imagePreview_ypk84_186:hover{opacity:.85}._panel_sccpn_1{position:absolute;bottom:100%;margin-bottom:8px;left:16px;right:16px;z-index:99999;background:var(--bg-elevated);border:none;border-radius:12px;padding:12px 16px;box-shadow:0 4px 32px var(--shadow-approval-heavy),0 0 12px var(--shadow-approval-glow);animation:_slideUp_sccpn_1 .2s ease-out}._panelGlobal_sccpn_20{position:fixed;bottom:max(calc(var(--chat-input-bar-height, 200px) + 12px),56px);left:10px;right:10px;z-index:99999;background:var(--bg-elevated);border:none;border-radius:12px;padding:10px 14px;box-shadow:0 4px 32px var(--shadow-approval-heavy),0 0 12px var(--shadow-approval-glow);animation:_slideUp_sccpn_1 .2s ease-out;font-size:80%}._panelGlobal_sccpn_20 ._toolName_sccpn_43{font-size:14px}._panelGlobal_sccpn_20 ._command_sccpn_47{font-size:12px;max-height:80px;padding:6px 10px}._panelGlobal_sccpn_20 ._allowBtn_sccpn_53,._panelGlobal_sccpn_20 ._allowSessionBtn_sccpn_54,._panelGlobal_sccpn_20 ._denyBtn_sccpn_55{padding:7px 18px;font-size:14px}._borderSvg_sccpn_60{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgInset_sccpn_69{overflow:hidden}._borderRect_sccpn_73{animation:_dashRotate_sccpn_1 4s linear infinite}@keyframes _dashRotate_sccpn_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}@keyframes _slideUp_sccpn_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideDown_sccpn_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}._exiting_sccpn_92{animation:_slideDown_sccpn_1 .2s ease-in forwards}._header_sccpn_96{display:flex;align-items:center;gap:8px;margin-bottom:8px}._toolName_sccpn_43{color:var(--text-primary);font-weight:600;font-size:13px;font-family:SF Mono,Menlo,Monaco,Consolas,monospace}._label_sccpn_110{color:var(--color-approval-label);font-size:12px;font-weight:500;margin-left:auto}._subAgentBadge_sccpn_117{display:inline-block;padding:1px 6px;border-radius:4px;background:var(--color-primary-bg-light);color:var(--color-primary-light);font-size:11px;font-weight:500;letter-spacing:.02em}._body_sccpn_128{margin-bottom:12px}._command_sccpn_47{background:var(--bg-container-alt);border:1px solid var(--border-primary);border-radius:6px;padding:8px 12px;color:var(--text-secondary);font-size:12px;font-family:SF Mono,Menlo,Monaco,Consolas,monospace;line-height:1.5;max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;margin:0}._detail_sccpn_148{margin-top:6px;color:var(--text-tertiary);font-size:11px;font-family:SF Mono,Menlo,Monaco,Consolas,monospace;white-space:pre-wrap;word-break:break-all;max-height:40px;overflow:hidden}._actions_sccpn_159{display:flex;align-items:center;gap:8px}._autoApproveBtn_sccpn_165{margin-right:auto;padding:4px 10px;border-radius:4px;border:1px solid var(--border-light);background:transparent;color:var(--text-muted);font-size:11px;cursor:pointer;transition:color .15s,border-color .15s;white-space:nowrap}._autoApproveBtn_sccpn_165:hover{color:var(--text-secondary);border-color:var(--text-muted)}._autoApproveActive_sccpn_183{color:var(--color-success);border-color:var(--color-success)}._autoApproveActive_sccpn_183:hover{color:var(--color-success-light);border-color:var(--color-success-light)}._allowBtn_sccpn_53{padding:6px 20px;border-radius:6px;border:1px solid var(--color-success);background:var(--color-success-bg-light);color:var(--color-success);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}._allowBtn_sccpn_53:hover{background:var(--color-success-bg-medium)}._allowSessionBtn_sccpn_54{padding:6px 16px;border-radius:6px;border:1px solid var(--color-primary-light);background:var(--color-primary-bg-light);color:var(--color-primary-light);font-size:12px;font-weight:500;cursor:pointer;transition:background .15s}._allowSessionBtn_sccpn_54:hover{background:var(--color-primary-bg-medium)}._denyBtn_sccpn_55{padding:6px 20px;border-radius:6px;border:1px solid var(--color-error);background:var(--color-error-bg-light);color:var(--color-error);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s}._denyBtn_sccpn_55:hover{background:var(--color-error-bg-medium)}._allowBtn_sccpn_53:focus-visible,._allowSessionBtn_sccpn_54:focus-visible,._denyBtn_sccpn_55:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(max-width:768px){._panel_sccpn_1{right:10px;left:10px;border-radius:12px;padding:16px 20px}._toolName_sccpn_43{font-size:18px}._command_sccpn_47{font-size:16px;max-height:160px}._allowBtn_sccpn_53,._allowSessionBtn_sccpn_54,._denyBtn_sccpn_55{padding:10px 28px;font-size:18px}}html.pad-mode ._panel_sccpn_1{right:16px;left:16px;padding:12px 16px;z-index:99999}html.pad-mode ._toolName_sccpn_43{font-size:13px}html.pad-mode ._command_sccpn_47{font-size:12px;max-height:120px}html.pad-mode ._allowBtn_sccpn_53,html.pad-mode ._allowSessionBtn_sccpn_54,html.pad-mode ._denyBtn_sccpn_55{padding:6px 20px;font-size:13px}html.pad-mode ._panelGlobal_sccpn_20{font-size:90%}html.pad-mode ._panelGlobal_sccpn_20 ._toolName_sccpn_43{font-size:14px}html.pad-mode ._panelGlobal_sccpn_20 ._command_sccpn_47{font-size:13px;max-height:100px}html.pad-mode ._panelGlobal_sccpn_20 ._allowBtn_sccpn_53,html.pad-mode ._panelGlobal_sccpn_20 ._allowSessionBtn_sccpn_54,html.pad-mode ._panelGlobal_sccpn_20 ._denyBtn_sccpn_55{padding:8px 22px;font-size:14px}._teamActiveSpinner_jsskf_1{position:absolute;bottom:4px;right:4px;width:10px;height:10px;border:2px solid var(--overlay-light-medium);border-top-color:var(--color-warning);border-radius:50%;animation:_teamSpin_jsskf_1 .8s linear infinite}@keyframes _teamSpin_jsskf_1{to{transform:rotate(360deg)}}._teamPopover_jsskf_17{min-width:200px;max-width:320px;padding:8px 0}._teamPopoverTitle_jsskf_23{font-size:13px;font-weight:600;color:var(--text-primary);padding:4px 12px 8px;border-bottom:1px solid var(--border-primary)}._teamPopoverItem_jsskf_31{display:flex;align-items:center;padding:6px 12px;cursor:pointer;transition:background .15s;font-size:12px;color:var(--text-secondary)}._teamPopoverItem_jsskf_31:hover{background:var(--bg-elevated)}._teamPopoverName_jsskf_45{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._teamPopoverMeta_jsskf_53{color:var(--text-muted);font-size:11px;margin:0 8px;flex-shrink:0}._teamPopoverTime_jsskf_60{color:var(--text-disabled);font-size:11px;flex-shrink:0}._teamModalBody_jsskf_66{flex:1;min-width:0;overflow-y:auto;padding:16px 24px;display:flex;flex-direction:column;gap:4px}._teamGanttToggle_jsskf_76{cursor:pointer;padding:8px 16px;font-size:12px;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;border-bottom:1px solid var(--border-primary);transition:color .15s}._teamGanttToggle_jsskf_76:hover{color:var(--text-secondary)}._ganttExportBtn_jsskf_90{display:inline-flex;align-items:center;margin-left:8px;padding:2px 4px;color:var(--text-muted);cursor:pointer;border-radius:3px;transition:color .15s,background .15s}._ganttExportBtn_jsskf_90:hover{color:var(--text-secondary);background:var(--bg-surface)}._teamGanttWrap_jsskf_106{--gantt-label-width: 110px;padding:8px 16px 4px;position:relative;max-height:120px;overflow-y:auto;flex-shrink:0}._teamGanttResizer_jsskf_115{height:5px;cursor:ns-resize;background:#0000;border-bottom:1px solid var(--border-primary);flex-shrink:0;transition:background .15s}._teamGanttResizer_jsskf_115:hover{background:var(--border-secondary)}._teamGanttRow_jsskf_128{display:flex;align-items:center;height:22px;margin-bottom:3px}._teamGanttLabel_jsskf_135{width:calc(var(--gantt-label-width) - 10px);font-size:11px;color:var(--text-tertiary);text-align:right;padding-right:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}._teamGanttTrack_jsskf_147{flex:1;height:14px;background:var(--bg-container);border-radius:3px;position:relative;overflow:hidden}._teamGanttBar_jsskf_156{position:absolute;height:100%;border-radius:3px;min-width:4px;top:0}._teamGanttDiamond_jsskf_164{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:12px;line-height:1;z-index:2;pointer-events:auto;cursor:default;filter:drop-shadow(0 0 2px var(--overlay-dark-strong));transition:transform .15s}._teamGanttDiamond_jsskf_164:hover{transform:translate(-50%,-50%) scale(1.4)}._teamGanttArrows_jsskf_181{position:absolute;top:0;left:var(--gantt-label-width);right:0;width:calc(100% - var(--gantt-label-width));pointer-events:none;z-index:5}._teamGanttIndicator_jsskf_191{position:absolute;top:0;bottom:0;width:2px;background:var(--color-primary-pale);z-index:10;pointer-events:none;box-shadow:0 0 6px var(--color-primary-pale-shadow);transition:left .15s ease-out}._teamModalLayout_jsskf_203{display:flex;height:100%}._teamAgentCards_jsskf_208{width:160px;flex-shrink:0;border-right:1px solid var(--border-primary);overflow-y:auto;background:var(--bg-base-alt);padding:8px}._teamAgentCard_jsskf_208{padding:8px;border-radius:0;margin-bottom:6px;border-left:3px solid var(--border-secondary);background:var(--bg-container);transition:background .15s}._teamAgentCard_jsskf_208:hover,._teamAgentCard_jsskf_208._teamAgentCardActive_jsskf_232{background:var(--bg-elevated)}._teamAgentCardHeader_jsskf_236{display:flex;align-items:center;gap:6px}._teamAgentAvatar_jsskf_242{width:20px;height:20px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--model-logo-mono)}._teamAgentAvatar_jsskf_242 svg{width:14px;height:14px;fill:currentColor}._teamAgentName_jsskf_260{font-size:12px;font-weight:500;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._teamAgentType_jsskf_269{font-size:10px;color:var(--text-muted);margin-top:2px}._teamAgentStatus_jsskf_275{font-size:10px;margin-top:4px}._teamAgentPopover_jsskf_280{padding:10px 12px;min-width:200px}._teamAgentPopTeammateMsg_jsskf_285{background:var(--bg-code-system);border:1px solid var(--border-code-system);border-radius:6px;padding:10px 12px;margin-bottom:8px}._teamAgentPopTmSummary_jsskf_293{font-size:12px;font-weight:600;color:var(--color-primary-pale);margin-bottom:6px}._teamAgentPopTmContent_jsskf_300{font-size:12px;color:var(--text-secondary);line-height:1.6}._teamAgentPopTask_jsskf_306{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-primary)}._teamAgentPopMsg_jsskf_315{font-size:12px;color:var(--text-secondary);line-height:1.5;white-space:pre-wrap;word-break:break-word;margin-bottom:8px;padding:6px 8px;background:var(--bg-container);border-radius:4px;border:1px solid var(--border-primary)}._teammateReportEntry_jsskf_328{background:var(--bg-code-system);border:1px solid var(--border-code-system);border-radius:8px;padding:12px;margin:4px 0}._teammateReportHeader_jsskf_336{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-code-system)}._teammateReportName_jsskf_345{font-size:13px;font-weight:600;color:var(--text-primary)}._teammateReportSummary_jsskf_351{font-size:12px;color:var(--color-primary-pale);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}._teammateReportBody_jsskf_360{font-size:12px;color:var(--text-secondary);line-height:1.6}._teamModalContent_jsskf_366{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}._teamBtnRelative_jsskf_374{position:relative}._ganttLabelLead_jsskf_378{color:var(--color-primary);font-weight:600}._ganttLabelAgent_jsskf_383{color:var(--text-primary)}._ganttTimeAxisRow_jsskf_387{margin-top:2px}._ganttTimeAxisTrack_jsskf_391{background:#0000;height:16px;position:relative}._ganttTickLabel_jsskf_397{position:absolute;transform:translate(-50%);font-size:9px;color:var(--text-disabled);white-space:nowrap}._teamPopoverStatus_jsskf_405{margin-right:6px;font-size:10px}._statusConverged_jsskf_411{color:var(--color-success);opacity:.55}._statusPending_jsskf_417{color:var(--text-tertiary)}._statusPossiblyAlive_jsskf_422{color:var(--color-warning-light)}._statusReused_jsskf_427{color:var(--text-tertiary);font-style:italic}._ganttIndicatorInitial_jsskf_432{left:110px}._teamModalTitle_jsskf_436{color:var(--text-primary);font-size:15px}._teamLeadCard_jsskf_441{border-left-color:var(--color-primary)}._agentNoMessages_jsskf_445{color:var(--text-muted);font-size:12px}._teamAgentCardClickable_jsskf_450{border-left-color:var(--text-primary);cursor:pointer}._agentStatusDurSuffix_jsskf_455{color:var(--text-tertiary)}._wfPopover_1fpr3_3{min-width:220px;max-width:360px;padding:8px 0}._wfPopoverScroll_1fpr3_10{max-height:calc(100vh - 48px);overflow-y:auto;overflow-x:hidden}._wfPopoverTitle_1fpr3_16{font-size:13px;font-weight:600;color:var(--text-primary);padding:4px 12px 8px;border-bottom:1px solid var(--border-primary)}._wfPopoverItem_1fpr3_24{display:flex;align-items:center;padding:6px 12px;cursor:pointer;transition:background .15s;font-size:12px;color:var(--text-secondary)}._wfPopoverItem_1fpr3_24:hover{background:var(--bg-elevated)}._wfPopoverStatus_1fpr3_38{margin-right:6px;font-size:10px;flex-shrink:0}._wfPopoverName_1fpr3_44{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._wfPopoverMeta_1fpr3_52{color:var(--text-muted);font-size:11px;margin:0 6px;flex-shrink:0}._wfPopoverTime_1fpr3_59{color:var(--text-disabled);font-size:11px;flex-shrink:0}._wfModalTitle_1fpr3_65{font-weight:600}._wfModalBody_1fpr3_69{max-height:calc(100vh - 160px);overflow-y:auto}._snapLine_1qd8k_1{position:absolute;top:0;bottom:0;width:2px;background:#0000;border-left:2px dashed var(--overlay-light-medium);pointer-events:none;z-index:1000;transition:all .15s}._snapLineActive_1qd8k_13{position:absolute;top:0;bottom:0;width:2px;background:#0000;border-left:2px dashed var(--overlay-light-half);pointer-events:none;z-index:1001}._snapPreview_1qd8k_24{position:absolute;top:0;bottom:0;background:var(--overlay-light-medium);pointer-events:none;z-index:999}._roleFilterBar_122ad_1{display:flex;align-items:center;gap:6px;padding:0 12px;height:41px;background:var(--bg-base-pure);border-bottom:1px solid var(--border-secondary);overflow-x:auto;flex-shrink:0}._roleChip_122ad_12,._roleChipActive_122ad_12{display:flex;align-items:center;gap:4px;padding:3px 8px;border-radius:12px;border:1px solid var(--border-secondary);background:#0000;color:var(--text-tertiary);font-size:11px;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}._roleChipActive_122ad_12{border-color:var(--color-primary-pale);color:var(--text-secondary)}._roleChip_122ad_12:hover,._roleChipActive_122ad_12:hover{border-color:var(--text-disabled)}._roleAvatar_122ad_33{width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#fff}._roleAvatar_122ad_33 svg{width:10px;height:10px}._roleAvatarImg_122ad_47{width:16px;height:16px;border-radius:50%;flex-shrink:0;object-fit:cover}._roleName_122ad_54{max-width:80px;overflow:hidden;text-overflow:ellipsis}._roleCheck_122ad_59{color:var(--color-primary-pale);font-size:10px}._chatInputBar_uvhdv_1{padding:8px 16px 12px;background:var(--bg-input-bar);flex-shrink:0}._chatInputWrapper_uvhdv_7{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-secondary);border-radius:16px;transition:border-color .2s;overflow:visible}._chatInputWrapper_uvhdv_7:focus-within{border-color:var(--text-disabled)}._chatTextareaWrap_uvhdv_21{position:relative;flex:1}._textareaWithGhost_uvhdv_28{position:relative}._chatTextarea_uvhdv_21{width:100%;min-height:22px;max-height:120px;padding:12px 14px 4px;background:#0000;color:var(--text-primary);border:none;outline:none;resize:none;font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;box-sizing:border-box}._chatTextarea_uvhdv_21::placeholder{color:var(--text-disabled)}._chatInputBottom_uvhdv_52{display:flex;align-items:center;padding:4px 6px 6px;gap:4px}._chatInputBottomLeft_uvhdv_60,._chatInputBottomRight_uvhdv_62{display:flex;align-items:center;gap:4px;flex:0 0 auto}._chatInputBottomRight_uvhdv_62{margin-left:auto}._plusArea_uvhdv_74{position:relative}._plusBtn_uvhdv_78,._micBtn_uvhdv_79{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-light);background:#0000;color:var(--text-tertiary);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s,border-color .15s,transform .25s ease}._plusBtnOpen_uvhdv_94{transform:rotate(45deg)}._plusBtn_uvhdv_78:hover,._micBtn_uvhdv_79:hover{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--text-muted)}._micBtnRecording_uvhdv_105,._micBtnRecording_uvhdv_105:hover{background:var(--color-error);color:#fff;border-color:var(--color-error);animation:_ccvMicPulse_uvhdv_1 1.4s ease-in-out infinite}@keyframes _ccvMicPulse_uvhdv_1{0%,to{box-shadow:0 0 rgba(var(--color-error-rgb),.45)}50%{box-shadow:0 0 0 6px rgba(var(--color-error-rgb),0)}}@media(prefers-reduced-motion:reduce){._micBtnRecording_uvhdv_105,._micBtnRecording_uvhdv_105:hover{animation:none}}._interimPreview_uvhdv_125{position:absolute;left:14px;right:14px;bottom:4px;z-index:101;color:var(--text-secondary);font-size:12px;font-style:italic;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;white-space:pre-wrap;max-height:40px;overflow:hidden;-webkit-user-select:none;user-select:none;pointer-events:none;background:linear-gradient(to bottom,transparent 0%,var(--bg-elevated) 30%);padding-top:8px}._plusOverlay_uvhdv_144{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}._plusMenu_uvhdv_153{position:absolute;bottom:36px;left:0;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:10px;padding:4px;min-width:140px;box-shadow:0 4px 16px var(--overlay-dark-light);z-index:100}._plusMenuItem_uvhdv_166{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border:none;background:#0000;color:var(--text-secondary);font-size:13px;cursor:pointer;border-radius:6px;transition:background .15s;white-space:nowrap}._plusMenuItem_uvhdv_166:hover{background:var(--bg-surface)}._plusMenuItemMuted_uvhdv_186{color:var(--text-tertiary);border-bottom:1px solid var(--border-light);margin-bottom:2px}._plusMenuItemMuted_uvhdv_186:hover{color:var(--text-primary)}._plusMenuItem_uvhdv_166 svg{width:16px;height:16px;flex-shrink:0}._plusMenuItemMuted_uvhdv_186 svg{stroke:var(--text-tertiary);transition:stroke .15s}._plusMenuItemMuted_uvhdv_186:hover svg{stroke:var(--text-primary)}._presetLabel_uvhdv_212{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._plusMenuQuick_uvhdv_220{min-width:200px}._plusBtn_uvhdv_78 svg{width:16px;height:16px}._quickMenuPresetItem_uvhdv_232{max-width:260px;overflow:hidden;text-overflow:ellipsis}._chatInputHint_uvhdv_238{font-size:11px;color:var(--border-light);-webkit-user-select:none;user-select:none;padding:0 4px}._ctxBarSlot_uvhdv_61{flex:0 1 200px;max-width:200px;min-width:0;display:flex;align-items:stretch;height:28px;margin-left:4px}._ctxBarSlot_uvhdv_61>*{flex:1 1 0;min-width:0}._sendBtn_uvhdv_263{width:28px;height:28px;border-radius:50%;border:none;background:var(--text-white);color:var(--bg-base-pure);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .15s}._sendBtnDisabled_uvhdv_278{background:var(--border-light);color:var(--text-tertiary);cursor:default}._sendBtn_uvhdv_263 svg{width:16px;height:16px}._ghostText_uvhdv_289{position:absolute;top:0;left:0;right:0;padding:12px 14px 4px;color:var(--border-light);font-size:14px;line-height:1.5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;pointer-events:none;white-space:pre-wrap;overflow:hidden;max-height:120px}._suggestionChip_uvhdv_305{display:flex;align-items:center;gap:8px;padding:8px 14px;background:var(--bg-elevated);border-top:1px solid var(--border-primary);cursor:pointer;flex-shrink:0;transition:background .15s;height:35px}._suggestionChip_uvhdv_305:hover{background:var(--bg-elevated)}._suggestionChipText_uvhdv_322{flex:1;color:var(--text-disabled);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._suggestionChipAction_uvhdv_331{color:var(--color-primary-pale);font-size:14px;flex-shrink:0}._imagePreviewStrip_uvhdv_338{display:flex;gap:8px;padding:8px 14px 0;overflow-x:auto;scrollbar-width:none}._imagePreviewStrip_uvhdv_338::-webkit-scrollbar{display:none}._imagePreviewItem_uvhdv_350{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;flex-shrink:0;border:1px solid var(--border-light);transition:border-color .15s}._imagePreviewItem_uvhdv_350:hover{border-color:var(--color-primary-pale)}._imagePreviewThumb_uvhdv_365{width:100%;height:100%;object-fit:cover;cursor:pointer}._imagePreviewUploading_uvhdv_373{cursor:default}._imagePreviewSpinner_uvhdv_377{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059}._imagePreviewRemove_uvhdv_386{position:absolute;top:2px;right:2px;width:16px;height:16px;border-radius:50%;background:#000000b3;color:#fff;border:none;font-size:12px;line-height:14px;text-align:center;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s}._imagePreviewItem_uvhdv_350:hover ._imagePreviewRemove_uvhdv_386{opacity:1}@media(hover:none){._imagePreviewRemove_uvhdv_386,._filePreviewClose_uvhdv_414{opacity:1;min-width:22px;min-height:22px}}._filePreviewChip_uvhdv_421{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-surface);border:1px solid var(--border-hover);border-radius:8px;flex-shrink:0;max-width:200px;color:var(--text-secondary);transition:border-color .15s}._filePreviewChip_uvhdv_421:hover{border-color:var(--color-primary-pale)}._filePreviewChip_uvhdv_421 svg{flex-shrink:0;color:var(--text-tertiary)}._filePreviewName_uvhdv_444{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._filePreviewClose_uvhdv_414{flex-shrink:0;width:16px;height:16px;border-radius:50%;background:transparent;color:var(--text-muted);border:none;font-size:14px;line-height:14px;text-align:center;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;transition:color .15s}._filePreviewClose_uvhdv_414:hover{color:var(--text-primary)}@media(max-width:768px){._chatInputBar_uvhdv_1{padding:10px 21px 16px;background:transparent}._chatInputWrapper_uvhdv_7{border-radius:21px}._chatTextarea_uvhdv_21{min-height:52px;max-height:208px;padding:18px 21px 8px;font-size:22px}._ghostText_uvhdv_289{padding:18px 21px 8px;font-size:22px}._chatInputBottom_uvhdv_52{padding:8px 10px 10px;gap:8px}._plusBtn_uvhdv_78,._micBtn_uvhdv_79{width:47px;height:47px}._plusBtn_uvhdv_78 svg,._micBtn_uvhdv_79 svg{width:23px;height:23px}._interimPreview_uvhdv_125{left:21px;right:21px;bottom:8px;font-size:17px;max-height:60px;padding-top:12px}._plusMenu_uvhdv_153{bottom:57px}._plusMenuItem_uvhdv_166{padding:13px 18px;font-size:20px}._chatInputHint_uvhdv_238{font-size:17px}._sendBtn_uvhdv_263{width:47px;height:47px}._sendBtn_uvhdv_263 svg{width:23px;height:23px}._imagePreviewStrip_uvhdv_338{gap:10px;padding:10px 18px 0}._imagePreviewItem_uvhdv_350{width:56px;height:56px;border-radius:8px}._imagePreviewRemove_uvhdv_386{width:20px;height:20px;font-size:14px;opacity:1}._filePreviewChip_uvhdv_421{padding:8px 12px;gap:8px;border-radius:10px;max-width:240px}._filePreviewName_uvhdv_444{font-size:15px}._filePreviewClose_uvhdv_414{width:20px;height:20px;font-size:16px}}html.pad-mode ._chatInputBar_uvhdv_1{padding:8px 16px 12px}html.pad-mode ._chatInputWrapper_uvhdv_7{border-radius:16px}html.pad-mode ._chatTextarea_uvhdv_21{min-height:22px;max-height:120px;padding:12px 14px 4px;font-size:14px}html.pad-mode ._ghostText_uvhdv_289{padding:12px 14px 4px;font-size:14px}html.pad-mode ._chatInputBottom_uvhdv_52{padding:4px 6px 6px;gap:4px}html.pad-mode ._plusBtn_uvhdv_78,html.pad-mode ._micBtn_uvhdv_79{width:28px;height:28px}html.pad-mode ._plusBtn_uvhdv_78 svg,html.pad-mode ._micBtn_uvhdv_79 svg{width:16px;height:16px}html.pad-mode ._interimPreview_uvhdv_125{left:14px;right:14px;bottom:4px;font-size:12px;max-height:40px;padding-top:8px}html.pad-mode ._plusMenu_uvhdv_153{bottom:36px}html.pad-mode ._plusMenuItem_uvhdv_166{padding:8px 12px;font-size:13px}html.pad-mode ._chatInputHint_uvhdv_238{font-size:11px}html.pad-mode ._sendBtn_uvhdv_263{width:28px;height:28px}html.pad-mode ._sendBtn_uvhdv_263 svg{width:16px;height:16px}html.pad-mode ._imagePreviewStrip_uvhdv_338{gap:8px;padding:8px 14px 0}html.pad-mode ._imagePreviewItem_uvhdv_350{width:48px;height:48px;border-radius:6px}html.pad-mode ._imagePreviewRemove_uvhdv_386{width:16px;height:16px;font-size:12px;opacity:0}html.pad-mode ._filePreviewChip_uvhdv_421{padding:6px 10px;gap:6px;border-radius:8px;max-width:200px}html.pad-mode ._filePreviewName_uvhdv_444{font-size:12px}html.pad-mode ._filePreviewClose_uvhdv_414{width:16px;height:16px;font-size:12px}._sendBtnWrap_uvhdv_608{position:relative;display:flex;flex-shrink:0}._bar_m7vks_2{flex:0 0 auto;margin:0 8px 6px;background:var(--bg-container);border:1px solid var(--border-secondary);border-radius:8px;font-size:12px;overflow:hidden}._header_m7vks_12{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;border-bottom:1px solid var(--border-secondary)}._title_m7vks_21{flex:0 0 auto;max-width:200px;font-weight:600;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._stat_m7vks_31{flex:1 1 auto;min-width:0;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._actions_m7vks_41{flex:0 0 auto;display:flex;align-items:center;gap:4px}._viewToggle_m7vks_48{display:inline-flex;gap:0;padding:2px;background:var(--bg-sub-avatar, rgba(127, 127, 127, .12));border-radius:6px}._viewBtn_m7vks_56{background:transparent;border:none;color:var(--text-secondary);font-size:11px;line-height:1.5;padding:1px 10px;cursor:pointer;border-radius:4px;transition:color .12s ease,background .12s ease}._viewBtn_m7vks_56:hover{color:var(--color-primary)}._viewBtnActive_m7vks_70,._viewBtnActive_m7vks_70:hover{color:#fffffff5;background:var(--color-primary)}._iconBtn_m7vks_76{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;font-size:12px;line-height:1;padding:2px 4px;border-radius:4px}._iconBtn_m7vks_76:hover{color:var(--color-primary);background:var(--color-primary-pale)}._rows_m7vks_92{max-height:60vh;overflow-y:auto;padding:4px 0}._row_m7vks_92{display:flex;align-items:baseline;gap:8px;padding:2px 10px;line-height:1.6}._head_m7vks_12{color:var(--text-gray);font-size:11px;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--border-secondary);padding-top:2px;padding-bottom:5px;margin-bottom:2px}._head_m7vks_12 ._labelCell_m7vks_118{color:var(--text-gray)}._dot_m7vks_120{flex:0 0 auto;width:1em;text-align:center;font-size:11px}._labelCell_m7vks_118{flex:1 1 auto;min-width:0;display:flex;align-items:baseline;gap:6px;overflow:hidden}._label_m7vks_118{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--color-primary)}._doing_m7vks_146{flex:0 0 auto;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--color-primary);border-radius:4px;padding:0 6px;font-size:11px;color:#fffffff5}._model_m7vks_160{flex:0 0 96px;color:var(--text-gray);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._tok_m7vks_169,._tool_m7vks_169,._dur_m7vks_169{flex:0 0 auto;text-align:right;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}._tok_m7vks_169{flex-basis:60px}._tool_m7vks_169{flex-basis:44px}._dur_m7vks_169{flex-basis:52px;color:var(--text-gray)}._liveDot_m7vks_181{flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--color-success, #3fb950)}._stateDone_m7vks_189{color:var(--color-success, #3fb950)}._stateFailed_m7vks_190{color:var(--color-error, #f85149)}._stateRunning_m7vks_191{color:var(--text-secondary)}._stateQueued_m7vks_192{color:var(--text-gray)}._statePulse_m7vks_194{animation:_ccvHudPulse_m7vks_1 1.1s ease-in-out infinite}@keyframes _ccvHudPulse_m7vks_1{0%,to{opacity:1}50%{opacity:.3}}@media(prefers-reduced-motion:reduce){._statePulse_m7vks_194{animation:none}}@media(max-width:768px){._model_m7vks_160{display:none}._row_m7vks_92{gap:8px}}._phases_m7vks_211{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;padding:5px 10px;border-bottom:1px solid var(--border-secondary);max-height:96px;overflow-y:auto}._phasesLabel_m7vks_222{flex:0 0 auto;color:var(--text-gray);font-size:11px;text-transform:uppercase;letter-spacing:.03em;margin-right:2px}._phaseChip_m7vks_231{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:4px;max-width:220px;padding:1px 8px;font-size:11px;line-height:1.6;color:var(--text-secondary);background:var(--bg-sub-avatar);border-radius:10px}._phaseChipIdx_m7vks_245{flex:0 0 auto;color:var(--text-gray);font-variant-numeric:tabular-nums}._phaseChipTitle_m7vks_251{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._backdrop_jg8gb_1{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#00000080;display:flex;align-items:center;justify-content:center}._modal_jg8gb_11{width:95vw;max-width:560px;height:480px;max-height:85vh;background:var(--bg-elevated);border:1px solid var(--border-hover);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;position:relative}._modalContent_jg8gb_37{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;width:100%}._header_jg8gb_45{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}._title_jg8gb_52{font-size:16px;font-weight:600;color:var(--text-primary)}._closeBtn_jg8gb_58{width:28px;height:28px;border:none;background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px}._closeBtn_jg8gb_58:hover{background:var(--bg-surface);color:var(--text-secondary)}._headerActions_jg8gb_76{display:flex;align-items:center;gap:4px}._customWrap_jg8gb_83{position:relative;display:inline-flex;align-items:center;flex-shrink:0}._customTitle_jg8gb_90{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._editPencil_jg8gb_97{position:absolute;top:-4px;inset-inline-end:-4px;width:16px;height:16px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border-primary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .15s;z-index:2}._customWrap_jg8gb_83:hover ._editPencil_jg8gb_97{opacity:1}._editPencil_jg8gb_97:hover{color:var(--color-primary);border-color:var(--color-primary)}@media(max-width:768px){._editPencil_jg8gb_97{opacity:1}}._disabledTip_jg8gb_129{padding:16px;font-size:13px;color:var(--text-muted);line-height:1.5}._variantRow_jg8gb_141{display:flex;align-items:flex-end;gap:8px;padding:0 20px;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}._variantRow_jg8gb_141::-webkit-scrollbar{display:none}._roleBtn_jg8gb_158{display:inline-flex;align-items:center;gap:5px;padding:9px 14px;font-size:15px;line-height:1.6;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-main);color:var(--text-secondary);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._roleBtn_jg8gb_158:hover{border-color:var(--color-primary);color:var(--color-primary)}._roleBtn_jg8gb_158._roleBtnActive_jg8gb_187{background:var(--bg-container);color:var(--color-primary);border-color:var(--border-primary);border-bottom-color:var(--bg-container);border-radius:10px 10px 0 0;font-weight:500;margin-bottom:-1px;position:relative;z-index:1}._variantRow_jg8gb_141>._roleBtn_jg8gb_158._roleBtnActive_jg8gb_187,._customWrap_jg8gb_83:has(>._roleBtn_jg8gb_158._roleBtnActive_jg8gb_187){position:sticky;left:0;right:0;z-index:2}[data-theme=light] ._textareaWrap_jg8gb_23{box-shadow:0 3px 8px #00000014}[data-theme=light] ._roleBtnActive_jg8gb_187{box-shadow:0 -3px 8px #0000000f}._addExpertBtn_jg8gb_236{display:inline-flex;align-items:center;align-self:center;gap:5px;padding:6px 14px;font-size:15px;line-height:1.6;margin-left:4px;margin-bottom:2px;border:none;border-radius:14px;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none;white-space:nowrap;flex-shrink:0}._addExpertBtn_jg8gb_236:hover{color:var(--color-primary);background:var(--bg-surface)}[data-theme=light] ._addExpertBtn_jg8gb_236{color:var(--text-secondary)}._fileList_jg8gb_272{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;max-height:80px;overflow-y:auto;flex-shrink:0}._fileChip_jg8gb_287{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:4px;background:var(--bg-elevated);border:1px solid var(--border-primary);font-size:11px;color:var(--text-secondary);max-width:180px;white-space:nowrap;transition:border-color .15s}._fileChip_jg8gb_287:hover{border-color:var(--color-primary-pale)}._fileChip_jg8gb_287 svg{flex-shrink:0}._fileName_jg8gb_310{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}._fileRemove_jg8gb_317{flex-shrink:0;cursor:pointer;color:var(--text-disabled)}._fileRemove_jg8gb_317:hover{color:var(--text-primary)}._imageItem_jg8gb_327{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;border:1px solid var(--border-primary);transition:border-color .15s}._imageItem_jg8gb_327:hover{border-color:var(--color-primary-pale)}._imageThumb_jg8gb_341{width:100%;height:100%;object-fit:cover;cursor:pointer}._imageRemove_jg8gb_348{position:absolute;top:0;right:0;width:18px;height:18px;border:none;background:#0009;color:#fff;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:0 0 0 6px;opacity:0;transition:opacity .15s}._imageItem_jg8gb_327:hover ._imageRemove_jg8gb_348{opacity:1}@media(hover:none){._imageRemove_jg8gb_348,._fileRemove_jg8gb_317{opacity:1;min-width:22px;min-height:22px}}._textareaWrap_jg8gb_23{margin:0 16px;display:flex;flex-direction:column;flex:1 1 0;min-height:0;background:var(--bg-container);border-radius:8px;overflow:hidden;padding:4px}._textarea_jg8gb_23{flex:1 1 0;width:100%;min-height:0;box-sizing:border-box;padding:12px 14px;background:transparent;border:1px solid var(--border-primary);border-radius:8px;color:var(--text-primary);font-size:16px;line-height:1.5;font-family:inherit;transition:border-color .15s;resize:none;outline:none}._textarea_jg8gb_23:focus{border-color:var(--color-primary-pale)}._resizeHandle_jg8gb_33{position:absolute;top:6px;left:6px;width:18px;height:18px;cursor:nwse-resize;z-index:5;touch-action:none;color:var(--text-disabled-faint);opacity:.7;transition:opacity .15s ease;display:block;line-height:0}._resizeHandle_jg8gb_33 svg{width:100%;height:100%;display:block}._resizeHandle_jg8gb_33:hover,._resizeHandle_jg8gb_33:active{opacity:1}.pad-mode ._resizeHandle_jg8gb_33{width:22px;height:22px;top:8px;left:8px}._textarea_jg8gb_23::placeholder{color:var(--text-disabled)}._footer_jg8gb_468{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px}._sendBtn_jg8gb_475{height:38px;padding:0 24px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:16px;cursor:pointer;white-space:nowrap;transition:opacity .15s}._sendBtn_jg8gb_475:hover{opacity:.85}._sendBtn_jg8gb_475:disabled{opacity:.4;cursor:not-allowed}._uploadBtn_jg8gb_497{display:flex;align-items:center;gap:5px;height:38px;padding:0 18px;border:1px solid var(--border-secondary);border-radius:8px;background:var(--bg-elevated);color:var(--text-light);font-size:16px;cursor:pointer;white-space:nowrap;transition:background .15s}._uploadBtn_jg8gb_497:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--text-disabled)}@media(max-width:768px){._backdrop_jg8gb_1{zoom:1.4}}html.pad-mode ._backdrop_jg8gb_1{zoom:1}._centerEmpty_wt9xa_1{display:flex;align-items:center;justify-content:center;height:100%}._container_wt9xa_8{flex:1;overflow-x:hidden;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._mobileVirtuoso_wt9xa_19{flex:1;min-height:0}._sessionDividerText_wt9xa_24{font-size:11px;color:var(--text-disabled)}._lastResponseLabel_wt9xa_29{font-size:11px}._splitContainer_wt9xa_33{display:flex;flex-direction:row;height:100%;overflow:hidden}._chatSection_wt9xa_40{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}._vResizer_wt9xa_48{width:5px;background:var(--bg-elevated);cursor:col-resize;flex-shrink:0;border-left:1px solid var(--border-primary);border-right:1px solid var(--border-primary);transition:background .15s}._vResizer_wt9xa_48:hover{background:var(--border-secondary)}._terminalToggle_wt9xa_62{display:flex;align-items:center;justify-content:center;align-self:center;width:14px;height:48px;margin-left:-14px;flex-shrink:0;cursor:pointer;color:var(--text-disabled);background:var(--overlay-light-faint);border-radius:4px 0 0 4px;transition:background .2s,color .2s;z-index:20;position:relative}._terminalToggle_wt9xa_62:hover{background:var(--overlay-light-medium);color:var(--text-tertiary)}._messageListWrap_wt9xa_85{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._stickyBottomBtn_wt9xa_93{position:absolute;right:12px;bottom:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;justify-content:flex-end;border-radius:0;border:none;background:none;color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:color .15s;z-index:10;box-shadow:none}._stickyBottomBtn_wt9xa_93 span{background:var(--bg-sticky-btn);padding:2px 10px;border-radius:10px}._loadingPet_wt9xa_120{width:48px;height:48px;image-rendering:pixelated}._stickyBottomBtn_wt9xa_93:hover{color:var(--text-white);background:none}@media(max-width:768px){._stickyBottomBtn_wt9xa_93{right:auto;left:0;gap:4px;padding:16px 18px;font-size:24px}._stickyBottomBtn_wt9xa_93 span{padding:4px 20px;border-radius:20px}._stickyBottomBtn_wt9xa_93 svg{width:28px;height:28px}}html.pad-mode ._stickyBottomBtn_wt9xa_93{right:0;left:auto;padding:8px 18px;font-size:12px}html.pad-mode ._stickyBottomBtn_wt9xa_93 span{padding:2px 10px;border-radius:10px}html.pad-mode ._stickyBottomBtn_wt9xa_93 svg{width:auto;height:auto}._loadMoreWrap_wt9xa_154{display:flex;justify-content:center;padding:12px 0 4px}._loadMoreBtn_wt9xa_160{padding:6px 18px;border-radius:16px;border:1px solid var(--border-hover);background:var(--overlay-light-faint);color:var(--text-tertiary);font-size:12px;cursor:pointer;transition:background .15s,color .15s}._loadMoreBtn_wt9xa_160:hover{background:var(--overlay-light-medium);color:var(--text-secondary)}._navSidebar_wt9xa_176{width:40px;flex-shrink:0;background:var(--bg-elevated);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;align-items:center;padding-top:4px;gap:4px}@media(max-width:768px){._navSidebar_wt9xa_176{display:none}}._navBtn_wt9xa_193{width:32px;height:32px;border:none;background:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navBtn_wt9xa_193:hover{color:var(--text-secondary);background:var(--bg-elevated)}._navBtnActive_wt9xa_213{width:32px;height:32px;border:none;background:var(--color-primary-bg-light);color:var(--color-primary-pale);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:6px;padding:0;transition:background .15s,color .15s}._navDivider_wt9xa_228{width:60%;height:0;border:0;border-top:1px dashed var(--border-primary);margin:6px auto}._navBtnActive_wt9xa_213:hover{background:var(--color-primary-bg-medium);color:var(--color-info-light)}._navAvatarImg_wt9xa_241{width:19px;height:19px;border-radius:50%;object-fit:cover}._userPromptNavWrap_wt9xa_248{display:flex;flex-direction:column;min-width:200px;max-width:360px;max-height:calc(100vh - 48px)}._userPromptNavTitle_wt9xa_257{font-size:13px;font-weight:600;color:var(--text-primary);padding:4px 12px 8px;border-bottom:1px solid var(--border-primary);flex-shrink:0}._userPromptNavList_wt9xa_266{overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0}._userPromptNavItem_wt9xa_273{display:flex;align-items:baseline;gap:8px;padding:6px 10px;font-size:12px;color:var(--text-secondary);cursor:pointer;border-bottom:1px solid var(--border-primary)}._userPromptNavTime_wt9xa_285{flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.7}._userPromptNavText_wt9xa_293{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userPromptNavItem_wt9xa_273:hover{background:var(--bg-surface);color:var(--text-white)}._userPromptNavItem_wt9xa_273:last-child{border-bottom:none}._userPromptNavSessionSep_wt9xa_311{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:11px;color:var(--text-disabled);-webkit-user-select:none;user-select:none}._userPromptNavSessionSep_wt9xa_311:before,._userPromptNavSessionSep_wt9xa_311:after{content:"";flex:1 1 auto;border-top:1px solid var(--border-secondary)}._userPromptNavItem_wt9xa_273:has(+._userPromptNavSessionSep_wt9xa_311){border-bottom:none}._terminalPanelWrap_wt9xa_333{flex-shrink:0;min-width:200px;min-height:0;overflow:hidden;display:flex;flex-direction:column}._navSidebarContent_wt9xa_344{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}._innerSplitArea_wt9xa_352{flex:1;display:flex;min-width:0;position:relative}._chatSectionFlex_wt9xa_359{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}._inputStack_wt9xa_369{position:relative;flex-shrink:0}._overlayPanel_wt9xa_374{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column}._streamingSpinnerWrap_wt9xa_382{display:flex;justify-content:center;padding:4px 0;transition:opacity .5s ease-out;user-select:none;-webkit-user-select:none;pointer-events:none}._streamingSpinnerHidden_wt9xa_393{opacity:0}._sessionDivider_wt9xa_24{border-color:var(--border-secondary);margin:16px 0}._loadMoreBtnLoading_wt9xa_402{cursor:default;opacity:.7;display:inline-flex;align-items:center;gap:8px}._loadMoreSpinner_wt9xa_410{width:14px;height:14px;border:2px solid var(--overlay-light-medium);border-top-color:var(--color-primary-pale);border-radius:50%;animation:_loadMoreSpin_wt9xa_410 .8s linear infinite;flex-shrink:0}@keyframes _loadMoreSpin_wt9xa_410{to{transform:rotate(360deg)}}._lastResponseDivider_wt9xa_424{border-color:var(--border-primary);margin:8px 0}._lastResponseDivider_wt9xa_424._lastResponseDivider_wt9xa_424:before,._lastResponseDivider_wt9xa_424._lastResponseDivider_wt9xa_424:after{border-block-start-style:dashed}._hideLastResponseDivider_wt9xa_439 ._lastResponseDivider_wt9xa_424{display:none}._backdrop_1fcbc_7{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:32px 16px;animation:_backdropFadeIn_1fcbc_1 .16s ease-out}@keyframes _backdropFadeIn_1fcbc_1{0%{opacity:0}to{opacity:1}}._modal_1fcbc_25{width:min(90vw,1100px);max-height:calc(100vh - 64px);background:var(--bg-elevated, #1f1f1f);color:var(--text-primary, #e8e8e8);border:1px solid var(--border-color, rgba(255, 255, 255, .08));border-radius:12px;box-shadow:0 16px 48px #0006;display:flex;flex-direction:column;overflow:hidden;animation:_modalSlideIn_1fcbc_1 .2s cubic-bezier(.2,.9,.3,1)}@keyframes _modalSlideIn_1fcbc_1{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}._header_1fcbc_44{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .06));flex-wrap:wrap}._title_1fcbc_53{font-size:14px;font-weight:600;flex:1}._chip_1fcbc_59{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;font-size:12px;border-radius:999px;background:var(--bg-code, rgba(255, 255, 255, .06));color:var(--text-secondary, #b8b8b8)}._chipAction_1fcbc_70{cursor:pointer;background:var(--color-primary-soft, rgba(22, 104, 220, .18));color:var(--color-primary-light, #4096ff);border:1px solid var(--color-primary-light, #4096ff);transition:background .12s}._chipAction_1fcbc_70:hover{background:var(--color-primary, #1668dc);color:#fff}._body_1fcbc_83{padding:16px 18px;overflow:auto;display:flex;flex-direction:column;gap:12px}._slot_1fcbc_91{display:flex;flex-direction:column}._slotHidden_1fcbc_96{display:none}._footer_1fcbc_100{display:flex;justify-content:flex-start;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--border-color, rgba(255, 255, 255, .06));font-size:12px;color:var(--text-tertiary, #888)}._footerHint_1fcbc_111{color:var(--text-secondary, #b8b8b8)}._footerHintLabel_1fcbc_115{color:var(--text-tertiary, #888);font-weight:500}._headerDismissBtn_1fcbc_122{margin-left:auto;background:transparent;border:1px solid var(--border-color, rgba(255, 255, 255, .12));color:var(--text-secondary, #b8b8b8);padding:4px 12px;border-radius:6px;cursor:pointer;font-size:12px;transition:background .12s,border-color .12s}._headerDismissBtn_1fcbc_122:hover{background:var(--bg-code, rgba(255, 255, 255, .06));border-color:var(--color-primary-light, #4096ff)}._kindTabs_1fcbc_139{display:flex;gap:6px;padding:6px 18px 0;border-bottom:1px solid var(--border-color, rgba(255, 255, 255, .06))}._kindTab_1fcbc_139{padding:6px 12px;border:0;background:transparent;color:var(--text-tertiary, #888);font-size:13px;cursor:pointer;border-radius:6px 6px 0 0;border-bottom:2px solid transparent}._kindTabActive_1fcbc_157{color:var(--color-primary-light, #4096ff);border-bottom-color:var(--color-primary-light, #4096ff)}._helpBtn_1sxut_5{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-light);font-size:11px;line-height:1;cursor:pointer;margin-left:4px;vertical-align:middle;transition:background .2s;-webkit-user-select:none;user-select:none}._helpBtn_1sxut_5:hover{background:var(--border-secondary)}._catalog_1sxut_29{max-height:60vh;overflow-y:auto;overflow-x:hidden;padding:4px 2px}._catBlock_1sxut_36{margin-bottom:14px}._catBlock_1sxut_36:last-child{margin-bottom:0}._catLabel_1sxut_43{font-size:12px;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}._chipRow_1sxut_52{display:flex;flex-wrap:wrap;gap:8px}._toolChip_1sxut_58{display:inline-flex;align-items:center;padding:4px 12px;border-radius:14px;background:var(--bg-elevated);border:1px solid var(--border-light);color:var(--text-primary);font-size:13px;line-height:1.4;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .2s,border-color .2s}._toolChip_1sxut_58:hover{background:var(--border-secondary);border-color:var(--border-hover)}._toolChip_1sxut_58:focus-visible{outline:2px solid var(--color-primary-pale);outline-offset:1px}@media(max-width:768px){._catalog_1sxut_29{max-height:75vh}}._container_1mrxf_1{display:flex;flex-direction:column;gap:8px;padding:8px 0}._collapseArea_1mrxf_11{display:flex;flex-direction:column;gap:8px;background:var(--bg-base-alt);border-radius:6px;padding:10px 12px}._headerRow_1mrxf_20{display:flex;align-items:center;justify-content:space-between;gap:12px}._headerLabel_1mrxf_27{font-weight:600;color:var(--text-color, #333)}._row_1mrxf_32{display:flex;align-items:center;gap:8px}._rowLabel_1mrxf_38{min-width:64px;color:var(--text-color-secondary, #666);font-size:12px}._sliderWrap_1mrxf_44{flex:1;min-width:120px}._eventsList_1mrxf_49{display:flex;flex-direction:column;gap:6px}._eventRow_1mrxf_55{display:flex;align-items:center;gap:8px}._eventLabel_1mrxf_61{flex:0 0 auto;min-width:140px;color:var(--text-color, #333);font-size:12px}._eventLabelHelp_1mrxf_71{cursor:help;text-decoration:underline dotted;text-underline-offset:2px}._uploadHintIcon_1mrxf_77{color:var(--text-color-secondary, #888);cursor:help;font-size:14px;margin-left:2px}._eventSelect_1mrxf_84{flex:1;min-width:120px}._uploadRow_1mrxf_89{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:4px}._uploadRow_1mrxf_89 ._uploadBtn_1mrxf_98{font-size:12px}._uploadedList_1mrxf_103{display:flex;flex-direction:column;gap:4px;padding-top:4px}._uploadedTitle_1mrxf_110{font-size:12px;font-weight:600;color:var(--text-color-secondary, #666)}._uploadedRow_1mrxf_116{display:flex;align-items:center;gap:8px;padding:4px 6px;background:var(--card-bg, rgba(0, 0, 0, .03));border-radius:4px}._uploadedName_1mrxf_125{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._uploadedMeta_1mrxf_133{font-size:11px;color:var(--text-color-secondary, #888);flex:0 0 auto}@media(max-width:480px){._eventRow_1mrxf_55{flex-wrap:wrap}._eventLabel_1mrxf_61{flex:1 0 100%;min-width:0}._eventSelect_1mrxf_84{flex:1}}._cachePopover_mn1kq_3{max-width:800px}._cacheScrollArea_mn1kq_7{max-height:calc(100vh - 140px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._cacheScrollAreaInDrawer_mn1kq_19{max-height:none;overflow-y:visible}._cachePopoverTitle_mn1kq_24{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-primary)}._cachePopoverHeader_mn1kq_33{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-secondary)}._cacheSection_mn1kq_39{margin-bottom:10px}._cacheSectionBordered_mn1kq_43{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;background:var(--bg-container)}._cacheSectionBordered_mn1kq_43>._cacheSectionLabel_mn1kq_50,._cacheSectionBordered_mn1kq_43>._cacheSectionHeader_mn1kq_51{border-bottom:1px solid var(--border-secondary);padding-bottom:6px;margin-bottom:8px}._cacheSectionHeader_mn1kq_51{display:flex;align-items:center;justify-content:space-between;gap:6px}._cacheSectionHeader_mn1kq_51>._cacheSectionLabel_mn1kq_50{margin-bottom:0}._cacheSectionLabel_mn1kq_50{font-size:12px;font-weight:600;color:var(--text-light);margin-bottom:4px;padding:4px 0;-webkit-user-select:none;user-select:none}._toolChipGridVertical_mn1kq_77{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:2px 0 6px}._claudeMdChip_mn1kq_85{font-family:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font-size:11px;padding:0 6px;border-radius:3px;background:var(--bg-surface);color:var(--text-secondary);line-height:18px;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid var(--border-primary);display:inline-flex;align-items:center;gap:5px}._claudeMdChip_mn1kq_85:hover{background:var(--bg-hover, var(--bg-surface));color:var(--text-primary)}._cacheChipBadge_mn1kq_112{font-size:10px;line-height:14px;padding:0 5px;border-radius:2px;font-weight:500;letter-spacing:.2px}._cacheChipBadgeProject_mn1kq_121{background:var(--color-primary-bg-light);color:var(--color-primary-light)}._cacheChipBadgeGlobal_mn1kq_126{background:var(--color-success-bg-light);color:var(--color-success-light)}._chipDetailBody_mn1kq_131{margin:0;font-family:inherit;font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-height:60vh;overflow-y:auto;color:var(--text-primary)}._chipDetailEmpty_mn1kq_143{color:var(--text-muted);font-style:italic}._mcpServerGroup_mn1kq_148{margin-bottom:6px}._mcpServerName_mn1kq_152{font-size:11px;font-weight:600;color:var(--text-muted);padding:2px 0 6px 2px}._cacheUsageLabel_mn1kq_159{font-size:13px;color:var(--text-primary);font-weight:400;margin-right:4px}._cachePercent_mn1kq_166{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}._cacheCalibrationLabel_mn1kq_173{margin-left:auto;color:var(--text-tertiary);font-size:12px;font-weight:400;white-space:nowrap}._calibrationSelect_mn1kq_181{width:80px;flex-shrink:0}._memoryStatus_mn1kq_186{padding:6px 4px}._memoryDirHint_mn1kq_190{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11px;color:var(--text-tertiary);margin-top:4px;word-break:break-all;-webkit-user-select:text;user-select:text}._skillsList_ap3j0_4{display:flex;flex-direction:column;gap:8px}._skillCard_ap3j0_10{border:1px solid var(--border-secondary);border-radius:6px;padding:10px 12px;background:var(--bg-container)}._skillCardHeader_ap3j0_17{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:6px}._skillCardName_ap3j0_25{font-size:14px;font-weight:600;color:var(--text-primary);word-break:break-word;flex:1}._skillCardActions_ap3j0_33{flex-shrink:0;display:flex;align-items:center;gap:6px}._skillDeleteBtn_ap3j0_41{display:inline-flex;align-items:center;justify-content:center;padding:2px 4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:4px;font-size:14px;line-height:1;transition:color .15s,background .15s}._skillDeleteBtn_ap3j0_41:hover{color:#cf1322;background:#fff1f0}[data-theme=dark] ._skillDeleteBtn_ap3j0_41:hover{color:#ff7875;background:#2a1215}._skillCardDesc_ap3j0_64{font-size:13px;line-height:1.55;white-space:pre-wrap;word-break:break-word;color:var(--text-secondary)}._skillsEmpty_ap3j0_72{padding:32px 12px;text-align:center;color:var(--text-muted);font-style:italic}._skillsReadonlySection_ap3j0_80{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-secondary)}._skillsReadonlyLabel_ap3j0_86{font-size:12px;color:var(--text-muted);margin-bottom:6px}._skillCardDisabled_ap3j0_93{opacity:.55;background:var(--bg-elevated, var(--bg-surface))}._skillCardDisabled_ap3j0_93 ._skillCardName_ap3j0_25{text-decoration:line-through}._skillCardTitleRow_ap3j0_100{display:flex;align-items:center;gap:8px;flex:1;min-width:0}._skillSourceBadge_ap3j0_107{font-size:10px;font-weight:600;padding:1px 6px;border-radius:3px;letter-spacing:.3px;flex-shrink:0;white-space:nowrap;text-transform:uppercase}._skillSource_user_ap3j0_117{background:#e6f4ff;color:#0958d9}._skillSource_project_ap3j0_118{background:#f6ffed;color:#389e0d}._skillSource_plugin_ap3j0_119{background:#fff7e6;color:#d46b08}._skillSource_builtin_ap3j0_120{background:#f9f0ff;color:#531dab}[data-theme=dark] ._skillSource_user_ap3j0_117{background:#111d2c;color:#69b1ff}[data-theme=dark] ._skillSource_project_ap3j0_118{background:#162312;color:#73d13d}[data-theme=dark] ._skillSource_plugin_ap3j0_119{background:#2b1d11;color:#ffa940}[data-theme=dark] ._skillSource_builtin_ap3j0_120{background:#1a1325;color:#b37feb}._skillDuplicateBadge_ap3j0_128{font-size:11px;line-height:1;padding:2px 5px;border-radius:3px;flex-shrink:0;cursor:help;background:#fff1f0;color:#cf1322;border:1px solid #ffccc7}[data-theme=dark] ._skillDuplicateBadge_ap3j0_128{background:#2a1215;color:#ff7875;border-color:#58181c}._form_u9vra_1{display:flex;flex-direction:column;gap:10px}._row_u9vra_7{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px}._label_u9vra_15{display:inline-flex;align-items:center;gap:4px;color:var(--text-secondary, #888);font-size:13px}._help_u9vra_23{color:var(--text-muted, #999);font-size:13px;cursor:help}._center_1ztox_1{display:flex;align-items:center;justify-content:center;padding:32px 0;color:var(--text-muted, #999)}._count_1ztox_9{margin-bottom:10px;font-size:12px;color:var(--text-muted, #999)}._panelHeader_1ztox_15{display:flex;align-items:center;gap:8px;min-width:0}._projName_1ztox_22{font-weight:600;white-space:nowrap}._projPath_1ztox_27{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--text-muted, #999)}._delBtn_1ztox_37{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--text-muted, #999);padding:2px 6px;border-radius:4px}._delBtn_1ztox_37:hover{color:var(--color-error, #e5484d);background:var(--bg-hover, rgba(128, 128, 128, .12))}._pluginDirHint_1nu7t_3{margin-bottom:12px;font-size:12px;color:var(--text-tertiary)}._pluginDirPath_1nu7t_9{font-family:Menlo,Monaco,monospace;color:var(--text-light);cursor:pointer;padding:1px 4px;border-radius:3px;background:var(--bg-elevated)}._pluginDirPath_1nu7t_9:hover{color:var(--color-primary-light)}._pluginList_1nu7t_22{display:flex;flex-direction:column;gap:8px}._pluginItem_1nu7t_28{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--border-secondary);border-radius:6px;background:var(--bg-container)}._pluginInfo_1nu7t_38{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_1nu7t_46{font-size:14px;color:var(--text-primary);font-weight:500}._pluginFile_1nu7t_52{font-size:12px;color:var(--text-muted);font-family:Menlo,Monaco,monospace}._pluginHooks_1nu7t_58{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_1nu7t_65{font-size:11px;padding:0 5px;border-radius:3px;background:var(--color-primary-dark-bg);color:var(--color-primary-lighter);line-height:18px}._pluginActions_1nu7t_74{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_1nu7t_82{text-align:center;padding:32px 0;color:var(--text-tertiary)}._pluginModalFooter_1nu7t_88{display:flex;justify-content:space-between;width:100%}._pluginModalFooterLeft_1nu7t_94{display:flex;gap:8px}._pluginDirLabel_1nu7t_99{color:var(--text-tertiary)}._pluginEmptyTitle_1nu7t_103{font-size:14px;margin-bottom:4px}._pluginEmptyHint_1nu7t_108{font-size:12px;color:var(--text-muted)}._cdnUrlLabel_1nu7t_113{margin-bottom:6px;color:var(--text-secondary);font-size:13px}._cdnInput_1nu7t_119{background:var(--bg-elevated);border-color:var(--border-secondary);color:var(--text-primary)}._pluginModalScroll_1nu7t_125{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}._pluginModalFooterBar_1nu7t_132{padding:16px 0;margin-top:16px;border-top:1px solid var(--border-primary)}._currentProcessBtn_1rte5_5{color:var(--color-success);border-color:var(--color-success)}._processModalScroll_1rte5_10{flex:1;min-height:0;overflow:auto;padding:24px 16px 0}._processModalFooterBar_1rte5_17{padding:16px 0;margin-top:16px;border-top:1px solid var(--border-primary)}._fullWidthSelect_16z2q_4{width:100%}._proxyWarning_16z2q_8{background:var(--color-warning-dark-bg);border:1px solid var(--color-warning-dark-border);border-radius:4px;color:var(--color-warning-light);font-size:12px;padding:6px 10px;margin-bottom:10px}._proxyList_16z2q_18{display:flex;flex-direction:column;gap:4px}._proxyItem_16z2q_24{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;border:1px solid transparent;transition:background .15s}._proxyItem_16z2q_24:hover{background:var(--bg-elevated)}._proxyItemActive_16z2q_38{background:var(--color-selection-bg);border-color:var(--color-primary)}._proxyItemMain_16z2q_43{display:flex;align-items:center;cursor:pointer;flex:1;min-width:0}._proxyItemInfo_16z2q_51{display:flex;flex-direction:column;min-width:0}._proxyItemNameRow_16z2q_57{display:flex;align-items:center;gap:6px}._proxyItemName_16z2q_57{font-size:13px;color:var(--text-primary);font-weight:500}._proxyItemDetail_16z2q_69{font-size:11px;color:var(--text-gray);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._proxyBuiltinTag_16z2q_78{font-size:10px;padding:0 4px;border-radius:3px;background:var(--color-primary-dark-bg);color:var(--color-primary-lighter);line-height:16px;border:none}._proxyItemActions_16z2q_88{display:flex;gap:2px;flex-shrink:0}._proxyEditForm_16z2q_94{margin-top:12px;padding:12px;border-radius:6px;background:var(--bg-elevated);border:1px solid var(--border-secondary)}._proxyEditRow_16z2q_102{margin-bottom:8px}._proxyEditRow_16z2q_102 label{display:block;font-size:12px;color:var(--text-tertiary);margin-bottom:4px}._proxyRequired_16z2q_113{color:var(--color-error);margin-left:2px}._proxyEditDivider_16z2q_118{border-top:1px dashed var(--border-secondary);margin:10px 0 8px}._proxyEditBtns_16z2q_123{display:flex;gap:8px;margin-top:12px}._proxyModalScroll_16z2q_129{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}
|
package/dist/index.html
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
// 整体显示大小已弃用 CSS zoom:Electron 改用 webFrame.setZoomFactor(首屏抢占见
|
|
22
22
|
// electron/tab-content-preload.js),纯浏览器交由用户用浏览器自带快捷键缩放,故此处不再设 zoom。
|
|
23
23
|
</script>
|
|
24
|
-
<script type="module" crossorigin src="/assets/index-
|
|
24
|
+
<script type="module" crossorigin src="/assets/index-d2L6kDE9.js"></script>
|
|
25
25
|
<link rel="modulepreload" crossorigin href="/assets/vendor-antd-BSgMQtAG.js">
|
|
26
26
|
<link rel="modulepreload" crossorigin href="/assets/vendor-codemirror-rm3PGybQ.js">
|
|
27
27
|
<link rel="modulepreload" crossorigin href="/assets/vendor-mdxeditor-UIfRXbTk.js">
|
package/package.json
CHANGED
package/server/i18n.js
CHANGED
|
@@ -223,8 +223,8 @@ const i18nData = {
|
|
|
223
223
|
"uk": "\nДля видалення виконайте: ccv --uninstall"
|
|
224
224
|
},
|
|
225
225
|
"cli.help": {
|
|
226
|
-
"zh": "CC Viewer CLI — Claude Code 的 Web Viewer 前端\n\n用法: ccv [选项] [命令] [提示词]\n\n默认启动交互式会话 + Web Viewer,所有参数透传给 claude。\n\n参数:\n prompt 你的提示词\n\nCCV 专属选项:\n -SDK, --sdk 使用 Agent SDK 模式(无终端,结构化交互)\n -logger 安装/修复 Claude Code Hook\n --uninstall 移除 CC Viewer 集成\n --d --dangerously-skip-permissions 的快捷方式\n --ad --allow-dangerously-skip-permissions 的快捷方式\n --log-dir <path> 自定义 JSONL 日志存储目录\n --no-open 启动时不自动打开浏览器\n --user-name <name> 自定义显示名称\n --user-avatar <path|url> 自定义头像图片(文件路径或 URL)\n --usePassword[=<pwd>] 启用密码登录(远程访问需密码或 token;不带值则随机生成 6 位(2 字母 + 4 数字))\n\nClaude 选项(透传):\n -c, --continue 继续当前目录最近的对话\n -r, --resume [value] 通过会话 ID 恢复对话,或打开交互式选择器\n -p, --print 打印响应后退出(适用于管道)\n -d, --debug [filter] 启用调试模式\n -w, --worktree [name] 为此会话创建新的 git worktree\n --model <model> 当前会话使用的模型\n --effort <level> 努力级别 (low, medium, high, max)\n --dangerously-skip-permissions 跳过所有权限检查\n --allowedTools <tools...> 允许的工具列表\n --disallowedTools <tools...> 禁止的工具列表\n --system-prompt <prompt> 会话系统提示词\n --append-system-prompt <prompt> 追加系统提示词\n --mcp-config <configs...> 加载 MCP 服务器配置\n --permission-mode <mode> 权限模式\n --add-dir <directories...> 额外允许访问的目录\n --max-budget-usd <amount> API 调用最大预算(仅 --print)\n --output-format <format> 输出格式(仅 --print): text, json, stream-json\n --json-schema <schema> 结构化输出的 JSON Schema\n --verbose 详细模式\n -h, --help 显示帮助\n -v, --version 显示版本\n\n 更多选项请参考: claude --help\n\n示例:\n ccv 启动交互模式\n ccv -c 继续上次对话\n ccv -r 恢复对话\n ccv -p \"hello\" 打印模式\n ccv --model opus 指定模型\n ccv --d 跳过权限确认(快捷方式)\n ccv --ad 允许跳过权限(不立即启用,可通过 Shift+Tab 切换)\n ccv -c --model sonnet --effort max 组合使用\n ccv -SDK Agent SDK 模式(无终端)\n ccv -SDK --d SDK 模式 + 跳过权限\n ccv -logger 安装/修复 Hook\n ccv --log-dir ~/my-logs 使用自定义日志目录\n ccv --no-open 启动时不打开浏览器\n ccv --user-name \"Alice\" --user-avatar ./avatar.png 自定义用户身份\n ccv --log-dir /tmp/test --no-open 组合 CCV 选项",
|
|
227
|
-
"en": "CC Viewer CLI — Web Viewer frontend for Claude Code\n\nUsage: ccv [options] [command] [prompt]\n\nStarts an interactive session with Web Viewer by default. All args are passed\nthrough to claude.\n\nArguments:\n prompt Your prompt\n\nCCV Options:\n -SDK, --sdk Use Agent SDK mode (no terminal, structured interaction)\n -logger Install/repair Claude Code hook\n --uninstall Remove CC Viewer integration\n --d Shortcut for --dangerously-skip-permissions\n --ad Shortcut for --allow-dangerously-skip-permissions\n --log-dir <path> Custom JSONL log storage directory\n --no-open Don't auto-open browser on startup\n --user-name <name> Custom display name for this session\n --user-avatar <path|url> Custom avatar image (file path or URL)\n --usePassword[=<pwd>] Enable password login (remote needs password or token; bare flag → random 6-char: 2 letters + 4 digits)\n\nClaude Options (passed through):\n -c, --continue Continue the most recent conversation\n -r, --resume [value] Resume a conversation by session ID, or open picker\n -p, --print Print response and exit (useful for pipes)\n -d, --debug [filter] Enable debug mode\n -w, --worktree [name] Create a new git worktree for this session\n --model <model> Model for the current session\n --effort <level> Effort level (low, medium, high, max)\n --dangerously-skip-permissions Bypass all permission checks\n --allowedTools <tools...> Allowed tool names\n --disallowedTools <tools...> Disallowed tool names\n --system-prompt <prompt> System prompt for the session\n --append-system-prompt <prompt> Append to default system prompt\n --mcp-config <configs...> Load MCP servers from JSON files or strings\n --permission-mode <mode> Permission mode for the session\n --add-dir <directories...> Additional directories to allow access to\n --max-budget-usd <amount> Max dollar amount for API calls (--print only)\n --output-format <format> Output format (--print only): text, json, stream-json\n --json-schema <schema> JSON Schema for structured output\n --verbose Enable verbose mode\n -h, --help Show help\n -v, --version Show version\n\n For all options, see: claude --help\n\nExamples:\n ccv Start interactive mode\n ccv -c Continue last conversation\n ccv -r Resume a conversation\n ccv -p \"hello\" Print mode\n ccv --model opus Specify model\n ccv --d Skip permission prompts (shortcut)\n ccv --ad Allow bypass mode (not active, toggle via Shift+Tab)\n ccv -c --model sonnet --effort max Combine options\n ccv -SDK Agent SDK mode (no terminal)\n ccv -SDK --d SDK mode + bypass permissions\n ccv -logger Install/repair hook\n ccv --log-dir ~/my-logs Use custom log directory\n ccv --no-open Start without opening browser\n ccv --user-name \"Alice\" --user-avatar ./avatar.png Custom user profile\n ccv --log-dir /tmp/test --no-open Combine CCV options",
|
|
226
|
+
"zh": "CC Viewer CLI — Claude Code 的 Web Viewer 前端\n\n用法: ccv [选项] [命令] [提示词]\n\n默认启动交互式会话 + Web Viewer,所有参数透传给 claude。\n\n参数:\n prompt 你的提示词\n\nCCV 专属选项:\n -SDK, --sdk 使用 Agent SDK 模式(无终端,结构化交互)\n -logger 安装/修复 Claude Code Hook\n --uninstall 移除 CC Viewer 集成\n --d --dangerously-skip-permissions 的快捷方式\n --ad --allow-dangerously-skip-permissions 的快捷方式\n --log-dir <path> 自定义 JSONL 日志存储目录\n --no-open 启动时不自动打开浏览器\n --user-name <name> 自定义显示名称\n --user-avatar <path|url> 自定义头像图片(文件路径或 URL)\n --usePassword[=<pwd>] 启用密码登录(远程访问需密码或 token;不带值则随机生成 6 位(2 字母 + 4 数字))\n --pid[=<name>] 锁定实例 id:让本 ccv 的「仅展示当前会话」视图按实例隔离(下次用同一 id 复用)\n\nClaude 选项(透传):\n -c, --continue 继续当前目录最近的对话\n -r, --resume [value] 通过会话 ID 恢复对话,或打开交互式选择器\n -p, --print 打印响应后退出(适用于管道)\n -d, --debug [filter] 启用调试模式\n -w, --worktree [name] 为此会话创建新的 git worktree\n --model <model> 当前会话使用的模型\n --effort <level> 努力级别 (low, medium, high, max)\n --dangerously-skip-permissions 跳过所有权限检查\n --allowedTools <tools...> 允许的工具列表\n --disallowedTools <tools...> 禁止的工具列表\n --system-prompt <prompt> 会话系统提示词\n --append-system-prompt <prompt> 追加系统提示词\n --mcp-config <configs...> 加载 MCP 服务器配置\n --permission-mode <mode> 权限模式\n --add-dir <directories...> 额外允许访问的目录\n --max-budget-usd <amount> API 调用最大预算(仅 --print)\n --output-format <format> 输出格式(仅 --print): text, json, stream-json\n --json-schema <schema> 结构化输出的 JSON Schema\n --verbose 详细模式\n -h, --help 显示帮助\n -v, --version 显示版本\n\n 更多选项请参考: claude --help\n\n示例:\n ccv 启动交互模式\n ccv -c 继续上次对话\n ccv -r 恢复对话\n ccv -p \"hello\" 打印模式\n ccv --model opus 指定模型\n ccv --d 跳过权限确认(快捷方式)\n ccv --ad 允许跳过权限(不立即启用,可通过 Shift+Tab 切换)\n ccv -c --model sonnet --effort max 组合使用\n ccv -SDK Agent SDK 模式(无终端)\n ccv -SDK --d SDK 模式 + 跳过权限\n ccv -logger 安装/修复 Hook\n ccv --log-dir ~/my-logs 使用自定义日志目录\n ccv --no-open 启动时不打开浏览器\n ccv --user-name \"Alice\" --user-avatar ./avatar.png 自定义用户身份\n ccv --log-dir /tmp/test --no-open 组合 CCV 选项",
|
|
227
|
+
"en": "CC Viewer CLI — Web Viewer frontend for Claude Code\n\nUsage: ccv [options] [command] [prompt]\n\nStarts an interactive session with Web Viewer by default. All args are passed\nthrough to claude.\n\nArguments:\n prompt Your prompt\n\nCCV Options:\n -SDK, --sdk Use Agent SDK mode (no terminal, structured interaction)\n -logger Install/repair Claude Code hook\n --uninstall Remove CC Viewer integration\n --d Shortcut for --dangerously-skip-permissions\n --ad Shortcut for --allow-dangerously-skip-permissions\n --log-dir <path> Custom JSONL log storage directory\n --no-open Don't auto-open browser on startup\n --user-name <name> Custom display name for this session\n --user-avatar <path|url> Custom avatar image (file path or URL)\n --usePassword[=<pwd>] Enable password login (remote needs password or token; bare flag → random 6-char: 2 letters + 4 digits)\n --pid[=<name>] Lock an instance id so this ccv's current-session view is isolated per instance (reuse the same id next run)\n\nClaude Options (passed through):\n -c, --continue Continue the most recent conversation\n -r, --resume [value] Resume a conversation by session ID, or open picker\n -p, --print Print response and exit (useful for pipes)\n -d, --debug [filter] Enable debug mode\n -w, --worktree [name] Create a new git worktree for this session\n --model <model> Model for the current session\n --effort <level> Effort level (low, medium, high, max)\n --dangerously-skip-permissions Bypass all permission checks\n --allowedTools <tools...> Allowed tool names\n --disallowedTools <tools...> Disallowed tool names\n --system-prompt <prompt> System prompt for the session\n --append-system-prompt <prompt> Append to default system prompt\n --mcp-config <configs...> Load MCP servers from JSON files or strings\n --permission-mode <mode> Permission mode for the session\n --add-dir <directories...> Additional directories to allow access to\n --max-budget-usd <amount> Max dollar amount for API calls (--print only)\n --output-format <format> Output format (--print only): text, json, stream-json\n --json-schema <schema> JSON Schema for structured output\n --verbose Enable verbose mode\n -h, --help Show help\n -v, --version Show version\n\n For all options, see: claude --help\n\nExamples:\n ccv Start interactive mode\n ccv -c Continue last conversation\n ccv -r Resume a conversation\n ccv -p \"hello\" Print mode\n ccv --model opus Specify model\n ccv --d Skip permission prompts (shortcut)\n ccv --ad Allow bypass mode (not active, toggle via Shift+Tab)\n ccv -c --model sonnet --effort max Combine options\n ccv -SDK Agent SDK mode (no terminal)\n ccv -SDK --d SDK mode + bypass permissions\n ccv -logger Install/repair hook\n ccv --log-dir ~/my-logs Use custom log directory\n ccv --no-open Start without opening browser\n ccv --user-name \"Alice\" --user-avatar ./avatar.png Custom user profile\n ccv --log-dir /tmp/test --no-open Combine CCV options",
|
|
228
228
|
"zh-TW": "CC Viewer CLI — Claude Code 的 Web Viewer 前端\n\n用法: ccv [選項] [命令] [提示詞]\n\n預設啟動互動式會話 + Web Viewer,所有參數透傳給 claude。\n\n參數:\n prompt 你的提示詞\n\nCCV 專屬選項:\n -SDK, --sdk 使用 Agent SDK 模式(無終端,結構化互動)\n -logger 安裝/修復 Claude Code Hook\n --uninstall 移除 CC Viewer 整合\n --d --dangerously-skip-permissions 的快捷方式\n --ad --allow-dangerously-skip-permissions 的快捷方式\n --log-dir <path> 自訂 JSONL 日誌儲存目錄\n --no-open 啟動時不自動開啟瀏覽器\n --user-name <name> 自訂顯示名稱\n --user-avatar <path|url> 自訂頭像圖片(檔案路徑或 URL)\n\nClaude 選項(透傳):\n -c, --continue 繼續當前目錄最近的對話\n -r, --resume [value] 透過會話 ID 恢復對話,或開啟互動式選擇器\n -p, --print 列印回應後退出(適用於管道)\n -d, --debug [filter] 啟用除錯模式\n -w, --worktree [name] 為此會話建立新的 git worktree\n --model <model> 當前會話使用的模型\n --effort <level> 努力級別 (low, medium, high, max)\n --dangerously-skip-permissions 跳過所有權限檢查\n --allowedTools <tools...> 允許的工具列表\n --disallowedTools <tools...> 禁止的工具列表\n --system-prompt <prompt> 會話系統提示詞\n --append-system-prompt <prompt> 追加系統提示詞\n --mcp-config <configs...> 載入 MCP 伺服器設定\n --permission-mode <mode> 權限模式\n --add-dir <directories...> 額外允許存取的目錄\n --max-budget-usd <amount> API 呼叫最大預算(僅 --print)\n --output-format <format> 輸出格式(僅 --print): text, json, stream-json\n --json-schema <schema> 結構化輸出的 JSON Schema\n --verbose 詳細模式\n -h, --help 顯示說明\n -v, --version 顯示版本\n\n 更多選項請參考: claude --help\n\n範例:\n ccv 啟動互動模式\n ccv -c 繼續上次對話\n ccv -r 恢復對話\n ccv -p \"hello\" 列印模式\n ccv --model opus 指定模型\n ccv --d 跳過權限確認(快捷方式)\n ccv --ad 允許跳過權限(不立即啟用,可透過 Shift+Tab 切換)\n ccv -c --model sonnet --effort max 組合使用\n ccv -SDK Agent SDK 模式(無終端)\n ccv -SDK --d SDK 模式 + 跳過權限\n ccv -logger 安裝/修復 Hook\n ccv --log-dir ~/my-logs 使用自訂日誌目錄\n ccv --no-open 啟動時不開啟瀏覽器\n ccv --user-name \"Alice\" --user-avatar ./avatar.png 自訂使用者身份\n ccv --log-dir /tmp/test --no-open 組合 CCV 選項"
|
|
229
229
|
},
|
|
230
230
|
"cli.cMode.notFound": {
|
|
@@ -2935,6 +2935,66 @@ const i18nData = {
|
|
|
2935
2935
|
"tr": "Hata: --im bir platform kimliği gerektirir (örn. dingtalk)",
|
|
2936
2936
|
"uk": "Помилка: --im потребує id платформи (напр. dingtalk)"
|
|
2937
2937
|
},
|
|
2938
|
+
"cli.pidInvalid": {
|
|
2939
|
+
"zh": "错误: --pid 需要一个非空的实例名(如 --pid=alpha)",
|
|
2940
|
+
"en": "Error: --pid requires a non-empty instance name (e.g. --pid=alpha)",
|
|
2941
|
+
"zh-TW": "錯誤: --pid 需要一個非空的實例名稱(如 --pid=alpha)",
|
|
2942
|
+
"ko": "오류: --pid에는 비어 있지 않은 인스턴스 이름이 필요합니다 (예: --pid=alpha)",
|
|
2943
|
+
"ja": "エラー: --pid には空でないインスタンス名が必要です (例: --pid=alpha)",
|
|
2944
|
+
"de": "Fehler: --pid erfordert einen nicht leeren Instanznamen (z. B. --pid=alpha)",
|
|
2945
|
+
"es": "Error: --pid requiere un nombre de instancia no vacío (p. ej. --pid=alpha)",
|
|
2946
|
+
"fr": "Erreur : --pid nécessite un nom d'instance non vide (p. ex. --pid=alpha)",
|
|
2947
|
+
"it": "Errore: --pid richiede un nome di istanza non vuoto (es. --pid=alpha)",
|
|
2948
|
+
"da": "Fejl: --pid kræver et ikke-tomt instansnavn (f.eks. --pid=alpha)",
|
|
2949
|
+
"pl": "Błąd: --pid wymaga niepustej nazwy instancji (np. --pid=alpha)",
|
|
2950
|
+
"ru": "Ошибка: --pid требует непустого имени экземпляра (например, --pid=alpha)",
|
|
2951
|
+
"ar": "خطأ: --pid يتطلب اسم نسخة غير فارغ (مثل --pid=alpha)",
|
|
2952
|
+
"no": "Feil: --pid krever et ikke-tomt instansnavn (f.eks. --pid=alpha)",
|
|
2953
|
+
"pt-BR": "Erro: --pid requer um nome de instância não vazio (ex.: --pid=alpha)",
|
|
2954
|
+
"th": "ข้อผิดพลาด: --pid ต้องการชื่ออินสแตนซ์ที่ไม่ว่าง (เช่น --pid=alpha)",
|
|
2955
|
+
"tr": "Hata: --pid boş olmayan bir örnek adı gerektirir (örn. --pid=alpha)",
|
|
2956
|
+
"uk": "Помилка: --pid потребує непорожнього імені екземпляра (напр. --pid=alpha)"
|
|
2957
|
+
},
|
|
2958
|
+
"cli.instanceId": {
|
|
2959
|
+
"zh": "实例 PID: {id}",
|
|
2960
|
+
"en": "Instance PID: {id}",
|
|
2961
|
+
"zh-TW": "實例 PID: {id}",
|
|
2962
|
+
"ko": "인스턴스 PID: {id}",
|
|
2963
|
+
"ja": "インスタンス PID: {id}",
|
|
2964
|
+
"de": "Instanz-PID: {id}",
|
|
2965
|
+
"es": "PID de instancia: {id}",
|
|
2966
|
+
"fr": "PID d'instance : {id}",
|
|
2967
|
+
"it": "PID istanza: {id}",
|
|
2968
|
+
"da": "Instans-PID: {id}",
|
|
2969
|
+
"pl": "PID instancji: {id}",
|
|
2970
|
+
"ru": "PID экземпляра: {id}",
|
|
2971
|
+
"ar": "PID النسخة: {id}",
|
|
2972
|
+
"no": "Instans-PID: {id}",
|
|
2973
|
+
"pt-BR": "PID da instância: {id}",
|
|
2974
|
+
"th": "PID อินสแตนซ์: {id}",
|
|
2975
|
+
"tr": "Örnek PID: {id}",
|
|
2976
|
+
"uk": "PID екземпляра: {id}"
|
|
2977
|
+
},
|
|
2978
|
+
"cli.instanceHistory": {
|
|
2979
|
+
"zh": "该项目历史 PID: {ids}",
|
|
2980
|
+
"en": "Past PIDs for this project: {ids}",
|
|
2981
|
+
"zh-TW": "此專案歷史 PID: {ids}",
|
|
2982
|
+
"ko": "이 프로젝트의 이전 PID: {ids}",
|
|
2983
|
+
"ja": "このプロジェクトの過去の PID: {ids}",
|
|
2984
|
+
"de": "Frühere PIDs für dieses Projekt: {ids}",
|
|
2985
|
+
"es": "PIDs anteriores de este proyecto: {ids}",
|
|
2986
|
+
"fr": "PID précédents pour ce projet : {ids}",
|
|
2987
|
+
"it": "PID precedenti per questo progetto: {ids}",
|
|
2988
|
+
"da": "Tidligere PID'er for dette projekt: {ids}",
|
|
2989
|
+
"pl": "Poprzednie PID-y tego projektu: {ids}",
|
|
2990
|
+
"ru": "Прежние PID этого проекта: {ids}",
|
|
2991
|
+
"ar": "معرّفات PID السابقة لهذا المشروع: {ids}",
|
|
2992
|
+
"no": "Tidligere PID-er for dette prosjektet: {ids}",
|
|
2993
|
+
"pt-BR": "PIDs anteriores deste projeto: {ids}",
|
|
2994
|
+
"th": "PID ก่อนหน้าของโปรเจกต์นี้: {ids}",
|
|
2995
|
+
"tr": "Bu projenin önceki PID'leri: {ids}",
|
|
2996
|
+
"uk": "Попередні PID цього проєкту: {ids}"
|
|
2997
|
+
},
|
|
2938
2998
|
"cli.imUnknownPlatform": {
|
|
2939
2999
|
"zh": "错误: 未知的 IM 平台: {id}",
|
|
2940
3000
|
"en": "Error: unknown IM platform: {id}",
|
package/server/lib/auth.js
CHANGED
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
// unit-tested directly (loopback HTTP tests always look local, so they cannot
|
|
10
10
|
// exercise the remote branch — `decideAuth` covers it as a pure function).
|
|
11
11
|
import { randomBytes } from 'node:crypto';
|
|
12
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync } from 'node:fs';
|
|
12
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, chmodSync, unlinkSync } from 'node:fs';
|
|
13
13
|
import { join, dirname } from 'node:path';
|
|
14
|
+
import { renameSyncWithRetry } from './file-api.js';
|
|
14
15
|
import { LOG_DIR } from '../../findcc.js';
|
|
15
16
|
import { tFor, localeFromAcceptLanguage } from '../i18n.js';
|
|
16
17
|
|
|
@@ -141,10 +142,24 @@ function writePrefs(prefs) {
|
|
|
141
142
|
const p = getPrefsPath();
|
|
142
143
|
const dir = dirname(p);
|
|
143
144
|
if (!existsSync(dir)) mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
144
|
-
|
|
145
|
-
//
|
|
146
|
-
//
|
|
147
|
-
|
|
145
|
+
// Atomic tmp→rename so a crash mid-write can't truncate the password-bearing file
|
|
146
|
+
// (preferences.json also holds UI prefs + per-project forks). Mirrors prefs-store.js.
|
|
147
|
+
// TODO(prefs-lock): this path does NOT take the prefs-store lock (writePrefs is sync, its
|
|
148
|
+
// callers are sync) — auth writes are rare/admin-initiated, so the residual lost-update
|
|
149
|
+
// window vs a concurrent locked prefs write is accepted; atomicity rules out corruption.
|
|
150
|
+
// Dormant only while every mutatePrefs mutator stays synchronous (no await between its
|
|
151
|
+
// locked read and write); route auth writes through prefs-store.mutatePrefs if that changes.
|
|
152
|
+
const tmp = `${p}.tmp-${process.pid}-${randomBytes(4).toString('hex')}`;
|
|
153
|
+
try {
|
|
154
|
+
writeFileSync(tmp, JSON.stringify(prefs, null, 2), { mode: 0o600 });
|
|
155
|
+
renameSyncWithRetry(tmp, p);
|
|
156
|
+
// writeFileSync's mode only applies on creation; a pre-existing file keeps its old
|
|
157
|
+
// perms. Re-assert 0600 — preferences.json now carries the (base64) password.
|
|
158
|
+
try { chmodSync(p, 0o600); } catch { /* best-effort; non-POSIX or race */ }
|
|
159
|
+
} catch (err) {
|
|
160
|
+
try { unlinkSync(tmp); } catch {}
|
|
161
|
+
throw err;
|
|
162
|
+
}
|
|
148
163
|
}
|
|
149
164
|
|
|
150
165
|
/**
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// Passive registry of instance ids (`--pid`) used per project — a memory aid only.
|
|
2
|
+
//
|
|
3
|
+
// On startup with `--pid X`, the server appends X to `{projectDir}/.instances.json` so the
|
|
4
|
+
// CLI banner can remind the user which ids they've used ("history: alpha, beta") next time.
|
|
5
|
+
// This is NOT a liveness / auto-numbering registry: entries are never probed or auto-assigned,
|
|
6
|
+
// just remembered (deduped, most-recent-last, capped). `logDir` is the per-project dir;
|
|
7
|
+
// '' (no active project) → record no-ops / list returns [].
|
|
8
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync } from 'node:fs';
|
|
9
|
+
import { join } from 'node:path';
|
|
10
|
+
import { randomBytes } from 'node:crypto';
|
|
11
|
+
import { renameSyncWithRetry } from './file-api.js';
|
|
12
|
+
import { withFileLockAsync } from './async-file-lock.js';
|
|
13
|
+
import { sanitizeInstanceId } from './session-pin-store.js';
|
|
14
|
+
|
|
15
|
+
const MAX_INSTANCES = 50; // cap the list; oldest entries drop off (memory aid, not an audit log)
|
|
16
|
+
|
|
17
|
+
function instancesFile(logDir) { return join(logDir, '.instances.json'); }
|
|
18
|
+
|
|
19
|
+
function readListRaw(logDir) {
|
|
20
|
+
try {
|
|
21
|
+
const file = instancesFile(logDir);
|
|
22
|
+
if (!existsSync(file)) return [];
|
|
23
|
+
const arr = JSON.parse(readFileSync(file, 'utf-8'));
|
|
24
|
+
return Array.isArray(arr) ? arr.filter((x) => typeof x === 'string' && x) : [];
|
|
25
|
+
} catch { return []; }
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Previously-used instance ids for this project, oldest → newest. No project → []. */
|
|
29
|
+
export function listInstances(logDir) {
|
|
30
|
+
if (!logDir) return [];
|
|
31
|
+
return readListRaw(logDir);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Record an instance id: dedupe (move-to-end so "most recent" wins), cap at MAX_INSTANCES.
|
|
36
|
+
* Cross-process safe via the shared async file lock + atomic tmp→rename. No project /
|
|
37
|
+
* empty id → no-op.
|
|
38
|
+
*/
|
|
39
|
+
export async function recordInstance(logDir, instanceId) {
|
|
40
|
+
if (!logDir) return;
|
|
41
|
+
const id = sanitizeInstanceId(instanceId);
|
|
42
|
+
if (!id) return;
|
|
43
|
+
await withFileLockAsync(join(logDir, '.instances.lock'), () => {
|
|
44
|
+
const list = readListRaw(logDir).filter((x) => x !== id);
|
|
45
|
+
list.push(id);
|
|
46
|
+
while (list.length > MAX_INSTANCES) list.shift();
|
|
47
|
+
const file = instancesFile(logDir);
|
|
48
|
+
const tmp = `${file}.tmp-${process.pid}-${randomBytes(4).toString('hex')}`;
|
|
49
|
+
try {
|
|
50
|
+
writeFileSync(tmp, JSON.stringify(list));
|
|
51
|
+
renameSyncWithRetry(tmp, file);
|
|
52
|
+
} catch (err) {
|
|
53
|
+
try { unlinkSync(tmp); } catch {}
|
|
54
|
+
throw err;
|
|
55
|
+
}
|
|
56
|
+
}, { ensureDir: logDir });
|
|
57
|
+
}
|