@cerbur/clutch-dsh-worktree 0.1.28 → 0.1.29

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.
Files changed (41) hide show
  1. package/README.md +17 -2
  2. package/README.zh.md +14 -2
  3. package/lib/client/dsh-slot-contract.d.ts +9 -1
  4. package/lib/client/dsh-slot-contract.d.ts.map +1 -1
  5. package/lib/client/entry.d.ts.map +1 -1
  6. package/lib/client/entry.js +9 -6
  7. package/lib/client/entry.js.map +1 -1
  8. package/lib/client/overlay/WorktreeOverlay.d.ts +5 -1
  9. package/lib/client/overlay/WorktreeOverlay.d.ts.map +1 -1
  10. package/lib/client/overlay/WorktreeOverlay.js +5 -3
  11. package/lib/client/overlay/WorktreeOverlay.js.map +1 -1
  12. package/lib/client/surface/components/SessionActivityBell.d.ts.map +1 -1
  13. package/lib/client/surface/components/SessionActivityBell.js +8 -14
  14. package/lib/client/surface/components/SessionActivityBell.js.map +1 -1
  15. package/lib/client/surface/components/SurfaceContent.d.ts +1 -1
  16. package/lib/client/surface/components/SurfaceContent.d.ts.map +1 -1
  17. package/lib/client/surface/components/SurfaceContent.js +6 -0
  18. package/lib/client/surface/components/SurfaceContent.js.map +1 -1
  19. package/lib/client/surface/components/SurfaceHeader.js +1 -1
  20. package/lib/client/surface/components/SurfaceHeader.js.map +1 -1
  21. package/lib/client/view/sidebar-workspace-slot.d.ts +3 -1
  22. package/lib/client/view/sidebar-workspace-slot.d.ts.map +1 -1
  23. package/lib/client/view/sidebar-workspace-slot.js +8 -4
  24. package/lib/client/view/sidebar-workspace-slot.js.map +1 -1
  25. package/lib/client/view/workspace-directory-flow.d.ts +20 -0
  26. package/lib/client/view/workspace-directory-flow.d.ts.map +1 -0
  27. package/lib/client/view/workspace-directory-flow.js +85 -0
  28. package/lib/client/view/workspace-directory-flow.js.map +1 -0
  29. package/lib/client.js +198 -44
  30. package/lib/client.js.map +1 -1
  31. package/lib/host/native-worktree-cleanup.d.ts +9 -0
  32. package/lib/host/native-worktree-cleanup.d.ts.map +1 -0
  33. package/lib/host/native-worktree-cleanup.js +132 -0
  34. package/lib/host/native-worktree-cleanup.js.map +1 -0
  35. package/lib/host/service.d.ts.map +1 -1
  36. package/lib/host/service.js +7 -0
  37. package/lib/host/service.js.map +1 -1
  38. package/lib/typert.host.js +31 -31
  39. package/lib/typert.remote-client.d.ts.map +1 -1
  40. package/lib/typert.remote-client.js +31 -31
  41. package/package.json +51 -51
