cc-viewer 1.7.15 → 1.7.18

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.
@@ -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_18995_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_18995_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_18995_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:var(--font-mono)}._deletedBadge_18995_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:var(--font-mono)}._codeContainer_18995_44{flex:1;overflow:hidden;display:flex;min-height:0;font-family:var(--font-mono);font-size:12px;line-height:1.6}._lineNumberCol_18995_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_18995_62{display:flex;min-height:20px}._oldLineNum_18995_67,._newLineNum_18995_68{display:inline-block;width:40px;text-align:right;padding:0 6px;font-size:12px;box-sizing:border-box}._lineNumNormal_18995_77 ._oldLineNum_18995_67,._lineNumNormal_18995_77 ._newLineNum_18995_68{color:var(--text-disabled)}._lineNumAdd_18995_82{border-right:3px solid var(--color-diff-add)}._lineNumAdd_18995_82 ._oldLineNum_18995_67{color:var(--text-disabled)}._lineNumAdd_18995_82 ._newLineNum_18995_68{color:var(--color-diff-add);font-weight:600}._lineNumDelete_18995_95{border-right:3px solid var(--color-error)}._lineNumDelete_18995_95 ._oldLineNum_18995_67{color:var(--color-error);font-weight:600}._lineNumDelete_18995_95 ._newLineNum_18995_68{color:var(--text-disabled)}._codeColWrap_18995_108{flex:1;position:relative;min-width:0;overflow:hidden}._codeCol_18995_108{width:100%;height:100%;overflow:auto;min-width:0}._codeInner_18995_122{width:fit-content;min-width:100%}._codeLine_18995_127{position:relative;min-height:20px;display:flex;transition:background .1s}._codeLine_18995_127:hover{background:var(--overlay-light-faint)}._linePrefix_18995_138{display:inline-block;width:16px;text-align:center;color:var(--text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}._lineContent_18995_147{padding-right:16px;color:var(--text-secondary);white-space:pre}._lineNormal_18995_153{background:#0000}._lineAdd_18995_157{background:var(--color-diff-add-bg)}._lineAdd_18995_157 ._linePrefix_18995_138{color:var(--color-diff-add)}._lineDelete_18995_165{background:var(--color-error-bg-faint)}._lineDelete_18995_165 ._linePrefix_18995_138{color:var(--color-error)}._lineDelete_18995_165 ._lineContent_18995_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_i5jd0_1{flex:1;display:flex;flex-direction:column;background:var(--bg-base-alt);overflow:hidden;animation:_slideInFromRight_i5jd0_1 .25s ease-out}@keyframes _slideInFromRight_i5jd0_1{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}._closing_i5jd0_21{animation:_slideOutToRight_i5jd0_1 .2s ease-in forwards}@keyframes _slideOutToRight_i5jd0_1{0%{transform:translate(0);opacity:1}to{transform:translate(-40px);opacity:0}}._header_i5jd0_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_i5jd0_46{display:flex;align-items:center;gap:12px;flex:1;min-width:0}._backBtn_i5jd0_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_i5jd0_54:hover{color:var(--text-secondary);background:var(--bg-surface)}._filePath_i5jd0_75{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:color .15s}._filePath_i5jd0_75:hover{color:var(--color-info-light);text-decoration:underline}._diffBadge_i5jd0_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_i5jd0_103{display:flex;align-items:center;flex-shrink:0}._closeBtn_i5jd0_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_i5jd0_109:hover{background:var(--overlay-light-medium);color:var(--text-primary)}._contentContainer_i5jd0_129{flex:1;overflow:auto;position:relative}._loading_i5jd0_135{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px}._error_i5jd0_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_i5jd0_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_i5jd0_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_i5jd0_180{color:var(--text-tertiary);font-size:12px;margin:0}._imagePreviewWrap_i5jd0_186{display:flex;align-items:center;justify-content:center;height:100%;padding:20px}._imagePreview_i5jd0_186{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;cursor:zoom-in;transition:opacity .2s}._imagePreview_i5jd0_186:hover{opacity:.85}._panel_1bby4_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_1bby4_1 .2s ease-out}._panelGlobal_1bby4_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_1bby4_1 .2s ease-out;font-size:80%}._panelGlobal_1bby4_20 ._toolName_1bby4_43{font-size:14px}._panelGlobal_1bby4_20 ._command_1bby4_47{font-size:12px;max-height:80px;padding:6px 10px}._panelGlobal_1bby4_20 ._allowBtn_1bby4_53,._panelGlobal_1bby4_20 ._allowSessionBtn_1bby4_54,._panelGlobal_1bby4_20 ._denyBtn_1bby4_55{padding:7px 18px;font-size:14px}._borderSvg_1bby4_60{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgInset_1bby4_69{overflow:hidden}._borderRect_1bby4_73{animation:_dashRotate_1bby4_1 4s linear infinite}@keyframes _dashRotate_1bby4_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}@keyframes _slideUp_1bby4_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideDown_1bby4_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}._exiting_1bby4_92{animation:_slideDown_1bby4_1 .2s ease-in forwards}._header_1bby4_96{display:flex;align-items:center;gap:8px;margin-bottom:8px}._toolName_1bby4_43{color:var(--text-primary);font-weight:600;font-size:13px;font-family:var(--font-mono)}._label_1bby4_110{color:var(--color-approval-label);font-size:12px;font-weight:500;margin-left:auto}._subAgentBadge_1bby4_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_1bby4_128{margin-bottom:12px}._command_1bby4_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:var(--font-mono);line-height:1.5;max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;margin:0}._detail_1bby4_148{margin-top:6px;color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:40px;overflow:hidden}._actions_1bby4_159{display:flex;align-items:center;gap:8px}._autoApproveBtn_1bby4_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_1bby4_165:hover{color:var(--text-secondary);border-color:var(--text-muted)}._autoApproveActive_1bby4_183{color:var(--color-success);border-color:var(--color-success)}._autoApproveActive_1bby4_183:hover{color:var(--color-success-light);border-color:var(--color-success-light)}._allowBtn_1bby4_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_1bby4_53:hover{background:var(--color-success-bg-medium)}._allowSessionBtn_1bby4_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_1bby4_54:hover{background:var(--color-primary-bg-medium)}._denyBtn_1bby4_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_1bby4_55:hover{background:var(--color-error-bg-medium)}._allowBtn_1bby4_53:focus-visible,._allowSessionBtn_1bby4_54:focus-visible,._denyBtn_1bby4_55:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(max-width:768px){._panel_1bby4_1{right:10px;left:10px;border-radius:12px;padding:16px 20px}._toolName_1bby4_43{font-size:18px}._command_1bby4_47{font-size:16px;max-height:160px}._allowBtn_1bby4_53,._allowSessionBtn_1bby4_54,._denyBtn_1bby4_55{padding:10px 28px;font-size:18px}}html.pad-mode ._panel_1bby4_1{right:16px;left:16px;padding:12px 16px;z-index:99999}html.pad-mode ._toolName_1bby4_43{font-size:13px}html.pad-mode ._command_1bby4_47{font-size:12px;max-height:120px}html.pad-mode ._allowBtn_1bby4_53,html.pad-mode ._allowSessionBtn_1bby4_54,html.pad-mode ._denyBtn_1bby4_55{padding:6px 20px;font-size:13px}html.pad-mode ._panelGlobal_1bby4_20{font-size:90%}html.pad-mode ._panelGlobal_1bby4_20 ._toolName_1bby4_43{font-size:14px}html.pad-mode ._panelGlobal_1bby4_20 ._command_1bby4_47{font-size:13px;max-height:100px}html.pad-mode ._panelGlobal_1bby4_20 ._allowBtn_1bby4_53,html.pad-mode ._panelGlobal_1bby4_20 ._allowSessionBtn_1bby4_54,html.pad-mode ._panelGlobal_1bby4_20 ._denyBtn_1bby4_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_13ghf_1{padding:8px 16px 12px;background:var(--bg-input-bar);flex-shrink:0}._chatInputWrapper_13ghf_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_13ghf_7:focus-within{border-color:var(--text-disabled)}._chatTextareaWrap_13ghf_21{position:relative;flex:1}._textareaWithGhost_13ghf_28{position:relative}._chatTextarea_13ghf_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:var(--font-ui);box-sizing:border-box}._chatTextarea_13ghf_21::placeholder{color:var(--text-disabled)}._chatInputBottom_13ghf_52{display:flex;align-items:center;padding:4px 6px 6px;gap:4px}._chatInputBottomLeft_13ghf_60,._chatInputBottomRight_13ghf_62{display:flex;align-items:center;gap:4px;flex:0 0 auto}._chatInputBottomRight_13ghf_62{margin-left:auto}._plusArea_13ghf_74{position:relative}._plusBtn_13ghf_78,._micBtn_13ghf_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_13ghf_94{transform:rotate(45deg)}._plusBtn_13ghf_78:hover,._micBtn_13ghf_79:hover{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--text-muted)}@keyframes _plusGlyphShimmer_13ghf_1{to{background-position:200% center}}._plusBtn_13ghf_78{--ultra-rainbow: linear-gradient(90deg, #ff6b6b, #ffa94d, var(--ultra-hi, #fff), #51cf66, #4dabf7, #b197fc, #ff6b6b)}[data-theme=light] ._plusBtn_13ghf_78{--ultra-hi: #000}._plusGlyph_13ghf_122{width:16px;height:16px;flex:none;background:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}._plusBtn_13ghf_78:hover ._plusGlyph_13ghf_122,._plusBtnOpen_13ghf_94 ._plusGlyph_13ghf_122,._plusBtnUltraOpen_13ghf_136 ._plusGlyph_13ghf_122{background:var(--ultra-rainbow);background-size:200% auto;animation:_plusGlyphShimmer_13ghf_1 2.4s linear infinite}@media(prefers-reduced-motion:reduce){._plusBtn_13ghf_78:hover ._plusGlyph_13ghf_122,._plusBtnOpen_13ghf_94 ._plusGlyph_13ghf_122,._plusBtnUltraOpen_13ghf_136 ._plusGlyph_13ghf_122{animation:none}}._micBtnRecording_13ghf_149,._micBtnRecording_13ghf_149:hover{background:var(--color-error);color:#fff;border-color:var(--color-error);animation:_ccvMicPulse_13ghf_1 1.4s ease-in-out infinite}@keyframes _ccvMicPulse_13ghf_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_13ghf_149,._micBtnRecording_13ghf_149:hover{animation:none}}._interimPreview_13ghf_169{position:absolute;left:14px;right:14px;bottom:4px;z-index:101;color:var(--text-secondary);font-size:12px;font-style:italic;font-family:var(--font-ui);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_13ghf_188{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}._plusMenu_13ghf_197{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_13ghf_210{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_13ghf_210:hover{background:var(--bg-surface)}._plusMenuItemMuted_13ghf_230{color:var(--text-tertiary);border-bottom:1px solid var(--border-light);margin-bottom:2px}._plusMenuItemMuted_13ghf_230:hover{color:var(--text-primary)}._plusMenuItem_13ghf_210 svg{width:16px;height:16px;flex-shrink:0}._plusMenuItemMuted_13ghf_230 svg{stroke:var(--text-tertiary);transition:stroke .15s}._plusMenuItemMuted_13ghf_230:hover svg{stroke:var(--text-primary)}._presetLabel_13ghf_256{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._plusMenuQuick_13ghf_264{min-width:200px}._plusBtn_13ghf_78 svg{width:16px;height:16px}._quickMenuPresetItem_13ghf_276{max-width:260px;overflow:hidden;text-overflow:ellipsis}._chatInputHint_13ghf_282{font-size:11px;color:var(--border-light);-webkit-user-select:none;user-select:none;padding:0 4px}._ctxBarSlot_13ghf_61{flex:0 1 200px;max-width:200px;min-width:0;display:flex;align-items:stretch;height:28px;margin-left:4px}._ctxBarSlot_13ghf_61>*{flex:1 1 0;min-width:0}._sendBtn_13ghf_307{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_13ghf_322{background:var(--border-light);color:var(--text-tertiary);cursor:default}._sendBtn_13ghf_307 svg{width:16px;height:16px}._ghostText_13ghf_333{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:var(--font-ui);pointer-events:none;white-space:pre-wrap;overflow:hidden;max-height:120px}._suggestionChip_13ghf_349{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_13ghf_349:hover{background:var(--bg-elevated)}._suggestionChipText_13ghf_366{flex:1;color:var(--text-disabled);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._suggestionChipAction_13ghf_375{color:var(--color-primary-pale);font-size:14px;flex-shrink:0}._imagePreviewStrip_13ghf_382{display:flex;gap:8px;padding:8px 14px 0;overflow-x:auto;scrollbar-width:none}._imagePreviewStrip_13ghf_382::-webkit-scrollbar{display:none}._imagePreviewItem_13ghf_394{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_13ghf_394:hover{border-color:var(--color-primary-pale)}._imagePreviewThumb_13ghf_409{width:100%;height:100%;object-fit:cover;cursor:pointer}._imagePreviewUploading_13ghf_417{cursor:default}._imagePreviewSpinner_13ghf_421{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059}._imagePreviewRemove_13ghf_430{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_13ghf_394:hover ._imagePreviewRemove_13ghf_430{opacity:1}@media(hover:none){._imagePreviewRemove_13ghf_430,._filePreviewClose_13ghf_458{opacity:1;min-width:22px;min-height:22px}}._filePreviewChip_13ghf_465{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_13ghf_465:hover{border-color:var(--color-primary-pale)}._filePreviewChip_13ghf_465 svg{flex-shrink:0;color:var(--text-tertiary)}._filePreviewName_13ghf_488{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._filePreviewClose_13ghf_458{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_13ghf_458:hover{color:var(--text-primary)}@media(max-width:768px){._chatInputBar_13ghf_1{padding:10px 21px 16px;background:transparent}._chatInputWrapper_13ghf_7{border-radius:21px}._chatTextarea_13ghf_21{min-height:52px;max-height:208px;padding:18px 21px 8px;font-size:22px}._ghostText_13ghf_333{padding:18px 21px 8px;font-size:22px}._chatInputBottom_13ghf_52{padding:8px 10px 10px;gap:8px}._plusBtn_13ghf_78,._micBtn_13ghf_79{width:47px;height:47px}._plusBtn_13ghf_78 svg,._micBtn_13ghf_79 svg{width:23px;height:23px}._interimPreview_13ghf_169{left:21px;right:21px;bottom:8px;font-size:17px;max-height:60px;padding-top:12px}._plusMenu_13ghf_197{bottom:57px}._plusMenuItem_13ghf_210{padding:13px 18px;font-size:20px}._chatInputHint_13ghf_282{font-size:17px}._sendBtn_13ghf_307{width:47px;height:47px}._sendBtn_13ghf_307 svg{width:23px;height:23px}._imagePreviewStrip_13ghf_382{gap:10px;padding:10px 18px 0}._imagePreviewItem_13ghf_394{width:56px;height:56px;border-radius:8px}._imagePreviewRemove_13ghf_430{width:20px;height:20px;font-size:14px;opacity:1}._filePreviewChip_13ghf_465{padding:8px 12px;gap:8px;border-radius:10px;max-width:240px}._filePreviewName_13ghf_488{font-size:15px}._filePreviewClose_13ghf_458{width:20px;height:20px;font-size:16px}}html.pad-mode ._chatInputBar_13ghf_1{padding:8px 16px 12px}html.pad-mode ._chatInputWrapper_13ghf_7{border-radius:16px}html.pad-mode ._chatTextarea_13ghf_21{min-height:22px;max-height:120px;padding:12px 14px 4px;font-size:14px}html.pad-mode ._ghostText_13ghf_333{padding:12px 14px 4px;font-size:14px}html.pad-mode ._chatInputBottom_13ghf_52{padding:4px 6px 6px;gap:4px}html.pad-mode ._plusBtn_13ghf_78,html.pad-mode ._micBtn_13ghf_79{width:28px;height:28px}html.pad-mode ._plusBtn_13ghf_78 svg,html.pad-mode ._micBtn_13ghf_79 svg{width:16px;height:16px}html.pad-mode ._interimPreview_13ghf_169{left:14px;right:14px;bottom:4px;font-size:12px;max-height:40px;padding-top:8px}html.pad-mode ._plusMenu_13ghf_197{bottom:36px}html.pad-mode ._plusMenuItem_13ghf_210{padding:8px 12px;font-size:13px}html.pad-mode ._chatInputHint_13ghf_282{font-size:11px}html.pad-mode ._sendBtn_13ghf_307{width:28px;height:28px}html.pad-mode ._sendBtn_13ghf_307 svg{width:16px;height:16px}html.pad-mode ._imagePreviewStrip_13ghf_382{gap:8px;padding:8px 14px 0}html.pad-mode ._imagePreviewItem_13ghf_394{width:48px;height:48px;border-radius:6px}html.pad-mode ._imagePreviewRemove_13ghf_430{width:16px;height:16px;font-size:12px;opacity:0}html.pad-mode ._filePreviewChip_13ghf_465{padding:6px 10px;gap:6px;border-radius:8px;max-width:200px}html.pad-mode ._filePreviewName_13ghf_488{font-size:12px}html.pad-mode ._filePreviewClose_13ghf_458{width:16px;height:16px;font-size:12px}._sendBtnWrap_13ghf_652{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_m6o6i_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_m6o6i_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_m6o6i_37{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;width:100%}._header_m6o6i_45{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}._title_m6o6i_52{font-size:16px;font-weight:600;color:var(--text-primary)}._closeBtn_m6o6i_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_m6o6i_58:hover{background:var(--bg-surface);color:var(--text-secondary)}._headerActions_m6o6i_76{display:flex;align-items:center;gap:4px}._customWrap_m6o6i_83{position:relative;display:inline-flex;align-items:center;flex-shrink:0}._customTitle_m6o6i_90{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._editPencil_m6o6i_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_m6o6i_83:hover ._editPencil_m6o6i_97{opacity:1}._editPencil_m6o6i_97:hover{color:var(--color-primary);border-color:var(--color-primary)}@media(max-width:768px){._editPencil_m6o6i_97{opacity:1}}._variantRow_m6o6i_134{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_m6o6i_134::-webkit-scrollbar{display:none}._roleBtn_m6o6i_151{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_m6o6i_151:hover{border-color:var(--color-primary);color:var(--color-primary)}._roleBtn_m6o6i_151._roleBtnActive_m6o6i_180{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_m6o6i_134>._roleBtn_m6o6i_151._roleBtnActive_m6o6i_180,._customWrap_m6o6i_83:has(>._roleBtn_m6o6i_151._roleBtnActive_m6o6i_180){position:sticky;left:0;right:0;z-index:2}[data-theme=light] ._textareaWrap_m6o6i_23{box-shadow:0 3px 8px #00000014}[data-theme=light] ._roleBtnActive_m6o6i_180{box-shadow:0 -3px 8px #0000000f}._addExpertBtn_m6o6i_229{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_m6o6i_229:hover{color:var(--color-primary);background:var(--bg-surface)}[data-theme=light] ._addExpertBtn_m6o6i_229{color:var(--text-secondary)}._fileList_m6o6i_265{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;max-height:80px;overflow-y:auto;flex-shrink:0}._fileChip_m6o6i_280{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_m6o6i_280:hover{border-color:var(--color-primary-pale)}._fileChip_m6o6i_280 svg{flex-shrink:0}._fileName_m6o6i_303{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}._fileRemove_m6o6i_310{flex-shrink:0;cursor:pointer;color:var(--text-disabled)}._fileRemove_m6o6i_310:hover{color:var(--text-primary)}._imageItem_m6o6i_320{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;border:1px solid var(--border-primary);transition:border-color .15s}._imageItem_m6o6i_320:hover{border-color:var(--color-primary-pale)}._imageThumb_m6o6i_334{width:100%;height:100%;object-fit:cover;cursor:pointer}._imageRemove_m6o6i_341{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_m6o6i_320:hover ._imageRemove_m6o6i_341{opacity:1}@media(hover:none){._imageRemove_m6o6i_341,._fileRemove_m6o6i_310{opacity:1;min-width:22px;min-height:22px}}._textareaWrap_m6o6i_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_m6o6i_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_m6o6i_23:focus{border-color:var(--color-primary-pale)}._resizeHandle_m6o6i_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_m6o6i_33 svg{width:100%;height:100%;display:block}._resizeHandle_m6o6i_33:hover,._resizeHandle_m6o6i_33:active{opacity:1}.pad-mode ._resizeHandle_m6o6i_33{width:22px;height:22px;top:8px;left:8px}._textarea_m6o6i_23::placeholder{color:var(--text-disabled)}._footer_m6o6i_461{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px}._sendBtn_m6o6i_468{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_m6o6i_468:hover{opacity:.85}._sendBtn_m6o6i_468:disabled{opacity:.4;cursor:not-allowed}._uploadBtn_m6o6i_490{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_m6o6i_490:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--text-disabled)}@media(max-width:768px){._backdrop_m6o6i_1{zoom:1.4}}html.pad-mode ._backdrop_m6o6i_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_1ocog_3{max-width:800px}._cacheScrollArea_1ocog_7{max-height:calc(100vh - 140px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._cacheScrollAreaInDrawer_1ocog_19{max-height:none;overflow-y:visible}._cachePopoverTitle_1ocog_24{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-primary)}._cachePopoverHeader_1ocog_33{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-secondary)}._cacheSection_1ocog_39{margin-bottom:10px}._cacheSectionBordered_1ocog_43{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;background:var(--bg-container)}._cacheSectionBordered_1ocog_43>._cacheSectionLabel_1ocog_50,._cacheSectionBordered_1ocog_43>._cacheSectionHeader_1ocog_51{border-bottom:1px solid var(--border-secondary);padding-bottom:6px;margin-bottom:8px}._cacheSectionHeader_1ocog_51{display:flex;align-items:center;justify-content:space-between;gap:6px}._cacheSectionHeader_1ocog_51>._cacheSectionLabel_1ocog_50{margin-bottom:0}._cacheSectionLabel_1ocog_50{font-size:12px;font-weight:600;color:var(--text-light);margin-bottom:4px;padding:4px 0;-webkit-user-select:none;user-select:none}._memoryLabelWithIcon_1ocog_78{display:inline-flex;align-items:center;gap:6px}._toolChipGridVertical_1ocog_84{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:2px 0 6px}._claudeMdChip_1ocog_92{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_1ocog_92:hover{background:var(--bg-hover, var(--bg-surface));color:var(--text-primary)}._cacheChipBadge_1ocog_119{font-size:10px;line-height:14px;padding:0 5px;border-radius:2px;font-weight:500;letter-spacing:.2px}._cacheChipBadgeProject_1ocog_128{background:var(--color-primary-bg-light);color:var(--color-primary-light)}._cacheChipBadgeGlobal_1ocog_133{background:var(--color-success-bg-light);color:var(--color-success-light)}._chipDetailBody_1ocog_138{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_1ocog_150{color:var(--text-muted);font-style:italic}._mcpServerGroup_1ocog_155{margin-bottom:6px}._mcpServerName_1ocog_159{font-size:11px;font-weight:600;color:var(--text-muted);padding:2px 0 6px 2px}._cacheUsageLabel_1ocog_166{font-size:13px;color:var(--text-primary);font-weight:400;margin-right:4px}._cachePercent_1ocog_173{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}._cacheCalibrationLabel_1ocog_180{margin-left:auto;color:var(--text-tertiary);font-size:12px;font-weight:400;white-space:nowrap}._calibrationSelect_1ocog_188{width:80px;flex-shrink:0}._memoryStatus_1ocog_193{padding:6px 4px}._memoryDirHint_1ocog_197{font-family:var(--font-mono);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_1bvtq_3{margin-bottom:12px;font-size:12px;color:var(--text-tertiary)}._pluginDirPath_1bvtq_9{font-family:var(--font-mono);color:var(--text-light);cursor:pointer;padding:1px 4px;border-radius:3px;background:var(--bg-elevated)}._pluginDirPath_1bvtq_9:hover{color:var(--color-primary-light)}._pluginList_1bvtq_22{display:flex;flex-direction:column;gap:8px}._pluginItem_1bvtq_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_1bvtq_38{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_1bvtq_46{font-size:14px;color:var(--text-primary);font-weight:500}._pluginFile_1bvtq_52{font-size:12px;color:var(--text-muted);font-family:var(--font-mono)}._pluginHooks_1bvtq_58{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_1bvtq_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_1bvtq_74{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_1bvtq_82{text-align:center;padding:32px 0;color:var(--text-tertiary)}._pluginModalFooter_1bvtq_88{display:flex;justify-content:space-between;width:100%}._pluginModalFooterLeft_1bvtq_94{display:flex;gap:8px}._pluginDirLabel_1bvtq_99{color:var(--text-tertiary)}._pluginEmptyTitle_1bvtq_103{font-size:14px;margin-bottom:4px}._pluginEmptyHint_1bvtq_108{font-size:12px;color:var(--text-muted)}._cdnUrlLabel_1bvtq_113{margin-bottom:6px;color:var(--text-secondary);font-size:13px}._cdnInput_1bvtq_119{background:var(--bg-elevated);border-color:var(--border-secondary);color:var(--text-primary)}._pluginModalScroll_1bvtq_125{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}._pluginModalFooterBar_1bvtq_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_dzt9t_4{width:100%}._proxyWarning_dzt9t_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_dzt9t_18{display:flex;flex-direction:column;gap:4px}._proxyItem_dzt9t_24{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;border:1px solid transparent;transition:background .15s}._proxyItem_dzt9t_24:hover{background:var(--bg-elevated)}._proxyItemActive_dzt9t_38{background:var(--color-selection-bg);border-color:var(--color-primary)}._proxyItemMain_dzt9t_43{display:flex;align-items:center;cursor:pointer;flex:1;min-width:0}._proxyItemInfo_dzt9t_51{display:flex;flex-direction:column;min-width:0}._proxyItemNameRow_dzt9t_57{display:flex;align-items:center;gap:6px}._proxyItemName_dzt9t_57{font-size:13px;color:var(--text-primary);font-weight:500}._proxyItemDetail_dzt9t_69{font-size:11px;color:var(--text-gray);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._proxyBuiltinTag_dzt9t_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_dzt9t_88{display:flex;gap:2px;flex-shrink:0}._proxyEditForm_dzt9t_94{margin-top:12px;padding:12px;border-radius:6px;background:var(--bg-elevated);border:1px solid var(--border-secondary)}._proxyEditRow_dzt9t_102{margin-bottom:8px}._proxyEditRow_dzt9t_102 label{display:block;font-size:12px;color:var(--text-tertiary);margin-bottom:4px}._proxyRequired_dzt9t_113{color:var(--color-error);margin-left:2px}._proxyEditHint_dzt9t_118{font-size:11px;color:var(--text-tertiary);line-height:1.5;margin:-2px 0 8px}._proxyEditDivider_dzt9t_125{border-top:1px dashed var(--border-secondary);margin:10px 0 8px}._proxyEditBtns_dzt9t_130{display:flex;gap:8px;margin-top:12px}._proxyModalScroll_dzt9t_136{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_18995_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_18995_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_18995_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:var(--font-mono)}._deletedBadge_18995_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:var(--font-mono)}._codeContainer_18995_44{flex:1;overflow:hidden;display:flex;min-height:0;font-family:var(--font-mono);font-size:12px;line-height:1.6}._lineNumberCol_18995_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_18995_62{display:flex;min-height:20px}._oldLineNum_18995_67,._newLineNum_18995_68{display:inline-block;width:40px;text-align:right;padding:0 6px;font-size:12px;box-sizing:border-box}._lineNumNormal_18995_77 ._oldLineNum_18995_67,._lineNumNormal_18995_77 ._newLineNum_18995_68{color:var(--text-disabled)}._lineNumAdd_18995_82{border-right:3px solid var(--color-diff-add)}._lineNumAdd_18995_82 ._oldLineNum_18995_67{color:var(--text-disabled)}._lineNumAdd_18995_82 ._newLineNum_18995_68{color:var(--color-diff-add);font-weight:600}._lineNumDelete_18995_95{border-right:3px solid var(--color-error)}._lineNumDelete_18995_95 ._oldLineNum_18995_67{color:var(--color-error);font-weight:600}._lineNumDelete_18995_95 ._newLineNum_18995_68{color:var(--text-disabled)}._codeColWrap_18995_108{flex:1;position:relative;min-width:0;overflow:hidden}._codeCol_18995_108{width:100%;height:100%;overflow:auto;min-width:0}._codeInner_18995_122{width:fit-content;min-width:100%}._codeLine_18995_127{position:relative;min-height:20px;display:flex;transition:background .1s}._codeLine_18995_127:hover{background:var(--overlay-light-faint)}._linePrefix_18995_138{display:inline-block;width:16px;text-align:center;color:var(--text-tertiary);flex-shrink:0;-webkit-user-select:none;user-select:none}._lineContent_18995_147{padding-right:16px;color:var(--text-secondary);white-space:pre}._lineNormal_18995_153{background:#0000}._lineAdd_18995_157{background:var(--color-diff-add-bg)}._lineAdd_18995_157 ._linePrefix_18995_138{color:var(--color-diff-add)}._lineDelete_18995_165{background:var(--color-error-bg-faint)}._lineDelete_18995_165 ._linePrefix_18995_138{color:var(--color-error)}._lineDelete_18995_165 ._lineContent_18995_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_i5jd0_1{flex:1;display:flex;flex-direction:column;background:var(--bg-base-alt);overflow:hidden;animation:_slideInFromRight_i5jd0_1 .25s ease-out}@keyframes _slideInFromRight_i5jd0_1{0%{transform:translate(-40px);opacity:0}to{transform:translate(0);opacity:1}}._closing_i5jd0_21{animation:_slideOutToRight_i5jd0_1 .2s ease-in forwards}@keyframes _slideOutToRight_i5jd0_1{0%{transform:translate(0);opacity:1}to{transform:translate(-40px);opacity:0}}._header_i5jd0_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_i5jd0_46{display:flex;align-items:center;gap:12px;flex:1;min-width:0}._backBtn_i5jd0_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_i5jd0_54:hover{color:var(--text-secondary);background:var(--bg-surface)}._filePath_i5jd0_75{font-size:13px;color:var(--text-secondary);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;transition:color .15s}._filePath_i5jd0_75:hover{color:var(--color-info-light);text-decoration:underline}._diffBadge_i5jd0_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_i5jd0_103{display:flex;align-items:center;flex-shrink:0}._closeBtn_i5jd0_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_i5jd0_109:hover{background:var(--overlay-light-medium);color:var(--text-primary)}._contentContainer_i5jd0_129{flex:1;overflow:auto;position:relative}._loading_i5jd0_135{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-tertiary);font-size:13px}._error_i5jd0_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_i5jd0_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_i5jd0_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_i5jd0_180{color:var(--text-tertiary);font-size:12px;margin:0}._imagePreviewWrap_i5jd0_186{display:flex;align-items:center;justify-content:center;height:100%;padding:20px}._imagePreview_i5jd0_186{max-width:100%;max-height:100%;object-fit:contain;border-radius:4px;cursor:zoom-in;transition:opacity .2s}._imagePreview_i5jd0_186:hover{opacity:.85}._panel_1bby4_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_1bby4_1 .2s ease-out}._panelGlobal_1bby4_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_1bby4_1 .2s ease-out;font-size:80%}._panelGlobal_1bby4_20 ._toolName_1bby4_43{font-size:14px}._panelGlobal_1bby4_20 ._command_1bby4_47{font-size:12px;max-height:80px;padding:6px 10px}._panelGlobal_1bby4_20 ._allowBtn_1bby4_53,._panelGlobal_1bby4_20 ._allowSessionBtn_1bby4_54,._panelGlobal_1bby4_20 ._denyBtn_1bby4_55{padding:7px 18px;font-size:14px}._borderSvg_1bby4_60{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}._borderSvgInset_1bby4_69{overflow:hidden}._borderRect_1bby4_73{animation:_dashRotate_1bby4_1 4s linear infinite}@keyframes _dashRotate_1bby4_1{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}@keyframes _slideUp_1bby4_1{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes _slideDown_1bby4_1{0%{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}._exiting_1bby4_92{animation:_slideDown_1bby4_1 .2s ease-in forwards}._header_1bby4_96{display:flex;align-items:center;gap:8px;margin-bottom:8px}._toolName_1bby4_43{color:var(--text-primary);font-weight:600;font-size:13px;font-family:var(--font-mono)}._label_1bby4_110{color:var(--color-approval-label);font-size:12px;font-weight:500;margin-left:auto}._subAgentBadge_1bby4_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_1bby4_128{margin-bottom:12px}._command_1bby4_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:var(--font-mono);line-height:1.5;max-height:120px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;margin:0}._detail_1bby4_148{margin-top:6px;color:var(--text-tertiary);font-size:11px;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-all;max-height:40px;overflow:hidden}._actions_1bby4_159{display:flex;align-items:center;gap:8px}._autoApproveBtn_1bby4_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_1bby4_165:hover{color:var(--text-secondary);border-color:var(--text-muted)}._autoApproveActive_1bby4_183{color:var(--color-success);border-color:var(--color-success)}._autoApproveActive_1bby4_183:hover{color:var(--color-success-light);border-color:var(--color-success-light)}._allowBtn_1bby4_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_1bby4_53:hover{background:var(--color-success-bg-medium)}._allowSessionBtn_1bby4_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_1bby4_54:hover{background:var(--color-primary-bg-medium)}._denyBtn_1bby4_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_1bby4_55:hover{background:var(--color-error-bg-medium)}._allowBtn_1bby4_53:focus-visible,._allowSessionBtn_1bby4_54:focus-visible,._denyBtn_1bby4_55:focus-visible{outline:2px solid currentColor;outline-offset:2px}@media(max-width:768px){._panel_1bby4_1{right:10px;left:10px;border-radius:12px;padding:16px 20px}._toolName_1bby4_43{font-size:18px}._command_1bby4_47{font-size:16px;max-height:160px}._allowBtn_1bby4_53,._allowSessionBtn_1bby4_54,._denyBtn_1bby4_55{padding:10px 28px;font-size:18px}}html.pad-mode ._panel_1bby4_1{right:16px;left:16px;padding:12px 16px;z-index:99999}html.pad-mode ._toolName_1bby4_43{font-size:13px}html.pad-mode ._command_1bby4_47{font-size:12px;max-height:120px}html.pad-mode ._allowBtn_1bby4_53,html.pad-mode ._allowSessionBtn_1bby4_54,html.pad-mode ._denyBtn_1bby4_55{padding:6px 20px;font-size:13px}html.pad-mode ._panelGlobal_1bby4_20{font-size:90%}html.pad-mode ._panelGlobal_1bby4_20 ._toolName_1bby4_43{font-size:14px}html.pad-mode ._panelGlobal_1bby4_20 ._command_1bby4_47{font-size:13px;max-height:100px}html.pad-mode ._panelGlobal_1bby4_20 ._allowBtn_1bby4_53,html.pad-mode ._panelGlobal_1bby4_20 ._allowSessionBtn_1bby4_54,html.pad-mode ._panelGlobal_1bby4_20 ._denyBtn_1bby4_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_rvhnf_1{padding:8px max(16px,calc((100% - 1000px)/2)) 12px;background:var(--bg-input-strip);flex-shrink:0}._chatInputWrapper_rvhnf_9{display:flex;flex-direction:column;background:var(--bg-composer);border:1px solid var(--border-secondary);border-radius:16px;box-shadow:var(--shadow-composer);transition:border-color .2s;overflow:visible}._chatInputWrapper_rvhnf_9:focus-within{border-color:var(--text-disabled)}._chatTextareaWrap_rvhnf_24{position:relative;flex:1}._textareaWithGhost_rvhnf_31{position:relative}._chatTextarea_rvhnf_24{width:100%;min-height:37px;max-height:136px;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:var(--font-ui);box-sizing:border-box;transition:height .2s ease}._chatTextareaFocused_rvhnf_55{min-height:58px}._chatTextarea_rvhnf_24::placeholder{color:var(--text-disabled)}._chatInputBottom_rvhnf_63{display:flex;align-items:center;padding:4px 6px 6px;gap:4px}._chatInputBottomLeft_rvhnf_71,._chatInputBottomRight_rvhnf_73{display:flex;align-items:center;gap:4px;flex:0 0 auto}._chatInputBottomRight_rvhnf_73{margin-left:auto}._plusArea_rvhnf_85{position:relative}._plusBtn_rvhnf_89,._micBtn_rvhnf_90{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_rvhnf_105{transform:rotate(45deg)}._plusBtn_rvhnf_89:hover,._micBtn_rvhnf_90:hover{background:var(--bg-surface);color:var(--text-secondary);border-color:var(--text-muted)}@keyframes _plusGlyphShimmer_rvhnf_1{to{background-position:200% center}}._plusBtn_rvhnf_89{--ultra-rainbow: linear-gradient(90deg, #ff6b6b, #ffa94d, var(--ultra-hi, #fff), #51cf66, #4dabf7, #b197fc, #ff6b6b)}[data-theme=light] ._plusBtn_rvhnf_89{--ultra-hi: #000}._plusGlyph_rvhnf_133{width:16px;height:16px;flex:none;background:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}._plusBtn_rvhnf_89:hover ._plusGlyph_rvhnf_133,._plusBtnOpen_rvhnf_105 ._plusGlyph_rvhnf_133,._plusBtnUltraOpen_rvhnf_147 ._plusGlyph_rvhnf_133{background:var(--ultra-rainbow);background-size:200% auto;animation:_plusGlyphShimmer_rvhnf_1 2.4s linear infinite}@media(prefers-reduced-motion:reduce){._plusBtn_rvhnf_89:hover ._plusGlyph_rvhnf_133,._plusBtnOpen_rvhnf_105 ._plusGlyph_rvhnf_133,._plusBtnUltraOpen_rvhnf_147 ._plusGlyph_rvhnf_133{animation:none}}._micBtnRecording_rvhnf_160,._micBtnRecording_rvhnf_160:hover{background:var(--color-error);color:#fff;border-color:var(--color-error);animation:_ccvMicPulse_rvhnf_1 1.4s ease-in-out infinite}@keyframes _ccvMicPulse_rvhnf_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_rvhnf_160,._micBtnRecording_rvhnf_160:hover{animation:none}}._interimPreview_rvhnf_180{position:absolute;left:14px;right:14px;bottom:4px;z-index:101;color:var(--text-secondary);font-size:12px;font-style:italic;font-family:var(--font-ui);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_rvhnf_199{position:fixed;top:0;left:0;right:0;bottom:0;z-index:99}._plusMenu_rvhnf_208{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_rvhnf_221{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_rvhnf_221:hover{background:var(--bg-surface)}._plusMenuItemMuted_rvhnf_241{color:var(--text-tertiary);border-bottom:1px solid var(--border-light);margin-bottom:2px}._plusMenuItemMuted_rvhnf_241:hover{color:var(--text-primary)}._plusMenuItem_rvhnf_221 svg{width:16px;height:16px;flex-shrink:0}._plusMenuItemMuted_rvhnf_241 svg{stroke:var(--text-tertiary);transition:stroke .15s}._plusMenuItemMuted_rvhnf_241:hover svg{stroke:var(--text-primary)}._presetLabel_rvhnf_267{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._plusMenuQuick_rvhnf_275{min-width:200px}._plusBtn_rvhnf_89 svg{width:16px;height:16px}._quickMenuPresetItem_rvhnf_287{max-width:260px;overflow:hidden;text-overflow:ellipsis}._chatInputHint_rvhnf_293{font-size:11px;color:var(--border-light);-webkit-user-select:none;user-select:none;padding:0 4px}._ctxBarSlot_rvhnf_72{flex:0 1 200px;max-width:200px;min-width:0;display:flex;align-items:stretch;height:28px;margin-left:4px}._ctxBarSlot_rvhnf_72>*{flex:1 1 0;min-width:0}._sendBtn_rvhnf_318{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_rvhnf_333{background:var(--border-light);color:var(--text-tertiary);cursor:default}._sendBtn_rvhnf_318 svg{width:16px;height:16px}._ghostText_rvhnf_344{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:var(--font-ui);pointer-events:none;white-space:pre-wrap;overflow:hidden;max-height:120px}._suggestionChip_rvhnf_360{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_rvhnf_360:hover{background:var(--bg-elevated)}._suggestionChipText_rvhnf_377{flex:1;color:var(--text-disabled);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._suggestionChipAction_rvhnf_386{color:var(--color-primary-pale);font-size:14px;flex-shrink:0}._imagePreviewStrip_rvhnf_393{display:flex;gap:8px;padding:8px 14px 0;overflow-x:auto;scrollbar-width:none}._imagePreviewStrip_rvhnf_393::-webkit-scrollbar{display:none}._imagePreviewItem_rvhnf_405{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_rvhnf_405:hover{border-color:var(--color-primary-pale)}._imagePreviewThumb_rvhnf_420{width:100%;height:100%;object-fit:cover;cursor:pointer}._imagePreviewUploading_rvhnf_428{cursor:default}._imagePreviewSpinner_rvhnf_432{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000059}._imagePreviewRemove_rvhnf_441{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_rvhnf_405:hover ._imagePreviewRemove_rvhnf_441{opacity:1}@media(hover:none){._imagePreviewRemove_rvhnf_441,._filePreviewClose_rvhnf_469{opacity:1;min-width:22px;min-height:22px}}._filePreviewChip_rvhnf_476{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_rvhnf_476:hover{border-color:var(--color-primary-pale)}._filePreviewChip_rvhnf_476 svg{flex-shrink:0;color:var(--text-tertiary)}._filePreviewName_rvhnf_499{font-size:12px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._filePreviewClose_rvhnf_469{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_rvhnf_469:hover{color:var(--text-primary)}@media(max-width:768px){._chatInputBar_rvhnf_1{padding:10px 21px 16px;background:transparent}._chatInputWrapper_rvhnf_9{border-radius:21px}._chatTextarea_rvhnf_24{min-height:52px;max-height:208px;padding:18px 21px 8px;font-size:22px;transition:none}._ghostText_rvhnf_344{padding:18px 21px 8px;font-size:22px}._chatInputBottom_rvhnf_63{padding:8px 10px 10px;gap:8px}._plusBtn_rvhnf_89,._micBtn_rvhnf_90{width:47px;height:47px}._plusBtn_rvhnf_89 svg,._micBtn_rvhnf_90 svg{width:23px;height:23px}._interimPreview_rvhnf_180{left:21px;right:21px;bottom:8px;font-size:17px;max-height:60px;padding-top:12px}._plusMenu_rvhnf_208{bottom:57px}._plusMenuItem_rvhnf_221{padding:13px 18px;font-size:20px}._chatInputHint_rvhnf_293{font-size:17px}._sendBtn_rvhnf_318{width:47px;height:47px}._sendBtn_rvhnf_318 svg{width:23px;height:23px}._imagePreviewStrip_rvhnf_393{gap:10px;padding:10px 18px 0}._imagePreviewItem_rvhnf_405{width:56px;height:56px;border-radius:8px}._imagePreviewRemove_rvhnf_441{width:20px;height:20px;font-size:14px;opacity:1}._filePreviewChip_rvhnf_476{padding:8px 12px;gap:8px;border-radius:10px;max-width:240px}._filePreviewName_rvhnf_499{font-size:15px}._filePreviewClose_rvhnf_469{width:20px;height:20px;font-size:16px}}html.pad-mode ._chatInputBar_rvhnf_1{padding:8px max(16px,calc((100% - 1000px)/2)) 12px}html.pad-mode ._chatInputWrapper_rvhnf_9{border-radius:16px}html.pad-mode ._chatTextarea_rvhnf_24{min-height:37px;max-height:136px;padding:12px 14px 4px;font-size:14px;transition:height .2s ease}html.pad-mode ._ghostText_rvhnf_344{padding:12px 14px 4px;font-size:14px}html.pad-mode ._chatInputBottom_rvhnf_63{padding:4px 6px 6px;gap:4px}html.pad-mode ._plusBtn_rvhnf_89,html.pad-mode ._micBtn_rvhnf_90{width:28px;height:28px}html.pad-mode ._plusBtn_rvhnf_89 svg,html.pad-mode ._micBtn_rvhnf_90 svg{width:16px;height:16px}html.pad-mode ._interimPreview_rvhnf_180{left:14px;right:14px;bottom:4px;font-size:12px;max-height:40px;padding-top:8px}html.pad-mode ._plusMenu_rvhnf_208{bottom:36px}html.pad-mode ._plusMenuItem_rvhnf_221{padding:8px 12px;font-size:13px}html.pad-mode ._chatInputHint_rvhnf_293{font-size:11px}html.pad-mode ._sendBtn_rvhnf_318{width:28px;height:28px}html.pad-mode ._sendBtn_rvhnf_318 svg{width:16px;height:16px}html.pad-mode ._imagePreviewStrip_rvhnf_393{gap:8px;padding:8px 14px 0}html.pad-mode ._imagePreviewItem_rvhnf_405{width:48px;height:48px;border-radius:6px}html.pad-mode ._imagePreviewRemove_rvhnf_441{width:16px;height:16px;font-size:12px;opacity:0}html.pad-mode ._filePreviewChip_rvhnf_476{padding:6px 10px;gap:6px;border-radius:8px;max-width:200px}html.pad-mode ._filePreviewName_rvhnf_499{font-size:12px}html.pad-mode ._filePreviewClose_rvhnf_469{width:16px;height:16px;font-size:12px}._sendBtnWrap_rvhnf_665{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_m6o6i_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_m6o6i_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_m6o6i_37{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;width:100%}._header_m6o6i_45{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 8px}._title_m6o6i_52{font-size:16px;font-weight:600;color:var(--text-primary)}._closeBtn_m6o6i_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_m6o6i_58:hover{background:var(--bg-surface);color:var(--text-secondary)}._headerActions_m6o6i_76{display:flex;align-items:center;gap:4px}._customWrap_m6o6i_83{position:relative;display:inline-flex;align-items:center;flex-shrink:0}._customTitle_m6o6i_90{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._editPencil_m6o6i_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_m6o6i_83:hover ._editPencil_m6o6i_97{opacity:1}._editPencil_m6o6i_97:hover{color:var(--color-primary);border-color:var(--color-primary)}@media(max-width:768px){._editPencil_m6o6i_97{opacity:1}}._variantRow_m6o6i_134{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_m6o6i_134::-webkit-scrollbar{display:none}._roleBtn_m6o6i_151{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_m6o6i_151:hover{border-color:var(--color-primary);color:var(--color-primary)}._roleBtn_m6o6i_151._roleBtnActive_m6o6i_180{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_m6o6i_134>._roleBtn_m6o6i_151._roleBtnActive_m6o6i_180,._customWrap_m6o6i_83:has(>._roleBtn_m6o6i_151._roleBtnActive_m6o6i_180){position:sticky;left:0;right:0;z-index:2}[data-theme=light] ._textareaWrap_m6o6i_23{box-shadow:0 3px 8px #00000014}[data-theme=light] ._roleBtnActive_m6o6i_180{box-shadow:0 -3px 8px #0000000f}._addExpertBtn_m6o6i_229{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_m6o6i_229:hover{color:var(--color-primary);background:var(--bg-surface)}[data-theme=light] ._addExpertBtn_m6o6i_229{color:var(--text-secondary)}._fileList_m6o6i_265{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;max-height:80px;overflow-y:auto;flex-shrink:0}._fileChip_m6o6i_280{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_m6o6i_280:hover{border-color:var(--color-primary-pale)}._fileChip_m6o6i_280 svg{flex-shrink:0}._fileName_m6o6i_303{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}._fileRemove_m6o6i_310{flex-shrink:0;cursor:pointer;color:var(--text-disabled)}._fileRemove_m6o6i_310:hover{color:var(--text-primary)}._imageItem_m6o6i_320{position:relative;width:48px;height:48px;border-radius:6px;overflow:hidden;border:1px solid var(--border-primary);transition:border-color .15s}._imageItem_m6o6i_320:hover{border-color:var(--color-primary-pale)}._imageThumb_m6o6i_334{width:100%;height:100%;object-fit:cover;cursor:pointer}._imageRemove_m6o6i_341{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_m6o6i_320:hover ._imageRemove_m6o6i_341{opacity:1}@media(hover:none){._imageRemove_m6o6i_341,._fileRemove_m6o6i_310{opacity:1;min-width:22px;min-height:22px}}._textareaWrap_m6o6i_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_m6o6i_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_m6o6i_23:focus{border-color:var(--color-primary-pale)}._resizeHandle_m6o6i_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_m6o6i_33 svg{width:100%;height:100%;display:block}._resizeHandle_m6o6i_33:hover,._resizeHandle_m6o6i_33:active{opacity:1}.pad-mode ._resizeHandle_m6o6i_33{width:22px;height:22px;top:8px;left:8px}._textarea_m6o6i_23::placeholder{color:var(--text-disabled)}._footer_m6o6i_461{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px}._sendBtn_m6o6i_468{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_m6o6i_468:hover{opacity:.85}._sendBtn_m6o6i_468:disabled{opacity:.4;cursor:not-allowed}._uploadBtn_m6o6i_490{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_m6o6i_490:hover{background:var(--bg-surface);color:var(--text-primary);border-color:var(--text-disabled)}@media(max-width:768px){._backdrop_m6o6i_1{zoom:1.4}}html.pad-mode ._backdrop_m6o6i_1{zoom:1}._centerEmpty_1098c_1{display:flex;align-items:center;justify-content:center;height:100%}._container_1098c_8{flex:1;overflow-x:hidden;overflow-y:auto;padding:16px 0;display:flex;flex-direction:column;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._container_1098c_8>*{max-width:1400px;margin-left:auto;margin-right:auto;width:100%;box-sizing:border-box}._mobileVirtuoso_1098c_29{flex:1;min-height:0}._sessionDividerText_1098c_34{font-size:11px;color:var(--text-disabled)}._lastResponseLabel_1098c_39{font-size:11px}._splitContainer_1098c_43{display:flex;flex-direction:row;height:100%;overflow:hidden}._chatSection_1098c_50{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}._vResizer_1098c_58{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_1098c_58:hover{background:var(--border-secondary)}._terminalToggle_1098c_72{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_1098c_72:hover{background:var(--overlay-light-medium);color:var(--text-tertiary)}._messageListWrap_1098c_95{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}._stickyBottomBtn_1098c_103{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_1098c_103 span{background:var(--bg-sticky-btn);padding:2px 10px;border-radius:10px}._loadingPet_1098c_130{width:48px;height:48px;image-rendering:pixelated}._stickyBottomBtn_1098c_103:hover{color:var(--text-white);background:none}@media(max-width:768px){._stickyBottomBtn_1098c_103{right:auto;left:0;gap:4px;padding:16px 18px;font-size:24px}._stickyBottomBtn_1098c_103 span{padding:4px 20px;border-radius:20px}._stickyBottomBtn_1098c_103 svg{width:28px;height:28px}}html.pad-mode ._stickyBottomBtn_1098c_103{right:0;left:auto;padding:8px 18px;font-size:12px}html.pad-mode ._stickyBottomBtn_1098c_103 span{padding:2px 10px;border-radius:10px}html.pad-mode ._stickyBottomBtn_1098c_103 svg{width:auto;height:auto}._loadMoreWrap_1098c_164{display:flex;justify-content:center;padding:12px 0 4px}._loadMoreBtn_1098c_170{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_1098c_170:hover{background:var(--overlay-light-medium);color:var(--text-secondary)}._navSidebar_1098c_186{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_1098c_186{display:none}}._navBtn_1098c_203{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_1098c_203:hover{color:var(--text-secondary);background:var(--bg-elevated)}._navBtnActive_1098c_223{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_1098c_238{width:60%;height:0;border:0;border-top:1px dashed var(--border-primary);margin:6px auto}._navBtnActive_1098c_223:hover{background:var(--color-primary-bg-medium);color:var(--color-info-light)}._navAvatarImg_1098c_251{width:19px;height:19px;border-radius:50%;object-fit:cover}._userPromptNavWrap_1098c_258{display:flex;flex-direction:column;min-width:200px;max-width:360px;max-height:calc(100vh - 48px)}._userPromptNavTitle_1098c_267{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_1098c_276{overflow-y:auto;overflow-x:hidden;flex:1 1 auto;min-height:0}._userPromptNavItem_1098c_283{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_1098c_295{flex:0 0 auto;font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.7}._userPromptNavText_1098c_303{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._userPromptNavItem_1098c_283:hover{background:var(--bg-surface);color:var(--text-white)}._userPromptNavItem_1098c_283:last-child{border-bottom:none}._userPromptNavSessionSep_1098c_321{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_1098c_321:before,._userPromptNavSessionSep_1098c_321:after{content:"";flex:1 1 auto;border-top:1px solid var(--border-secondary)}._userPromptNavItem_1098c_283:has(+._userPromptNavSessionSep_1098c_321){border-bottom:none}._terminalPanelWrap_1098c_343{flex-shrink:0;min-width:200px;min-height:0;overflow:hidden;display:flex;flex-direction:column}._navSidebarContent_1098c_354{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}._innerSplitArea_1098c_362{flex:1;display:flex;min-width:0;position:relative}._chatSectionFlex_1098c_369{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden;position:relative}._inputStack_1098c_380{position:relative;flex-shrink:0;background:var(--bg-input-strip)}._overlayPanel_1098c_386{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column}._streamingSpinnerWrap_1098c_394{display:flex;justify-content:center;padding:4px 0;transition:opacity .5s ease-out;user-select:none;-webkit-user-select:none;pointer-events:none}._streamingSpinnerHidden_1098c_405{opacity:0}._sessionDivider_1098c_34{border-color:var(--border-secondary);margin:16px 0}._loadMoreBtnLoading_1098c_414{cursor:default;opacity:.7;display:inline-flex;align-items:center;gap:8px}._loadMoreSpinner_1098c_422{width:14px;height:14px;border:2px solid var(--overlay-light-medium);border-top-color:var(--color-primary-pale);border-radius:50%;animation:_loadMoreSpin_1098c_422 .8s linear infinite;flex-shrink:0}@keyframes _loadMoreSpin_1098c_422{to{transform:rotate(360deg)}}._lastResponseDivider_1098c_436{border-color:var(--border-primary);margin:8px 0}._lastResponseDivider_1098c_436._lastResponseDivider_1098c_436:before,._lastResponseDivider_1098c_436._lastResponseDivider_1098c_436:after{border-block-start-style:dashed}._hideLastResponseDivider_1098c_451 ._lastResponseDivider_1098c_436{display:none}._partialDataBanner_1098c_456{font-size:12px;color:var(--text-muted);background:var(--bg-surface);border:1px solid var(--border-secondary);border-radius:6px;padding:6px 12px;margin:4px 16px 8px}._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_1ocog_3{max-width:800px}._cacheScrollArea_1ocog_7{max-height:calc(100vh - 140px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}._cacheScrollAreaInDrawer_1ocog_19{max-height:none;overflow-y:visible}._cachePopoverTitle_1ocog_24{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--text-primary)}._cachePopoverHeader_1ocog_33{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-secondary)}._cacheSection_1ocog_39{margin-bottom:10px}._cacheSectionBordered_1ocog_43{border:1px solid var(--border-secondary);border-radius:6px;padding:8px 10px;background:var(--bg-container)}._cacheSectionBordered_1ocog_43>._cacheSectionLabel_1ocog_50,._cacheSectionBordered_1ocog_43>._cacheSectionHeader_1ocog_51{border-bottom:1px solid var(--border-secondary);padding-bottom:6px;margin-bottom:8px}._cacheSectionHeader_1ocog_51{display:flex;align-items:center;justify-content:space-between;gap:6px}._cacheSectionHeader_1ocog_51>._cacheSectionLabel_1ocog_50{margin-bottom:0}._cacheSectionLabel_1ocog_50{font-size:12px;font-weight:600;color:var(--text-light);margin-bottom:4px;padding:4px 0;-webkit-user-select:none;user-select:none}._memoryLabelWithIcon_1ocog_78{display:inline-flex;align-items:center;gap:6px}._toolChipGridVertical_1ocog_84{display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:2px 0 6px}._claudeMdChip_1ocog_92{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_1ocog_92:hover{background:var(--bg-hover, var(--bg-surface));color:var(--text-primary)}._cacheChipBadge_1ocog_119{font-size:10px;line-height:14px;padding:0 5px;border-radius:2px;font-weight:500;letter-spacing:.2px}._cacheChipBadgeProject_1ocog_128{background:var(--color-primary-bg-light);color:var(--color-primary-light)}._cacheChipBadgeGlobal_1ocog_133{background:var(--color-success-bg-light);color:var(--color-success-light)}._chipDetailBody_1ocog_138{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_1ocog_150{color:var(--text-muted);font-style:italic}._mcpServerGroup_1ocog_155{margin-bottom:6px}._mcpServerName_1ocog_159{font-size:11px;font-weight:600;color:var(--text-muted);padding:2px 0 6px 2px}._cacheUsageLabel_1ocog_166{font-size:13px;color:var(--text-primary);font-weight:400;margin-right:4px}._cachePercent_1ocog_173{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}._cacheCalibrationLabel_1ocog_180{margin-left:auto;color:var(--text-tertiary);font-size:12px;font-weight:400;white-space:nowrap}._calibrationSelect_1ocog_188{width:80px;flex-shrink:0}._memoryStatus_1ocog_193{padding:6px 4px}._memoryDirHint_1ocog_197{font-family:var(--font-mono);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_1bvtq_3{margin-bottom:12px;font-size:12px;color:var(--text-tertiary)}._pluginDirPath_1bvtq_9{font-family:var(--font-mono);color:var(--text-light);cursor:pointer;padding:1px 4px;border-radius:3px;background:var(--bg-elevated)}._pluginDirPath_1bvtq_9:hover{color:var(--color-primary-light)}._pluginList_1bvtq_22{display:flex;flex-direction:column;gap:8px}._pluginItem_1bvtq_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_1bvtq_38{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}._pluginName_1bvtq_46{font-size:14px;color:var(--text-primary);font-weight:500}._pluginFile_1bvtq_52{font-size:12px;color:var(--text-muted);font-family:var(--font-mono)}._pluginHooks_1bvtq_58{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}._pluginHookTag_1bvtq_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_1bvtq_74{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}._pluginEmpty_1bvtq_82{text-align:center;padding:32px 0;color:var(--text-tertiary)}._pluginModalFooter_1bvtq_88{display:flex;justify-content:space-between;width:100%}._pluginModalFooterLeft_1bvtq_94{display:flex;gap:8px}._pluginDirLabel_1bvtq_99{color:var(--text-tertiary)}._pluginEmptyTitle_1bvtq_103{font-size:14px;margin-bottom:4px}._pluginEmptyHint_1bvtq_108{font-size:12px;color:var(--text-muted)}._cdnUrlLabel_1bvtq_113{margin-bottom:6px;color:var(--text-secondary);font-size:13px}._cdnInput_1bvtq_119{background:var(--bg-elevated);border-color:var(--border-secondary);color:var(--text-primary)}._pluginModalScroll_1bvtq_125{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}._pluginModalFooterBar_1bvtq_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_dzt9t_4{width:100%}._proxyWarning_dzt9t_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_dzt9t_18{display:flex;flex-direction:column;gap:4px}._proxyItem_dzt9t_24{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-radius:6px;border:1px solid transparent;transition:background .15s}._proxyItem_dzt9t_24:hover{background:var(--bg-elevated)}._proxyItemActive_dzt9t_38{background:var(--color-selection-bg);border-color:var(--color-primary)}._proxyItemMain_dzt9t_43{display:flex;align-items:center;cursor:pointer;flex:1;min-width:0}._proxyItemInfo_dzt9t_51{display:flex;flex-direction:column;min-width:0}._proxyItemNameRow_dzt9t_57{display:flex;align-items:center;gap:6px}._proxyItemName_dzt9t_57{font-size:13px;color:var(--text-primary);font-weight:500}._proxyItemDetail_dzt9t_69{font-size:11px;color:var(--text-gray);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._proxyBuiltinTag_dzt9t_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_dzt9t_88{display:flex;gap:2px;flex-shrink:0}._proxyEditForm_dzt9t_94{margin-top:12px;padding:12px;border-radius:6px;background:var(--bg-elevated);border:1px solid var(--border-secondary)}._proxyEditRow_dzt9t_102{margin-bottom:8px}._proxyEditRow_dzt9t_102 label{display:block;font-size:12px;color:var(--text-tertiary);margin-bottom:4px}._proxyRequired_dzt9t_113{color:var(--color-error);margin-left:2px}._proxyEditHint_dzt9t_118{font-size:11px;color:var(--text-tertiary);line-height:1.5;margin:-2px 0 8px}._proxyEditDivider_dzt9t_125{border-top:1px dashed var(--border-secondary);margin:10px 0 8px}._proxyEditBtns_dzt9t_130{display:flex;gap:8px;margin-top:12px}._proxyModalScroll_dzt9t_136{flex:1;min-height:0;overflow:auto;padding:12px 16px 0}
package/dist/index.html CHANGED
@@ -21,11 +21,11 @@
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-BXWDyOHS.js"></script>
24
+ <script type="module" crossorigin src="./assets/index-4wxokghI.js"></script>
25
25
  <link rel="modulepreload" crossorigin href="./assets/vendor-antd-DADYo_zg.js">
26
26
  <link rel="modulepreload" crossorigin href="./assets/vendor-codemirror-tF6HNoR6.js">
27
27
  <link rel="modulepreload" crossorigin href="./assets/vendor-mdxeditor-CFAmRN3Y.js">
28
- <link rel="stylesheet" crossorigin href="./assets/index-CGSyt5Ow.css">
28
+ <link rel="stylesheet" crossorigin href="./assets/index-D3GEPgde.css">
29
29
  </head>
30
30
  <body>
31
31
  <!-- Pre-hydration splash: no SPA CSS yet — keep font-family in sync with --font-ui in src/global.css -->
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cc-viewer",
3
- "version": "1.7.15",
3
+ "version": "1.7.18",
4
4
  "description": "Claude Code logging, visualization, and management toolkit — launch a web viewer alongside Claude Code with full request/response tracing, proxy, and mobile support",
5
5
  "license": "MIT",
6
6
  "main": "server.js",
@@ -241,13 +241,36 @@ export function deleteModelPrompt(dir, name) {
241
241
  * @param {Array<{ dir: string, scope: 'workspace'|'global' }>} candidates
242
242
  * @returns {{ path: string, fileName: string, name: string, mode: 'override'|'append', scope: 'workspace'|'global' } | null}
243
243
  */
244
+ // 模型 id 别名表:第三方代理常把模型名归一化成不带厂商前缀的简写(kimi profile 把
245
+ // `k3[1m]` 剥后缀后得到裸 `k3`),而条目名通常带前缀(KIMI / KIMI-K3)。别名在子串
246
+ // 匹配前把解析名展开成「所有等价拼写」,任一变体命中即算命中。key 与变体都是小写
247
+ // 完整词(精确等值,非子串),只在解析名**恰好等于** key 时展开,避免误放大。
248
+ // Model id aliases: third-party proxies often normalize model names to a bare
249
+ // shorthand (the kimi profile strips `k3[1m]` → `k3`), while entry names carry the
250
+ // vendor prefix (KIMI / KIMI-K3). Aliases expand the resolved id into every
251
+ // equivalent spelling before substring matching. Keys and variants are lowercase
252
+ // full words (exact equality, not substrings), so expansion only fires when the
253
+ // resolved id IS the bare shorthand — no accidental widening.
254
+ const MODEL_ID_ALIASES = {
255
+ k3: ['k3', 'kimi-k3', 'kimi'],
256
+ };
257
+
258
+ // 展开模型 id 的全部等价小写拼写(无别名时就是单元素数组)。
259
+ // Expand a model id into every equivalent lowercase spelling.
260
+ function modelIdVariants(id) {
261
+ return MODEL_ID_ALIASES[id] || [id];
262
+ }
263
+
244
264
  export function matchModelPrompt(modelId, candidates) {
245
265
  if (!modelId || typeof modelId !== 'string') return null;
246
266
  if (!Array.isArray(candidates)) return null;
247
- const id = modelId.toLowerCase();
267
+ const variants = modelIdVariants(modelId.toLowerCase());
248
268
  for (const cand of candidates) {
249
269
  if (!cand || !cand.dir) continue;
250
- const hits = listModelPrompts(cand.dir).filter((e) => id.includes(e.name.toLowerCase()));
270
+ const hits = listModelPrompts(cand.dir).filter((e) => {
271
+ const entryName = e.name.toLowerCase();
272
+ return variants.some((v) => v.includes(entryName));
273
+ });
251
274
  if (!hits.length) continue;
252
275
  hits.sort((a, b) => b.name.length - a.name.length || a.name.localeCompare(b.name));
253
276
  const e = hits[0];
@@ -34,6 +34,7 @@ import { isMainAgentRequest } from '../interceptor-core.js';
34
34
  import { readSession } from './replay.js';
35
35
  import { iterateJsonlLines } from './jsonl-read.js';
36
36
  import { isDiscardableSession } from './session-select.js';
37
+ import { LIVE_SESSION_MTIME_MS } from '../log-management.js';
37
38
  import { blobPath, isSupportedWireFormat } from './layout.js';
38
39
  import { SingleFlight } from './singleflight.js';
39
40
  import { listV2Sessions } from './session-list.js';
@@ -183,6 +184,29 @@ export class SessionSynthesizer {
183
184
  this._leader = opts.teammateOf || this._meta.leader || null;
184
185
  this._loadBlob = makeBlobLoader({ blobsDir: join(sessionDir, 'blobs') }, this.sessionId);
185
186
  this.unsupported = false;
187
+ // Liveness gate — KEEP IN SYNC with log-management.js deleteLogFiles
188
+ // (same pid(0)-probe + EPERM + LIVE_SESSION_MTIME_MS mtime triple; the
189
+ // constant is imported here so only the ordering can drift). Cold reads
190
+ // finalize crash orphans as completed deltas ONLY when the session is dead.
191
+ // A live writer may still emit an orphan's done later — its completed twin
192
+ // would then be replayed by the client's seq guard as stale (_staleReorder)
193
+ // and the tail of the chat would vanish (cold-read + live-feed race).
194
+ this._sessionLive = false;
195
+ try {
196
+ const meta = this._meta;
197
+ if (meta && typeof meta.pid === 'number' && meta.pid !== process.pid) {
198
+ try { process.kill(meta.pid, 0); this._sessionLive = true; } catch (err) {
199
+ // EPERM = the pid exists under another user — that IS live.
200
+ if (err && err.code === 'EPERM') this._sessionLive = true;
201
+ }
202
+ }
203
+ } catch { /* unreadable meta — fall through to the mtime guard */ }
204
+ if (!this._sessionLive) {
205
+ try {
206
+ const jStat = statSync(join(sessionDir, 'journal.jsonl'));
207
+ if (this._now() - jStat.mtimeMs < LIVE_SESSION_MTIME_MS) this._sessionLive = true;
208
+ } catch { /* no journal — nothing fresh to protect */ }
209
+ }
186
210
  if (meta && meta.wireFormat != null && !isSupportedWireFormat(meta.wireFormat)) {
187
211
  this._markUnsupported(meta.wireFormat);
188
212
  }
@@ -445,7 +469,11 @@ export class SessionSynthesizer {
445
469
  isHeartbeat: HEARTBEAT_URL_RE.test(req.url || ''),
446
470
  isCountTokens: COUNT_TOKENS_URL_RE.test(req.url || ''),
447
471
  mainAgent: false, // finalized below once messages are attached
448
- ...(isTeammateEntry && { teammate: leader.agentName || true, ...(leader.teamName && { teamName: leader.teamName }) }),
472
+ ...(isTeammateEntry && { teammate: leader.agentName || req.agent?.agentName || true, ...(leader.teamName && { teamName: leader.teamName }) }),
473
+ // Wire agent identity persisted by the writer (see agent-id.js) — the
474
+ // client uses req.agent.agentName as the display name when the heuristic
475
+ // registry has nothing (native teammate, cold load).
476
+ ...(req.agent && { agent: req.agent }),
449
477
  ...(req.proxy && { proxyProfile: req.proxy.profile, ...(req.proxy.url && { proxyUrl: req.proxy.url }) }),
450
478
  };
451
479
 
@@ -508,9 +536,23 @@ export class SessionSynthesizer {
508
536
 
509
537
  if (this._dones.has(seq)) {
510
538
  this._tryComplete(seq);
539
+ } else if (this._deferMs === 0 && !this._sessionLive) {
540
+ // Cold read of a DEAD session: the orphan is definitively terminal. Emit
541
+ // it as a completed delta (no inProgress / requestId — the exact shape
542
+ // _complete produces) so the client batch reconstructor accumulates its
543
+ // message slice: inProgress rows are skipped by the reconstructor, which
544
+ // would otherwise drop the slice and fail every later completed entry's
545
+ // _totalMessageCount integrity check — blanking the whole chat.
546
+ entry.response = { body: null }; // mirrors _complete's no-response branch
547
+ // Push the SAME item reference (phase aside): _complete's dedup splice
548
+ // (this._out.indexOf(item)) depends on the queued object identity — a
549
+ // spread copy would dodge it and the twin completed frame would double.
550
+ item.phase = 'completed';
551
+ this._out.push(item);
511
552
  } else {
512
553
  // req without done — in-flight or the process died (spec §4). This IS the
513
- // v1 placeholder, so it wears the same flags.
554
+ // v1 placeholder, so it wears the same flags. Live reads keep it so the
555
+ // incremental reconstructor can render the in-flight turn as it streams.
514
556
  entry.inProgress = true;
515
557
  entry.requestId = req.rid || `${seq}`;
516
558
  this._out.push(item);
@@ -0,0 +1,55 @@
1
+ // Agent identity parser — teammate/subagent names from the wire header.
2
+ //
3
+ // Claude Code 2.x sends an `x-claude-code-agent-id` request header on every
4
+ // sub-agent (teammate or subagent) request. Two shapes appear in real data:
5
+ // - named teammate: `frontend-reviewer@session-17e1f37a-...`
6
+ // - anonymous subagent: `a7eea0a140349f80d` (16-hex agent id, no @)
7
+ // The header is absent on main-agent requests, so its presence alone marks a
8
+ // sub-agent stream. We persist the NAME so display no longer depends on the
9
+ // frontend's window-scoped heuristic registry (resolveTeammateNames), which
10
+ // loses names when the lead's Agent tool_use falls outside the current window.
11
+
12
+ const ANON_RE = /^[0-9a-f]{8,64}$/i; // pure hex id, any plausible length
13
+ const MAX_NAME_LEN = 64;
14
+
15
+ /**
16
+ * Parse an `x-claude-code-agent-id` header value.
17
+ *
18
+ * @param {string|null|undefined} header
19
+ * @returns {{agentName: string|null, named: boolean}|null}
20
+ * - named teammate: {agentName, named: true}
21
+ * - anonymous agent: {agentName: null, named: false}
22
+ * - null when the header is missing/empty or its shape is not an agent id
23
+ * (never fabricate a name from an unrecognized value).
24
+ */
25
+ export function parseAgentId(header) {
26
+ if (typeof header !== 'string') return null;
27
+ const h = header.trim();
28
+ if (h.length === 0) return null;
29
+ const at = h.indexOf('@');
30
+ if (at === -1) {
31
+ // Anonymous: a bare hex agent id. Anything else is not an agent id — do
32
+ // not guess.
33
+ return ANON_RE.test(h) ? { agentName: null, named: false } : null;
34
+ }
35
+ const name = h.slice(0, at).trim();
36
+ // The @-suffix is deliberately NOT validated (real shapes include
37
+ // `session-<uuid>` and possibly plain uuids) — presence of @ + a non-hex
38
+ // prefix is enough to treat it as a named agent. A hex prefix is treated as
39
+ // anonymous (guards against `<uuid>@session-...` being misread as a name).
40
+ if (name.length === 0) return null;
41
+ if (ANON_RE.test(name)) return { agentName: null, named: false };
42
+ return { agentName: name.slice(0, MAX_NAME_LEN), named: true };
43
+ }
44
+
45
+ /** Case-insensitive header lookup (undici folds to lowercase; plain objects
46
+ * may keep the original casing). */
47
+ export function findHeader(headers, key) {
48
+ if (!headers || typeof headers !== 'object') return undefined;
49
+ if (Object.prototype.hasOwnProperty.call(headers, key)) return headers[key];
50
+ const lower = key.toLowerCase();
51
+ for (const k of Object.keys(headers)) {
52
+ if (k.toLowerCase() === lower) return headers[k];
53
+ }
54
+ return undefined;
55
+ }
@@ -32,7 +32,7 @@ import { isDiscardableSession } from './session-select.js';
32
32
  import { isForeignLiveOwned } from './session-owner.js';
33
33
  import { isConvertRunning } from './convert-manager.js';
34
34
  import { computeCacheLoss } from './meta-rows.js';
35
- import { classifyRequest } from '../../../src/utils/requestType.js';
35
+ import { classifyRequest, withAgentNameSubType } from '../../../src/utils/requestType.js';
36
36
 
37
37
  const FSWATCH_DEBOUNCE_MS = 80;
38
38
  const SAFETY_POLL_MS = 5000;
@@ -679,6 +679,9 @@ export class V2LiveFeed {
679
679
  kind: item.kind || (item.isMain ? 'main' : (parsed.teammate ? 'teammate' : 'sub')),
680
680
  mainAgent: item.isMain === true,
681
681
  teammate: parsed.teammate || undefined,
682
+ // Wire agent identity (x-claude-code-agent-id) — display name for native
683
+ // teammates (see agent-id.js).
684
+ agent: parsed.agent,
682
685
  model: parsed.body?.model,
683
686
  proxyUrl: parsed.proxyUrl || undefined,
684
687
  status: parsed.response?.status,
@@ -698,8 +701,7 @@ export class V2LiveFeed {
698
701
  _emitRow(cur, item, parsed) {
699
702
  const row = this._rowFrom(item, parsed);
700
703
  try {
701
- const tag = classifyRequest(parsed, null);
702
- row.typeTag = tag ? { type: tag.type, subType: tag.subType ?? null } : null;
704
+ row.typeTag = withAgentNameSubType(classifyRequest(parsed, null), parsed);
703
705
  } catch (err) { reportSwallowed('v2-live.row-classify', err); }
704
706
  if (row.mainAgent && !row.inProgress) {
705
707
  const u = parsed.response?.body?.usage;
@@ -714,8 +716,7 @@ export class V2LiveFeed {
714
716
  const prev = cur._v3Last;
715
717
  if (prev && (prev.row.sessionId !== row.sessionId || prev.row.seq !== row.seq)) {
716
718
  try {
717
- const tag = classifyRequest(prev.entry, parsed);
718
- const corrected = tag ? { type: tag.type, subType: tag.subType ?? null } : null;
719
+ const corrected = withAgentNameSubType(classifyRequest(prev.entry, parsed), prev.entry);
719
720
  if (JSON.stringify(corrected) !== JSON.stringify(prev.row.typeTag)) {
720
721
  prev.row.typeTag = corrected;
721
722
  sendEventToClients(this._clients, 'v2_requests_delta', prev.row);
@@ -22,7 +22,7 @@ import { iterateJsonlLines } from './jsonl-read.js';
22
22
  import { iterateV2Items, findTeammateSessionDirs } from './adapter.js';
23
23
  import { SingleFlight } from './singleflight.js';
24
24
  import { reportSwallowed } from '../error-report.js';
25
- import { classifyRequest } from '../../../src/utils/requestType.js';
25
+ import { classifyRequest, withAgentNameSubType } from '../../../src/utils/requestType.js';
26
26
 
27
27
  // KEEP IN SYNC: server/lib/v2/adapter.js itemKey — (sessionId, seq) identity.
28
28
  const itemKey = (sessionId, seq) => `${sessionId}\x00${seq}`;
@@ -113,6 +113,9 @@ function foldDir(dir) {
113
113
  mainAgent: r.kind === 'main' && !isTeammateDir,
114
114
  // v1 entry contract (adapter.js:427): teammate = agentName string | true
115
115
  teammate: isTeammateDir ? ((meta.leader && meta.leader.agentName) || true) : undefined,
116
+ // Wire agent identity (x-claude-code-agent-id) persisted on the journal
117
+ // req line — the display name for native teammates (see agent-id.js).
118
+ agent: r.agent,
116
119
  model: r.model,
117
120
  proxyUrl: r.proxy && r.proxy.url ? r.proxy.url : undefined,
118
121
  status: d && typeof d.http === 'number' ? d.http : undefined,
@@ -318,8 +321,7 @@ async function attachBodyFields(sessionDir, rows) {
318
321
  const finish = (slot, nextEntry) => {
319
322
  const { row, entry } = slot;
320
323
  try {
321
- const tag = classifyRequest(entry, nextEntry);
322
- row.typeTag = tag ? { type: tag.type, subType: tag.subType ?? null } : null;
324
+ row.typeTag = withAgentNameSubType(classifyRequest(entry, nextEntry), entry);
323
325
  } catch (err) {
324
326
  // Diagnostic-worthy (a throw silently mis-tags the row; the live path
325
327
  // reports the same failure) — CLAUDE.md swallow rule.
@@ -27,6 +27,7 @@ import { BlobStore } from './blob-store.js';
27
27
  import { Journal } from './journal.js';
28
28
  import { ConversationStore } from './conversation-store.js';
29
29
  import { parseUserId, classifyKind, ConvResolver } from './identity.js';
30
+ import { parseAgentId, findHeader } from './agent-id.js';
30
31
  import { extractUserTexts, flattenPromptText, isSuggestionMode, readPromptsHead } from '../user-prompt-extract.js';
31
32
 
32
33
  // Below this many free bytes on the log volume, v2 skips writing and reports
@@ -505,6 +506,10 @@ export class V2Writer {
505
506
  }
506
507
 
507
508
  // 3. Journal req line — LAST, so it never references missing content.
509
+ // Persist the wire agent identity (x-claude-code-agent-id) so teammate
510
+ // names survive cold reads — display no longer depends on the frontend's
511
+ // window-scoped name registry (see agent-id.js).
512
+ const agent = parseAgentId(findHeader(entry.headers, 'x-claude-code-agent-id'));
508
513
  s.journal.writeReq({
509
514
  seq,
510
515
  rid,
@@ -517,6 +522,7 @@ export class V2Writer {
517
522
  ...(entry.body && entry.body.model && { model: entry.body.model }),
518
523
  ...(entry.isStream && { isStream: true }),
519
524
  ...(entry.headers && { headers: entry.headers }),
525
+ ...(agent && { agent }),
520
526
  ...(params && { params }),
521
527
  ...((toolsRef || sysRef) && { blobs: { ...(toolsRef && { tools: toolsRef }), ...(sysRef && { sys: sysRef }) } }),
522
528
  ...(convResult && { msgFrom: convResult.msgFrom, msgTo: convResult.msgTo }),