package/lib/client.js CHANGED
@@ -614,7 +614,7 @@ window.__ModuleLoader__.load({
614
614
  }
615
615
  var produce = new Immer2().produce;
616
616
  //#endregion
617
- //#region ../../node_modules/.pnpm/@deepseek-ai+dsh-client-store@0.2.2-rc.1_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-client-store/lib/index.js
617
+ //#region ../../node_modules/.pnpm/@deepseek-ai+dsh-client-store@0.2.2-rc.2_@deepseek-ai+cordis@4.1.0/node_modules/@deepseek-ai/dsh-client-store/lib/index.js
618
618
  /**
619
619
  * React-free snapshot store engine (zustand vanilla + immer + subscribeWithSelector +
620
620
  * rafFlush middleware + opt-in persist + dev freeze) plus the declarative
@@ -2892,7 +2892,7 @@ window.__ModuleLoader__.load({
2892
2892
  const IconSlidersTwoOutline16 = createDshIconAlias(exports$1, "IconSlidersTwoOutline16", "IconSlidersTwoOutlineRegular");
2893
2893
  const IconTrashOutline16 = createDshIconAlias(exports$1, "IconTrashOutline16", "IconTrashOutlineRegular");
2894
2894
  //#endregion
2895
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/context/worktree-context.css.mjs
2895
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/context/worktree-context.css.mjs
2896
2896
  const css$9 = ".-cerbur-clutch-dsh-worktree-headerContext {\n display: inline-flex;\n min-width: 0;\n height: 22px;\n align-items: center;\n gap: 4px;\n max-width: 180px;\n overflow: hidden;\n border-radius: 6px;\n padding: 0 2px 0 0;\n background: var(--dsw-alias-fill-tsp-secondary);\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-contextIcon {\n flex: none;\n opacity: 0.7;\n}\n\n.-cerbur-clutch-dsh-worktree-contextLabel {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-contextHoverTitle {\n max-width: 360px;\n color: var(--dsw-static-neutral-bluish-00);\n font-size: 14px;\n line-height: 20px;\n overflow-wrap: anywhere;\n white-space: normal;\n}\n\n.-cerbur-clutch-dsh-worktree-heroContextHost {\n position: absolute;\n z-index: 0;\n display: block;\n width: max-content;\n max-width: 260px;\n min-height: 22px;\n}\n\n.-cerbur-clutch-dsh-worktree-heroContext {\n display: inline-flex;\n box-sizing: border-box;\n max-width: 260px;\n min-height: 22px;\n align-items: center;\n overflow: hidden;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 999px;\n padding: 0 8px;\n background: var(--dsw-alias-bg-layer-1);\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n line-height: 20px;\n pointer-events: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n";
2897
2897
  const styleId$9 = "@cerbur/clutch-dsh-worktree/worktree-context.css";
2898
2898
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/worktree-context.css\"]") === null) {
@@ -2956,8 +2956,8 @@ window.__ModuleLoader__.load({
2956
2956
  globalSetViewMode?.(mode);
2957
2957
  }
2958
2958
  //#endregion
2959
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/worktree.css.mjs
2960
- const css$8 = ".-cerbur-clutch-dsh-worktree-action {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 8px;\n width: calc(100% + 4px);\n height: 42px;\n margin: 4px -2px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n padding: 0 10px 0 8px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-action:hover,\n.-cerbur-clutch-dsh-worktree-action[data-active='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-action[data-collapsed='true'] {\n width: 36px;\n height: 36px;\n margin: 8px 0 10px;\n justify-content: center;\n gap: 0;\n padding: 0;\n border-radius: 50%;\n}\n\n.-cerbur-clutch-dsh-worktree-actionLabel {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n height: 22px;\n overflow: hidden;\n font-weight: 400;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceSeat {\n display: flex;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-surface {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 0;\n overflow: hidden;\n min-height: 0;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n pointer-events: auto;\n transition: width var(--ds-transition-duration-slow) var(--ds-ease-in-out);\n}\n\n/* Fold state comes directly from the sidebar.-cerbur-clutch-dsh-worktree-workspaces owner. */\n.-cerbur-clutch-dsh-worktree-surface[data-collapsed='true'] {\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-motionExits {\n position: absolute;\n inset: 0;\n contain: strict;\n overflow: clip;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .-cerbur-clutch-dsh-worktree-surface {\n transition: none;\n }\n}\n\n.-cerbur-clutch-dsh-worktree-wideContent {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n}\n\n.-cerbur-clutch-dsh-worktree-surface[data-collapsed='true'] .-cerbur-clutch-dsh-worktree-wideContent {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationDialog {\n width: min(440px, 100%);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody {\n display: grid;\n min-width: 0;\n gap: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody .-cerbur-clutch-dsh-worktree-modalField {\n min-width: 0;\n gap: 8px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody .-cerbur-clutch-dsh-worktree-renameInput,\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody [data-single-select] > button {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n height: 40px;\n padding: 0 12px;\n border: 1px solid var(--dsw-alias-border-l3);\n font-size: 14px;\n line-height: 22px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody .-cerbur-clutch-dsh-worktree-renameInput:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTabs {\n display: flex;\n gap: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTab {\n border: 0;\n border-bottom: 2px solid transparent;\n padding: 4px 0 8px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTab[aria-selected='true'] {\n border-bottom-color: var(--dsw-alias-label-primary);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportCandidates {\n display: grid;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportError {\n display: grid;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton {\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-header {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: none;\n height: 36px;\n margin: 2px 0 4px;\n padding: 0 10px 0 4px;\n box-sizing: border-box;\n color: var(--dsw-alias-label-tertiary);\n}\n\n/* Activity range selector. Its tabs scroll horizontally instead of clipping\n labels, while the visible-range menu stays pinned at the right edge. */\n.-cerbur-clutch-dsh-worktree-activityBar {\n display: flex;\n align-items: center;\n gap: 4px;\n flex: none;\n padding: 0 10px 8px;\n box-sizing: border-box;\n border-bottom: 0.5px solid var(--dsw-alias-border-l1);\n}\n\n.-cerbur-clutch-dsh-worktree-activityTabs {\n display: flex;\n align-items: center;\n gap: 4px;\n flex: 1 1 auto;\n min-width: 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityTabs::-webkit-scrollbar {\n display: none;\n}\n\n/* Compact pinned trigger: it never widens the bar or competes with the active\n range pill, and it keeps the tabs as the only horizontally scrolling row. */\n.-cerbur-clutch-dsh-worktree-activityConfig {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-activityConfig:hover,\n.-cerbur-clutch-dsh-worktree-activityConfig[aria-expanded='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityConfig:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: 1px;\n}\n\n/* Checkbox rows in the pinned menu. They keep the menu open while toggling so\n several ranges can be shown or hidden in one visit. */\n.-cerbur-clutch-dsh-worktree-activityOption {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 30px;\n padding: 5px 8px;\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOption:hover:not(:disabled),\n.-cerbur-clutch-dsh-worktree-activityOption:focus-visible:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n outline: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOption:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionLabel {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOption[data-checked='true'] .-cerbur-clutch-dsh-worktree-activityOptionLabel {\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionCount {\n flex: 0 0 auto;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionCheck {\n display: inline-flex;\n flex: 0 0 14px;\n width: 14px;\n height: 14px;\n align-items: center;\n justify-content: center;\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionCheck svg {\n width: 14px;\n height: 14px;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegment {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n flex: 0 0 auto;\n padding: 3px 8px;\n border: 0;\n /* Explicit pill: the shared standard requires corner-shape with a full circle. */\n border-radius: 999px;\n corner-shape: round;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 11px;\n line-height: 1.4;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegment:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegment:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: 1px;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegmentActive,\n.-cerbur-clutch-dsh-worktree-activitySegmentActive:hover {\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-activityLabel {\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activityCount {\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegmentActive .-cerbur-clutch-dsh-worktree-activityCount {\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-sidebarTitle {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n opacity: 1;\n visibility: visible;\n transition:\n opacity 120ms var(--ds-ease-in-out),\n transform 180ms var(--ds-ease-in-out),\n visibility 0s linear;\n}\n\n.-cerbur-clutch-dsh-worktree-titleHidden {\n flex: 0 0 0px;\n max-width: 0;\n opacity: 0;\n transform: translateX(-4px);\n visibility: hidden;\n pointer-events: none;\n transition-delay: 0s, 0s, 180ms;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n width: 28px;\n height: 28px;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 16px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-modeButton[data-active='true'] {\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspacePicker {\n display: block;\n width: calc(100% - 20px);\n margin: 6px 10px 8px;\n padding: 6px 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 7px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceLabel {\n display: block;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollFrame {\n position: relative;\n min-height: 0;\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-content {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n padding: 0 10px 12px 0;\n scrollbar-width: none;\n}\n\n.-cerbur-clutch-dsh-worktree-content::-webkit-scrollbar {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollContent {\n min-width: 0;\n display: flow-root;\n}\n\n/* The themed thumb floats in the existing right inset. Native scrolling\n stays on .-cerbur-clutch-dsh-worktree-content; OS scrollbar preferences cannot shift the rows. */\n.-cerbur-clutch-dsh-worktree-overlayScrollbar {\n position: absolute;\n top: 0;\n right: 2px;\n bottom: 0;\n width: 5px;\n touch-action: none;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollbarThumb {\n width: 100%;\n border-radius: 999px;\n background: var(--dsw-alias-scrollbar-bg-l2);\n opacity: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollFrame:hover .-cerbur-clutch-dsh-worktree-scrollbarThumb,\n.-cerbur-clutch-dsh-worktree-scrollFrame:focus-within .-cerbur-clutch-dsh-worktree-scrollbarThumb,\n.-cerbur-clutch-dsh-worktree-overlayScrollbar[data-dragging='true'] .-cerbur-clutch-dsh-worktree-scrollbarThumb {\n opacity: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollbarThumb:hover,\n.-cerbur-clutch-dsh-worktree-overlayScrollbar[data-dragging='true'] .-cerbur-clutch-dsh-worktree-scrollbarThumb {\n background: var(--dsw-alias-scrollbar-hover-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-content:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: -2px;\n}\n\n.-cerbur-clutch-dsh-worktree-error {\n margin: 12px 0 0;\n padding: 8px;\n border: 1px solid var(--dsw-alias-state-error-primary);\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-notice {\n margin: 12px 0 0;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 7px;\n background: var(--dsw-alias-button-elevated-fill);\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton,\n.-cerbur-clutch-dsh-worktree-actionButton {\n border: 0;\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton,\n.-cerbur-clutch-dsh-worktree-actionButton {\n width: 100%;\n padding: 6px 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-recoveryActions {\n display: grid;\n gap: 6px;\n margin-top: 6px;\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton:disabled,\n.-cerbur-clutch-dsh-worktree-actionButton:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.-cerbur-clutch-dsh-worktree-actions {\n display: grid;\n gap: 6px;\n margin-top: 10px;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-actionSelect {\n min-width: 0;\n padding: 5px 6px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-section {\n margin: 12px 0 0;\n}\n\n.-cerbur-clutch-dsh-worktree-sectionTitle {\n margin: 0 2px 4px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n}\n\n.-cerbur-clutch-dsh-worktree-empty,\n.-cerbur-clutch-dsh-worktree-message {\n margin: 0;\n padding: 8px 4px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-emptyHint {\n margin: 0;\n padding: 0 4px 8px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityMenuSeparator {\n height: 0.5px;\n margin: 4px 2px;\n background: var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-gitReadiness {\n display: grid;\n gap: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-commandBlock {\n margin: 6px 0 0;\n padding: 8px;\n overflow-x: auto;\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-secondary);\n font:\n 11px/16px ui-monospace,\n SFMono-Regular,\n Menlo,\n monospace;\n white-space: pre-wrap;\n}\n\n.-cerbur-clutch-dsh-worktree-message[data-error='true'] {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktree,\n.-cerbur-clutch-dsh-worktree-session {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n border: 0;\n border-radius: 7px;\n padding: 6px 8px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 12px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-worktree {\n cursor: default;\n}\n\n.-cerbur-clutch-dsh-worktree-session {\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-worktree:hover,\n.-cerbur-clutch-dsh-worktree-session:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-sessionLabel {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-status {\n flex: none;\n margin-left: auto;\n padding-left: 8px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-searchSlot {\n flex: none;\n max-width: 28px;\n min-width: 0;\n display: flex;\n align-items: center;\n margin-left: auto;\n box-sizing: border-box;\n transition:\n flex 180ms var(--ds-ease-in-out),\n max-width 180ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchSlotExpanded {\n flex: 1;\n max-width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-headerActions {\n flex: none;\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 0;\n opacity: 1;\n visibility: visible;\n transition:\n opacity 120ms var(--ds-ease-in-out),\n transform 180ms var(--ds-ease-in-out),\n visibility 0s linear;\n}\n\n.-cerbur-clutch-dsh-worktree-headerActionsHidden {\n flex: 0 0 0px;\n max-width: 0;\n margin-left: 0;\n opacity: 0;\n transform: translateX(4px);\n visibility: hidden;\n pointer-events: none;\n transition-delay: 0s, 0s, 180ms;\n}\n\n.-cerbur-clutch-dsh-worktree-search {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n height: 28px;\n box-sizing: border-box;\n border-radius: 6px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n transition:\n background 180ms var(--ds-ease-in-out),\n box-shadow 180ms var(--ds-ease-in-out),\n color 180ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded {\n background: var(--dsw-alias-interactive-bg-subtle);\n box-shadow: inset 0 0 0 1px var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded:focus-within {\n box-shadow: inset 0 0 0 1px #3b82f6;\n}\n\n.-cerbur-clutch-dsh-worktree-searchButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n padding: 0;\n background: transparent;\n cursor: pointer;\n color: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-searchButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded .-cerbur-clutch-dsh-worktree-searchButton:hover {\n background: transparent;\n}\n\n.-cerbur-clutch-dsh-worktree-searchInput {\n flex: 1;\n width: 0;\n min-width: 0;\n box-sizing: border-box;\n border: none;\n outline: none;\n background: transparent;\n opacity: 0;\n pointer-events: none;\n font: inherit;\n font-size: 13px;\n line-height: 18px;\n color: var(--dsw-alias-label-primary);\n transition: opacity 120ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded .-cerbur-clutch-dsh-worktree-searchInput {\n margin-left: -2px;\n opacity: 1;\n pointer-events: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-searchInput::placeholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.-cerbur-clutch-dsh-worktree-clearButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n padding: 0;\n background: transparent;\n cursor: pointer;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-clearButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-actionSelect:focus {\n border-color: #3b82f6;\n}\n\n.-cerbur-clutch-dsh-worktree-iconButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 20px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-iconButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityBell {\n display: inline-flex;\n position: relative;\n}\n\n.-cerbur-clutch-dsh-worktree-activityBadge {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: var(--dsw-alias-brand-primary, #3b82f6);\n outline: 2px solid var(--dsw-specific-sidebar-fill);\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityPanel {\n position: fixed;\n z-index: 1000;\n box-sizing: border-box;\n width: min(360px, calc(100vw - 16px));\n max-height: min(440px, calc(100dvh - 72px));\n display: flex;\n flex-direction: column;\n padding: 6px;\n color: var(--dsw-alias-label-primary);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l1);\n box-shadow: var(--dsw-elevation-prominent);\n outline: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityHeading {\n flex: none;\n padding: 8px 10px;\n font-size: 12px;\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityEmpty {\n margin: 0;\n padding: 26px 10px 32px;\n text-align: center;\n font-size: 13px;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityList {\n overflow: auto;\n min-height: 0;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityEntry {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n box-sizing: border-box;\n width: 100%;\n height: auto;\n border: 0;\n border-radius: 7px;\n padding: 10px;\n background: transparent;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-activityEntry:hover,\n.-cerbur-clutch-dsh-worktree-activityEntry:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-activityEntry:focus-visible {\n outline: 1px solid var(--dsw-alias-label-secondary);\n outline-offset: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityIdentity {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: 3px;\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-activityName,\n.-cerbur-clutch-dsh-worktree-activityContext {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activityName {\n font-size: 13px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityContext,\n.-cerbur-clutch-dsh-worktree-activityTime {\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityMetadata {\n display: flex;\n flex: none;\n flex-direction: column;\n align-items: flex-end;\n gap: 5px;\n padding-top: 2px;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n/* One indent rhythm for the whole tree: each level advances by --wt-step and every\n label starts after one --wt-lead cell, so a Session label shares the exact column\n of its group label (one axis per depth, no per-level ad-hoc offsets). */\n.-cerbur-clutch-dsh-worktree-workspaceList {\n --wt-step: 12px;\n --wt-lead: 20px;\n --wt-label-pad: 6px;\n --wt-row-inset: 4px;\n position: relative;\n min-width: 0;\n min-height: 0;\n display: grid;\n gap: 2px;\n overflow-x: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceGroup {\n min-width: 0;\n}\n\n/* Navigation rows sit in the standard control band (H32-40) and share one radius. */\n.-cerbur-clutch-dsh-worktree-workspaceRow,\n.-cerbur-clutch-dsh-worktree-worktreeRow {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 0;\n box-sizing: border-box;\n border-radius: var(--dsw-radius-md);\n padding-block: 3px;\n padding-inline: calc(var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step))\n var(--wt-row-inset);\n cursor: pointer;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow {\n min-height: 34px;\n}\n\n/* One Workspace is open at a time: the open row owns the tree body, and every\n collapsed row carries its aggregated activity indicator at the action edge. The\n open state reuses the native hover fill instead of adding a custom accent bar. */\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-workspace-open='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-workspace-open='true'] .-cerbur-clutch-dsh-worktree-workspaceTitle {\n font-weight: 400;\n}\n\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-workspaceRow:hover,\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n }\n}\n\n/* The disclosure overlays the type icon's own cell: one 20px axis, no reflow, and\n it stays keyboard reachable while invisible. Hover reveal is pointer-only. */\n.-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n opacity: 0;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeDisclosure,\n.-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure:focus-visible,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure:focus-visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-workspaceIcon,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeIcon {\n visibility: hidden;\n}\n\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n .-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeDisclosure,\n .-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n opacity: 1;\n pointer-events: auto;\n }\n\n .-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-workspaceIcon,\n .-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-workspaceIcon,\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeIcon,\n .-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeIcon {\n visibility: hidden;\n }\n}\n\n/* Touch and stylus have no hover phase: keep the expand/collapse affordance\n visible so the tab switch never depends on a pointer hover. */\n@media (hover: none) {\n .-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n .-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n opacity: 1;\n pointer-events: auto;\n }\n\n .-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceIcon,\n .-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeIcon {\n visibility: hidden;\n }\n}\n\n/* Absolute so the reveal never moves the label; the parent row owns the cell.\n The 24px hit target stays centered on the 20px leading cell. */\n.-cerbur-clutch-dsh-worktree-disclosureButton {\n position: absolute;\n inset-inline-start: calc(\n var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step) - 2px\n );\n top: 50%;\n transform: translateY(-50%);\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n padding: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton:active {\n background: var(--dsw-alias-interactive-bg-active);\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton > svg {\n display: block;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureArrow {\n transition: transform var(--ds-transition-duration) var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton[aria-expanded='true'] .-cerbur-clutch-dsh-worktree-disclosureArrow {\n transform: rotate(90deg);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n color: var(--dsw-alias-label-caption);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .-cerbur-clutch-dsh-worktree-disclosureArrow {\n transition: none;\n }\n}\n\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-disclosureButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n }\n}\n\n/* One leading cell for every level keeps all 16px glyphs and the 14px twisty on\n the same vertical axis per depth. */\n.-cerbur-clutch-dsh-worktree-workspaceIcon,\n.-cerbur-clutch-dsh-worktree-worktreeIcon {\n flex: none;\n width: var(--wt-lead);\n color: var(--dsw-alias-label-secondary);\n line-height: 1;\n text-align: center;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='done'] {\n color: var(--dsw-alias-state-success-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='warning'] {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='error'] {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeStateLabel {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n border: 0;\n padding: 0;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceIcon {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceIcon[data-workspace-active='true'] {\n color: var(--dsw-alias-state-business-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceTitle,\n.-cerbur-clutch-dsh-worktree-worktreeLabel {\n min-width: 0;\n overflow: hidden;\n flex: 1;\n padding: 0 2px;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n}\n\n/* Emphasis stays at weight 500 (design standard: no 600+ in functional CSS). */\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-main-group='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel {\n font-weight: 500;\n}\n\n/* Native title reveal: the span clips its own text and scrolls only while\n hovered. Activity alone keeps the resting ellipsis. */\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeLabel,\n .-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-sessionLabel {\n text-overflow: clip;\n }\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel[data-scrolled],\n.-cerbur-clutch-dsh-worktree-sessionLabel[data-scrolled] {\n mask-image: linear-gradient(to right, transparent, #000 12px);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel[data-clipped],\n.-cerbur-clutch-dsh-worktree-sessionLabel[data-clipped] {\n mask-image: linear-gradient(to left, transparent, #000 12px);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel[data-scrolled][data-clipped],\n.-cerbur-clutch-dsh-worktree-sessionLabel[data-scrolled][data-clipped] {\n mask-image: linear-gradient(\n to right,\n transparent,\n #000 12px,\n #000 calc(100% - 12px),\n transparent\n );\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeHoverTitle {\n color: var(--dsw-static-neutral-bluish-00);\n font-size: 13px;\n line-height: 20px;\n overflow-wrap: anywhere;\n}\n\n/* Native Session hover card: full title, relative time, and current status. */\n.-cerbur-clutch-dsh-worktree-sessionHoverContent {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverTitle {\n color: #FFFFFF;\n font-size: 13px;\n line-height: 20px;\n overflow-wrap: break-word;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverTime {\n color: #CFD3D6;\n font-size: 12px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverStatus {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #ADB2B8;\n font-size: 12px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeActionSlot,\n.-cerbur-clutch-dsh-worktree-workspaceActions {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n height: 28px;\n margin-left: auto;\n}\n\n/* Workspace rows retain the native fixed action column. */\n.-cerbur-clutch-dsh-worktree-workspaceActions {\n flex: 0 0 64px;\n width: 64px;\n}\n\n/* The intrinsic action column owns the title's visible end. At rest the title\n spans it, leaving only the activity lane; revealed controls narrow the actual\n scroll viewport so the marquee tail and fade stop beside the first button.\n The leading icon, title start and action positions remain fixed. */\n.-cerbur-clutch-dsh-worktree-worktreeRow > .-cerbur-clutch-dsh-worktree-worktreeIcon {\n grid-area: 1 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow > .-cerbur-clutch-dsh-worktree-worktreeLabel {\n grid-area: 1 / 2 / 2 / 4;\n margin-inline-end: 32px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeLabel {\n grid-column-end: 3;\n margin-inline-end: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot {\n grid-area: 1 / 3;\n min-width: 0;\n width: auto;\n gap: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceActions > .-cerbur-clutch-dsh-worktree-menuAction {\n position: absolute;\n top: 0;\n right: 32px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceActions > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n position: absolute;\n top: 0;\n right: 0;\n visibility: hidden;\n}\n\n/* Worktree actions flow naturally so the rail matches the controls that exist. */\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n position: static;\n opacity: 0;\n pointer-events: none;\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-groupActivity {\n position: absolute;\n top: 0;\n right: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n visibility: hidden;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-groupActivity {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'][data-menu-open='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'][data-menu-open='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-groupActivity {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'][data-menu-open='true']\n .-cerbur-clutch-dsh-worktree-treeActionSlot\n > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'][data-menu-open='true']\n .-cerbur-clutch-dsh-worktree-treeActionSlot\n > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardAction {\n display: inline-flex;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-menuAction {\n display: inline-flex;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover [data-add-worktree],\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] [data-add-worktree],\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within [data-add-worktree] {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n/* Depth comes from explicit nesting selectors rather than a self-referencing custom\n property (`--d: calc(var(--d) + 1)` is a cycle and resolves to invalid). Rows own\n their inline padding, so nesting never accumulates margins, and rows stay full\n width so hover fills and drop markers share one edge. */\n.-cerbur-clutch-dsh-worktree-treeChildren {\n margin-inline-start: 0;\n padding: 2px 0 5px;\n border-inline-start: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-worktreeRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeSessionRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n --wt-depth: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-worktreeRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeSessionRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n --wt-depth: 2;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-worktreeRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeSessionRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n --wt-depth: 3;\n}\n\n.-cerbur-clutch-dsh-worktree-groupLabel {\n padding: 6px 8px 3px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n\n.-cerbur-clutch-dsh-worktree-groupHeader {\n display: flex;\n align-items: center;\n min-height: 34px;\n padding-right: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-groupHeader .-cerbur-clutch-dsh-worktree-groupLabel {\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeGroup {\n margin-top: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow {\n min-height: 32px;\n padding-block: 2px;\n display: grid;\n grid-template-columns: var(--wt-lead) minmax(0, 1fr) max-content;\n}\n\n/* Session rows indent to their group's label column, not one step past the row\n start: the label reads as a child of that group without hanging to its left. */\n.-cerbur-clutch-dsh-worktree-treeSessionRow {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n margin-inline-start: 0;\n padding-inline-start: calc(\n var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step) + var(--wt-lead) +\n var(--wt-label-pad)\n );\n padding-inline-end: var(--wt-row-inset);\n min-width: 0;\n min-height: 30px;\n box-sizing: border-box;\n border-radius: var(--dsw-radius-md);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-session-current='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-session-current='true'] .-cerbur-clutch-dsh-worktree-treeSessionContent {\n font-weight: 400;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent {\n display: flex;\n align-items: center;\n flex: 1;\n width: 0;\n min-width: 0;\n min-height: 30px;\n box-sizing: border-box;\n border: 0;\n border-radius: var(--dsw-radius-md);\n padding: 4px 0;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: 1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent:hover {\n background: transparent;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionTrailing {\n position: relative;\n display: inline-flex;\n flex: 0 0 52px;\n align-items: center;\n justify-content: flex-end;\n width: 52px;\n height: 28px;\n margin-left: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-rowActions {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionMeta {\n color: var(--dsw-alias-label-tertiary);\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionStatus {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionTime {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 4px;\n font-size: 12px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n display: block;\n width: auto;\n margin: 2px var(--wt-row-inset) 4px\n calc(\n var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step) + var(--wt-lead) +\n var(--wt-label-pad)\n );\n padding: 4px 8px;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionOverflowButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-rowActions {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-sessionTrailing:focus-within .-cerbur-clutch-dsh-worktree-sessionMeta {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-rowActions,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-rowActions,\n.-cerbur-clutch-dsh-worktree-sessionTrailing:focus-within .-cerbur-clutch-dsh-worktree-rowActions {\n display: inline-flex;\n}\n\n.-cerbur-clutch-dsh-worktree-renameInput {\n width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-renameError {\n margin: 8px 0 0;\n color: var(--dsw-alias-state-error-primary);\n font-size: 13px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-archivedGroup {\n margin-top: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-modalField {\n display: grid;\n gap: 5px;\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-worktreeHoverDetails {\n max-width: 360px;\n white-space: normal;\n overflow-wrap: anywhere;\n line-height: 1.5;\n}\n";
2959
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/worktree.css.mjs
2960
+ const css$8 = ".-cerbur-clutch-dsh-worktree-action {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 8px;\n width: calc(100% + 4px);\n height: 42px;\n margin: 4px -2px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n padding: 0 10px 0 8px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-action:hover,\n.-cerbur-clutch-dsh-worktree-action[data-active='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-action[data-collapsed='true'] {\n width: 36px;\n height: 36px;\n margin: 8px 0 10px;\n justify-content: center;\n gap: 0;\n padding: 0;\n border-radius: 50%;\n}\n\n.-cerbur-clutch-dsh-worktree-actionLabel {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n height: 22px;\n overflow: hidden;\n font-weight: 400;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceSeat {\n display: flex;\n flex: 1;\n min-height: 0;\n min-width: 0;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceSeat[data-worktree-section-scroller] {\n flex: none;\n max-height: 100cqh;\n}\n\n.-cerbur-clutch-dsh-worktree-surface {\n position: relative;\n flex: 1;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 0;\n overflow: hidden;\n min-height: 0;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n pointer-events: auto;\n transition: width var(--ds-transition-duration-slow) var(--ds-ease-in-out);\n}\n\n/* Fold state comes directly from the sidebar.-cerbur-clutch-dsh-worktree-workspaces owner. */\n.-cerbur-clutch-dsh-worktree-surface[data-collapsed='true'] {\n visibility: hidden;\n opacity: 0;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-motionExits {\n position: absolute;\n inset: 0;\n contain: strict;\n overflow: clip;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .-cerbur-clutch-dsh-worktree-surface {\n transition: none;\n }\n}\n\n.-cerbur-clutch-dsh-worktree-wideContent {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n}\n\n.-cerbur-clutch-dsh-worktree-surface[data-collapsed='true'] .-cerbur-clutch-dsh-worktree-wideContent {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationDialog {\n width: min(440px, 100%);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody {\n display: grid;\n min-width: 0;\n gap: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody .-cerbur-clutch-dsh-worktree-modalField {\n min-width: 0;\n gap: 8px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody .-cerbur-clutch-dsh-worktree-renameInput,\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody [data-single-select] > button {\n box-sizing: border-box;\n width: 100%;\n min-width: 0;\n height: 40px;\n padding: 0 12px;\n border: 1px solid var(--dsw-alias-border-l3);\n font-size: 14px;\n line-height: 22px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRegistrationBody .-cerbur-clutch-dsh-worktree-renameInput:focus-within {\n border-color: var(--dsw-alias-state-business-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTabs {\n display: flex;\n gap: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTab {\n border: 0;\n border-bottom: 2px solid transparent;\n padding: 4px 0 8px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTab[aria-selected='true'] {\n border-bottom-color: var(--dsw-alias-label-primary);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportCandidates {\n display: grid;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportError {\n display: grid;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton {\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-header {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: none;\n height: 36px;\n margin: 2px 0 4px;\n padding: 0 10px 0 4px;\n box-sizing: border-box;\n color: var(--dsw-alias-label-tertiary);\n}\n\n/* Activity range selector. Its tabs scroll horizontally instead of clipping\n labels, while the visible-range menu stays pinned at the right edge. */\n.-cerbur-clutch-dsh-worktree-activityBar {\n display: flex;\n align-items: center;\n gap: 4px;\n flex: none;\n padding: 0 10px 8px;\n box-sizing: border-box;\n border-bottom: 0.5px solid var(--dsw-alias-border-l1);\n}\n\n.-cerbur-clutch-dsh-worktree-activityTabs {\n display: flex;\n align-items: center;\n gap: 4px;\n flex: 1 1 auto;\n min-width: 0;\n overflow-x: auto;\n scrollbar-width: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityTabs::-webkit-scrollbar {\n display: none;\n}\n\n/* Compact pinned trigger: it never widens the bar or competes with the active\n range pill, and it keeps the tabs as the only horizontally scrolling row. */\n.-cerbur-clutch-dsh-worktree-activityConfig {\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-activityConfig:hover,\n.-cerbur-clutch-dsh-worktree-activityConfig[aria-expanded='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityConfig:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: 1px;\n}\n\n/* Checkbox rows in the pinned menu. They keep the menu open while toggling so\n several ranges can be shown or hidden in one visit. */\n.-cerbur-clutch-dsh-worktree-activityOption {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 30px;\n padding: 5px 8px;\n border: 0;\n border-radius: var(--dsw-radius-md);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOption:hover:not(:disabled),\n.-cerbur-clutch-dsh-worktree-activityOption:focus-visible:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n outline: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOption:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionLabel {\n flex: 1 1 auto;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOption[data-checked='true'] .-cerbur-clutch-dsh-worktree-activityOptionLabel {\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionCount {\n flex: 0 0 auto;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-variant-numeric: tabular-nums;\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionCheck {\n display: inline-flex;\n flex: 0 0 14px;\n width: 14px;\n height: 14px;\n align-items: center;\n justify-content: center;\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityOptionCheck svg {\n width: 14px;\n height: 14px;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegment {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n flex: 0 0 auto;\n padding: 3px 8px;\n border: 0;\n /* Explicit pill: the shared standard requires corner-shape with a full circle. */\n border-radius: 999px;\n corner-shape: round;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 11px;\n line-height: 1.4;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegment:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegment:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: 1px;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegmentActive,\n.-cerbur-clutch-dsh-worktree-activitySegmentActive:hover {\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-activityLabel {\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activityCount {\n color: var(--dsw-alias-label-tertiary);\n font-variant-numeric: tabular-nums;\n}\n\n.-cerbur-clutch-dsh-worktree-activitySegmentActive .-cerbur-clutch-dsh-worktree-activityCount {\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-sidebarTitle {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n opacity: 1;\n visibility: visible;\n transition:\n opacity 120ms var(--ds-ease-in-out),\n transform 180ms var(--ds-ease-in-out),\n visibility 0s linear;\n}\n\n.-cerbur-clutch-dsh-worktree-titleHidden {\n flex: 0 0 0px;\n max-width: 0;\n opacity: 0;\n transform: translateX(-4px);\n visibility: hidden;\n pointer-events: none;\n transition-delay: 0s, 0s, 180ms;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n width: 28px;\n height: 28px;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 16px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-modeButton[data-active='true'] {\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspacePicker {\n display: block;\n width: calc(100% - 20px);\n margin: 6px 10px 8px;\n padding: 6px 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 7px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceLabel {\n display: block;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollFrame {\n position: relative;\n min-height: 0;\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-content {\n height: 100%;\n box-sizing: border-box;\n overflow: auto;\n padding: 0 10px 12px 0;\n scrollbar-width: none;\n}\n\n.-cerbur-clutch-dsh-worktree-content::-webkit-scrollbar {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollContent {\n min-width: 0;\n display: flow-root;\n}\n\n/* The themed thumb floats in the existing right inset. Native scrolling\n stays on .-cerbur-clutch-dsh-worktree-content; OS scrollbar preferences cannot shift the rows. */\n.-cerbur-clutch-dsh-worktree-overlayScrollbar {\n position: absolute;\n top: 0;\n right: 2px;\n bottom: 0;\n width: 5px;\n touch-action: none;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollbarThumb {\n width: 100%;\n border-radius: 999px;\n background: var(--dsw-alias-scrollbar-bg-l2);\n opacity: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollFrame:hover .-cerbur-clutch-dsh-worktree-scrollbarThumb,\n.-cerbur-clutch-dsh-worktree-scrollFrame:focus-within .-cerbur-clutch-dsh-worktree-scrollbarThumb,\n.-cerbur-clutch-dsh-worktree-overlayScrollbar[data-dragging='true'] .-cerbur-clutch-dsh-worktree-scrollbarThumb {\n opacity: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-scrollbarThumb:hover,\n.-cerbur-clutch-dsh-worktree-overlayScrollbar[data-dragging='true'] .-cerbur-clutch-dsh-worktree-scrollbarThumb {\n background: var(--dsw-alias-scrollbar-hover-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-content:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: -2px;\n}\n\n.-cerbur-clutch-dsh-worktree-error {\n margin: 12px 0 0;\n padding: 8px;\n border: 1px solid var(--dsw-alias-state-error-primary);\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-notice {\n margin: 12px 0 0;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 7px;\n background: var(--dsw-alias-button-elevated-fill);\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton,\n.-cerbur-clutch-dsh-worktree-actionButton {\n border: 0;\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton,\n.-cerbur-clutch-dsh-worktree-actionButton {\n width: 100%;\n padding: 6px 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-recoveryActions {\n display: grid;\n gap: 6px;\n margin-top: 6px;\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton:disabled,\n.-cerbur-clutch-dsh-worktree-actionButton:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.-cerbur-clutch-dsh-worktree-actions {\n display: grid;\n gap: 6px;\n margin-top: 10px;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-actionSelect {\n min-width: 0;\n padding: 5px 6px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-section {\n margin: 12px 0 0;\n}\n\n.-cerbur-clutch-dsh-worktree-sectionTitle {\n margin: 0 2px 4px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n}\n\n.-cerbur-clutch-dsh-worktree-empty,\n.-cerbur-clutch-dsh-worktree-message {\n margin: 0;\n padding: 8px 4px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-emptyHint {\n margin: 0;\n padding: 0 4px 8px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityMenuSeparator {\n height: 0.5px;\n margin: 4px 2px;\n background: var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-gitReadiness {\n display: grid;\n gap: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-commandBlock {\n margin: 6px 0 0;\n padding: 8px;\n overflow-x: auto;\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-secondary);\n font:\n 11px/16px ui-monospace,\n SFMono-Regular,\n Menlo,\n monospace;\n white-space: pre-wrap;\n}\n\n.-cerbur-clutch-dsh-worktree-message[data-error='true'] {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktree,\n.-cerbur-clutch-dsh-worktree-session {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n border: 0;\n border-radius: 7px;\n padding: 6px 8px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 12px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-worktree {\n cursor: default;\n}\n\n.-cerbur-clutch-dsh-worktree-session {\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-worktree:hover,\n.-cerbur-clutch-dsh-worktree-session:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-sessionLabel {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-status {\n flex: none;\n margin-left: auto;\n padding-left: 8px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-searchSlot {\n flex: none;\n max-width: 28px;\n min-width: 0;\n display: flex;\n align-items: center;\n margin-left: auto;\n box-sizing: border-box;\n transition:\n flex 180ms var(--ds-ease-in-out),\n max-width 180ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchSlotExpanded {\n flex: 1;\n max-width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-headerActions {\n flex: none;\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 0;\n opacity: 1;\n visibility: visible;\n transition:\n opacity 120ms var(--ds-ease-in-out),\n transform 180ms var(--ds-ease-in-out),\n visibility 0s linear;\n}\n\n.-cerbur-clutch-dsh-worktree-headerActionsHidden {\n flex: 0 0 0px;\n max-width: 0;\n margin-left: 0;\n opacity: 0;\n transform: translateX(4px);\n visibility: hidden;\n pointer-events: none;\n transition-delay: 0s, 0s, 180ms;\n}\n\n.-cerbur-clutch-dsh-worktree-search {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n height: 28px;\n box-sizing: border-box;\n border-radius: 6px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n transition:\n background 180ms var(--ds-ease-in-out),\n box-shadow 180ms var(--ds-ease-in-out),\n color 180ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded {\n background: var(--dsw-alias-interactive-bg-subtle);\n box-shadow: inset 0 0 0 1px var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded:focus-within {\n box-shadow: inset 0 0 0 1px #3b82f6;\n}\n\n.-cerbur-clutch-dsh-worktree-searchButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n padding: 0;\n background: transparent;\n cursor: pointer;\n color: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-searchButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded .-cerbur-clutch-dsh-worktree-searchButton:hover {\n background: transparent;\n}\n\n.-cerbur-clutch-dsh-worktree-searchInput {\n flex: 1;\n width: 0;\n min-width: 0;\n box-sizing: border-box;\n border: none;\n outline: none;\n background: transparent;\n opacity: 0;\n pointer-events: none;\n font: inherit;\n font-size: 13px;\n line-height: 18px;\n color: var(--dsw-alias-label-primary);\n transition: opacity 120ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded .-cerbur-clutch-dsh-worktree-searchInput {\n margin-left: -2px;\n opacity: 1;\n pointer-events: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-searchInput::placeholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.-cerbur-clutch-dsh-worktree-clearButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n padding: 0;\n background: transparent;\n cursor: pointer;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-clearButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-actionSelect:focus {\n border-color: #3b82f6;\n}\n\n.-cerbur-clutch-dsh-worktree-iconButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 20px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-iconButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityBell {\n display: inline-flex;\n position: relative;\n}\n\n.-cerbur-clutch-dsh-worktree-activityBell [data-session-activity] {\n anchor-name: var(--clutch-activity-anchor);\n}\n\n.-cerbur-clutch-dsh-worktree-activityBadge {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: var(--dsw-alias-brand-primary, #3b82f6);\n outline: 2px solid var(--dsw-specific-sidebar-fill);\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityPanel {\n position: fixed;\n position-anchor: var(--clutch-activity-anchor);\n top: calc(anchor(bottom) + 8px);\n right: anchor(right);\n bottom: 8px;\n left: 8px;\n align-self: safe start;\n justify-self: safe end;\n margin: 0;\n height: fit-content;\n z-index: 1000;\n box-sizing: border-box;\n width: min(360px, calc(100vw - 16px));\n max-height: min(440px, calc(100dvh - 72px));\n display: flex;\n flex-direction: column;\n padding: 6px;\n color: var(--dsw-alias-label-primary);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l1);\n box-shadow: var(--dsw-elevation-prominent);\n outline: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityHeading {\n flex: none;\n padding: 8px 10px;\n font-size: 12px;\n font-weight: 600;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityEmpty {\n margin: 0;\n padding: 26px 10px 32px;\n text-align: center;\n font-size: 13px;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-activityList {\n overflow: auto;\n min-height: 0;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.-cerbur-clutch-dsh-worktree-activityEntry {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 16px;\n box-sizing: border-box;\n width: 100%;\n height: auto;\n border: 0;\n border-radius: 7px;\n padding: 10px;\n background: transparent;\n color: inherit;\n font: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-activityEntry:hover,\n.-cerbur-clutch-dsh-worktree-activityEntry:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-activityEntry:focus-visible {\n outline: 1px solid var(--dsw-alias-label-secondary);\n outline-offset: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityIdentity {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: 3px;\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-activityName,\n.-cerbur-clutch-dsh-worktree-activityContext {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-activityName {\n font-size: 13px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityContext,\n.-cerbur-clutch-dsh-worktree-activityTime {\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-activityMetadata {\n display: flex;\n flex: none;\n flex-direction: column;\n align-items: flex-end;\n gap: 5px;\n padding-top: 2px;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n/* One indent rhythm for the whole tree: each level advances by --wt-step and every\n label starts after one --wt-lead cell, so a Session label shares the exact column\n of its group label (one axis per depth, no per-level ad-hoc offsets). */\n.-cerbur-clutch-dsh-worktree-workspaceList {\n --wt-step: 12px;\n --wt-lead: 20px;\n --wt-label-pad: 6px;\n --wt-row-inset: 4px;\n position: relative;\n min-width: 0;\n min-height: 0;\n display: grid;\n gap: 2px;\n overflow-x: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceGroup {\n min-width: 0;\n}\n\n/* Navigation rows sit in the standard control band (H32-40) and share one radius. */\n.-cerbur-clutch-dsh-worktree-workspaceRow,\n.-cerbur-clutch-dsh-worktree-worktreeRow {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 0;\n box-sizing: border-box;\n border-radius: var(--dsw-radius-md);\n padding-block: 3px;\n padding-inline: calc(var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step))\n var(--wt-row-inset);\n cursor: pointer;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow {\n min-height: 34px;\n}\n\n/* One Workspace is open at a time: the open row owns the tree body, and every\n collapsed row carries its aggregated activity indicator at the action edge. The\n open state reuses the native hover fill instead of adding a custom accent bar. */\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-workspace-open='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-workspace-open='true'] .-cerbur-clutch-dsh-worktree-workspaceTitle {\n font-weight: 400;\n}\n\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-workspaceRow:hover,\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n }\n}\n\n/* The disclosure overlays the type icon's own cell: one 20px axis, no reflow, and\n it stays keyboard reachable while invisible. Hover reveal is pointer-only. */\n.-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n opacity: 0;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeDisclosure,\n.-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure:focus-visible,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure:focus-visible {\n opacity: 1;\n pointer-events: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-workspaceIcon,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeIcon {\n visibility: hidden;\n}\n\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n .-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeDisclosure,\n .-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n opacity: 1;\n pointer-events: auto;\n }\n\n .-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-workspaceIcon,\n .-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-workspaceIcon,\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeIcon,\n .-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeIcon {\n visibility: hidden;\n }\n}\n\n/* Touch and stylus have no hover phase: keep the expand/collapse affordance\n visible so the tab switch never depends on a pointer hover. */\n@media (hover: none) {\n .-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n .-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n opacity: 1;\n pointer-events: auto;\n }\n\n .-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceIcon,\n .-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeIcon {\n visibility: hidden;\n }\n}\n\n/* Absolute so the reveal never moves the label; the parent row owns the cell.\n The 24px hit target stays centered on the 20px leading cell. */\n.-cerbur-clutch-dsh-worktree-disclosureButton {\n position: absolute;\n inset-inline-start: calc(\n var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step) - 2px\n );\n top: 50%;\n transform: translateY(-50%);\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n padding: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton:active {\n background: var(--dsw-alias-interactive-bg-active);\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton > svg {\n display: block;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureArrow {\n transition: transform var(--ds-transition-duration) var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton[aria-expanded='true'] .-cerbur-clutch-dsh-worktree-disclosureArrow {\n transform: rotate(90deg);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n color: var(--dsw-alias-label-caption);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .-cerbur-clutch-dsh-worktree-disclosureArrow {\n transition: none;\n }\n}\n\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-disclosureButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n }\n}\n\n/* One leading cell for every level keeps all 16px glyphs and the 14px twisty on\n the same vertical axis per depth. */\n.-cerbur-clutch-dsh-worktree-workspaceIcon,\n.-cerbur-clutch-dsh-worktree-worktreeIcon {\n flex: none;\n width: var(--wt-lead);\n color: var(--dsw-alias-label-secondary);\n line-height: 1;\n text-align: center;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='done'] {\n color: var(--dsw-alias-state-success-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='warning'] {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='error'] {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeStateLabel {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n border: 0;\n padding: 0;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceIcon {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceIcon[data-workspace-active='true'] {\n color: var(--dsw-alias-state-business-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceTitle,\n.-cerbur-clutch-dsh-worktree-worktreeLabel {\n min-width: 0;\n overflow: hidden;\n flex: 1;\n padding: 0 2px;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n}\n\n/* Emphasis stays at weight 500 (design standard: no 600+ in functional CSS). */\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-main-group='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel {\n font-weight: 500;\n}\n\n/* Native title reveal: the span clips its own text and scrolls only while\n hovered. Activity alone keeps the resting ellipsis. */\n@media (hover: hover) {\n .-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeLabel,\n .-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-sessionLabel {\n text-overflow: clip;\n }\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel[data-scrolled],\n.-cerbur-clutch-dsh-worktree-sessionLabel[data-scrolled] {\n mask-image: linear-gradient(to right, transparent, #000 12px);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel[data-clipped],\n.-cerbur-clutch-dsh-worktree-sessionLabel[data-clipped] {\n mask-image: linear-gradient(to left, transparent, #000 12px);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel[data-scrolled][data-clipped],\n.-cerbur-clutch-dsh-worktree-sessionLabel[data-scrolled][data-clipped] {\n mask-image: linear-gradient(\n to right,\n transparent,\n #000 12px,\n #000 calc(100% - 12px),\n transparent\n );\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeHoverTitle {\n color: var(--dsw-static-neutral-bluish-00);\n font-size: 13px;\n line-height: 20px;\n overflow-wrap: anywhere;\n}\n\n/* Native Session hover card: full title, relative time, and current status. */\n.-cerbur-clutch-dsh-worktree-sessionHoverContent {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverTitle {\n color: #FFFFFF;\n font-size: 13px;\n line-height: 20px;\n overflow-wrap: break-word;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverTime {\n color: #CFD3D6;\n font-size: 12px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverStatus {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #ADB2B8;\n font-size: 12px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeActionSlot,\n.-cerbur-clutch-dsh-worktree-workspaceActions {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n height: 28px;\n margin-left: auto;\n}\n\n/* Workspace rows retain the native fixed action column. */\n.-cerbur-clutch-dsh-worktree-workspaceActions {\n flex: 0 0 64px;\n width: 64px;\n}\n\n/* The intrinsic action column owns the title's visible end. At rest the title\n spans it, leaving only the activity lane; revealed controls narrow the actual\n scroll viewport so the marquee tail and fade stop beside the first button.\n The leading icon, title start and action positions remain fixed. */\n.-cerbur-clutch-dsh-worktree-worktreeRow > .-cerbur-clutch-dsh-worktree-worktreeIcon {\n grid-area: 1 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow > .-cerbur-clutch-dsh-worktree-worktreeLabel {\n grid-area: 1 / 2 / 2 / 4;\n margin-inline-end: 32px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeLabel {\n grid-column-end: 3;\n margin-inline-end: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot {\n grid-area: 1 / 3;\n min-width: 0;\n width: auto;\n gap: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceActions > .-cerbur-clutch-dsh-worktree-menuAction {\n position: absolute;\n top: 0;\n right: 32px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceActions > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n position: absolute;\n top: 0;\n right: 0;\n visibility: hidden;\n}\n\n/* Worktree actions flow naturally so the rail matches the controls that exist. */\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n position: static;\n opacity: 0;\n pointer-events: none;\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-groupActivity {\n position: absolute;\n top: 0;\n right: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n visibility: hidden;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-groupActivity {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'][data-menu-open='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'][data-menu-open='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-groupActivity {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'][data-menu-open='true']\n .-cerbur-clutch-dsh-worktree-treeActionSlot\n > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'][data-menu-open='true']\n .-cerbur-clutch-dsh-worktree-treeActionSlot\n > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardAction {\n display: inline-flex;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-menuAction {\n display: inline-flex;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover [data-add-worktree],\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] [data-add-worktree],\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within [data-add-worktree] {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n/* Depth comes from explicit nesting selectors rather than a self-referencing custom\n property (`--d: calc(var(--d) + 1)` is a cycle and resolves to invalid). Rows own\n their inline padding, so nesting never accumulates margins, and rows stay full\n width so hover fills and drop markers share one edge. */\n.-cerbur-clutch-dsh-worktree-treeChildren {\n margin-inline-start: 0;\n padding: 2px 0 5px;\n border-inline-start: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-worktreeRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeSessionRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n --wt-depth: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-worktreeRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeSessionRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n --wt-depth: 2;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-worktreeRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeSessionRow,\n.-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-treeChildren .-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n --wt-depth: 3;\n}\n\n.-cerbur-clutch-dsh-worktree-groupLabel {\n padding: 6px 8px 3px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n\n.-cerbur-clutch-dsh-worktree-groupHeader {\n display: flex;\n align-items: center;\n min-height: 34px;\n padding-right: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-groupHeader .-cerbur-clutch-dsh-worktree-groupLabel {\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeGroup {\n margin-top: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow {\n min-height: 32px;\n padding-block: 2px;\n display: grid;\n grid-template-columns: var(--wt-lead) minmax(0, 1fr) max-content;\n}\n\n/* Session rows indent to their group's label column, not one step past the row\n start: the label reads as a child of that group without hanging to its left. */\n.-cerbur-clutch-dsh-worktree-treeSessionRow {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n margin-inline-start: 0;\n padding-inline-start: calc(\n var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step) + var(--wt-lead) +\n var(--wt-label-pad)\n );\n padding-inline-end: var(--wt-row-inset);\n min-width: 0;\n min-height: 30px;\n box-sizing: border-box;\n border-radius: var(--dsw-radius-md);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-session-current='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-session-current='true'] .-cerbur-clutch-dsh-worktree-treeSessionContent {\n font-weight: 400;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent {\n display: flex;\n align-items: center;\n flex: 1;\n width: 0;\n min-width: 0;\n min-height: 30px;\n box-sizing: border-box;\n border: 0;\n border-radius: var(--dsw-radius-md);\n padding: 4px 0;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: 1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent:hover {\n background: transparent;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionTrailing {\n position: relative;\n display: inline-flex;\n flex: 0 0 52px;\n align-items: center;\n justify-content: flex-end;\n width: 52px;\n height: 28px;\n margin-left: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-rowActions {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionMeta {\n color: var(--dsw-alias-label-tertiary);\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionStatus {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionTime {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 4px;\n font-size: 12px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n display: block;\n width: auto;\n margin: 2px var(--wt-row-inset) 4px\n calc(\n var(--wt-row-inset) + var(--wt-depth, 0) * var(--wt-step) + var(--wt-lead) +\n var(--wt-label-pad)\n );\n padding: 4px 8px;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionOverflowButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-rowActions {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-sessionTrailing:focus-within .-cerbur-clutch-dsh-worktree-sessionMeta {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-rowActions,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-rowActions,\n.-cerbur-clutch-dsh-worktree-sessionTrailing:focus-within .-cerbur-clutch-dsh-worktree-rowActions {\n display: inline-flex;\n}\n\n.-cerbur-clutch-dsh-worktree-renameInput {\n width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-renameError {\n margin: 8px 0 0;\n color: var(--dsw-alias-state-error-primary);\n font-size: 13px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-archivedGroup {\n margin-top: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-modalField {\n display: grid;\n gap: 5px;\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-worktreeHoverDetails {\n max-width: 360px;\n white-space: normal;\n overflow-wrap: anywhere;\n line-height: 1.5;\n}\n";
2961
2961
  const styleId$8 = "@cerbur/clutch-dsh-worktree/worktree.css";
2962
2962
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/worktree.css\"]") === null) {
2963
2963
  const tag = document.createElement("style");
@@ -3163,7 +3163,7 @@ window.__ModuleLoader__.load({
3163
3163
  });
3164
3164
  }
3165
3165
  //#endregion
3166
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/dashboard/dashboard-header-action.css.mjs
3166
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/dashboard/dashboard-header-action.css.mjs
3167
3167
  const css$7 = "/* Match the native 28px circular Session-header utility controls. */\n.-cerbur-clutch-dsh-worktree-headerDashboardButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 6px;\n color: var(--dsw-alias-label-secondary);\n background: transparent;\n border: none;\n border-radius: 28px;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-headerDashboardButton svg {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-headerDashboardButton:hover,\n.-cerbur-clutch-dsh-worktree-headerDashboardButton:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n";
3168
3168
  const styleId$7 = "@cerbur/clutch-dsh-worktree/dashboard-header-action.css";
3169
3169
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/dashboard-header-action.css\"]") === null) {
@@ -3200,6 +3200,133 @@ window.__ModuleLoader__.load({
3200
3200
  });
3201
3201
  }
3202
3202
  //#endregion
3203
+ //#region lib/client/view/workspace-directory-flow.js
3204
+ const NATIVE_FLOW = "sidebar.workspaces.directoryFlow";
3205
+ const WORKTREE_FLOW = "clutch.worktree.directoryFlow";
3206
+ /** The composed picker owns selection; Worktree owns only adoption and its pending action. */
3207
+ function createWorkspaceDirectoryFlow(slots, adopt) {
3208
+ const idle = {
3209
+ open: false,
3210
+ busy: false,
3211
+ onPicked() {},
3212
+ onCancel() {},
3213
+ onError() {}
3214
+ };
3215
+ const store = createSnapshotStore({
3216
+ available: false,
3217
+ owner: idle
3218
+ });
3219
+ let pending;
3220
+ let disposed = false;
3221
+ const cancel = () => {
3222
+ const request = pending;
3223
+ pending = void 0;
3224
+ store.set({
3225
+ ...store.getSnapshot(),
3226
+ owner: idle
3227
+ });
3228
+ request?.resolve();
3229
+ };
3230
+ const stop = slots.inject(WORKTREE_FLOW, () => {
3231
+ let current;
3232
+ let remove;
3233
+ const sync = () => {
3234
+ const next = slots.entriesOfSlot(NATIVE_FLOW)[0];
3235
+ if (next === current) return;
3236
+ cancel();
3237
+ remove?.();
3238
+ current = next;
3239
+ remove = next === void 0 ? void 0 : slots.register({
3240
+ name: WORKTREE_FLOW,
3241
+ ...next.inject === void 0 ? {} : { inject: next.inject },
3242
+ ...next.store === void 0 ? {} : { store: next.store },
3243
+ ...next.locale === void 0 ? {} : { locale: next.locale }
3244
+ }, next.component);
3245
+ store.set({
3246
+ available: next !== void 0,
3247
+ owner: idle
3248
+ });
3249
+ };
3250
+ const unsubscribe = slots.subscribe(NATIVE_FLOW, sync);
3251
+ sync();
3252
+ return () => {
3253
+ unsubscribe();
3254
+ remove?.();
3255
+ cancel();
3256
+ store.set({
3257
+ available: false,
3258
+ owner: idle
3259
+ });
3260
+ };
3261
+ });
3262
+ const request = () => {
3263
+ if (pending !== void 0) return pending.promise;
3264
+ if (disposed || !store.getSnapshot().available) return Promise.resolve();
3265
+ let resolve;
3266
+ let reject;
3267
+ const promise = new Promise((yes, no) => {
3268
+ resolve = yes;
3269
+ reject = no;
3270
+ });
3271
+ const active = {
3272
+ promise,
3273
+ resolve,
3274
+ reject,
3275
+ busy: false
3276
+ };
3277
+ pending = active;
3278
+ const finish = (error) => {
3279
+ if (pending !== active) return;
3280
+ pending = void 0;
3281
+ store.set({
3282
+ ...store.getSnapshot(),
3283
+ owner: idle
3284
+ });
3285
+ if (error) reject(error);
3286
+ else resolve();
3287
+ };
3288
+ const owner = {
3289
+ open: true,
3290
+ busy: false,
3291
+ onPicked: (path) => {
3292
+ if (pending !== active || active.busy) return;
3293
+ active.busy = true;
3294
+ store.set({
3295
+ available: true,
3296
+ owner: {
3297
+ ...owner,
3298
+ busy: true
3299
+ }
3300
+ });
3301
+ Promise.resolve().then(() => {
3302
+ if (pending === active) return adopt(path);
3303
+ }).then(() => finish(), (error) => finish(error instanceof Error ? error : new Error(String(error))));
3304
+ },
3305
+ onCancel: () => {
3306
+ if (!active.busy) finish();
3307
+ },
3308
+ onError: (message) => {
3309
+ if (!active.busy) finish(new Error(message));
3310
+ }
3311
+ };
3312
+ store.set({
3313
+ available: true,
3314
+ owner
3315
+ });
3316
+ return promise;
3317
+ };
3318
+ return {
3319
+ store,
3320
+ request,
3321
+ cancel,
3322
+ dispose: () => {
3323
+ disposed = true;
3324
+ stop();
3325
+ cancel();
3326
+ }
3327
+ };
3328
+ }
3329
+ //#endregion
3203
3330
  //#region lib/client/context/WorktreeHeroContext.js
3204
3331
  function labelFor(state) {
3205
3332
  if (state.status !== "ready" || state.workspaceTitle === void 0 || state.value.kind === "none") return;
@@ -3732,7 +3859,7 @@ window.__ModuleLoader__.load({
3732
3859
  }, current.key);
3733
3860
  }
3734
3861
  //#endregion
3735
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/select/single-select.css.mjs
3862
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/select/single-select.css.mjs
3736
3863
  const css$6 = ".-cerbur-clutch-dsh-worktree-singleSelectRoot { min-width: 0; width: 100%; }\n.-cerbur-clutch-dsh-worktree-singleSelectTrigger {\n display: flex; align-items: center; gap: 8px; width: 100%; min-width: 0;\n min-height: 36px; padding: 6px 10px; border-radius: var(--dsw-radius-md, 8px);\n border: 1px solid var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-base); color: var(--dsw-alias-label-primary);\n font: inherit; text-align: start; cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-singleSelectRoot[data-size='compact'] { width: min(280px, 45vw); }\n.-cerbur-clutch-dsh-worktree-singleSelectRoot[data-size='compact'] .-cerbur-clutch-dsh-worktree-singleSelectTrigger { min-height: 28px; padding: 3px 8px; font-size: 12px; }\n.-cerbur-clutch-dsh-worktree-singleSelectTrigger:disabled, .-cerbur-clutch-dsh-worktree-singleSelectOption:disabled { opacity: .4; cursor: default; }\n.-cerbur-clutch-dsh-worktree-singleSelectTrigger:focus-visible { outline: 2px solid var(--dsw-alias-state-business-primary); outline-offset: 2px; }\n.-cerbur-clutch-dsh-worktree-singleSelectPopup {\n position: fixed; z-index: 1100; padding: 8px; box-sizing: border-box;\n border: 0; border-radius: var(--dsw-radius-lg, 12px);\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l1);\n box-shadow: var(--dsw-elevation-prominent);\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n}\n.-cerbur-clutch-dsh-worktree-singleSelectPicker { display: flex; flex-direction: column; gap: 8px; min-width: 0; }\n.-cerbur-clutch-dsh-worktree-singleSelectSearch { box-sizing: border-box; width: 100%; min-width: 0; }\n.-cerbur-clutch-dsh-worktree-singleSelectLoading { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 80px; color: var(--dsw-alias-label-secondary); font-size: 12px; }\n.-cerbur-clutch-dsh-worktree-singleSelectLoading svg { width: 16px; height: 16px; animation: singleSelectSpin 1s linear infinite; }\n@keyframes singleSelectSpin { to { transform: rotate(360deg); } }\n@media (prefers-reduced-motion: reduce) { .-cerbur-clutch-dsh-worktree-singleSelectLoading svg { animation: none; } }\n.-cerbur-clutch-dsh-worktree-singleSelectFilters { display: flex; flex-wrap: wrap; gap: 4px; }\n.-cerbur-clutch-dsh-worktree-singleSelectFilters button {\n border: 0; border-radius: var(--dsw-radius-md, 8px); padding: 4px 8px; background: transparent;\n color: var(--dsw-alias-label-secondary); font: inherit; font-size: 11px; cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-singleSelectFilters button[aria-pressed='true'], .-cerbur-clutch-dsh-worktree-singleSelectFilters button:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); color: var(--dsw-alias-label-primary); }\n.-cerbur-clutch-dsh-worktree-singleSelectViewport {\n height: clamp(120px, calc(100dvh - 160px), 300px); overflow-y: auto; overscroll-behavior: contain;\n padding: 4px; box-sizing: border-box; min-height: 0;\n}\n.-cerbur-clutch-dsh-worktree-singleSelectPopup .-cerbur-clutch-dsh-worktree-singleSelectViewport { height: auto; max-height: var(--single-select-viewport-height, 220px); }\n.-cerbur-clutch-dsh-worktree-singleSelectPopup .-cerbur-clutch-dsh-worktree-singleSelectEmpty { min-height: 80px; }\n.-cerbur-clutch-dsh-worktree-singleSelectGroup { display: flex; align-items: center; justify-content: space-between; gap: 8px; height: 36px; box-sizing: border-box; padding: 6px 8px; color: var(--dsw-alias-label-tertiary); font-size: 11px; line-height: 15px; }\n.-cerbur-clutch-dsh-worktree-singleSelectOption {\n box-sizing: border-box;\n display: flex; align-items: center; gap: 6px; width: 100%; min-height: 34px;\n padding: 6px 8px; border: 0; border-radius: var(--dsw-radius-md, 8px); background: transparent;\n color: var(--dsw-alias-label-primary); font: inherit; font-size: 13px; line-height: 20px; text-align: start; cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-singleSelectOption:hover:not(:disabled), .-cerbur-clutch-dsh-worktree-singleSelectOption[data-highlighted='true']:not(:disabled), .-cerbur-clutch-dsh-worktree-singleSelectOption:focus-visible:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); outline: none; }\n.-cerbur-clutch-dsh-worktree-singleSelectOption[data-description='true'] { min-height: 48px; }\n.-cerbur-clutch-dsh-worktree-singleSelectText { display: flex; flex-direction: column; flex: 1; min-width: 0; }\n.-cerbur-clutch-dsh-worktree-singleSelectName { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.-cerbur-clutch-dsh-worktree-singleSelectDescription { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--dsw-alias-label-tertiary); font-size: 11px; line-height: 16px; }\n.-cerbur-clutch-dsh-worktree-singleSelectBadge { flex: none; color: var(--dsw-alias-label-tertiary); font-size: 11px; }\n.-cerbur-clutch-dsh-worktree-singleSelectTrigger > svg, .-cerbur-clutch-dsh-worktree-singleSelectOption > svg { width: 14px; height: 14px; flex: none; }\n.-cerbur-clutch-dsh-worktree-singleSelectEmpty { display: grid; place-items: center; height: 100%; color: var(--dsw-alias-label-tertiary); font-size: 13px; }\n";
3737
3864
  const styleId$6 = "@cerbur/clutch-dsh-worktree/single-select.css";
3738
3865
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/single-select.css\"]") === null) {
@@ -4133,7 +4260,7 @@ window.__ModuleLoader__.load({
4133
4260
  });
4134
4261
  }
4135
4262
  //#endregion
4136
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/branch/git-branch.css.mjs
4263
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/branch/git-branch.css.mjs
4137
4264
  const css$5 = ".-cerbur-clutch-dsh-worktree-branchFetch { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 4px; border: 0; border-radius: var(--dsw-radius-sm); background: transparent; color: var(--dsw-alias-label-secondary); cursor: pointer; }\n.-cerbur-clutch-dsh-worktree-branchFetch:hover:not(:disabled) { background: var(--dsw-alias-interactive-bg-hover); }\n.-cerbur-clutch-dsh-worktree-branchFetch:disabled { opacity: .4; cursor: default; }\n.-cerbur-clutch-dsh-worktree-branchFetch svg { width: 16px; height: 16px; }\n.-cerbur-clutch-dsh-worktree-branchFetch[aria-busy='true'] svg { animation: branchFetchSpin 1s linear infinite; }\n@keyframes branchFetchSpin { to { transform: rotate(360deg); } }\n@media (prefers-reduced-motion: reduce) { .-cerbur-clutch-dsh-worktree-branchFetch[aria-busy='true'] svg { animation: none; } }\n.-cerbur-clutch-dsh-worktree-branchFetch[data-fetch-status='success'], .-cerbur-clutch-dsh-worktree-branchFetch[data-fetch-status='error'] { width: auto; padding-inline: 6px; white-space: nowrap; font-size: 12px; line-height: 18px; }\n.-cerbur-clutch-dsh-worktree-branchFetch[data-fetch-status='success']:disabled { opacity: 1; }\n.-cerbur-clutch-dsh-worktree-branchFetch[data-fetch-status='error'] { color: var(--dsw-alias-state-error-primary); }\n";
4138
4265
  const styleId$5 = "@cerbur/clutch-dsh-worktree/git-branch.css";
4139
4266
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/git-branch.css\"]") === null) {
@@ -7339,6 +7466,11 @@ window.__ModuleLoader__.load({
7339
7466
  //#endregion
7340
7467
  //#region lib/client/surface/components/SurfaceContent.js
7341
7468
  function SurfaceContent({ source, props, lifecycle, mutation, session, read, expansion, ordering, drag, menus, registration, native, lifecycleState }) {
7469
+ const bindScrollerRef = props.sidebarSeat?.bindScrollerRef;
7470
+ (0, react.useLayoutEffect)(() => {
7471
+ bindScrollerRef?.(expansion.contentRef.current);
7472
+ return () => bindScrollerRef?.(null);
7473
+ }, [bindScrollerRef, expansion.contentRef]);
7342
7474
  const { forkRecoverySnapshot } = source;
7343
7475
  const { t, retryForkSession, openSession } = props;
7344
7476
  const { recoveryAction } = lifecycle;
@@ -7757,15 +7889,7 @@ window.__ModuleLoader__.load({
7757
7889
  const panel = (0, react.useRef)(null);
7758
7890
  const panelId = (0, react.useId)();
7759
7891
  const visible = open && !hidden;
7760
- const position = (0, _deepseek_ai_dsh_client_ui_primitives.useAnchoredPosition)({
7761
- open: visible,
7762
- anchorRef: trigger,
7763
- panelRef: panel,
7764
- side: "bottom",
7765
- align: "end",
7766
- gap: 8,
7767
- margin: 8
7768
- });
7892
+ const anchorStyle = { "--clutch-activity-anchor": `--clutch-activity-${panelId.replaceAll(":", "")}` };
7769
7893
  (0, _deepseek_ai_dsh_client_ui_primitives.useDismissOnOutsidePointer)(root, visible, setOpen, panel);
7770
7894
  (0, react.useEffect)(() => {
7771
7895
  const timestamp = Date.now();
@@ -7792,8 +7916,8 @@ window.__ModuleLoader__.load({
7792
7916
  };
7793
7917
  }, [visible]);
7794
7918
  (0, react.useEffect)(() => {
7795
- if (visible && position !== null) panel.current?.focus();
7796
- }, [visible, position === null]);
7919
+ if (visible) panel.current?.focus();
7920
+ }, [visible]);
7797
7921
  const hasActivity = entries.length > 0;
7798
7922
  return (0, react_jsx_runtime.jsxs)("span", {
7799
7923
  ref: root,
@@ -7807,6 +7931,7 @@ window.__ModuleLoader__.load({
7807
7931
  ref: trigger,
7808
7932
  type: "button",
7809
7933
  className: worktree_css_default.iconButton,
7934
+ style: anchorStyle,
7810
7935
  "aria-label": hasActivity ? t("activity.count", { n: entries.length }) : t("activity.title"),
7811
7936
  "aria-expanded": visible,
7812
7937
  "aria-haspopup": "dialog",
@@ -7839,10 +7964,7 @@ window.__ModuleLoader__.load({
7839
7964
  "aria-label": t("activity.title"),
7840
7965
  tabIndex: -1,
7841
7966
  className: worktree_css_default.activityPanel,
7842
- style: {
7843
- ...position,
7844
- visibility: position === null ? "hidden" : void 0
7845
- },
7967
+ style: anchorStyle,
7846
7968
  onBlur: (event) => {
7847
7969
  const next = event.relatedTarget;
7848
7970
  if (next instanceof Node && !event.currentTarget.contains(next) && !root.current?.contains(next)) setOpen(false);
@@ -8014,7 +8136,7 @@ window.__ModuleLoader__.load({
8014
8136
  children: (0, react_jsx_runtime.jsx)(IconCollapseAll16, {})
8015
8137
  })
8016
8138
  }),
8017
- (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
8139
+ createWorkspace !== void 0 && (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
8018
8140
  label: t("workspace.add"),
8019
8141
  side: "bottom",
8020
8142
  delayMs: 500,
@@ -10302,7 +10424,7 @@ window.__ModuleLoader__.load({
10302
10424
  };
10303
10425
  const defaultOpenInAppController = new OpenInAppController();
10304
10426
  //#endregion
10305
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/dashboard/open-in-app.css.mjs
10427
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/dashboard/open-in-app.css.mjs
10306
10428
  const css$4 = ".-cerbur-clutch-dsh-worktree-control {\n display: inline-flex;\n align-self: flex-end;\n}\n\n.-cerbur-clutch-dsh-worktree-split {\n display: inline-flex;\n align-items: stretch;\n box-sizing: border-box;\n height: 28px;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: 14px;\n overflow: hidden;\n font-family: var(--dsw-font-family);\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-main,\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-chevron {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n border: 0;\n background: none;\n color: var(--dsw-alias-label-primary);\n font-size: 11px;\n font-weight: 400;\n line-height: 16px;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-main {\n padding: 5px 6px 5px 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-main:hover:not(:disabled),\n.-cerbur-clutch-dsh-worktree-main:focus-visible,\n.-cerbur-clutch-dsh-worktree-chevron:hover,\n.-cerbur-clutch-dsh-worktree-chevron:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-main:disabled {\n color: var(--dsw-alias-label-dimmed);\n cursor: wait;\n}\n\n.-cerbur-clutch-dsh-worktree-main[data-state='error'] {\n color: var(--dsw-alias-state-error-primary, #e03e3e);\n box-shadow: inset 0 0 0 1px var(--dsw-alias-state-error-primary, #e03e3e);\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-chevron {\n padding: 5px 6px 5px 4px;\n border-left: 0.5px solid var(--dsw-alias-border-l4);\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-icon {\n flex: none;\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-icon {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-chevron svg {\n width: 12px;\n height: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-fallback {\n text-decoration: none;\n align-self: flex-end;\n}\n\nimg.-cerbur-clutch-dsh-worktree-icon {\n display: block;\n object-fit: contain;\n user-select: none;\n}\n";
10307
10429
  const styleId$4 = "@cerbur/clutch-dsh-worktree/open-in-app.css";
10308
10430
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/open-in-app.css\"]") === null) {
@@ -10713,7 +10835,7 @@ window.__ModuleLoader__.load({
10713
10835
  };
10714
10836
  }
10715
10837
  //#endregion
10716
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/dashboard/dashboard.css.mjs
10838
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/dashboard/dashboard.css.mjs
10717
10839
  const css$3 = ".-cerbur-clutch-dsh-worktree-dashboardSurface {\n position: absolute;\n box-sizing: border-box;\n z-index: 2;\n overflow: auto;\n overscroll-behavior: contain;\n pointer-events: auto;\n container-type: inline-size;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-primary, #19212f);\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardSurface *,\n.-cerbur-clutch-dsh-worktree-dashboardSurface *::before,\n.-cerbur-clutch-dsh-worktree-dashboardSurface *::after {\n box-sizing: border-box;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface button:not(.-cerbur-clutch-dsh-worktree-dashboardRefButton) {\n font: inherit;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface svg {\n width: 18px;\n height: 18px;\n flex: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface code {\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface button:focus-visible,\n.-cerbur-clutch-dsh-worktree-dashboardSurface a:focus-visible,\n.-cerbur-clutch-dsh-worktree-dashboardPanel:focus-visible {\n outline: 2px solid #497cd4;\n outline-offset: 3px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface h1:focus {\n outline: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardPage {\n max-width: 1240px;\n margin: 0 auto;\n padding: 24px 30px 28px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessions {\n list-style: none;\n padding: 0;\n margin: 12px 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessions button {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 8px;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionLabel {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionMeta {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: flex-end;\n min-width: 28px;\n color: var(--dsw-alias-label-tertiary, #858e9d);\n}\n.-cerbur-clutch-dsh-worktree-dashboardChildPath {\n display: block;\n margin-top: 4px;\n font-size: 12px;\n color: var(--dsw-alias-label-secondary, #788191);\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardChildState {\n display: flex;\n flex: none;\n flex-direction: column;\n align-items: flex-end;\n gap: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardManageToolbar {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 12px;\n margin-top: 20px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageToolbar label,\n.-cerbur-clutch-dsh-worktree-dashboardManageStopped {\n display: flex;\n align-items: flex-start;\n gap: 8px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageHint {\n color: var(--dsw-alias-label-secondary, #788191);\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageList,\n.-cerbur-clutch-dsh-worktree-dashboardManageResults,\n.-cerbur-clutch-dsh-worktree-dashboardManageConfirmList {\n list-style: none;\n padding: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageList label {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 12px 8px;\n border-radius: 6px;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageList label:hover,\n.-cerbur-clutch-dsh-worktree-dashboardManageList label:has(input:checked) {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageList label:has(input:focus-visible) {\n outline: 2px solid #497cd4;\n outline-offset: 2px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageList input,\n.-cerbur-clutch-dsh-worktree-dashboardManageToolbar input,\n.-cerbur-clutch-dsh-worktree-dashboardManageStopped input {\n flex: none;\n accent-color: var(--dsw-alias-brand-primary, #497cd4);\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageResults li,\n.-cerbur-clutch-dsh-worktree-dashboardManageConfirmList li {\n padding: 8px 0;\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageConfirmList {\n max-height: 260px;\n overflow: auto;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageConfirmList code {\n display: block;\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardManageResults [data-batch-result='failed'] {\n color: var(--dsw-alias-label-error, #d34b4b);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionStatus {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionTime {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n line-height: 20px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessions button:hover,\n.-cerbur-clutch-dsh-worktree-dashboardSessions button[aria-current] {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface a {\n text-decoration: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions button:not(:disabled) {\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTopline {\n position: sticky;\n top: 0;\n z-index: 3;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n gap: 8px 20px;\n min-height: 50px;\n padding: 10px 20px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-secondary, #677080);\n font-size: 13px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTopline > span {\n flex: 1 1 120px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTopline > span > span {\n margin: 0 8px;\n opacity: 0.5;\n}\n.-cerbur-clutch-dsh-worktree-dashboardToplineActions {\n display: inline-flex;\n flex-wrap: nowrap;\n flex-shrink: 0;\n align-items: center;\n gap: 8px;\n margin-inline-start: auto;\n max-width: 100%;\n -webkit-app-region: no-drag;\n}\n/* AppFrame's native reopen/New Session seat follows shell.-cerbur-clutch-dsh-worktree-overlay in DOM order.\n Keep its existing actions above the Dashboard, with its published clearance\n reserved in the title. This rule disappears as soon as the Dashboard closes. */\nhtml[data-platform='darwin']\n [data-sidebar-collapsed]:has([data-worktree-dashboard], [data-worktree-dashboard-request])\n > [data-shell-leading] {\n z-index: 21;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSidebarButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 6px;\n border: 0;\n border-radius: 28px;\n background: transparent;\n color: var(--dsw-alias-label-secondary, #677080);\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSidebarButton:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSidebarButton svg {\n width: 15px;\n height: 15px;\n transform: scaleX(-1);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeader {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(260px, 0.45fr);\n gap: 32px;\n margin-bottom: 15px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIdentity {\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow > svg {\n width: 24px;\n height: 24px;\n color: #3e73ca;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow h1 {\n font-size: 25px;\n letter-spacing: -0.6px;\n line-height: 1.3;\n font-weight: 650;\n margin: 0;\n flex: 0 1 auto;\n overflow: hidden;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardRefButton {\n display: block;\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: inherit;\n font: inherit;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHealth,\n.-cerbur-clutch-dsh-worktree-dashboardSoon {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n white-space: nowrap;\n border-radius: 6px;\n padding: 3px 7px;\n font-size: 11px;\n font-weight: 500;\n color: var(--dsw-alias-label-secondary, #687182);\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='ready'] {\n background: color-mix(in srgb, #1eab78 13%, transparent);\n color: #21976f;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='repair'],\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='recovery-needed'],\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='branch-drift'] {\n background: color-mix(in srgb, #e7a839 14%, transparent);\n color: #b27a1e;\n}\n.-cerbur-clutch-dsh-worktree-dashboardPath {\n display: flex;\n align-items: flex-start;\n gap: 9px;\n margin-top: 12px;\n color: var(--dsw-alias-label-secondary, #697283);\n}\n.-cerbur-clutch-dsh-worktree-dashboardPath code {\n padding-top: 4px;\n overflow-wrap: anywhere;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFieldLabel {\n font-size: 10px;\n border: 1px solid var(--dsw-alias-border-l3, #e5e7ed);\n border-radius: 4px;\n padding: 2px 5px;\n margin-top: 2px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIconButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 29px;\n height: 29px;\n border: 0;\n border-radius: 5px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIconButton:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardCopyStatus {\n font-size: 12px;\n margin: 4px 0 0;\n min-height: 18px;\n color: #21976f;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCopyStatus[role='alert'] {\n color: #bd5d43;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 8px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside > button,\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside > a {\n align-self: flex-end;\n}\n.-cerbur-clutch-dsh-worktree-dashboardButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 7px;\n padding: 6px 11px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: inherit;\n white-space: nowrap;\n cursor: pointer;\n font-size: 12px !important;\n line-height: 1.5;\n}\n.-cerbur-clutch-dsh-worktree-dashboardButton:disabled {\n color: var(--dsw-alias-label-secondary, #737e8e);\n cursor: not-allowed;\n}\n.-cerbur-clutch-dsh-worktree-dashboardButton:not(:disabled):hover {\n background: var(--dsw-alias-interactive-bg-hover, #f4f6f9);\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs {\n display: flex;\n gap: 22px;\n overflow-x: auto;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e1e5ed);\n margin-bottom: 24px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n gap: 8px;\n padding: 12px 2px;\n border: 0;\n border-bottom: 2px solid transparent;\n background: transparent;\n color: var(--dsw-alias-label-secondary, #6c7480);\n cursor: pointer;\n font-size: 13px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs button[aria-selected='true'] {\n color: #4276c8;\n border-bottom-color: #4276c8;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs svg {\n width: 16px;\n height: 16px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardPanel {\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardGrid {\n display: grid;\n grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);\n gap: 20px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardColumn {\n display: flex;\n flex-direction: column;\n gap: 20px;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCard,\n.-cerbur-clutch-dsh-worktree-dashboardStart {\n padding: 20px;\n border: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-radius: 11px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCard h2,\n.-cerbur-clutch-dsh-worktree-dashboardStart h2 {\n display: flex;\n align-items: center;\n gap: 9px;\n font-size: 16px;\n font-weight: 620;\n line-height: 1.4;\n margin: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCard p,\n.-cerbur-clutch-dsh-worktree-dashboardStart > p {\n font-size: 12px;\n color: var(--dsw-alias-label-secondary, #7b8290);\n margin: 8px 0 15px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCardHeading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 10px;\n margin-bottom: 7px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStart {\n background: linear-gradient(\n 115deg,\n color-mix(in srgb, #6b9eff 9%, transparent),\n color-mix(in srgb, #6b9eff 3%, transparent)\n );\n}\n.-cerbur-clutch-dsh-worktree-dashboardStart h2 > svg {\n color: #477bc6;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 13px;\n margin-top: 23px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions button {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 18px 14px;\n text-align: left;\n border: 1px solid color-mix(in srgb, #7299e7 28%, transparent);\n border-radius: 8px;\n background: color-mix(in srgb, #6b9eff 5%, transparent);\n color: #4673bc;\n cursor: not-allowed;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions button:nth-child(2) {\n color: #38846e;\n border-color: color-mix(in srgb, #4fba9a 25%, transparent);\n background: color-mix(in srgb, #4fba9a 5%, transparent);\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions svg {\n width: 23px;\n height: 23px;\n margin-top: 3px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions strong {\n display: block;\n font-size: 14px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions small {\n display: block;\n margin-top: 6px;\n line-height: 1.6;\n font-size: 12px;\n color: var(--dsw-alias-label-secondary, #69788a);\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions em {\n display: block;\n font-size: 10px;\n font-style: normal;\n margin-top: 10px;\n opacity: 0.75;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder {\n padding: 26px 20px;\n min-height: 177px;\n border: 1px dashed var(--dsw-alias-border-l3, #dfe4ed);\n border-radius: 7px;\n background: var(--dsw-alias-interactive-bg-hover, #f7f8fa);\n text-align: center;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder > svg {\n display: block;\n margin: 0 auto 10px;\n width: 25px;\n height: 25px;\n color: #929cac;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder strong {\n font-size: 13px;\n font-weight: 500;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder p {\n max-width: 310px;\n margin: 7px auto 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardEmpty {\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n justify-content: center;\n min-height: 78px;\n padding: 10px 8px;\n text-align: center;\n}\n.-cerbur-clutch-dsh-worktree-dashboardEmpty p {\n max-width: 300px;\n margin: 0;\n line-height: 1.7;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts {\n margin: 8px 0 14px;\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts > div {\n display: grid;\n grid-template-columns: minmax(70px, 0.65fr) minmax(0, 1fr);\n gap: 12px;\n align-items: center;\n padding: 11px 0;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #eef0f5);\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts > div:last-child {\n border: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts dt {\n grid-column: 1;\n min-width: 0;\n color: var(--dsw-alias-label-secondary, #788191);\n /* Prefer normal break points (including trailing `/` and `-`) first. */\n overflow-wrap: break-word;\n word-break: normal;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts dd {\n grid-column: 2;\n min-width: 0;\n margin: 0;\n text-align: right;\n /* Only split an unbreakable value after natural opportunities are exhausted. */\n overflow-wrap: break-word;\n word-break: normal;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts > div:has(.-cerbur-clutch-dsh-worktree-dashboardFactAction > *) {\n grid-template-columns: minmax(70px, 0.65fr) minmax(0, 1fr) 29px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts dd > span {\n max-width: 100%;\n flex-wrap: wrap;\n justify-content: flex-end;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFactAction {\n display: flex;\n grid-column: 3;\n align-items: center;\n justify-content: flex-end;\n min-width: 29px;\n min-height: 29px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFactAction:empty { display: none; }\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts {\n width: 100%;\n margin: 0;\n padding: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts > div,\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts > div:has(.-cerbur-clutch-dsh-worktree-dashboardFactAction > *) {\n grid-template-columns: minmax(60px, 0.55fr) minmax(0, 1fr) 26px;\n gap: 8px;\n min-height: 34px;\n padding: 3px 0;\n border: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts time {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-secondary, #687182);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts .-cerbur-clutch-dsh-worktree-dashboardFactAction {\n min-width: 26px;\n min-height: 26px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts .-cerbur-clutch-dsh-worktree-dashboardIconButton {\n width: 26px;\n height: 26px;\n border-radius: 6px;\n color: var(--dsw-alias-label-tertiary, #858e9d);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts .-cerbur-clutch-dsh-worktree-dashboardIconButton:hover,\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts .-cerbur-clutch-dsh-worktree-dashboardIconButton:focus-visible {\n background: transparent;\n color: var(--dsw-alias-label-primary, #19212f);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderFacts .-cerbur-clutch-dsh-worktree-dashboardIconButton svg {\n width: 14px;\n height: 14px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHistorical {\n color: var(--dsw-alias-label-secondary, #788191);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSyncOptions {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSyncOptions p {\n margin: 0;\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSyncOptions label {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSyncOptions input {\n margin-top: 4px;\n accent-color: var(--dsw-alias-text-link, #3e73ca);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSyncOptions small {\n display: block;\n margin-top: 4px;\n color: var(--dsw-alias-label-secondary, #788191);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n max-width: 100%;\n padding: 0;\n border: 0;\n background: transparent;\n color: var(--dsw-alias-label-primary, #19212f);\n text-align: left;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink > span {\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink svg {\n width: 14px;\n height: 14px;\n color: var(--dsw-alias-label-tertiary, #858e9d);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink:hover,\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink:focus-visible {\n color: var(--dsw-alias-text-link, #3e73ca);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink:hover svg,\n.-cerbur-clutch-dsh-worktree-dashboardBaseLink:focus-visible svg {\n color: inherit;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIconButton:disabled {\n color: var(--dsw-alias-label-secondary, #788191);\n cursor: not-allowed;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineModal {\n box-sizing: border-box;\n width: min(440px, calc(100vw - 48px));\n max-height: calc(100vh - 48px);\n max-height: calc(100dvh - 48px);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineModalContent {\n box-sizing: border-box;\n min-height: 0;\n overflow-y: auto;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselinePicker {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardLink {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n width: 100%;\n background: transparent;\n border: 1px solid var(--dsw-alias-border-l3, #e2e6ed);\n border-radius: 6px;\n padding: 7px 10px;\n font-size: 12px !important;\n color: inherit;\n cursor: pointer;\n margin-top: 8px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardLink:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f5f7fa);\n}\n.-cerbur-clutch-dsh-worktree-dashboardQuickActions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 16px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardQuickActions .-cerbur-clutch-dsh-worktree-dashboardButton {\n justify-content: flex-start;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 390px;\n padding: 40px 24px;\n text-align: center;\n border: 1px dashed var(--dsw-alias-border-l3, #dde3ec);\n border-radius: 11px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder > svg {\n width: 36px;\n height: 36px;\n color: #7c9bcf;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder h2 {\n font-size: 20px;\n font-weight: 600;\n margin: 16px 0 4px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder p {\n max-width: 420px;\n font-size: 13px;\n color: var(--dsw-alias-label-secondary, #7b8596);\n margin: 8px 0 18px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFooter {\n margin: 23px 0 0;\n text-align: center;\n font-size: 11px;\n color: var(--dsw-alias-label-secondary, #8a92a0);\n}\n\n@container (max-width: 820px) {\n .-cerbur-clutch-dsh-worktree-dashboardPage {\n padding: 20px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardHeader {\n grid-template-columns: minmax(0, 1fr);\n gap: 12px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardHeaderAside {\n display: flex;\n }\n .-cerbur-clutch-dsh-worktree-dashboardGrid {\n grid-template-columns: minmax(0, 1fr);\n }\n .-cerbur-clutch-dsh-worktree-dashboardTabs {\n gap: 18px;\n }\n}\n\n@container (max-width: 440px) {\n .-cerbur-clutch-dsh-worktree-dashboardManageList label {\n display: grid;\n grid-template-columns: auto auto minmax(0, 1fr);\n gap: 8px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardManageList .-cerbur-clutch-dsh-worktree-dashboardChildState {\n grid-column: 3;\n align-items: flex-start;\n flex-direction: row;\n flex-wrap: wrap;\n min-width: 0;\n }\n .-cerbur-clutch-dsh-worktree-dashboardManageList .-cerbur-clutch-dsh-worktree-dashboardHealth {\n white-space: normal;\n }\n .-cerbur-clutch-dsh-worktree-dashboardPage {\n padding: 16px 12px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardTitleRow h1 {\n font-size: 22px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardStartActions {\n grid-template-columns: minmax(0, 1fr);\n }\n .-cerbur-clutch-dsh-worktree-dashboardCard,\n .-cerbur-clutch-dsh-worktree-dashboardStart {\n padding: 16px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardTopline {\n gap: 10px;\n }\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionsText {\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n max-height: 240px;\n overflow: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardInstructionsInput {\n box-sizing: border-box;\n width: 100%;\n resize: vertical;\n padding: 10px;\n border: 1px solid var(--dsw-alias-border-l4);\n border-radius: 8px;\n background: var(--dsw-alias-bg-base);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardInstructionActions {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n";
10718
10840
  const styleId$3 = "@cerbur/clutch-dsh-worktree/dashboard.css";
10719
10841
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/dashboard.css\"]") === null) {
@@ -11025,7 +11147,7 @@ window.__ModuleLoader__.load({
11025
11147
  });
11026
11148
  }
11027
11149
  //#endregion
11028
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/dashboard/git/worktree-git.css.mjs
11150
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/dashboard/git/worktree-git.css.mjs
11029
11151
  const css$2 = ".-cerbur-clutch-dsh-worktree-gitPanel {\n min-width: 0;\n min-height: 0;\n}\n.-cerbur-clutch-dsh-worktree-gitCommitStats {\n display: inline-flex;\n gap: 8px;\n color: var(--dsw-alias-label-secondary, #677080);\n font-variant-numeric: tabular-nums;\n}\n.-cerbur-clutch-dsh-worktree-gitFileRow {\n display: flex;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-gitFileRow > button:first-child { flex: 1; min-width: 0; }\n.-cerbur-clutch-dsh-worktree-gitFileRow > .-cerbur-clutch-dsh-worktree-gitFileOpen { width: 28px; min-width: 28px; flex: none; padding: 4px; opacity: 0; }\n.-cerbur-clutch-dsh-worktree-gitFileRow > .-cerbur-clutch-dsh-worktree-gitFileOpen svg { width: 14px; height: 14px; }\n.-cerbur-clutch-dsh-worktree-gitFileRow:hover > .-cerbur-clutch-dsh-worktree-gitFileOpen,\n.-cerbur-clutch-dsh-worktree-gitFileRow:focus-within > .-cerbur-clutch-dsh-worktree-gitFileOpen { opacity: 1; }\n\n.-cerbur-clutch-dsh-worktree-gitPanelHeader {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 20px;\n margin-bottom: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitPanelHeader h2 {\n margin: 0;\n font-size: 18px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitPanelHeading {\n min-width: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineSelector {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n margin-top: 10px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselinePrompt {\n padding: 22px;\n border: 1px dashed var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 10px;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselinePrompt strong {\n display: block;\n margin-bottom: 6px;\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselinePrompt p {\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 20px;\n margin: 10px 0 0;\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts > div {\n display: flex;\n gap: 6px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts dt::after {\n content: ':';\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts dd {\n margin: 0;\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts code {\n margin-left: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDerived {\n margin-left: 7px;\n color: var(--dsw-alias-state-warn-label, #9a6e22);\n}\n\n.-cerbur-clutch-dsh-worktree-gitRefresh {\n flex: none;\n padding: 6px 11px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: inherit;\n cursor: pointer;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitRefresh:disabled {\n color: var(--dsw-alias-label-secondary, #7d8795);\n cursor: wait;\n}\n\n/*\n * One 3x3 grid carries both layouts: commit and changed-file panes sit around a\n * row divider, the diff sits beside them across a column divider. Wide layouts\n * place the stack in the left column, narrow layouts place all three panes on\n * three rows. Both shares are custom properties the dividers drag, and both are\n * clamped so each pane keeps a usable size.\n */\n.-cerbur-clutch-dsh-worktree-gitColumns {\n /* Keep the Git surface bounded by the viewport, never by its data volume. */\n --git-columns-height: clamp(360px, calc(100vh - 300px), 560px);\n --git-columns-height: clamp(360px, calc(100dvh - 300px), 560px);\n /* Leading-pane shares: the row divider and the column divider drag these. */\n --git-rows-top: 45%;\n --git-columns-left: 38%;\n display: grid;\n grid-template-columns:\n minmax(240px, min(var(--git-columns-left), calc(100% - 247px)))\n 7px\n minmax(240px, 1fr);\n grid-template-rows:\n minmax(140px, min(var(--git-rows-top), calc(100% - 147px)))\n 7px\n minmax(140px, 1fr);\n height: var(--git-columns-height);\n min-height: 0;\n border: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-radius: 10px;\n overflow: hidden;\n resize: none;\n}\n\n/* Wide: commits over changed files in the left column, diff down the right column. */\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='commits'] {\n grid-area: 1 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows'] {\n grid-area: 2 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='changed-files'] {\n grid-area: 3 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns'] {\n grid-area: 1 / 2 / -1 / 3;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='diff'] {\n grid-area: 1 / 3 / -1 / -1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--dsw-alias-bg-base, #fff);\n touch-action: none;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter::before {\n content: '';\n border-radius: 999px;\n background: var(--dsw-alias-border-l2, #cbd2dc);\n transition: background 0.15s ease;\n}\n\n/* Widen the grab area without moving the visible divider line. */\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter::after {\n content: '';\n position: absolute;\n}\n\n/* Both divider panes draw a full border box, so the pane above and the pane below\n (or the pane left and the pane right) are each closed by their own edge. */\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows'] {\n box-sizing: border-box;\n height: 7px;\n cursor: row-resize;\n border-top: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows']::before {\n width: 30px;\n height: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows']::after {\n inset: -3px 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns'] {\n box-sizing: border-box;\n width: 7px;\n cursor: col-resize;\n border-left: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-right: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns']::before {\n width: 2px;\n height: 30px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns']::after {\n inset: 0 -3px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter:hover::before,\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter:focus-visible::before,\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter[data-dashboard-git-splitting='true']::before {\n background: var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter:focus-visible {\n outline: 2px solid #497cd4;\n outline-offset: -2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumn {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n overflow: hidden;\n background: var(--dsw-alias-bg-base, #fff);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader {\n display: flex;\n flex: none;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n min-height: 43px;\n padding: 12px 13px 9px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #edf0f4);\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader h3 {\n margin: 0;\n color: var(--dsw-alias-label-primary, #273142);\n font-size: 12px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader span,\n.-cerbur-clutch-dsh-worktree-gitColumnHeader code {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeaderMeta {\n display: flex;\n min-width: 0;\n align-items: baseline;\n justify-content: flex-end;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader .-cerbur-clutch-dsh-worktree-gitLineStats,\n.-cerbur-clutch-dsh-worktree-gitColumnHeader .-cerbur-clutch-dsh-worktree-gitLineStats > span {\n overflow: visible;\n text-overflow: clip;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeaderUnknown {\n color: var(--dsw-alias-label-tertiary, #8a94a3);\n}\n\n/* Right side of the commits header: the truncation note and the multi-select switch. */\n.-cerbur-clutch-dsh-worktree-gitColumnHeaderControls {\n display: flex;\n min-width: 0;\n align-self: center;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n}\n\n/*\n * A native checkbox owns the state, focus and keyboard behavior; the track and\n * thumb below are presentational and follow :checked through the sibling selector.\n */\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect {\n position: relative;\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n border: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack {\n position: relative;\n display: block;\n flex: none;\n width: 24px;\n height: 14px;\n border-radius: 999px;\n background: var(--dsw-alias-border-l2, #cbd2dc);\n transition: background 0.15s ease;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelectThumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--dsw-alias-bg-base, #fff);\n box-shadow: 0 1px 2px rgb(15 23 42 / 25%);\n transition: transform 0.15s ease;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input:checked + .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack {\n background: var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input:checked + .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectThumb {\n transform: translateX(10px);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input:focus-visible + .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack {\n outline: 2px solid #497cd4;\n outline-offset: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton {\n display: flex;\n width: calc(100% - 10px);\n flex-direction: column;\n gap: 3px;\n margin: 5px;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-primary, #273142);\n text-align: left;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton:hover,\n.-cerbur-clutch-dsh-worktree-gitSummaryButton[aria-pressed='true'] {\n border-color: var(--dsw-alias-state-business-primary, #467bc8);\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton span {\n font-size: 12px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton small {\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle {\n display: flex;\n align-items: flex-start;\n gap: 7px;\n width: calc(100% - 20px);\n margin: 3px 10px 8px;\n color: var(--dsw-alias-label-primary, #273142);\n cursor: pointer;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle input {\n flex: none;\n margin: 2px 0 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle span {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle strong {\n font-weight: 560;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle small {\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle input:disabled,\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle:has(input:disabled) {\n cursor: wait;\n opacity: 0.65;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSelectionToolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 5px 10px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #edf0f4);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSelectionToolbar button {\n border: 0;\n background: transparent;\n color: var(--dsw-alias-state-business-primary, #467bc8);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList {\n display: block;\n flex: 1 1 auto;\n min-height: 0;\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-gutter: stable;\n list-style: none;\n padding: 5px;\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList {\n overflow-x: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList > li,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderChildren,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderChildren > li {\n width: max-content;\n min-width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderChildren {\n list-style: none;\n padding: 0 0 0 12px;\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderButton {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 8px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 11px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderButton:hover,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderButton:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderIcon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderIcon > svg {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderName {\n min-width: max-content;\n overflow: visible;\n text-overflow: clip;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button {\n display: block;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button {\n display: grid;\n width: 100%;\n grid-template-columns: 15px minmax(0, 1fr);\n padding: 9px 8px;\n}\n\n/* Without the multi-select marks a row has a single column, so the subject and meta align with it. */\n.-cerbur-clutch-dsh-worktree-gitCommitList[data-dashboard-git-commit-multiselect='off'] button {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList[data-dashboard-git-commit-multiselect='off'] .-cerbur-clutch-dsh-worktree-gitCommitSubject,\n.-cerbur-clutch-dsh-worktree-gitCommitList[data-dashboard-git-commit-multiselect='off'] .-cerbur-clutch-dsh-worktree-gitCommitMeta {\n grid-column: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitSelectionMark {\n grid-row: 1 / span 2;\n color: var(--dsw-alias-state-business-primary, #467bc8);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button:hover,\n.-cerbur-clutch-dsh-worktree-gitCommitList button[aria-selected='true'],\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button:hover,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button[aria-selected='true'] {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button[aria-selected='true'] {\n box-shadow: inset 2px 0 var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button[data-dashboard-git-commit-kind='working-tree'] {\n background: var(--dsw-alias-state-warn-tertiary, #f8f5ed);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button[data-dashboard-git-commit-kind='working-tree'][aria-selected='true'] {\n box-shadow: inset 2px 0 var(--dsw-alias-state-warn-primary, #b18435);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitSubject {\n grid-column: 2;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMeta {\n grid-column: 2;\n display: flex;\n gap: 7px;\n margin-top: 4px;\n overflow: hidden;\n color: var(--dsw-alias-label-secondary, #7c8594);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMeta span,\n.-cerbur-clutch-dsh-worktree-gitCommitMeta time {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMeta time {\n margin-left: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitWorkingTree {\n color: var(--dsw-alias-state-warn-label, #8a6728);\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button {\n display: flex;\n width: max-content;\n min-width: 100%;\n box-sizing: border-box;\n align-items: flex-start;\n gap: 7px;\n padding: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFileIcon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFileIconGlyph {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath {\n min-width: max-content;\n flex: 0 0 auto;\n overflow: visible;\n text-overflow: clip;\n white-space: nowrap;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='added'] {\n color: var(--dsw-alias-state-success-primary, #23845f);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='deleted'] {\n color: var(--dsw-alias-state-error-secondary, #bd5d55);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='modified'],\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='renamed'],\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='copied'],\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='type-changed'] {\n color: var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFileContributors {\n flex: none;\n max-width: 9em;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary, #65758d);\n font-size: 9px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitLineStats {\n display: inline-flex;\n flex: none;\n gap: 6px;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitLineStats {\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitLineAdded {\n color: var(--dsw-alias-state-success-primary, #23845f);\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitLineRemoved {\n color: var(--dsw-alias-state-error-secondary, #bd5d55);\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffContainer {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffToolbar {\n display: flex;\n flex: none;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 12px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #edf0f4);\n background: var(--dsw-alias-bg-base, #ffffff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffPath {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n color: var(--dsw-alias-label-primary, #263342);\n font-weight: 560;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffOpenInSidebar {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 5px;\n padding: 3px 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 4px;\n background: var(--dsw-alias-bg-base, #ffffff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 11px;\n line-height: 16px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n/* The square 16px arrow keeps its aspect ratio; pin the box so it centers on the label. */\n.-cerbur-clutch-dsh-worktree-gitDiffOpenIcon {\n flex: none;\n width: 14px;\n height: 14px;\n color: var(--dsw-alias-label-tertiary, #8a94a3);\n transition: color 0.15s ease;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffOpenInSidebar:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n color: var(--dsw-alias-label-primary, #263342);\n border-color: var(--dsw-alias-border-l2, #cbd2dc);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffOpenInSidebar:hover .-cerbur-clutch-dsh-worktree-gitDiffOpenIcon {\n color: var(--dsw-alias-label-primary, #263342);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiff {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n min-height: 0;\n overflow: auto;\n padding: 7px 0 12px;\n background: var(--dsw-alias-markdown-code-block, #fafbfc);\n color: var(--dsw-alias-label-primary, #263342);\n font: 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffSegment {\n margin-bottom: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffSegmentHeader {\n padding: 5px 12px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffSegmentHeader code {\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffHunk {\n margin-bottom: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffHunkHeader {\n padding: 3px 12px;\n background: var(--dsw-alias-markdown-code-block-banner, #edf3fb);\n color: var(--dsw-alias-state-business-primary, #4a70a1);\n box-shadow: inset 0 1px 0 var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.04)), inset 0 -1px 0 var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.04));\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLine {\n display: grid;\n grid-template-columns: 44px 44px minmax(0, 1fr);\n min-width: max-content;\n padding-right: 12px;\n white-space: pre;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLineadd {\n background: color-mix(\n in srgb,\n var(--dsw-alias-state-success-primary, #23845f) 18%,\n var(--dsw-alias-markdown-code-block, #fafbfc)\n );\n box-shadow: inset 2px 0 var(--dsw-alias-state-success-primary, #23845f);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLinedelete {\n background: color-mix(\n in srgb,\n var(--dsw-alias-state-error-secondary, #bd5d55) 18%,\n var(--dsw-alias-markdown-code-block, #fafbfc)\n );\n box-shadow: inset 2px 0 var(--dsw-alias-state-error-secondary, #bd5d55);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLineNumber {\n padding-right: 8px;\n color: var(--dsw-alias-label-tertiary, #9aa3af);\n text-align: right;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLine code {\n min-width: 0;\n color: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSrOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffEmpty,\n.-cerbur-clutch-dsh-worktree-gitDiffMessage,\n.-cerbur-clutch-dsh-worktree-gitEmpty,\n.-cerbur-clutch-dsh-worktree-gitLoading,\n.-cerbur-clutch-dsh-worktree-gitUnavailable,\n.-cerbur-clutch-dsh-worktree-gitError {\n padding: 24px 16px;\n color: var(--dsw-alias-label-secondary, #727d8d);\n font-size: 12px;\n text-align: center;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffMessage,\n.-cerbur-clutch-dsh-worktree-gitUnavailable {\n min-height: 150px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitUnavailable strong {\n display: block;\n margin-bottom: 7px;\n color: var(--dsw-alias-label-primary, #273142);\n font-size: 14px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitUnavailable p {\n max-width: 500px;\n margin: 0 auto;\n line-height: 1.7;\n}\n\n.-cerbur-clutch-dsh-worktree-gitError {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 9px 12px;\n color: var(--dsw-alias-state-error-primary, #ae5c4c);\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-gitError p {\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitError button {\n flex: none;\n border: 1px solid currentColor;\n border-radius: 5px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n font-size: 11px;\n padding: 3px 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffFolded {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 12px;\n border-top: 1px dashed var(--dsw-alias-border-l3, #dfe3ea);\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffShowAll {\n padding: 2px 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: transparent;\n color: var(--dsw-alias-label-primary, #273142);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitRawDiff {\n display: block;\n flex: 1 1 auto;\n min-height: 0;\n max-height: none;\n overflow: auto;\n padding: 12px;\n margin: 0;\n white-space: pre;\n background: var(--dsw-alias-markdown-code-block, #fafbfc);\n color: var(--dsw-alias-label-primary, #263342);\n font: 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;\n}\n\n@container (min-width: 901px) {\n .-cerbur-clutch-dsh-worktree-gitColumns {\n /* Two stacked panes need more vertical room than three side-by-side panes. */\n --git-columns-height: clamp(440px, calc(100vh - 300px), 720px);\n --git-columns-height: clamp(440px, calc(100dvh - 300px), 720px);\n }\n}\n\n@container (max-width: 900px) {\n /* Narrow layout keeps the two-row arrangement: commits and changed files side by\n side on the first row, with the summary diff across the second row. Both\n dividers move with the panes, so either axis stays adjustable. */\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='commits'] {\n grid-area: 1 / 1;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns'] {\n grid-area: 1 / 2;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='changed-files'] {\n grid-area: 1 / 3;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows'] {\n grid-area: 2 / 1 / 3 / -1;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='diff'] {\n grid-area: 3 / 1 / -1 / -1;\n }\n}\n\n@container (max-width: 520px) {\n .-cerbur-clutch-dsh-worktree-gitPanelHeader {\n flex-direction: column;\n gap: 10px;\n }\n .-cerbur-clutch-dsh-worktree-gitRefresh {\n align-self: flex-end;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns {\n display: block;\n height: auto;\n min-height: 0;\n }\n .-cerbur-clutch-dsh-worktree-gitColumnSplitter {\n display: none;\n }\n .-cerbur-clutch-dsh-worktree-gitColumn {\n height: clamp(260px, calc(100vh - 360px), 360px);\n height: clamp(260px, calc(100dvh - 360px), 360px);\n min-height: 260px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n }\n .-cerbur-clutch-dsh-worktree-gitColumn:has(> .-cerbur-clutch-dsh-worktree-gitEmpty),\n .-cerbur-clutch-dsh-worktree-gitColumn:has(.-cerbur-clutch-dsh-worktree-gitDiffEmpty) { height: auto; min-height: 100px; }\n .-cerbur-clutch-dsh-worktree-gitColumns > .-cerbur-clutch-dsh-worktree-gitColumn:last-child {\n border-bottom: 0;\n }\n}\n";
11030
11152
  const styleId$2 = "@cerbur/clutch-dsh-worktree/worktree-git.css";
11031
11153
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/worktree-git.css\"]") === null) {
@@ -13202,7 +13324,7 @@ window.__ModuleLoader__.load({
13202
13324
  });
13203
13325
  }
13204
13326
  //#endregion
13205
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/settings/settings.css.mjs
13327
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/settings/settings.css.mjs
13206
13328
  const css$1 = ".-cerbur-clutch-dsh-worktree-settings {\n display: flex;\n flex-direction: column;\n gap: 12px;\n width: 100%;\n min-width: 0;\n max-width: 720px;\n color: var(--dsw-alias-label-primary);\n font-size: var(--dsh-content-font-size, 14px);\n line-height: calc(var(--dsh-content-font-size, 14px) + 8px);\n}\n\n[data-worktree-settings-nav-icon] > svg:not(.-cerbur-clutch-dsh-worktree-settingsNavIcon) {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsNavIcon {\n order: -1;\n flex: 0 0 auto;\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-toolSettings {\n display: flex;\n flex-direction: column;\n gap: 20px;\n min-width: 0;\n padding: 20px;\n border: 0.5px solid var(--dsw-alias-settings-card-stroke, var(--dsw-alias-border-l4));\n border-radius: var(--dsw-radius-xl, 16px);\n background: var(--dsw-alias-settings-card-fill, var(--dsw-alias-bg-layer-2));\n}\n\n.-cerbur-clutch-dsh-worktree-toolHeader,\n.-cerbur-clutch-dsh-worktree-toolRow {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 24px;\n}\n\n.-cerbur-clutch-dsh-worktree-toolHeader > div,\n.-cerbur-clutch-dsh-worktree-toolRow > div {\n min-width: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-toolTitle {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-toolHeader h3 {\n margin: 0;\n font-size: calc(var(--dsh-content-font-size, 14px) + 2px);\n font-weight: 600;\n}\n\n.-cerbur-clutch-dsh-worktree-toolHeader p,\n.-cerbur-clutch-dsh-worktree-toolOptionsHeading p,\n.-cerbur-clutch-dsh-worktree-toolRow p {\n margin: 0;\n color: var(--dsw-alias-label-tertiary);\n font-size: var(--dsh-content-font-size-secondary, calc(var(--dsh-content-font-size, 14px) - 1px));\n line-height: 1.5;\n overflow-wrap: anywhere;\n}\n\n.-cerbur-clutch-dsh-worktree-toolOptions {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding-top: 20px;\n border-top: 0.5px solid var(--dsw-alias-settings-card-stroke, var(--dsw-alias-border-l4));\n}\n\n.-cerbur-clutch-dsh-worktree-toolOptionsHeading h4 {\n margin: 0 0 6px;\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsh-content-font-size, 14px);\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-toolList {\n padding-left: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-toolRow {\n padding: 12px 0;\n}\n\n.-cerbur-clutch-dsh-worktree-toolRow + .-cerbur-clutch-dsh-worktree-toolRow {\n border-top: 0.5px solid var(--dsw-alias-border-l4);\n}\n\n.-cerbur-clutch-dsh-worktree-toolRow h5 {\n margin: 0 0 6px;\n font-size: var(--dsh-content-font-size, 14px);\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsTitle {\n margin: 0;\n font-size: calc(var(--dsh-content-font-size, 14px) + 2px);\n line-height: calc(var(--dsh-content-font-size, 14px) + 10px);\n font-weight: 500;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsTabs {\n width: 100%;\n box-sizing: border-box;\n}\n\n/* Native controls keep their palette and keyboard behavior; text and control\n height follow the body's font-size preference even on older DSH themes. */\n.-cerbur-clutch-dsh-worktree-settings .-cerbur-clutch-dsh-worktree-settingsTabs [role='tab'] {\n height: auto;\n min-height: 34px;\n padding-block: 6px;\n font-size: inherit;\n line-height: calc(var(--dsh-content-font-size, 14px) + 6px);\n white-space: normal;\n overflow-wrap: anywhere;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsPanel,\n.-cerbur-clutch-dsh-worktree-issueList {\n display: flex;\n flex-direction: column;\n min-width: 0;\n gap: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-issueList {\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsDescription,\n.-cerbur-clutch-dsh-worktree-settingsHint,\n.-cerbur-clutch-dsh-worktree-settingsEmpty,\n.-cerbur-clutch-dsh-worktree-issueMessage {\n margin: 0;\n overflow-wrap: anywhere;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsDescription,\n.-cerbur-clutch-dsh-worktree-settingsHint,\n.-cerbur-clutch-dsh-worktree-settingsEmpty {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.-cerbur-clutch-dsh-worktree-settingsHint {\n font-size: var(--dsh-content-font-size-secondary, calc(var(--dsh-content-font-size, 14px) - 1px));\n line-height: 1.5;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsToolbar {\n display: flex;\n align-items: flex-start;\n flex-wrap: wrap;\n gap: 12px;\n padding: 16px 0;\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-settingsToolbar > .-cerbur-clutch-dsh-worktree-settingsHint {\n flex: 1 1 240px;\n min-width: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-settingsEmpty {\n padding-block: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-issue {\n display: flex;\n flex-direction: column;\n gap: 10px;\n min-width: 0;\n padding: 12px 14px;\n border: 0.5px solid var(--dsw-alias-settings-card-stroke, var(--dsw-alias-border-l4));\n border-radius: var(--dsw-radius-xl, 16px);\n background: var(--dsw-alias-settings-card-fill, var(--dsw-alias-bg-layer-2));\n}\n\n.-cerbur-clutch-dsh-worktree-issueHeader {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 6px 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-issueTitle {\n flex: 1 1 240px;\n min-width: 0;\n margin: 0;\n font-size: inherit;\n line-height: inherit;\n font-weight: 500;\n overflow-wrap: anywhere;\n}\n\n.-cerbur-clutch-dsh-worktree-settings .-cerbur-clutch-dsh-worktree-issueStatus,\n.-cerbur-clutch-dsh-worktree-settings .-cerbur-clutch-dsh-worktree-settingsAction {\n font-size: calc(var(--dsh-content-font-size, 14px) - 2px);\n line-height: calc(var(--dsh-content-font-size, 14px) + 4px);\n}\n\n.-cerbur-clutch-dsh-worktree-settings .-cerbur-clutch-dsh-worktree-settingsAction {\n flex: none;\n height: auto;\n min-height: 28px;\n padding-block: 4px;\n font-family: inherit;\n white-space: normal;\n overflow-wrap: anywhere;\n max-width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-issueActions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-issueDiagnostics {\n min-width: 0;\n padding-top: 10px;\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-issueDiagnostics summary {\n width: fit-content;\n max-width: 100%;\n color: var(--dsw-alias-label-secondary);\n font-size: var(--dsh-content-font-size-secondary, calc(var(--dsh-content-font-size, 14px) - 1px));\n line-height: 1.5;\n cursor: pointer;\n overflow-wrap: anywhere;\n}\n\n.-cerbur-clutch-dsh-worktree-issueDiagnostics summary:focus-visible,\n.-cerbur-clutch-dsh-worktree-settings .-cerbur-clutch-dsh-worktree-settingsAction:focus-visible {\n outline: var(--dsw-focus-ring-width, 2px) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: 2px;\n border-radius: var(--dsw-radius-xs, 4px);\n}\n\n.-cerbur-clutch-dsh-worktree-issueDiagnostics pre {\n box-sizing: border-box;\n max-width: 100%;\n max-height: 320px;\n overflow: auto;\n margin: 10px 0 0;\n padding: 10px 12px;\n border-radius: var(--dsw-radius-md, 12px);\n background: var(--dsw-alias-bg-module-platform);\n color: var(--dsw-alias-label-secondary);\n font-family: var(--ds-font-family-code, monospace);\n font-size: var(--dsh-content-font-size-secondary, calc(var(--dsh-content-font-size, 14px) - 1px));\n line-height: 1.5;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n user-select: text;\n}\n";
13207
13329
  const styleId$1 = "@cerbur/clutch-dsh-worktree/settings.css";
13208
13330
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/settings.css\"]") === null) {
@@ -15287,35 +15409,58 @@ window.__ModuleLoader__.load({
15287
15409
  /** Keep view state and center overlays alive while the workspace slot changes occupants. */
15288
15410
  function WorktreeOverlay(props) {
15289
15411
  const [sidebarSeat, setSidebarSeat] = (0, react.useState)();
15290
- const active = props.useStore((state) => state.viewMode) === "worktree" && props.available && props.manager !== void 0;
15412
+ const mode = props.useStore((state) => state.viewMode);
15413
+ const directoryFlow = props.useWorkspaceDirectoryFlow((state) => state);
15414
+ const active = mode === "worktree" && props.available && props.manager !== void 0;
15291
15415
  (0, react.useLayoutEffect)(() => {
15292
15416
  if (!active) return;
15293
- return props.mountWorkspaceSidebar(setSidebarSeat);
15294
- }, [active, props.mountWorkspaceSidebar]);
15295
- return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)(WorktreeHeroContext, { ...props }), (0, react_jsx_runtime.jsx)(WorktreeSurface, {
15296
- ...props,
15297
- sidebarSeat
15298
- })] });
15417
+ const unmount = props.mountWorkspaceSidebar(setSidebarSeat);
15418
+ return () => {
15419
+ props.cancelDirectoryFlow();
15420
+ unmount();
15421
+ };
15422
+ }, [
15423
+ active,
15424
+ props.mountWorkspaceSidebar,
15425
+ props.cancelDirectoryFlow
15426
+ ]);
15427
+ return (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
15428
+ (0, react_jsx_runtime.jsx)(WorktreeHeroContext, { ...props }),
15429
+ (0, react_jsx_runtime.jsx)(WorktreeSurface, {
15430
+ ...props,
15431
+ sidebarSeat,
15432
+ createWorkspace: directoryFlow.available ? props.createWorkspace : void 0
15433
+ }),
15434
+ active && props.renderSlot("clutch.worktree.directoryFlow", directoryFlow.owner)
15435
+ ] });
15299
15436
  }
15300
15437
  //#endregion
15301
15438
  //#region lib/client/view/sidebar-workspace-slot.js
15302
15439
  /** The shell owns placement and fold state; no native DOM discovery is needed. */
15303
- function WorktreeWorkspaceSeat({ wide, publish }) {
15440
+ function WorktreeWorkspaceSeat({ wide, useSectionScroller: useScroller, publish }) {
15304
15441
  const ref = (0, react.useRef)(null);
15442
+ const bindScrollerRef = (useScroller ?? useLegacySectionScroller)()?.bindScrollerRef;
15305
15443
  (0, react.useLayoutEffect)(() => {
15306
15444
  const element = ref.current;
15307
15445
  if (element) publish({
15308
15446
  element,
15309
- wide
15447
+ wide,
15448
+ bindScrollerRef: wide ? bindScrollerRef : void 0
15310
15449
  });
15311
15450
  return () => publish(void 0);
15312
- }, [wide, publish]);
15451
+ }, [
15452
+ wide,
15453
+ publish,
15454
+ bindScrollerRef
15455
+ ]);
15313
15456
  return (0, react_jsx_runtime.jsx)("div", {
15314
15457
  ref,
15315
15458
  className: worktree_css_default.workspaceSeat,
15316
- "data-worktree-workspace-seat": true
15459
+ "data-worktree-workspace-seat": true,
15460
+ "data-worktree-section-scroller": bindScrollerRef !== void 0 || void 0
15317
15461
  });
15318
15462
  }
15463
+ function useLegacySectionScroller() {}
15319
15464
  /** Shadow only the browsing region, preserving the native registration and its children. */
15320
15465
  function workspaceSidebarMount(slots) {
15321
15466
  return (publish) => slots.inject("sidebar.workspaces", () => slots.register({
@@ -15707,7 +15852,7 @@ window.__ModuleLoader__.load({
15707
15852
  }, "clutch-dsh-worktree: steer activity");
15708
15853
  }
15709
15854
  //#endregion
15710
- //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_b1ff6fdcef3f/packages/clutch-dsh-worktree/src/client/steer/steer.css.mjs
15855
+ //#region \0clutch-dsh-worktree-css:/Users/yuancheng/Documents/Code/clutch-dsh/packages/clutch-dsh-worktree/.agents/clutch-worktrees/wt_a60085d7d91a/packages/clutch-dsh-worktree/src/client/steer/steer.css.mjs
15711
15856
  const css = ".-cerbur-clutch-dsh-worktree-strip {\n box-sizing: border-box;\n flex: none;\n min-width: 0;\n width: calc(100% - var(--dsh-composer-side-clearance, 16px) - var(--dsh-composer-side-clearance, 16px));\n max-width: var(--dsh-composer-card-max-width, 760px);\n margin: 0 auto;\n padding: 8px 12px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 12px;\n background: var(--dsw-alias-bg-layer-1);\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-title { font-weight: 600; margin-bottom: 4px; }\n.-cerbur-clutch-dsh-worktree-items { max-height: 200px; overflow: auto; }\n.-cerbur-clutch-dsh-worktree-item summary { display: flex; align-items: baseline; gap: 8px; cursor: pointer; padding: 4px 0; }\n.-cerbur-clutch-dsh-worktree-item summary::before { content: '›'; flex: none; }\n.-cerbur-clutch-dsh-worktree-item[open] summary::before { transform: rotate(90deg); }\n.-cerbur-clutch-dsh-worktree-status { flex: none; }\n.-cerbur-clutch-dsh-worktree-preview { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.-cerbur-clutch-dsh-worktree-body { padding: 4px 0 8px; overflow-wrap: anywhere; }\n.-cerbur-clutch-dsh-worktree-body p { margin: 6px 0; white-space: pre-wrap; }\n.-cerbur-clutch-dsh-worktree-sender { font-family: monospace; }\n";
15712
15857
  const styleId = "@cerbur/clutch-dsh-worktree/steer.css";
15713
15858
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/steer.css\"]") === null) {
@@ -16547,6 +16692,10 @@ window.__ModuleLoader__.load({
16547
16692
  const sessions = ctx.sessions;
16548
16693
  const slots = ctx.slots;
16549
16694
  const mountWorkspaceSidebar = workspaceSidebarMount(slots);
16695
+ const directoryFlow = createWorkspaceDirectoryFlow(ctx.slots, async (path) => {
16696
+ await ctx.workspaces.create({ path });
16697
+ });
16698
+ ctx.effect(() => () => directoryFlow.dispose(), "clutch-dsh-worktree: directory flow cleanup");
16550
16699
  slots.inject("conversation.input.dock", () => slots.register({
16551
16700
  name: "conversation.input.dock",
16552
16701
  id: "clutch-dsh-worktree-steer",
@@ -16803,6 +16952,10 @@ window.__ModuleLoader__.load({
16803
16952
  slots.inject("shell.overlay", () => slots.register({
16804
16953
  name: "shell.overlay",
16805
16954
  id: "clutch-dsh-worktree-navigation",
16955
+ children: { "clutch.worktree.directoryFlow": {
16956
+ kind: "single",
16957
+ scope: "root"
16958
+ } },
16806
16959
  store: viewStore,
16807
16960
  locale: WORKTREE_NS,
16808
16961
  inject: () => ({
@@ -16832,14 +16985,15 @@ window.__ModuleLoader__.load({
16832
16985
  expandState,
16833
16986
  sessionOrder,
16834
16987
  dashboardStore,
16835
- hooks: { worktreeContext: contextProjection.store },
16988
+ hooks: {
16989
+ worktreeContext: contextProjection.store,
16990
+ workspaceDirectoryFlow: directoryFlow.store
16991
+ },
16992
+ cancelDirectoryFlow: directoryFlow.cancel,
16836
16993
  manager,
16837
16994
  viewReader,
16838
16995
  subscribeToolChanges: toolChanges.subscribe,
16839
- createWorkspace: async () => {
16840
- const workspacePath = await ctx.uiWorkspace.pickDirectory();
16841
- if (workspacePath !== null) await ctx.workspaces.create({ path: workspacePath });
16842
- },
16996
+ createWorkspace: directoryFlow.request,
16843
16997
  createSessionForWorktree: (input, beforeOpen) => worktreeSessionConnector.create(input, beforeOpen),
16844
16998
  invalidateWorktreeContext: (workspaceId, options) => contextProjection.invalidate(workspaceId, options),
16845
16999
  createMainSession: (workspaceId) => localSessionConnector.create(workspaceId),