@source "../..";

/* Restored agent activity renderer styles from the TSH desktop source during the GUI migration. */

.workspace-agents-status-panel__detail-tool-code,
.workspace-agents-status-panel__detail-tool-terminal,
.workspace-agents-status-panel__detail-tool-diff,
.workspace-agents-status-panel__detail-tool-result-list {
  box-shadow: none;
}

.workspace-agents-status-panel__detail-tool-terminal code,
.workspace-agents-status-panel__detail-tool-code code,
.workspace-agents-status-panel__detail-tool-diff pre {
  font-variant-ligatures: none;
}

.workspace-agents-status-panel__detail-tool-code,
.workspace-agents-status-panel__detail-tool-code pre,
.workspace-agents-status-panel__detail-tool-code code {
  font-family: "Droid Sans Mono", var(--tsh-font-mono);
}

.workspace-agents-status-panel__detail-tool-terminal
  [data-agent-terminal-command="true"],
.workspace-agents-status-panel__detail-tool-terminal pre,
.workspace-agents-status-panel__detail-tool-terminal code {
  font-family: "Droid Sans Mono", var(--tsh-font-mono);
}

.workspace-agents-status-panel
  .workspace-agents-status-panel__detail-tool-terminal {
  box-shadow: none;
  border-color: var(--line-2, var(--tutti-line-2));
  background: var(--background-panel);
}

.workspace-agents-status-panel
  .workspace-agents-status-panel__detail-tool-terminal
  [data-agent-terminal-command-row="true"] {
  border-color: var(--line-2, var(--tutti-line-2));
  background: var(--transparency-block);
}

.workspace-agents-status-panel__detail-tool-result-list a {
  text-decoration: none;
}

.workspace-agents-status-panel__detail-tool-result-list a:hover {
  background: color-mix(
    in srgb,
    var(--background-panel) 70%,
    var(--accent) 30%
  );
}

.tsh-zoomable-image {
  position: relative;
  display: inline-block;
  max-width: 100%;
  vertical-align: top;
}

.tsh-zoomable-image--block {
  display: block;
}

.tsh-zoomable-image__trigger {
  position: absolute;
  inset: 0;
  z-index: 1;
  border: 0;
  background: transparent;
  color: transparent;
  cursor: zoom-in;
  -webkit-app-region: no-drag;
}

.tsh-zoom-dialog[data-rmiz-modal] {
  position: fixed;
  inset: 0;
  z-index: var(--z-dialog);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  -webkit-app-region: no-drag;
}

.tsh-zoom-dialog [data-rmiz-modal-overlay] {
  position: absolute;
  inset: 0;
}

.tsh-zoom-dialog [data-rmiz-modal-content] {
  position: relative;
  z-index: 100300;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 48px);
  -webkit-app-region: no-drag;
}

.tsh-zoom-dialog [data-rmiz-modal-overlay="visible"] {
  background: rgb(0 0 0 / 60%);
  backdrop-filter: blur(18px) saturate(1.02);
}

.tsh-zoom-dialog [data-rmiz-modal-overlay="hidden"] {
  background: rgb(0 0 0 / 0%);
}

.tsh-zoom-dialog[data-closing="true"] {
  animation: tsh-zoom-dialog-close 180ms ease-out forwards;
}

@keyframes tsh-zoom-dialog-close {
  to {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tsh-zoom-dialog[data-closing="true"] {
    animation-duration: 1ms;
  }
}

.tsh-zoom-dialog__toolbar-actions {
  position: fixed;
  top: max(20px, calc(var(--cove-titlebar-reserve, 0px) + 10px));
  right: 20px;
  inset-inline-end: 20px;
  z-index: 100301;
  display: flex;
  align-items: center;
  gap: 6px;
  -webkit-app-region: no-drag;
}

/*
 * The image preview is portaled to document.body, so it cannot inherit the
 * workbench header's scoped Windows titlebar inset. Reuse the same native
 * caption-button geometry for the portal controls; otherwise the close and
 * zoom buttons sit underneath the minimize/maximize/close buttons.
 */
body[data-tutti-titlebar-overlay="true"] {
  --tutti-titlebar-controls-inset: calc(
    100vw - env(titlebar-area-width, calc(100vw - 138px)) + 10px
  );
}

body[data-tutti-titlebar-overlay="true"] .tsh-zoom-dialog__toolbar-actions {
  right: calc(20px + var(--tutti-titlebar-controls-inset));
  inset-inline-end: calc(20px + var(--tutti-titlebar-controls-inset));
}

.tsh-zoom-dialog__image {
  display: block;
  max-width: calc(100vw - 48px);
  max-height: calc(100vh - 48px);
  object-fit: contain;
  transform-origin: center center;
  cursor: zoom-out;
}

.tsh-zoom-dialog__zoom-controls {
  position: fixed;
  top: max(20px, calc(var(--cove-titlebar-reserve, 0px) + 10px));
  right: 168px;
  z-index: 100301;
  display: flex;
  align-items: center;
  gap: 2px;
  height: 32px;
  padding: 0 2px;
  border-radius: 999px;
  background: var(--background-fronted);
  box-shadow:
    0 18px 40px color-mix(in srgb, black 26%, transparent),
    0 0 0 1px color-mix(in srgb, white 12%, transparent);
  color: var(--text-primary);
  -webkit-app-region: no-drag;
}

body[data-tutti-titlebar-overlay="true"] .tsh-zoom-dialog__zoom-controls {
  right: calc(168px + var(--tutti-titlebar-controls-inset));
}

.tsh-zoom-dialog:not([data-tsh-image-actions="true"])
  .tsh-zoom-dialog__zoom-controls {
  right: 72px;
}

body[data-tutti-titlebar-overlay="true"]
  .tsh-zoom-dialog:not([data-tsh-image-actions="true"])
  .tsh-zoom-dialog__zoom-controls {
  right: calc(72px + var(--tutti-titlebar-controls-inset));
}

.tsh-image-context-menu {
  position: fixed;
  z-index: 100302;
  min-width: 148px;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  background: var(--background-fronted);
  box-shadow: 0 18px 40px color-mix(in srgb, black 26%, transparent);
  color: var(--text-primary);
  padding: 4px;
  -webkit-app-region: no-drag;
}

.tsh-zoom-dialog__zoom-controls button,
.tsh-image-context-menu button {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  line-height: 20px;
}

.tsh-zoom-dialog__zoom-controls button {
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 999px;
}

.tsh-zoom-dialog__zoom-controls button:disabled {
  cursor: default;
  opacity: 0.45;
}

.tsh-zoom-dialog__zoom-controls span {
  min-width: 44px;
  padding: 0 4px;
  text-align: center;
  font-size: 12px;
  line-height: 28px;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}

.tsh-zoom-dialog__icon-button {
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: var(--background-fronted);
  box-shadow:
    0 18px 40px color-mix(in srgb, black 26%, transparent),
    0 0 0 1px color-mix(in srgb, white 12%, transparent);
  color: var(--text-primary);
}

.tsh-image-context-menu button {
  width: 100%;
  padding: 7px 10px;
}

.tsh-zoom-dialog__icon-button:hover {
  background: color-mix(in srgb, var(--background-panel) 82%, white 12%);
}

.tsh-image-context-menu button:hover {
  background: var(--transparency-hover);
}

.tsh-zoom-dialog__zoom-controls button:not(:disabled):hover {
  background: color-mix(in srgb, var(--background-panel) 86%, black 8%);
}

.agent-markdown-mermaid {
  position: relative;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 8px 0;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  background: var(--background-panel);
}

.agent-markdown-mermaid__preview {
  width: 100%;
  min-width: 0;
  overflow-x: auto;
  padding: 16px;
  outline: none;
  cursor: zoom-in;
}

.agent-markdown-mermaid__preview:focus-visible {
  box-shadow: inset 0 0 0 2px
    color-mix(in srgb, var(--tutti-purple) 72%, transparent);
}

.agent-markdown-mermaid__preview-spacer {
  min-height: 180px;
}

.agent-markdown-mermaid__svg {
  display: flex;
  min-width: min-content;
  align-items: center;
  justify-content: center;
}

.agent-markdown-mermaid__svg > svg {
  display: block;
  max-width: none;
  height: auto;
}

.agent-markdown-mermaid__copy {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  display: inline-flex;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 5px;
  background: color-mix(
    in srgb,
    var(--background-fronted, var(--background-panel)) 88%,
    transparent
  );
  color: var(--text-tertiary);
  cursor: pointer;
  opacity: 0;
  transition:
    opacity 120ms ease-out,
    color 120ms ease-out,
    background 120ms ease-out;
}

.agent-markdown-mermaid:hover .agent-markdown-mermaid__copy,
.agent-markdown-mermaid__copy:focus-visible {
  opacity: 1;
}

.agent-markdown-mermaid__copy:hover {
  background: var(--transparency-hover);
  color: var(--text-primary);
}

.agent-markdown-mermaid--loading {
  min-height: 180px;
  padding: 18px;
}

.agent-markdown-mermaid__placeholder {
  position: relative;
  min-height: 142px;
  overflow: hidden;
  border-radius: 6px;
  background: var(--transparency-block);
}

.agent-markdown-mermaid__placeholder::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    105deg,
    transparent 24%,
    color-mix(in srgb, var(--text-primary) 7%, transparent) 42%,
    transparent 60%
  );
  content: "";
  animation: agent-markdown-mermaid-shimmer 1.25s ease-in-out infinite;
  transform: translateX(-100%);
}

.agent-markdown-mermaid__placeholder-node,
.agent-markdown-mermaid__placeholder-edge {
  position: absolute;
  display: block;
  background: color-mix(in srgb, var(--text-primary) 12%, transparent);
}

.agent-markdown-mermaid__placeholder-node {
  width: 92px;
  height: 34px;
  border-radius: 6px;
}

.agent-markdown-mermaid__placeholder-node--start {
  top: 20px;
  left: calc(18% - 46px);
}

.agent-markdown-mermaid__placeholder-node--middle {
  top: 88px;
  left: calc(50% - 46px);
}

.agent-markdown-mermaid__placeholder-node--end {
  top: 20px;
  left: calc(82% - 46px);
}

.agent-markdown-mermaid__placeholder-edge {
  top: 70px;
  width: 25%;
  height: 2px;
  transform-origin: left center;
}

.agent-markdown-mermaid__placeholder-edge--first {
  left: 22%;
  transform: rotate(10deg);
}

.agent-markdown-mermaid__placeholder-edge--second {
  left: 55%;
  transform: rotate(-10deg);
}

@keyframes agent-markdown-mermaid-shimmer {
  to {
    transform: translateX(100%);
  }
}

.agent-markdown-mermaid--failed {
  display: flex;
  min-height: 96px;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 18px;
  color: var(--text-secondary);
}

.agent-markdown-mermaid__failure-copy {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 1px solid var(--line-2);
  border-radius: 6px;
  padding: 5px 8px;
  background: var(--transparency-block);
  color: var(--text-primary);
  cursor: pointer;
  font-size: 11px;
  line-height: 16px;
}

.agent-markdown-mermaid__failure-copy:hover {
  background: var(--transparency-hover);
}

.agent-mermaid-viewer {
  position: fixed;
  inset: 0;
  z-index: var(--z-dialog);
  overflow: hidden;
  -webkit-app-region: no-drag;
}

.agent-mermaid-viewer__backdrop {
  position: absolute;
  inset: 0;
  background: rgb(0 0 0 / 60%);
  backdrop-filter: blur(18px) saturate(1.02);
}

.agent-mermaid-viewer__stage {
  position: absolute;
  inset: 48px;
  z-index: 100300;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  outline: none;
  cursor: default;
  touch-action: none;
  user-select: none;
}

.agent-mermaid-viewer[data-agent-mermaid-space-pressed="true"]
  .agent-mermaid-viewer__stage {
  cursor: grab;
}

.agent-mermaid-viewer[data-agent-mermaid-dragging="true"]
  .agent-mermaid-viewer__stage {
  cursor: grabbing;
}

.agent-mermaid-viewer__canvas {
  width: 100%;
  height: 100%;
  transform-origin: center center;
  will-change: transform;
}

.agent-mermaid-viewer__canvas .agent-markdown-mermaid__svg {
  width: 100%;
  height: 100%;
  min-width: 0;
}

.agent-mermaid-viewer__canvas .agent-markdown-mermaid__svg > svg {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
}

.agent-mermaid-viewer__zoom-controls {
  right: 72px;
}

.agent-mermaid-viewer__hint {
  position: fixed;
  bottom: 20px;
  left: 50%;
  z-index: 100301;
  padding: 6px 10px;
  border-radius: 999px;
  background: var(--background-fronted);
  box-shadow: 0 10px 28px color-mix(in srgb, black 24%, transparent);
  color: var(--text-secondary);
  font-size: 12px;
  line-height: 18px;
  pointer-events: none;
  transform: translateX(-50%);
}

@media (prefers-reduced-motion: reduce) {
  .agent-markdown-mermaid__placeholder::after {
    animation: none;
  }
}

.workspace-agents-status-panel {
  --workspace-agents-status-panel-chrome-gap: 8px;
  --workspace-room-top-bar-safe-area: 52px;
  --workspace-desktop-bottom-bar-height: 64px;
  --workspace-agents-status-panel-width-user: 360px;
  position: absolute;
  left: var(--workspace-agents-status-panel-chrome-gap);
  top: calc(
    var(--workspace-room-top-bar-safe-area) +
      var(--workspace-agents-status-panel-chrome-gap)
  );
  bottom: calc(
    var(--workspace-desktop-bottom-bar-height) +
      var(--workspace-agents-status-panel-chrome-gap)
  );
  z-index: 9;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  width: min(
    var(--workspace-agents-status-panel-width-user),
    calc(100% - (2 * var(--workspace-agents-status-panel-chrome-gap)))
  );
  min-width: min(
    280px,
    calc(100% - (2 * var(--workspace-agents-status-panel-chrome-gap)))
  );
  height: auto;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  border: 1px solid var(--node-window-border);
  border-radius: 12px;
  color: var(--text-primary);
  background: var(--background-panel);
  box-shadow: var(--window-drop-shadow);
  backdrop-filter: none;
  transform-origin: bottom left;
  -webkit-app-region: no-drag;
}

.workspace-agents-status-panel[data-layer="raised"] {
  z-index: var(--z-toast, 100300);
}

[data-testid="workspace-agent-message-center"],
[data-testid="workspace-agent-message-center"] * {
  -webkit-app-region: no-drag;
}

[data-testid="workspace-agent-message-center"] {
  --agent-gui-package-accent: var(--accent-codex);
  --agent-gui-package-accent-strong: var(--accent-codex);
  --agent-gui-package-success: var(--state-success);
  --agent-gui-package-warning: var(--state-warning);
  --agent-gui-package-danger: var(--state-danger);
  --agent-gui-accent: var(--agent-gui-package-accent);
  --agent-gui-accent-strong: var(--agent-gui-package-accent-strong);
  --agent-gui-mention-app-color: var(--tutti-purple);
  --agent-gui-success: var(--agent-gui-package-success);
  --agent-gui-warning: var(--agent-gui-package-warning);
  --agent-gui-danger: var(--agent-gui-package-danger);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 0;
  width: min(440px, calc(100vw - 16px));
  max-width: none;
  overflow: hidden;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  border-radius: 0;
  background: var(--background-panel);
  color: var(--text-primary);
}

[data-testid="workspace-agent-message-center"][data-presentation="embedded"] {
  width: 100%;
}

[data-testid="workspace-agent-message-center"]
  .workspace-agent-message-center__copy-text,
[data-testid="workspace-agent-message-center"]
  .workspace-agent-message-center__copy-text
  * {
  -webkit-user-select: text;
  user-select: text;
}

[data-testid="workspace-agent-message-center"]
  .workspace-agent-message-center__copy-text
  a,
[data-testid="workspace-agent-message-center"]
  .workspace-agent-message-center__copy-text
  button {
  cursor: pointer;
}

.workspace-agent-message-center__card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 10px;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  background: var(--background-fronted);
  padding: 14px;
  color: var(--text-primary);
  outline: 0 solid transparent;
  outline-offset: 2px;
  transition:
    background-color 140ms ease,
    border-color 140ms ease,
    outline-color 140ms ease;
}

.workspace-agent-message-center__card[data-waiting="true"] {
  border-color: var(--tutti-purple-border);
  background: var(--tutti-purple-bg);
}

.workspace-agent-message-center__card[data-highlighted="true"] {
  outline-width: 2px;
  outline-color: var(--accent);
}

.workspace-agent-message-center__status {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 600;
  line-height: 16px;
}

.workspace-agent-message-center__footer {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.workspace-agent-message-center__provider {
  display: inline-flex;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 6px;
}

.workspace-agent-message-center__provider-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid var(--line-1, var(--nexight-line-1));
  border-radius: 50%;
  object-fit: cover;
}

.workspace-agent-message-center__provider-name {
  min-width: 0;
  overflow: hidden;
  color: var(--text-secondary);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-agent-message-center__open-chat-button {
  display: inline-flex;
  visibility: hidden;
  align-items: center;
  gap: 6px;
  width: auto;
  height: auto;
  min-height: 0;
  border: 0;
  background: transparent;
  background-color: transparent;
  padding: 0;
  color: var(--accent-codex);
  box-shadow: none;
  opacity: 0;
  transition:
    color 140ms ease,
    opacity 140ms ease,
    visibility 140ms ease;
}

.workspace-agent-message-center__open-chat-button svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  color: currentColor;
}

.workspace-agent-message-center__card:hover
  .workspace-agent-message-center__open-chat-button,
.workspace-agent-message-center__card:focus-within
  .workspace-agent-message-center__open-chat-button {
  visibility: visible;
  opacity: 1;
}

.workspace-agent-message-center__open-chat-button:hover,
.workspace-agent-message-center__open-chat-button:focus-visible,
.workspace-agent-message-center__open-chat-button:active {
  background: transparent;
  background-color: transparent;
  color: var(--accent-codex);
}

.workspace-agent-message-center__project-info-button {
  display: inline-flex;
  visibility: hidden;
  width: 20px;
  min-width: 20px;
  height: 20px;
  min-height: 20px;
  flex: 0 0 20px;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--text-secondary);
  opacity: 0;
  transition:
    background-color 140ms ease,
    color 140ms ease,
    opacity 140ms ease,
    visibility 140ms ease;
}

.workspace-agent-message-center__card:hover
  .workspace-agent-message-center__project-info-button,
.workspace-agent-message-center__card:focus-within
  .workspace-agent-message-center__project-info-button {
  visibility: visible;
  opacity: 1;
}

.workspace-agent-message-center__project-info-button:hover,
.workspace-agent-message-center__project-info-button:focus-visible {
  background: var(--transparency-hover);
  color: var(--text-primary);
  outline: none;
}

.workspace-agent-message-center__summary--overflowing {
  -webkit-mask-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - 32px),
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - 32px),
    transparent 100%
  );
}

.workspace-agent-message-center__stack-rest {
  display: grid;
  grid-template-rows: 1fr;
}

.workspace-agent-message-center__stack-rest--opening {
  animation: workspace-agent-message-center-stack-grow 340ms
    cubic-bezier(0.22, 1, 0.36, 1) both;
}

.workspace-agent-message-center__stack-rest--closing {
  pointer-events: none;
  animation: workspace-agent-message-center-stack-shrink 260ms
    cubic-bezier(0.45, 0.05, 0.55, 0.95) both;
}

@keyframes workspace-agent-message-center-stack-grow {
  from {
    grid-template-rows: 0fr;
    opacity: 0;
  }
  to {
    grid-template-rows: 1fr;
    opacity: 1;
  }
}

@keyframes workspace-agent-message-center-stack-shrink {
  from {
    grid-template-rows: 1fr;
    opacity: 1;
  }
  to {
    grid-template-rows: 0fr;
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .workspace-agent-message-center__stack-rest--opening {
    animation: none;
  }

  .workspace-agent-message-center__stack-rest--closing {
    grid-template-rows: 0fr;
    opacity: 0;
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .t-modal {
    transition: none !important;
  }

  .t-modal-backdrop {
    transition: none !important;
  }

  .t-dropdown {
    transition: none !important;
  }

  .t-modal-backdrop::before {
    animation: none !important;
    transition: none !important;
  }

  .agent-gui-chrome__card--warning,
  .agent-gui-chrome__card--danger,
  .agent-gui-chrome__card--success,
  .agent-gui-chrome__card--muted,
  .agent-gui-chrome__card--connecting {
    animation: none !important;
    transition: none !important;
  }
}

.workspace-agents-status-panel__titlebar {
  display: flex;
  flex: 0 0 48px;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
  box-sizing: border-box;
  min-height: 48px;
  padding: 0 8px 0 16px;
}

.workspace-agents-status-panel__titlebar--detail {
  padding-left: 8px;
}

aside.workspace-agents-status-panel
  .workspace-agents-status-panel__titlebar
  button.workspace-agents-status-panel__header-icon-btn {
  color: var(--text-secondary) !important;
}

aside.workspace-agents-status-panel
  .workspace-agents-status-panel__titlebar
  button.workspace-agents-status-panel__header-icon-btn:hover,
aside.workspace-agents-status-panel
  .workspace-agents-status-panel__titlebar
  button.workspace-agents-status-panel__header-icon-btn:active {
  color: var(--secondary-foreground) !important;
}

.workspace-agents-status-panel__title {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  color: var(--text-primary);
  font-family: var(--tsh-font-display);
  font-size: 15px;
  font-weight: 600;
  font-synthesis: none;
  line-height: 1.3;
}

.workspace-agents-status-panel__detail-titlebar-main {
  display: flex;
  flex: 1 1 auto;
  gap: 6px;
  align-items: center;
  min-width: 0;
}

.workspace-agents-status-panel__detail-heading {
  display: flex;
  flex: 1 1 auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.workspace-agents-status-panel__detail-heading
  .workspace-agents-status-panel__status {
  padding-right: 6px;
  padding-left: 6px;
}

.workspace-agents-status-panel__detail-title {
  flex: 0 1 auto;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: var(--text-primary);
  font-family: var(--tsh-font-display);
  font-size: 15px;
  font-weight: 600;
  font-synthesis: none;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-agents-status-panel__detail-title
  [data-workspace-agent-markdown-shell="true"],
.workspace-agents-status-panel__detail-title
  [data-workspace-agent-markdown="true"] {
  display: inline;
  width: auto;
  min-width: 0;
  max-width: 100%;
  overflow: visible;
  font: inherit;
  line-height: inherit;
  vertical-align: baseline;
}

.workspace-agents-status-panel__detail-title .tsh-agent-object-token {
  max-width: 100%;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.workspace-agents-status-panel__avatar {
  display: inline-grid;
  box-sizing: border-box;
  flex: 0 0 24px;
  place-items: center;
  width: 24px;
  height: 24px;
  overflow: hidden;
  border: 1px solid var(--line-1, var(--nexight-line-1));
  border-radius: 50%;
  color: var(--text-secondary);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  background: var(--transparency-block);
}

.workspace-agents-status-panel__avatar-img {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  max-width: none;
  border-radius: inherit;
  object-fit: cover;
}

.workspace-agents-status-panel__avatar-img--user-placeholder {
  background-color: var(--muted);
}

.workspace-agents-status-panel__content-shell {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  padding: 4px 16px 16px;
}

.workspace-agents-status-panel__content-shell--detail {
  gap: 0;
  padding: 0;
}

.workspace-agents-status-panel__viewport {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
}

.workspace-agents-status-panel__content {
  width: 100%;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-width: none;
}

.workspace-agents-status-panel__content--detail {
  gap: 0;
  padding-inline: 28px;
}

.workspace-agents-status-panel__content--detail-overlay {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
}

.workspace-agents-status-panel__detail-overlay-shell {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: transparent;
}

.workspace-agents-status-panel__detail-action-bar {
  display: flex;
  flex: 0 0 auto;
  justify-content: flex-end;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 12px 24px 16px;
  border-top: 1px solid color-mix(in srgb, var(--line-2) 52%, transparent);
  background: var(--background-panel);
}

.workspace-agents-status-panel__detail-action-button {
  max-width: 100%;
}

.workspace-agents-status-panel__conversation-timeline {
  --agent-conversation-text: var(--text-primary);
  --agent-conversation-user-text: var(--text-primary);
  --agent-conversation-user-bg: var(--transparency-block);
  --agent-conversation-user-max-width: calc(100% - 32px);
  box-sizing: border-box;
  width: 100%;
  scrollbar-width: none;
}

.workspace-agents-status-panel__conversation-timeline::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.workspace-agents-status-panel__content--list-hidden {
  visibility: hidden;
  pointer-events: none;
}

.workspace-agents-status-panel__list {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
}

.workspace-agents-status-panel__content::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

.tsh-custom-scrollbar {
  position: absolute;
  right: 8px;
  width: 4px;
  cursor: pointer;
  opacity: 0;
  pointer-events: auto;
  transition: opacity 160ms ease-in-out;
}

.workspace-agents-status-panel__scrollbar {
  top: 52px;
  bottom: 16px;
}

.tsh-custom-scroll-area:hover .tsh-custom-scrollbar[data-scrollable="true"],
.tsh-custom-scroll-area:focus-within
  .tsh-custom-scrollbar[data-scrollable="true"] {
  opacity: 1;
}

.workspace-agents-status-panel:hover
  .workspace-agents-status-panel__scrollbar[data-scrollable="true"] {
  opacity: 1;
}

.tsh-custom-scrollbar__thumb {
  width: 4px;
  min-height: 24px;
  border-radius: 999px;
  background: var(--transparency-block);
  cursor: grab;
  transition: background-color 160ms ease-in-out;
}

.workspace-agents-status-panel__scrollbar-thumb {
  width: 4px;
  min-height: 24px;
  border-radius: 999px;
  background: var(--transparency-block);
  cursor: grab;
  transition: background-color 160ms ease-in-out;
}

.tsh-custom-scrollbar:hover .tsh-custom-scrollbar__thumb,
.workspace-agents-status-panel__scrollbar:hover
  .workspace-agents-status-panel__scrollbar-thumb {
  background: var(--transparency-hover);
}

.tsh-custom-scrollbar[data-dragging="true"],
.workspace-agents-status-panel__scrollbar[data-dragging="true"] {
  opacity: 1;
}

.tsh-custom-scrollbar[data-dragging="true"] .tsh-custom-scrollbar__thumb,
.workspace-agents-status-panel__scrollbar[data-dragging="true"]
  .workspace-agents-status-panel__scrollbar-thumb {
  background: var(--transparency-hover);
  cursor: grabbing;
  will-change: transform;
}

.agent-tool-scroll-area__scrollbar {
  position: absolute;
  top: 8px;
  right: 8px;
  bottom: 8px;
  width: 4px;
  cursor: pointer;
  opacity: 0;
  pointer-events: auto;
  transition: opacity 160ms ease-in-out;
}

.agent-tool-scroll-area:hover
  .agent-tool-scroll-area__scrollbar[data-scrollable="true"] {
  opacity: 1;
}

.agent-tool-scroll-area__scrollbar:hover
  .workspace-agents-status-panel__scrollbar-thumb {
  background: var(--transparency-hover);
}

.agent-tool-scroll-area__scrollbar[data-dragging="true"] {
  opacity: 1;
}

.agent-tool-scroll-area__scrollbar[data-dragging="true"]
  .workspace-agents-status-panel__scrollbar-thumb {
  background: var(--transparency-hover);
  cursor: grabbing;
}

.agent-tool-diff__viewport,
.agent-tool-diff__line {
  background: var(--background-fronted, var(--background-panel));
}

.workspace-agents-status-panel__resize-handle {
  position: absolute;
  top: 48px;
  right: 0;
  bottom: 16px;
  z-index: 1;
  width: 6px;
  touch-action: none;
  cursor: col-resize;
  background: transparent;
}

.workspace-agents-status-panel__resize-handle::after {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 2px;
  pointer-events: none;
  content: "";
  border-radius: 0 1px 1px 0;
  opacity: 0;
  background: color-mix(in srgb, var(--accent) 55%, transparent);
  transition: opacity 140ms ease;
}

.workspace-agents-status-panel__resize-handle:hover::after,
.workspace-agents-status-panel__resize-handle:focus-visible::after {
  opacity: 1;
}

.workspace-agents-status-panel__resize-handle:focus-visible {
  outline: 1px solid var(--tutti-d-border-signal-focus);
  outline-offset: -1px;
}

.workspace-agents-status-panel__skeleton-list {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 12px;
  min-height: 0;
  overflow: hidden;
}

.workspace-agents-status-panel__skeleton-card {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 10px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line-2, var(--nexight-line-2));
  border-radius: 8px;
  background: var(--background-fronted);
}

.workspace-agents-status-panel__skeleton-head {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.workspace-agents-status-panel__skeleton-avatar,
.workspace-agents-status-panel__skeleton-line {
  position: relative;
  overflow: hidden;
  background: color-mix(in srgb, var(--text-tertiary) 8%, transparent);
}

.workspace-agents-status-panel__skeleton-avatar::after,
.workspace-agents-status-panel__skeleton-line::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, var(--text-tertiary) 8%, transparent) 45%,
    transparent 90%
  );
  animation: workspace-agents-status-panel-skeleton 1.2s ease-in-out infinite;
}

.workspace-agents-status-panel__skeleton-avatar {
  flex: 0 0 24px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
}

.workspace-agents-status-panel__skeleton-line {
  display: block;
  height: 12px;
  border-radius: 4px;
}

.workspace-agents-status-panel__skeleton-line--name {
  width: 118px;
}

.workspace-agents-status-panel__skeleton-line--tag {
  width: 46px;
  margin-left: auto;
}

.workspace-agents-status-panel__skeleton-line--title {
  width: 82%;
  height: 18px;
}

.workspace-agents-status-panel__skeleton-line--summary {
  width: 100%;
  height: 38px;
  border-radius: 4px;
}

.workspace-agents-status-panel__activity {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  gap: 8px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--line-2, var(--nexight-line-2));
  border-radius: 8px;
  background: var(--background-fronted);
  cursor: pointer;
  outline: none;
  transition:
    background-color 200ms ease-in-out,
    border-color 200ms ease-in-out,
    box-shadow 200ms ease-in-out;
}

.workspace-agents-status-panel__activity:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 26%, transparent);
}

.workspace-agents-status-panel__activity:hover {
  border-color: var(--line-2, var(--nexight-line-2));
  background: var(--transparency-block);
}

.workspace-agents-status-panel__activity--working,
.workspace-agents-status-panel__activity--waiting,
.workspace-agents-status-panel__activity--idle,
.workspace-agents-status-panel__activity--done,
.workspace-agents-status-panel__activity--failed {
  border-color: var(--line-2, var(--nexight-line-2));
}

.workspace-agents-status-panel__activity--targeted {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 18%, transparent);
}

.workspace-agents-status-panel__activity-head {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.workspace-agents-status-panel__activity-avatar-stack {
  display: inline-flex;
  flex: 0 0 44px;
  align-items: center;
  width: 44px;
  height: 24px;
}

.workspace-agents-status-panel__activity-agent-avatar {
  margin-left: -4px;
}

.workspace-agents-status-panel__activity-user-avatar {
  z-index: 1;
  background: var(--background-1);
}

.workspace-agents-status-panel__activity-identity {
  display: flex;
  flex: 1 1 auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.workspace-agents-status-panel__activity-identity-names {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  min-width: 0;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.35;
}

.workspace-agents-status-panel__activity-user-name {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-agents-status-panel__activity-name-sep {
  flex-shrink: 0;
  margin: 0 4px;
}

.workspace-agents-status-panel__activity-agent-name {
  flex-shrink: 0;
  white-space: nowrap;
}

.workspace-agents-status-panel__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  box-sizing: border-box;
  height: 20px;
  min-width: 0;
  padding: 0 8px;
  border: 0;
  border-radius: 4px;
  color: var(--tsh-ui-pill-neutral-fg);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
  background: var(--tsh-ui-pill-neutral-bg);
}

.workspace-agents-status-panel__status--working,
.workspace-agents-status-panel__status[data-status="working"] {
  color: var(--tsh-ui-pill-success-fg);
  background: var(--tsh-ui-pill-success-bg);
}

.workspace-agents-status-panel__status--failed,
.workspace-agents-status-panel__status[data-status="failed"] {
  color: var(--state-danger);
  background: color-mix(in srgb, var(--state-danger) 12%, transparent);
}

.workspace-agents-status-panel__activity-title {
  display: -webkit-box;
  min-width: 0;
  margin: 4px 0;
  overflow: hidden;
  color: var(--text-primary);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.workspace-agents-status-panel__activity-summary {
  min-width: 0;
  margin: 0;
  padding: 12px;
  border-radius: 6px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.5;
  background: var(--transparency-block);
  overflow-wrap: anywhere;
}

.workspace-agents-status-panel__activity-summary-messages {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.workspace-agents-status-panel__activity-summary-messages
  .workspace-agents-status-panel__activity-summary-text
  + .workspace-agents-status-panel__activity-summary-text {
  padding-top: 10px;
  border-top: 1px solid
    color-mix(in srgb, var(--line-2, var(--nexight-line-2)) 72%, transparent);
}

.workspace-agents-status-panel__activity-summary-loading {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-height: 52px;
}

.workspace-agents-status-panel__activity-summary-text {
  margin: 0;
  min-width: 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__activity-summary-text[data-workspace-agent-markdown="true"] {
  display: block;
}

.workspace-agents-status-panel__activity-summary-text--image {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__activity-summary-text
  p {
  margin: 0;
}

.workspace-agents-status-panel__activity-summary strong {
  color: var(--text-primary);
  font-weight: 600;
}

.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__detail-markdown-shell {
  min-width: 0;
}

.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__detail-markdown
  code {
  display: inline-block;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 0;
  border-radius: 0;
  color: var(--text-secondary);
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
  text-overflow: ellipsis;
  vertical-align: bottom;
  white-space: nowrap;
  background: transparent;
}

.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__detail-markdown
  pre,
.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__detail-markdown
  pre
  code {
  box-sizing: border-box !important;
  display: block !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  overflow-wrap: normal !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  word-break: normal !important;
}

.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__detail-markdown
  a,
.workspace-agents-status-panel__activity-summary
  .workspace-agents-status-panel__detail-markdown
  code
  a {
  color: var(--tutti-purple);
  font-weight: 600;
}

.workspace-agents-status-panel__activity-files {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.workspace-agents-status-panel__activity-file {
  display: flex;
  flex: 1 1 100%;
  gap: 4px;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  height: 32px;
  min-width: 0;
  padding: 0 8px;
  border: 0;
  border-radius: 6px;
  color: var(--accent);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  font-family: inherit;
  text-align: left;
  transition: background-color 160ms ease-in-out;
}

.workspace-agents-status-panel__activity-file--clickable {
  cursor: pointer;
}

.workspace-agents-status-panel__activity-file--clickable:hover,
.workspace-agents-status-panel__activity-file--clickable:focus-visible {
  background: color-mix(in srgb, var(--accent) 18%, transparent);
}

.workspace-agents-status-panel__activity-file svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
}

.workspace-agents-status-panel__activity-file span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-agents-status-panel__empty {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 34px 18px;
  color: var(--text-tertiary);
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
}

.workspace-agents-status-panel__detail-empty {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 34px 18px;
  color: var(--text-tertiary);
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
  overflow-wrap: anywhere;
}

.workspace-agents-status-panel__notice {
  position: absolute;
  top: 4px;
  right: 16px;
  left: 16px;
  z-index: 2;
  box-sizing: border-box;
  pointer-events: none;
  border: 1px solid color-mix(in srgb, var(--label-orange) 34%, transparent);
  border-radius: 8px;
  background: color-mix(
    in srgb,
    var(--background-fronted) 86%,
    var(--label-orange) 14%
  );
  padding: 8px 10px;
  color: var(--label-orange);
  font-size: 13px;
  line-height: 1.35;
}

.workspace-agents-status-panel__detail {
  --agent-conversation-text: var(--text-primary);
  --agent-conversation-user-text: var(--text-primary);
  --agent-conversation-user-bg: var(--transparency-block);
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding-bottom: 0;
}

.workspace-agents-status-panel__detail::after {
  display: block;
  flex: 0 0 auto;
  flex-shrink: 0;
  width: 100%;
  height: 32px;
  min-height: 32px;
  pointer-events: none;
  content: "";
}

.workspace-agents-status-panel__detail-tool-section,
.workspace-agents-status-panel__detail-thinking-section,
.workspace-agents-status-panel__detail-turn-summary {
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  width: 100%;
  min-width: 0;
  max-width: min(860px, 100%);
  padding: 4px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.agent-gui-node__timeline .workspace-agents-status-panel__detail-turn-summary {
  max-width: 100%;
}

.workspace-agents-status-panel__detail-turn-summary {
  --agent-turn-summary-border: color-mix(
    in srgb,
    var(--line-1) 58%,
    transparent
  );
  --agent-turn-summary-row-border: color-mix(
    in srgb,
    var(--line-1) 46%,
    transparent
  );
  --agent-turn-summary-surface: color-mix(
    in srgb,
    var(--background-fronted) 96%,
    var(--background-panel) 4%
  );
  --agent-turn-summary-hover: color-mix(
    in srgb,
    var(--transparency-block) 58%,
    transparent
  );
  --agent-turn-summary-path: color-mix(
    in srgb,
    var(--text-secondary) 78%,
    transparent
  );
  --agent-turn-summary-toggle: color-mix(
    in srgb,
    var(--text-secondary) 88%,
    transparent
  );
}

.agent-turn-summary-card {
  border: 1px solid var(--agent-turn-summary-border);
  background: var(--agent-turn-summary-surface);
  box-shadow: inset 0 1px 0
    color-mix(in srgb, var(--background-fronted) 82%, transparent);
}

.agent-turn-summary-card__list,
.agent-turn-summary-card__overflow-list,
.agent-turn-summary-card__preview {
  border-top: 1px solid var(--agent-turn-summary-row-border);
}

.agent-turn-summary-card__file {
  border-top: 1px solid var(--agent-turn-summary-row-border);
}

.agent-turn-summary-card__file:first-child {
  border-top: 0;
}

.agent-turn-summary-card__file-row:hover {
  background: var(--agent-turn-summary-hover);
}

.agent-turn-summary-card__path {
  color: var(--agent-turn-summary-path);
}

.agent-turn-summary-card__path-directory,
.agent-turn-summary-card__path-file {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.agent-turn-summary-card__path-directory {
  flex: 0 1 auto;
}

.agent-turn-summary-card__path-file {
  flex: 0 0 auto;
  max-width: 100%;
}

.agent-path-tail-label {
  display: flex;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  white-space: nowrap;
}

.agent-path-tail-label__directory,
.agent-path-tail-label__file {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.agent-path-tail-label__directory {
  flex: 0 1 auto;
}

.agent-path-tail-label__file {
  flex: 0 0 auto;
  max-width: 100%;
}

.workspace-agents-status-panel__detail-turn-summary
  .workspace-agents-status-panel__detail-tool-diff-added {
  color: var(--state-success);
}

.workspace-agents-status-panel__detail-turn-summary
  .workspace-agents-status-panel__detail-tool-diff-removed {
  color: var(--state-danger);
}

.agent-turn-summary-card__toggle-more {
  color: var(--agent-turn-summary-toggle);
}

.agent-turn-summary-card__toggle-more:hover {
  background: var(--agent-turn-summary-hover);
  color: var(--text-secondary);
}

.workspace-agents-status-panel__detail-tool-section {
  position: relative;
  gap: 16px;
}

.workspace-agents-status-panel__detail-tool-section[data-tool-group-expanded="true"]
  .workspace-agents-status-panel__detail-tool-count-icon,
.workspace-agents-status-panel__detail-tool-section[data-tool-group-expanded="true"]
  .workspace-agents-status-panel__detail-tool-row-icon,
.workspace-agents-status-panel__detail-tool-section[data-tool-group-expanded="true"]
  .workspace-agents-status-panel__detail-tool-list-item
  .tsh-inline-scanlight-icon {
  border-radius: 999px;
}

.workspace-agents-status-panel__detail-tool-count {
  position: relative;
  display: inline-flex;
  gap: 6px;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  color: var(--text-secondary);
  font-family: var(--tsh-font-ui);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  text-align: left;
  background: transparent;
  cursor: pointer;
  transition:
    color 150ms ease,
    opacity 150ms ease;
  appearance: none;
}

.workspace-agents-status-panel__detail-tool-section[data-tool-group-expanded="true"]
  .workspace-agents-status-panel__detail-tool-count::after {
  position: absolute;
  top: 24px;
  left: 7.5px;
  width: 1px;
  height: 4px;
  background: var(--line-1);
  content: "";
  pointer-events: none;
}

.workspace-agents-status-panel__detail-tool-count:hover {
  color: var(--text-primary);
}

.workspace-agents-status-panel__detail-tool-count span {
  min-width: 0;
}

.workspace-agents-status-panel__detail-tool-count-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-agents-status-panel__detail-tool-count-primary {
  font-weight: 600;
}

.workspace-agents-status-panel__detail-tool-count svg {
  flex: 0 0 auto;
}

.workspace-agents-status-panel__detail-tool-count-icon {
  position: relative;
  z-index: 1;
  opacity: 0.72;
  transition: opacity 150ms ease;
}

.workspace-agents-status-panel__detail-tool-count:hover
  .workspace-agents-status-panel__detail-tool-count-icon,
.workspace-agents-status-panel__detail-tool-count:focus-visible
  .workspace-agents-status-panel__detail-tool-count-icon {
  opacity: 1;
}

.workspace-agents-status-panel__detail-tool-count-chevron {
  color: var(--text-tertiary);
  opacity: 0;
  transition: opacity 150ms ease;
}

.workspace-agents-status-panel__detail-tool-count:hover
  .workspace-agents-status-panel__detail-tool-count-chevron,
.workspace-agents-status-panel__detail-tool-count:focus-visible
  .workspace-agents-status-panel__detail-tool-count-chevron {
  opacity: 1;
}

.workspace-agents-status-panel__detail-tool-count--summary {
  justify-content: space-between;
  width: 100%;
  gap: 12px;
}

.workspace-agents-status-panel__detail-tool-list {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
}

.workspace-agents-status-panel__detail-tool-list-item {
  position: relative;
  min-width: 0;
}

.workspace-agents-status-panel__detail-tool-list-item:not(:last-child)::after {
  position: absolute;
  top: 24px;
  left: 7.5px;
  width: 1px;
  height: max(4px, calc(100% - 16px));
  background: var(--line-1);
  content: "";
  pointer-events: none;
}

.workspace-agents-status-panel__detail-tool-section[data-tool-group-expanded="true"]
  .workspace-agents-status-panel__detail-tool-list-item
  .agent-collapsible-reveal {
  box-sizing: border-box;
  padding-left: 24px;
}

.workspace-agents-status-panel__detail-tool-row {
  display: flex;
  flex-direction: column;
  gap: 7px;
  width: 100%;
  min-width: 0;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.3;
}

.workspace-agents-status-panel__detail-tool-row-head {
  display: inline-flex;
  gap: 0;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
  padding: 2px 0;
  color: var(--text-secondary);
  font-family: var(--tsh-font-ui);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
}

.workspace-agents-status-panel__detail-tool-row-head--button {
  padding: 0;
  border: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  background: transparent;
  cursor: pointer;
  transition:
    color 150ms ease,
    opacity 150ms ease;
  appearance: none;
}

.workspace-agents-status-panel__detail-tool-row-head--button:hover {
  color: var(--text-primary);
}

.workspace-agents-status-panel__detail-tool-row-head svg {
  flex: 0 0 auto;
  opacity: 0.78;
  transition: opacity 150ms ease;
}

.workspace-agents-status-panel__detail-tool-row-head--button:hover
  .workspace-agents-status-panel__detail-tool-row-icon
  svg,
.workspace-agents-status-panel__detail-tool-row-head--button:focus-visible
  .workspace-agents-status-panel__detail-tool-row-icon
  svg {
  opacity: 1;
}

.workspace-agents-status-panel__detail-tool-row-header-content {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-width: 0;
}

.workspace-agents-status-panel__detail-tool-row-header-content[data-active="true"] {
  color: var(--text-primary);
}

.workspace-agents-status-panel__detail-tool-row-icon {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
}

.workspace-agents-status-panel__detail-tool-row-text {
  display: inline-flex;
  flex: 1 1 auto;
  gap: 8px;
  align-items: center;
  min-width: 0;
}

.workspace-agents-status-panel__detail-tool-row-title {
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  font-family: var(--tsh-font-ui);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.workspace-agents-status-panel__detail-tool-status {
  flex: 0 0 auto;
  color: currentColor;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
}

.workspace-agents-status-panel__detail-tool-diff-stats {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 4px;
  align-items: center;
  color: var(--text-tertiary);
  font-size: 13px;
  line-height: 1.3;
}

.workspace-agents-status-panel__detail-tool-diff-added {
  color: var(--state-success);
}

.workspace-agents-status-panel__detail-tool-diff-removed {
  color: var(--state-danger);
}

.tsh-inline-scanlight-line
  .workspace-agents-status-panel__detail-tool-diff-added,
.tsh-inline-scanlight-line
  .workspace-agents-status-panel__detail-tool-diff-removed {
  background: none;
  -webkit-text-fill-color: currentColor;
}

.workspace-agents-status-panel__detail-tool-row-summary {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: var(--text-tertiary);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Compact tool-call rows when nested inside a details block (e.g. task STEPS) */
.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-row-title,
.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-status,
.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-diff-stats,
.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-row-summary {
  font-size: 11px;
}

.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-row-icon {
  width: 14px;
  height: 14px;
}

.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-row-icon
  svg {
  width: 14px;
  height: 14px;
}

/* Looser vertical rhythm for the nested step rows so they don't feel cramped */
.workspace-agents-status-panel__detail-tool-body
  .workspace-agents-status-panel__detail-tool-stack {
  gap: 12px;
}

.workspace-agents-status-panel__detail-tool-row-head
  .workspace-agents-status-panel__detail-tool-row-chevron {
  flex: 0 0 auto;
  color: var(--text-tertiary);
  opacity: 0;
  transition: opacity 150ms ease;
}

.workspace-agents-status-panel__detail-tool-row-head--button:hover
  .workspace-agents-status-panel__detail-tool-row-chevron,
.workspace-agents-status-panel__detail-tool-row-head--button:focus-visible
  .workspace-agents-status-panel__detail-tool-row-chevron {
  opacity: 1;
}

.workspace-agents-status-panel__detail-tool-summary {
  width: 100%;
  min-width: 0;
  margin: 6px 0 0;
  padding: 0 0 0 20px;
  color: currentColor;
  font-family: var(--tsh-font-ui);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.45;
  opacity: 0.9;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.agent-collapsible-reveal {
  contain: layout paint;
  width: 100%;
  min-width: 0;
  opacity: 0;
  overflow: clip;
  transform: translateY(-2px);
  transition:
    height 220ms ease,
    opacity 160ms ease,
    transform 180ms ease;
}

.agent-collapsible-reveal[data-expanded="true"] {
  opacity: 1;
  transform: translateY(0);
}

.agent-collapsible-reveal__inner {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.workspace-agents-status-panel__detail-tool-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 6px;
  background: var(--transparency-block);
  font-size: 11px;
  line-height: 1.45;
}

.workspace-agents-status-panel__detail-tool-body--flat {
  gap: 8px;
  margin-top: 4px;
  padding: 0;
  border: 1px solid var(--hairline-strong);
  border-radius: 6px;
  overflow: hidden;
  background: transparent;
}

.workspace-agents-status-panel__detail-tool-body--plain {
  gap: 8px;
  margin-top: 4px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.workspace-agents-status-panel__detail-tool-code--flat,
.workspace-agents-status-panel__detail-tool-diff--flat,
.workspace-agents-status-panel__detail-tool-monaco--flat {
  box-shadow: none;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.workspace-agents-status-panel__detail-tool-section-block,
.workspace-agents-status-panel__detail-tool-stack {
  display: flex;
  flex-direction: column;
  gap: 7px;
  width: 100%;
  min-width: 0;
}

.workspace-agents-status-panel__detail-tool-stack-item {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.workspace-agents-status-panel__detail-tool-section-title {
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
  text-transform: uppercase;
}

.workspace-agents-status-panel__detail-tool-answer,
.workspace-agents-status-panel__detail-tool-question {
  min-width: 0;
  color: var(--text-secondary);
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.workspace-agents-status-panel__detail-tool-answer--muted {
  color: var(--text-tertiary);
}

.workspace-agents-status-panel__detail-subagents {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-width: 0;
}

.workspace-agents-status-panel__detail-subagent-card {
  min-width: 0;
  border: 1px solid color-mix(in srgb, var(--text-tertiary) 24%, transparent);
  border-radius: 6px;
  background: color-mix(in srgb, var(--text-tertiary) 5%, transparent);
  overflow: hidden;
}

.workspace-agents-status-panel__detail-subagent-header {
  display: grid;
  grid-template-columns: 12px 8px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  min-width: 0;
  padding: 8px 9px;
  cursor: pointer;
  list-style: none;
  font-size: 11px;
  line-height: 1.45;
}

.workspace-agents-status-panel__detail-subagent-header::-webkit-details-marker {
  display: none;
}

.workspace-agents-status-panel__detail-subagent-chevron {
  width: 6px;
  height: 6px;
  border-right: 1.5px solid var(--text-tertiary);
  border-bottom: 1.5px solid var(--text-tertiary);
  transform: rotate(-45deg);
  transition: transform 120ms ease;
}

.workspace-agents-status-panel__detail-subagent-card[open]
  .workspace-agents-status-panel__detail-subagent-chevron {
  transform: rotate(45deg);
}

.workspace-agents-status-panel__detail-subagent-status {
  flex: none;
  align-self: center;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--text-tertiary);
}

.workspace-agents-status-panel__detail-subagent-status--running {
  background: var(--state-success, #22c55e);
  animation: workspace-agents-subagent-pulse 1.6s ease-in-out infinite;
}

.workspace-agents-status-panel__detail-subagent-status--completed {
  background: var(--state-success, #22c55e);
}

.workspace-agents-status-panel__detail-subagent-status--failed {
  background: var(--state-danger);
}

.workspace-agents-status-panel__detail-subagent-status--canceled {
  background: var(--text-tertiary);
}

.workspace-agents-status-panel__detail-subagent-title {
  min-width: 0;
  overflow: hidden;
  color: var(--text-primary);
  font-weight: 650;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.workspace-agents-status-panel__detail-subagent-meta {
  flex: none;
  color: var(--text-tertiary);
  font-weight: 600;
  white-space: nowrap;
}

.workspace-agents-status-panel__detail-subagent-body {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  padding: 0 9px 9px 27px;
}

.workspace-agents-status-panel__detail-subagent-activity {
  min-width: 0;
  color: var(--text-tertiary);
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

@keyframes workspace-agents-subagent-pulse {
  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.35;
  }
}

.workspace-agents-status-panel__detail-tool-bullets {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
  color: var(--text-secondary);
  font-size: 11px;
  line-height: 1.45;
}

.workspace-agents-status-panel__detail-tool-markdown {
  width: 100%;
  min-width: 0;
  font-size: 11px;
  line-height: 1.45;
}

.workspace-agents-status-panel__detail-turn-summary-title {
  color: var(--text-secondary);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
}

.workspace-agents-status-panel__detail-processing {
  width: 100%;
  min-width: 0;
  padding: 0;
  border: 0;
  color: var(--text-primary);
  font-family: var(--tsh-font-ui);
  font-size: 13px;
  line-height: 1.3;
  background: transparent;
  box-shadow: none;
}

.group\/thinking-disclosure[data-active="true"] {
  color: var(--text-primary);
}

.tsh-inline-scanlight-line,
.tsh-inline-scanlight-group .tsh-inline-scanlight-text,
.tsh-inline-scanlight-text--standalone {
  background: linear-gradient(
    90deg,
    currentColor 0%,
    currentColor 36%,
    color-mix(in srgb, currentColor 32%, white) 50%,
    currentColor 64%,
    currentColor 100%
  );
  background-size: 260% 100%;
  background-position: 130% 0;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: tsh-inline-scanlight-text-sweep 1.85s ease-in-out infinite;
}

.tsh-inline-scanlight-line {
  display: inline-flex;
  gap: inherit;
  align-items: center;
  min-width: 0;
}

.tsh-inline-loading-ellipsis {
  display: inline-flex;
  flex: 0 0 auto;
  gap: 0.13em;
  align-items: center;
  margin-left: 0;
  color: currentColor;
  background: none;
  -webkit-text-fill-color: currentColor;
}

.tsh-inline-loading-label {
  margin-right: 4px;
}

.tsh-inline-loading-ellipsis span {
  display: block;
  width: 0.18em;
  height: 0.18em;
  border-radius: 999px;
  background: currentColor;
  opacity: 0.28;
  transform: translateY(0.08em) scale(0.82);
  animation: tsh-inline-loading-dot 1.2s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}

.tsh-inline-loading-ellipsis span:nth-child(2) {
  animation-delay: 150ms;
}

.tsh-inline-loading-ellipsis span:nth-child(3) {
  animation-delay: 300ms;
}

.tsh-inline-loading-ellipsis--entry-timing span {
  animation: tsh-inline-loading-dot 1.05s ease-in-out infinite;
}

.tsh-inline-loading-ellipsis--entry-timing span:nth-child(2) {
  animation-delay: 140ms;
}

.tsh-inline-loading-ellipsis--entry-timing span:nth-child(3) {
  animation-delay: 280ms;
}

.tsh-inline-scanlight-group .tsh-inline-scanlight-text--status {
  animation-delay: 260ms;
}

.tsh-inline-scanlight-group
  .workspace-agents-status-panel__detail-tool-row-title,
.tsh-inline-scanlight-group .font-semibold.tsh-inline-scanlight-text {
  animation-delay: 90ms;
}

@media (prefers-reduced-motion: reduce) {
  .tsh-inline-scanlight-line,
  .tsh-inline-scanlight-group .tsh-inline-scanlight-text,
  .tsh-inline-scanlight-text--standalone {
    animation: none;
    background: none;
    -webkit-text-fill-color: currentColor;
  }

  .tsh-inline-loading-ellipsis span {
    opacity: 0.72;
    transform: none;
    animation: none;
  }
}

@keyframes workspace-agents-status-panel-skeleton {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(100%);
  }
}

@keyframes workspace-agents-status-panel-working-shimmer {
  0% {
    transform: translateX(0) skewX(-18deg);
  }

  100% {
    transform: translateX(330%) skewX(-18deg);
  }
}

@keyframes tsh-inline-scanlight-text-sweep {
  0% {
    background-position: 130% 0;
  }

  42% {
    background-position: 48% 0;
  }

  100% {
    background-position: -42% 0;
  }
}

@keyframes tsh-inline-loading-dot {
  0%,
  72%,
  100% {
    opacity: 0.28;
    transform: translateY(0.08em) scale(0.82);
  }

  28% {
    opacity: 0.95;
    transform: translateY(-0.04em) scale(1);
  }
}

.workspace-agents-status-panel__detail-scroll-region {
  scrollbar-width: thin !important;
  -ms-overflow-style: auto !important;
  scrollbar-color: transparent transparent;
  scrollbar-gutter: auto;
}

.workspace-agents-status-panel__detail-scroll-region:hover {
  scrollbar-color: var(--transparency-hover) transparent;
}

.workspace-agents-status-panel__detail-scroll-region::-webkit-scrollbar {
  display: block !important;
  width: 4px !important;
  height: 4px !important;
}

.workspace-agents-status-panel__detail-scroll-region::-webkit-scrollbar-track,
.workspace-agents-status-panel__detail-scroll-region::-webkit-scrollbar-corner {
  background: transparent;
}

.workspace-agents-status-panel__detail-scroll-region::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: transparent;
}

.workspace-agents-status-panel__detail-scroll-region:hover::-webkit-scrollbar-thumb {
  background: var(--transparency-hover);
}

.agent-tool-scroll-area .workspace-agents-status-panel__detail-scroll-region {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}

.agent-tool-scroll-area
  .workspace-agents-status-panel__detail-scroll-region::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.agent-gui-node__mention-palette-scroll-region {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  scrollbar-gutter: auto;
}

.agent-gui-node__mention-palette-scroll-region::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

.agent-gui-node__mention-palette-scrollbar {
  position: absolute;
  top: 4px;
  right: 4px;
  bottom: 4px;
  width: 4px;
  cursor: pointer;
  opacity: 0;
  pointer-events: auto;
  transition: opacity 160ms ease-in-out;
}

.agent-gui-node__mention-palette {
  container-type: inline-size;
}

.tsh-underline-tabs.agent-gui-node__mention-palette-tabs {
  height: 41px;
  padding: 8px 16px 0;
}

.agent-gui-node__mention-palette-header {
  padding: 8px 0 0;
}

.agent-gui-node__mention-palette-footer {
  min-height: 36px;
  border-top: 1px solid var(--line-2, var(--tutti-line-2));
  background: var(--background-fronted, var(--background-panel));
}

.agent-gui-node__mention-palette-hint {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 100%;
  height: 36px;
  padding: 0 16px 1px;
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
  pointer-events: auto;
}

.agent-gui-node__mention-palette-hint-item {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  line-height: 20px;
  white-space: nowrap;
}

.agent-gui-node__mention-palette-hint-item > span:last-child {
  font-size: 11px;
}

.agent-gui-node__mention-palette-hint-button,
.agent-gui-node__mention-palette-shortcut-button {
  appearance: none;
  border: 0;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

.agent-gui-node__mention-palette-hint-button {
  padding: 0;
  background: transparent;
  color: inherit;
}

.agent-gui-node__mention-palette-shortcut {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 20px;
  min-width: 20px;
  border: 1px solid var(--line-2, var(--tutti-line-2));
  border-radius: 4px;
  background: color-mix(in srgb, var(--transparency-block) 72%, transparent);
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
  padding: 4px 6px;
}

.agent-gui-node__mention-palette-hint-button:hover
  .agent-gui-node__mention-palette-shortcut,
.agent-gui-node__mention-palette-hint-button:focus-visible
  .agent-gui-node__mention-palette-shortcut,
.agent-gui-node__mention-palette-shortcut-button:hover,
.agent-gui-node__mention-palette-shortcut-button:focus-visible {
  background: var(--transparency-block);
}

.agent-gui-node__mention-palette-hint-button:focus-visible,
.agent-gui-node__mention-palette-shortcut-button:focus-visible {
  outline: 2px solid var(--line-1);
  outline-offset: 2px;
}

.agent-gui-node__mention-palette-shortcut--arrow {
  width: 20px;
  min-width: 20px;
  font-size: 11px;
  line-height: 1;
  padding: 0;
}

.agent-gui-node__mention-palette-shortcut-group {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.agent-gui-node__mention-palette-hint-separator {
  color: var(--line-2, var(--tutti-line-2));
}

.agent-gui-node__mention-palette:hover
  .agent-gui-node__mention-palette-scrollbar[data-scrollable="true"] {
  opacity: 1;
}

.agent-gui-node__mention-palette {
  --agent-mention-file-icon-size: 16px;
}

@container (max-width: 520px) {
  .agent-gui-node__mention-palette .rich-text-at-mention-palette__shell {
    overflow: visible;
  }

  .agent-gui-node__mention-palette-hint {
    gap: 4px;
    padding-inline: 8px;
  }

  .agent-gui-node__mention-palette-hint-item {
    position: relative;
  }

  .agent-gui-node__mention-palette-hint-item > span:last-child {
    display: none;
  }

  .agent-gui-node__mention-palette-hint-item::after {
    position: absolute;
    bottom: calc(100% + 6px);
    left: 50%;
    z-index: 20;
    width: max-content;
    max-width: min(240px, calc(100cqw - 16px));
    padding: 5px 8px;
    border: 1px solid var(--line-2, var(--tutti-line-2));
    border-radius: 6px;
    background: var(--background-fronted, var(--background-panel));
    box-shadow: 0 6px 18px rgb(0 0 0 / 18%);
    color: var(--text-primary);
    content: attr(data-tooltip);
    font-size: 11px;
    font-weight: 500;
    line-height: 16px;
    opacity: 0;
    pointer-events: none;
    transform: translateX(-50%) translateY(2px);
    transition:
      opacity 120ms ease,
      transform 120ms ease;
    white-space: normal;
  }

  .agent-gui-node__mention-palette-hint-item:hover::after,
  .agent-gui-node__mention-palette-hint-item:focus-within::after {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }

  .agent-gui-node__mention-palette-hint-item:last-child::after {
    right: 0;
    left: auto;
    transform: translateY(2px);
  }

  .agent-gui-node__mention-palette-hint-item:last-child:hover::after,
  .agent-gui-node__mention-palette-hint-item:last-child:focus-within::after {
    transform: translateY(0);
  }
}

.agent-gui-node__mention-palette .rich-text-at-mention-palette__row-button,
.agent-gui-node__mention-palette .rich-text-at-mention-palette__expand-button {
  min-height: 28px;
  padding-top: 4px;
  padding-bottom: 4px;
  padding-right: 4px;
}

.agent-gui-node__mention-palette
  .rich-text-at-mention-palette__empty-state-inner {
  width: min(100%, 52ch);
}

.agent-gui-node__mention-file-thumb {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: var(--agent-mention-file-icon-size, 16px);
  height: var(--agent-mention-file-icon-size, 16px);
  flex: 0 0 var(--agent-mention-file-icon-size, 16px);
  overflow: hidden;
  border-radius: 4px;
  background-color: var(--bg-block, var(--block));
  vertical-align: middle;
}

.agent-gui-node__mention-file-thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.agent-gui-node__mention-file-icon {
  width: var(--agent-mention-file-icon-size, 16px);
  height: var(--agent-mention-file-icon-size, 16px);
  flex: 0 0 var(--agent-mention-file-icon-size, 16px);
  background-color: var(--folder);
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: var(--agent-mention-file-icon-size, 16px)
    var(--agent-mention-file-icon-size, 16px);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: var(--agent-mention-file-icon-size, 16px)
    var(--agent-mention-file-icon-size, 16px);
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="folder"]
  .agent-gui-node__mention-file-icon {
  mask-image: url("./assets/icons/folder-filled.svg");
  -webkit-mask-image: url("./assets/icons/folder-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="markdown"]
  .agent-gui-node__mention-file-icon {
  mask-image: url("./assets/icons/product-filled.svg");
  -webkit-mask-image: url("./assets/icons/product-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="code"]
  .agent-gui-node__mention-file-icon {
  mask-image: url("./assets/icons/code-filled.svg");
  -webkit-mask-image: url("./assets/icons/code-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="image"]
  .agent-gui-node__mention-file-icon {
  mask-image: url("./assets/icons/image-filled.svg");
  -webkit-mask-image: url("./assets/icons/image-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="video"]
  .agent-gui-node__mention-file-icon {
  mask-image: url("./assets/icons/video-filled.svg");
  -webkit-mask-image: url("./assets/icons/video-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="document"]
  .agent-gui-node__mention-file-icon {
  mask-image: url("./assets/icons/doc-filled.svg");
  -webkit-mask-image: url("./assets/icons/doc-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="back"]
  .agent-gui-node__mention-file-icon.rich-text-at-mention-file-icon--glyph {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: transparent;
  mask-image: none;
  -webkit-mask-image: none;
  color: currentColor;
}

.agent-gui-chrome__session-chrome {
  display: grid;
  justify-self: stretch;
  width: auto;
  gap: 0;
  margin: 0 8px;
  padding: 0;
  background: transparent;
}

.agent-gui-node__empty-hero-body > .agent-gui-chrome__session-chrome {
  justify-self: center;
  width: min(760px, 100%);
  margin: 0 auto;
}

.agent-gui-node__empty-hero-body
  > .agent-gui-chrome__session-chrome
  > .agent-gui-chrome__card {
  margin-right: 12px;
  margin-left: 12px;
}

.agent-gui-node__empty-hero-body
  > .agent-gui-chrome__session-chrome
  + .agent-gui-node__composer-hero {
  margin-top: calc(var(--agent-gui-empty-hero-gap, 24px) * -1);
}

.agent-gui-chrome__session-chrome:has(+ .agent-gui-chrome__session-chrome) {
  margin-right: 16px;
  margin-left: 16px;
}

.agent-gui-node__composer-input-group > .agent-gui-chrome__session-chrome {
  position: relative;
  z-index: 3;
  min-width: 0;
  margin-right: 8px;
  margin-left: 8px;
}

.agent-gui-node__composer-input-group-hero > .agent-gui-chrome__session-chrome {
  margin-right: 24px;
  margin-left: 24px;
}

.agent-gui-node__bottom-dock > .agent-gui-chrome__session-chrome {
  margin-right: 24px;
  margin-left: 24px;
}

.agent-gui-node__bottom-dock
  > .agent-gui-chrome__session-chrome:has(+ .agent-gui-chrome__session-chrome) {
  margin-right: 36px;
  margin-left: 36px;
}

.agent-gui-node__bottom-dock
  > .agent-gui-chrome__session-chrome:has(
    + .agent-gui-node__composer
      .agent-gui-node__composer-input-group
      > .agent-gui-chrome__session-chrome
  ) {
  margin-right: 36px;
  margin-left: 36px;
}

.agent-gui-node__bottom-dock
  > .agent-gui-chrome__session-chrome:has(
    + .agent-gui-node__composer
      .agent-gui-node__composer-input-group
      > .agent-gui-chrome__session-chrome
  )
  + .agent-gui-node__composer
  .agent-gui-node__composer-input-group
  > .agent-gui-chrome__session-chrome {
  margin-right: 24px;
  margin-left: 24px;
}

.agent-gui-chrome__card {
  display: grid;
  gap: 8px;
  border: 1px solid var(--agent-gui-border-subtle, var(--line-2));
  border-radius: 12px;
  padding: 12px;
  background: var(--agent-gui-surface-strong, var(--background-panel));
}

.agent-gui-chrome__card--warning,
.agent-gui-chrome__card--danger,
.agent-gui-chrome__card--success,
.agent-gui-chrome__card--muted,
.agent-gui-chrome__card--connecting {
  --agent-gui-chrome-card-spring: cubic-bezier(0.22, 1.18, 0.36, 1);

  animation: agent-gui-chrome-card-enter 260ms
    var(--agent-gui-chrome-card-spring);
  box-sizing: border-box;
  height: auto;
  min-height: 36px;
  overflow: hidden;
  transform: translateY(0) scaleY(1);
  transform-origin: bottom center;
  transition:
    border-radius 220ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 280ms var(--agent-gui-chrome-card-spring);
}

@keyframes agent-gui-chrome-card-enter {
  from {
    opacity: 0;
    transform: translateY(6px) scaleY(0.96);
  }
}

.agent-gui-chrome__card--warning {
  border-color: color-mix(
    in srgb,
    var(--agent-gui-warning, var(--cove-label-orange)) 36%,
    transparent
  );
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: color-mix(
    in srgb,
    var(--agent-gui-warning, var(--cove-label-orange)) 10%,
    var(--background-fronted)
  );
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 36px;
  padding: 6px 16px;
  cursor: default;
}

.agent-gui-chrome__card--warning .agent-gui-chrome__icon,
.agent-gui-chrome__card--warning .agent-gui-chrome__message {
  color: var(--agent-gui-warning, var(--cove-label-orange));
}

.agent-gui-chrome__card--warning .agent-gui-chrome__actions button,
.agent-gui-chrome__card--warning .agent-gui-chrome__danger-ghost-button {
  color: var(--agent-gui-warning, var(--cove-label-orange));
}

.agent-gui-chrome__card--warning
  .agent-gui-chrome__actions
  button:hover:not(:disabled),
.agent-gui-chrome__card--warning
  .agent-gui-chrome__danger-ghost-button:hover:not(:disabled) {
  background: color-mix(
    in srgb,
    var(--agent-gui-warning, var(--cove-label-orange)) 14%,
    transparent
  );
}

.agent-gui-chrome__card--action {
  border-color: color-mix(
    in srgb,
    var(--accent) 24%,
    var(--agent-gui-border-subtle, var(--line-2))
  );
  background: color-mix(
    in srgb,
    var(--accent) 8%,
    var(--agent-gui-surface, var(--background-panel))
  );
}

.agent-gui-chrome__card--muted {
  border-bottom: 0;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  align-items: center;
  min-height: 36px;
  padding: 6px 16px;
  background: var(--transparency-block);
  cursor: default;
}

.agent-gui-chrome__card--connecting {
  border-color: var(--agent-gui-border-subtle, var(--line-2));
  border-bottom: 0;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  color: var(--agent-gui-text-primary, var(--text-primary));
  align-items: center;
  min-height: 36px;
  padding: 6px 16px;
  cursor: default;
  background: var(--agent-gui-surface-strong, var(--background-fronted));
}

.agent-gui-chrome__card--connecting .agent-gui-chrome__message {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  color: var(--agent-gui-text-primary, var(--text-primary));
}

.agent-gui-chrome__card--connecting .agent-gui-chrome__icon {
  color: var(--agent-gui-text-primary, var(--text-primary));
}

.agent-gui-chrome__card--danger {
  border-color: color-mix(
    in srgb,
    var(--status-danger, var(--state-danger)) 28%,
    transparent
  );
  border-bottom: 0;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: color-mix(
    in srgb,
    var(--status-danger, var(--state-danger)) 10%,
    var(--background-fronted)
  );
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 36px;
  padding: 6px 16px;
  cursor: default;
}

.agent-gui-chrome__card[data-has-inline-actions="true"] {
  padding-right: 4px;
}

.agent-gui-chrome__card--danger .agent-gui-chrome__icon,
.agent-gui-chrome__card--danger .agent-gui-chrome__message {
  color: var(--status-danger, var(--state-danger));
}

.agent-gui-chrome__danger-ghost-button {
  background: transparent;
  color: var(--status-danger, var(--state-danger));
  font-size: 13px;
  font-weight: 400;
}

.agent-gui-chrome__danger-ghost-button:hover:not(:disabled) {
  background: var(--on-danger-hover);
  color: var(--status-danger-hover, var(--state-danger-hover));
}

.agent-gui-chrome__card--success {
  /* --state-success alone reads ~2:1 against the light-theme card wash;
     mixing toward --text-primary keeps the hue while adapting the contrast
     in both themes (45% keeps 13px text past the 4.5:1 target). Borders and
     backgrounds stay on the raw token. */
  --agent-gui-chrome-success-foreground: color-mix(
    in srgb,
    var(--state-success) 45%,
    var(--text-primary)
  );

  border-color: color-mix(in srgb, var(--state-success) 28%, transparent);
  border-bottom: 0;
  border-top-left-radius: 8px;
  border-top-right-radius: 8px;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
  background: color-mix(
    in srgb,
    var(--state-success) 10%,
    var(--background-fronted)
  );
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  min-height: 36px;
  padding: 6px 16px;
  cursor: default;
}

.agent-gui-chrome__card--success .agent-gui-chrome__icon,
.agent-gui-chrome__card--success .agent-gui-chrome__message {
  color: var(--agent-gui-chrome-success-foreground, var(--state-success));
}

.agent-gui-chrome__success-ghost-button {
  background: transparent;
  color: var(--agent-gui-chrome-success-foreground, var(--state-success));
  font-size: 13px;
  font-weight: 400;
}

.agent-gui-chrome__success-ghost-button:hover:not(:disabled) {
  background: color-mix(in srgb, var(--state-success) 14%, transparent);
}

.agent-gui-chrome__success-ghost-button:focus-visible {
  border-color: var(--state-success);
  color: var(--agent-gui-chrome-success-foreground, var(--state-success));
  box-shadow: 0 0 0 2px
    color-mix(in srgb, var(--state-success) 25%, transparent);
}

.agent-gui-chrome__danger-ghost-button:focus-visible {
  border-color: var(--status-danger, var(--state-danger));
  color: var(--status-danger, var(--state-danger));
  box-shadow: 0 0 0 2px
    color-mix(
      in srgb,
      var(--status-danger, var(--state-danger)) 25%,
      transparent
    );
}

.agent-gui-chrome__icon {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  color: currentColor;
}

.agent-gui-chrome__title {
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  font-size: 13px;
  line-height: 20px;
  font-weight: 600;
}

.agent-gui-chrome__message {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  font-size: 13px;
  line-height: 20px;
}

.agent-gui-chrome__card--warning
  .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
.agent-gui-chrome__card--danger
  .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
.agent-gui-chrome__card--success
  .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
.agent-gui-chrome__card--muted
  .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message),
.agent-gui-chrome__card--connecting
  .agent-gui-chrome__message:not(.agent-gui-chrome__notice-message) {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: clip;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.agent-gui-chrome__message-tooltip {
  max-width: min(560px, calc(100vw - 32px));
  max-height: min(40vh, 260px);
  overflow: auto;
  overflow-wrap: anywhere;
  text-align: left;
  white-space: pre-wrap;
}

.agent-gui-chrome__notice-message {
  display: flex;
  align-items: center;
  gap: 10px;
}

.agent-gui-chrome__notice-title {
  flex: 0 0 auto;
  color: currentColor;
  font-weight: 400;
}

.agent-gui-chrome__notice-description {
  min-width: 0;
  overflow: hidden;
  color: currentColor;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-chrome__goal-hint {
  flex: 0 0 auto;
  white-space: nowrap;
  font-size: 11px;
  font-weight: 400;
  line-height: 16px;
  color: var(--agent-gui-text-tertiary, var(--text-tertiary));
  opacity: 0.8;
}

.agent-gui-chrome__goal-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 4px;
}

.agent-gui-chrome__goal-actions button {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 22px;
  padding: 2px 8px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  font-size: 11px;
  font-weight: 500;
  line-height: 16px;
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  cursor: pointer;
}

.agent-gui-chrome__goal-actions button:hover {
  background: color-mix(
    in srgb,
    var(--agent-gui-text-primary, var(--text-primary)) 8%,
    transparent
  );
  color: var(--agent-gui-text-primary, var(--text-primary));
}

/* Tutti workflow intensity button: tint icon + tier label + value by tier.
   Needs the extra attribute hook to outrank the goal-actions button rule. */
.agent-gui-chrome__goal-actions button[data-agent-tutti-tier="cost"] {
  color: var(--state-success);
}

.agent-gui-chrome__goal-actions button[data-agent-tutti-tier="balance"] {
  color: var(--accent-codex);
}

.agent-gui-chrome__goal-actions button[data-agent-tutti-tier="powerful"] {
  color: var(--tutti-purple);
}

/* The Tutti intensity chip is a non-button-like indicator: keep it flat on
   hover instead of picking up the goal-actions button hover background. */
.agent-gui-chrome__goal-actions button[data-agent-tutti-tier]:hover {
  background: transparent;
}

.agent-gui-chrome__composer-disclosure {
  display: grid;
  min-width: 0;
}

.agent-gui-chrome__composer-disclosure-panel {
  box-sizing: border-box;
  max-height: min(52vh, 520px);
  overflow: auto;
  /* The translateY below fuses the panel with its own banner by painting
     over the banner's top edge; the matching negative margin keeps the
     panel flush with any card stacked above it instead of leaving a gap. */
  margin-top: -12px;
  border: 1px solid var(--agent-gui-border-subtle, var(--line-2));
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  padding: 12px;
  background: var(--agent-gui-surface-strong, var(--background-panel));
  pointer-events: auto;
  transform: translateY(12px);
}

/* Tutti workflow plan-review surfaces: --background-fronted base with an 8%
   tutti-purple wash. Geometry (fused panel/banner overlap, radii, borders)
   stays identical to the generic disclosure card. */
.agent-gui-chrome__tutti-workflow-panel {
  padding: 8px;
  background: color-mix(
    in srgb,
    var(--tutti-purple) 8%,
    var(--background-fronted)
  );
}

.agent-gui-chrome__tutti-workflow-banner {
  background: color-mix(
    in srgb,
    var(--tutti-purple) 8%,
    var(--background-fronted)
  );
}

.agent-gui-chrome__composer-disclosure[data-expanded="true"]
  .agent-gui-chrome__composer-disclosure-banner {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.agent-gui-chrome__composer-disclosure-banner {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px;
}

.agent-gui-chrome__composer-disclosure-trigger {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  text-align: left;
  cursor: pointer;
}

.agent-gui-chrome__composer-disclosure-trigger:focus-visible {
  border-radius: 6px;
  outline: 2px solid color-mix(in srgb, var(--tutti-purple) 62%, transparent);
  outline-offset: 2px;
}

.agent-gui-chrome__composer-disclosure-chevron {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  transition: transform 160ms ease;
}

.agent-gui-chrome__composer-disclosure-chevron--expanded {
  transform: rotate(180deg);
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-chrome__composer-disclosure-chevron {
    transition: none;
  }
}

.agent-gui-chrome__goal-edit-input {
  min-width: 0;
  flex: 1 1 auto;
  border: 0;
  border-radius: 6px;
  padding: 2px 6px;
  background: color-mix(
    in srgb,
    var(--agent-gui-text-primary, var(--text-primary)) 6%,
    transparent
  );
  font-size: 12px;
  line-height: 18px;
  color: var(--agent-gui-text-primary, var(--text-primary));
  outline: none;
}

.agent-gui-chrome__message-slot {
  display: flex;
  min-width: 0;
  flex: 1 1 auto;
  align-items: center;
  gap: 8px;
}

.agent-gui-chrome__inline-actions {
  display: flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.agent-gui-chrome__inline-actions button {
  flex: 0 0 auto;
}

.agent-gui-chrome__actions,
.agent-gui-chrome__meta-row {
  display: flex;
  min-width: 0;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
  justify-content: space-between;
}

.agent-gui-chrome__actions button {
  min-height: 30px;
  border: 1px solid var(--agent-gui-border, var(--cove-border));
  border-radius: 6px;
  background: var(--agent-gui-surface-muted, var(--transparency-block));
  color: var(--text-primary);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  padding: 4px 12px;
  transition:
    border-color 140ms ease,
    background-color 140ms ease,
    color 140ms ease;
}

.agent-gui-chrome__actions button:hover:not(:disabled) {
  border-color: color-mix(
    in srgb,
    var(--accent) 44%,
    var(--agent-gui-border, var(--cove-border))
  );
  background: var(--agent-gui-surface-hover, var(--transparency-block));
  color: var(--text-primary);
}

.agent-gui-chrome__actions button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.agent-gui-conversation__interactive-prompt {
  padding: 0 clamp(20px, 4vw, 52px) 14px;
  background: transparent;
  font-family: var(
    --tsh-font-ui,
    var(--font-ui, var(--font-sans-system, sans-serif))
  );
}

.agent-gui-conversation__interactive-prompt--embedded {
  padding: 0;
}

.agent-gui-conversation__interactive-prompt-card {
  display: grid;
  gap: 12px;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  border: 1px solid var(--line-2, var(--tutti-line-2));
  border-radius: 12px;
  background: var(--background-fronted);
  padding: 12px 16px 16px;
  box-shadow: 0 8px 24px
    color-mix(in srgb, var(--tutti-p-shadow-node) 16%, transparent);
  transform-origin: bottom center;
  animation: agent-gui-interactive-prompt-enter 190ms
    cubic-bezier(0.16, 1, 0.3, 1) both;
}

.agent-gui-conversation__interactive-prompt-card.agent-gui-edge-glow {
  --agent-gui-star-border-radius: 12px;
}

[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-prompt--embedded
  .agent-gui-conversation__interactive-prompt-card {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  border: 0;
  border-radius: 12px;
  padding: 12px;
  box-shadow: none;
}

[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-prompt--embedded,
[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-prompt-options,
[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-option-display,
[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-option-button {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-prompt-question,
[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-option-title,
[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-option-description {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

[data-testid="workspace-agent-message-center"]
  .agent-gui-conversation__interactive-option-command-description {
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-conversation__interactive-prompt-card {
    animation: none;
  }
}

.agent-gui-conversation__interactive-prompt-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.agent-gui-conversation__interactive-prompt-lead-content {
  display: grid;
  gap: 4px;
}

.agent-gui-conversation__interactive-prompt-lead {
  color: var(--text-primary);
  font-size: 15px;
  font-weight: 500;
}

.agent-gui-conversation__interactive-prompt-meta {
  color: var(--text-tertiary);
  font-size: 13px;
}

.agent-gui-conversation__interactive-prompt-question {
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 1.5;
}

.agent-gui-conversation__interactive-prompt-options {
  display: grid;
  gap: 8px;
}

.agent-gui-conversation__interactive-option-button {
  display: flex;
  align-items: center;
  box-sizing: border-box;
  gap: 12px;
  width: 100%;
  min-width: 0;
  border: 0;
  border-radius: 8px;
  background: var(--transparency-block);
  color: var(--text-primary);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  outline: none;
  padding: 8px 8px 8px 12px;
  text-align: left;
  transition:
    background-color 150ms ease,
    box-shadow 150ms ease,
    color 150ms ease;
}

.agent-gui-conversation__interactive-option-button:hover:not(:disabled),
.agent-gui-conversation__interactive-option-button[data-active="true"] {
  background: var(--transparency-hover);
}

.agent-gui-conversation__interactive-option-button[data-active="true"] {
  box-shadow: inset 0 0 0 1px
    color-mix(in srgb, var(--text-primary) 24%, transparent);
}

.agent-gui-conversation__interactive-option-button:focus-visible {
  outline: 2px solid var(--border-focus);
  outline-offset: 2px;
}

.agent-gui-conversation__interactive-option-display {
  display: grid;
  gap: 3px;
  justify-items: start;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  background: transparent;
  color: var(--text-primary);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  padding: 12px;
  text-align: left;
}

.agent-gui-conversation__interactive-option-button:disabled {
  cursor: not-allowed;
  background: var(--transparency-block);
  color: var(--text-disabled);
  opacity: 0.48;
}

.agent-gui-conversation__interactive-option-button:disabled
  .agent-gui-conversation__interactive-option-title,
.agent-gui-conversation__interactive-option-button:disabled
  .agent-gui-conversation__interactive-option-description,
.agent-gui-conversation__interactive-option-button:disabled
  .agent-gui-conversation__interactive-option-shortcut {
  color: var(--text-disabled);
}

.agent-gui-conversation__interactive-option-button:disabled
  .agent-gui-conversation__interactive-option-shortcut {
  background: color-mix(in srgb, var(--transparency-block) 54%, transparent);
}

.agent-gui-conversation__interactive-option-title {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.3;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.agent-gui-conversation__interactive-option-content {
  display: grid;
  flex: 1 1 auto;
  gap: 3px;
  justify-items: start;
  max-width: 100%;
  min-width: 0;
}

.agent-gui-conversation__interactive-option-description {
  max-width: 100%;
  color: var(--text-tertiary);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.agent-gui-conversation__interactive-option-command-description {
  display: -webkit-box;
  max-height: calc(1.3em * 4);
  overflow: hidden;
  font-family: var(
    --tsh-font-mono,
    var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)
  );
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
}

.agent-gui-conversation__interactive-option-command-tooltip {
  max-width: min(640px, calc(100vw - 32px));
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.agent-gui-conversation__interactive-option-shortcut {
  flex: none;
  margin-inline-start: auto;
  font-weight: 500;
}

.agent-gui-conversation__interactive-option-spinner {
  flex: none;
  color: currentColor;
}

.agent-gui-conversation__interactive-feedback-composer {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 80px;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 7px;
  background: var(--background-fronted);
  padding-bottom: 44px;
}

.agent-gui-conversation__interactive-prompt-textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 72px;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  background: var(--background-fronted);
  color: var(--text-primary);
  font: inherit;
  font-size: 13px;
  line-height: 1.5;
  padding: 12px;
  resize: vertical;
}

.agent-gui-conversation__interactive-feedback-composer
  .agent-gui-conversation__interactive-prompt-textarea {
  display: block;
  box-sizing: border-box;
  min-width: 0;
  min-height: 36px;
  max-height: 132px;
  overflow-y: auto;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text-primary);
  font-size: 13px;
  line-height: 1.45;
  padding: 9px 10px;
  resize: vertical;
  scrollbar-width: thin;
  scrollbar-color: var(--transparency-hover) transparent;
  scrollbar-gutter: stable;
}

.agent-gui-conversation__interactive-feedback-composer
  .agent-gui-conversation__interactive-prompt-textarea::placeholder {
  color: var(--text-placeholder);
}

.agent-gui-conversation__interactive-feedback-composer
  .agent-gui-conversation__interactive-prompt-textarea::-webkit-scrollbar {
  display: block;
  width: 4px;
  height: 4px;
}

.agent-gui-conversation__interactive-feedback-composer
  .agent-gui-conversation__interactive-prompt-textarea::-webkit-scrollbar-track,
.agent-gui-conversation__interactive-feedback-composer
  .agent-gui-conversation__interactive-prompt-textarea::-webkit-scrollbar-corner {
  background: transparent;
}

.agent-gui-conversation__interactive-feedback-composer
  .agent-gui-conversation__interactive-prompt-textarea::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: var(--transparency-hover);
}

.agent-gui-conversation__interactive-feedback-send-button {
  position: absolute;
  right: 12px;
  bottom: 12px;
  display: grid;
  place-items: center;
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  border: 0;
  border-radius: 999px;
  background: var(--text-primary);
  color: var(--text-inverted);
  font-family: inherit;
  padding: 0;
  transition:
    transform 140ms ease,
    background-color 140ms ease,
    color 140ms ease;
}

.agent-gui-conversation__interactive-feedback-send-button:hover:not(:disabled) {
  transform: translateY(-1px);
}

.agent-gui-conversation__interactive-feedback-send-button:disabled {
  background: var(--text-disabled);
  color: var(--white-stationary);
  cursor: not-allowed;
}

.agent-gui-conversation__interactive-feedback-send-button svg {
  width: 22px;
  height: 22px;
}

.agent-gui-conversation__interactive-prompt-footer {
  display: grid;
  gap: 10px;
}

.agent-gui-conversation__interactive-prompt-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.agent-gui-conversation__interactive-prompt-card.agent-gui-conversation__interactive-prompt-collapsed {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-block: 10px;
}

.agent-gui-conversation__user-message-flow,
.agent-gui-conversation__assistant-message-flow {
  display: grid;
  width: 100%;
  min-width: 0;
}

.agent-gui-conversation__user-message-flow {
  row-gap: 14px;
  justify-items: end;
}

.agent-gui-conversation__participant-message-layout {
  display: grid;
  width: 100%;
  min-width: 0;
}

.agent-gui-conversation__participant-message-header {
  display: flex;
  max-width: 100%;
  min-width: 0;
  align-items: center;
  column-gap: 8px;
}

/* The participant header sits directly above the thinking/tool-call info and
   the message content, so it uses a tighter gap than the default 24px flow
   spacing. */
.agent-gui-conversation__assistant-message-flow
  > .agent-gui-conversation__participant-message-header
  + * {
  margin-top: 8px;
}

/* Content below the header aligns with the participant name: assistant
   content insets to the name's left edge, user content to the name's right
   edge (28px avatar + 8px gap). The header is pulled back over the padding so
   it stays flush with the flow edge. */
.agent-gui-conversation__assistant-message-flow[data-agent-message-flow-participant="true"] {
  padding-left: 36px;
}

.agent-gui-conversation__assistant-message-flow[data-agent-message-flow-participant="true"]
  > .agent-gui-conversation__participant-message-header {
  margin-left: -36px;
}

.agent-gui-conversation__user-message-flow[data-agent-message-flow-participant="true"] {
  padding-right: 36px;
}

.agent-gui-conversation__user-message-flow[data-agent-message-flow-participant="true"]
  > .agent-gui-conversation__participant-message-header {
  margin-right: -36px;
}

/*
 * Participant headers render once per visible turn. Later assistant-owned
 * transcript rows are siblings of that header row, so carry the same
 * avatar-and-gap inset onto their content without changing host row padding.
 */
.agent-gui-transcript-row[data-agent-transcript-row-participant-content="assistant"]
  > * {
  box-sizing: border-box;
  padding-left: 36px;
}

.agent-gui-conversation__participant-name {
  overflow: hidden;
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
  color: var(--text-secondary);
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Hairline ring + crisp circular edge for participant avatars. The ring is
   painted on the avatar root (paint, anti-aliased on composited layers); the
   radial-gradient mask on the surface keeps the clipped image edge smooth in
   virtualized/composited lists where border-radius clipping is not
   anti-aliased. */
.agent-gui-conversation__participant-avatar {
  border-radius: 50%;
  box-shadow: 0 0 0 0.5px var(--line-2);
}

.agent-gui-conversation__participant-avatar [data-slot="avatar-surface"] {
  -webkit-mask-image: radial-gradient(
    circle closest-side,
    #000 calc(100% - 1px),
    transparent
  );
  mask-image: radial-gradient(
    circle closest-side,
    #000 calc(100% - 1px),
    transparent
  );
}

.agent-gui-conversation__participant-message-content {
  display: grid;
  width: 100%;
  min-width: 0;
}

.agent-gui-conversation__participant-message-layout[data-agent-message-speaker="user"]
  > .agent-gui-conversation__participant-message-content {
  row-gap: 14px;
  justify-items: end;
}

.agent-gui-conversation__message-group {
  position: relative;
  display: grid;
  width: 100%;
  min-width: 0;
}

.agent-gui-conversation__message-group::after {
  position: absolute;
  top: 100%;
  right: 0;
  left: 0;
  height: 26px;
  content: "";
}

.agent-gui-conversation__message-group[data-agent-message-footer="true"] {
  margin-bottom: 26px;
}

.agent-gui-conversation__message-footer {
  position: absolute;
  top: calc(100% + 4px);
  z-index: 1;
  display: flex;
  gap: 6px;
  align-items: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-2px);
  transition:
    opacity 120ms ease,
    transform 120ms ease;
}

.agent-gui-conversation__message-timestamp {
  display: inline-flex;
  align-items: center;
  height: 22px;
  font-size: 11px;
  line-height: 22px;
  color: var(
    --text-secondary,
    color-mix(in srgb, var(--text-primary) 60%, transparent)
  );
  white-space: nowrap;
}

.agent-gui-conversation__message-copy-button {
  position: static;
  width: 22px;
  min-width: 22px;
  height: 22px;
  min-height: 22px;
  border-radius: 5px;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-2px);
  transition:
    opacity 120ms ease,
    transform 120ms ease;
}

.agent-gui-conversation__message-copy-button[data-pending="true"] {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.agent-gui-conversation__message-footer
  > .agent-gui-conversation__message-copy-button
  + .agent-gui-conversation__message-copy-button {
  margin-left: -8px;
}

.agent-gui-conversation__message-group[data-agent-message-speaker="user"]
  > .agent-gui-conversation__message-footer {
  right: 0;
}

.agent-gui-conversation__message-group[data-agent-message-speaker="assistant"]
  > .agent-gui-conversation__message-footer {
  left: 0;
}

.agent-gui-conversation__message-group:hover
  > .agent-gui-conversation__message-footer,
.agent-gui-conversation__message-group:focus-within
  > .agent-gui-conversation__message-footer {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.agent-gui-conversation__message-group:hover
  > .agent-gui-conversation__message-footer
  > .agent-gui-conversation__message-copy-button,
.agent-gui-conversation__message-group:focus-within
  > .agent-gui-conversation__message-footer
  > .agent-gui-conversation__message-copy-button {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.agent-gui-conversation__message-copy-button[data-copied="true"] {
  color: var(--state-success, #22c55e);
}

.agent-gui-conversation__user-message-flow
  > .agent-gui-conversation__message-group {
  justify-items: end;
}

.agent-gui-conversation__user-image-grid {
  display: grid;
  gap: 8px;
  justify-self: end;
}

.agent-gui-conversation__user-image-thumbnail {
  position: relative;
  box-sizing: border-box;
  height: 80px;
  max-height: 80px;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 8px;
}

.agent-gui-conversation__user-image-thumbnail > .tsh-zoomable-image {
  width: 100%;
  height: 100%;
}

.agent-gui-conversation__user-image-thumbnail > .tsh-zoomable-image > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.agent-gui-conversation__user-image-thumbnail[data-image-state="loading"]
  > .tsh-zoomable-image {
  opacity: 0;
  pointer-events: none;
}

.agent-gui-conversation__user-image-thumbnail[data-image-state="loading"]
  > .tsh-zoomable-image
  > .tsh-zoomable-image__trigger {
  visibility: hidden;
}

.agent-gui-conversation__assistant-message-flow {
  gap: 0;
}

.agent-gui-conversation__assistant-message-flow > * + * {
  margin-top: 24px;
}

.agent-gui-conversation__assistant-message-flow
  > :is(
    .workspace-agents-status-panel__detail-thinking-disclosure,
    .workspace-agents-status-panel__detail-tool-section,
    .workspace-agents-status-panel__detail-tool-row
  )
  + :is(
    .workspace-agents-status-panel__detail-thinking-disclosure,
    .workspace-agents-status-panel__detail-tool-section,
    .workspace-agents-status-panel__detail-tool-row
  ) {
  margin-top: 8px;
}

.agent-gui-node__timeline
  > .agent-gui-conversation__assistant-message-flow[data-agent-message-flow-thinking-last="true"]
  + :is(
    .workspace-agents-status-panel__detail-tool-section,
    .workspace-agents-status-panel__detail-tool-row
  ),
.agent-gui-node__timeline
  > :is(
    .workspace-agents-status-panel__detail-tool-section,
    .workspace-agents-status-panel__detail-tool-row
  )
  + .agent-gui-conversation__assistant-message-flow[data-agent-message-flow-thinking-first="true"],
.agent-gui-node__timeline
  > :is(
    .workspace-agents-status-panel__detail-tool-section,
    .workspace-agents-status-panel__detail-tool-row
  )
  + :is(
    .workspace-agents-status-panel__detail-tool-section,
    .workspace-agents-status-panel__detail-tool-row
  ) {
  margin-top: -8px;
}

.agent-gui-node__timeline
  > .agent-gui-transcript-row[data-agent-transcript-row-thinking-last="true"]
  + .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"],
.agent-gui-node__timeline
  > .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"]
  + .agent-gui-transcript-row[data-agent-transcript-row-thinking-first="true"],
.agent-gui-node__timeline
  > .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"]
  + .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"] {
  margin-top: -8px;
}

.agent-gui-node__timeline
  > .agent-gui-transcript-row[data-agent-transcript-row-speaker="assistant"]
  + .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"],
.agent-gui-node__timeline
  > .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"]
  + .agent-gui-transcript-row[data-agent-transcript-row-speaker="assistant"] {
  margin-top: -12px;
}

.agent-gui-conversation__user-message-bubble {
  align-self: flex-end;
}

.agent-gui-conversation__assistant-markdown {
  max-width: min(880px, 100%);
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--agent-conversation-text, var(--text-primary));
  font-size: 13px;
  line-height: 1.72;
}

.workspace-agents-status-panel__detail-user-message.agent-gui-conversation__user-message-bubble {
  box-sizing: border-box;
  display: inline-block;
  justify-self: end;
  width: fit-content;
  min-width: 0;
  max-width: var(--agent-conversation-user-max-width, min(540px, 72%));
  overflow: visible;
  padding: 8px 12px;
  border-radius: 8px;
  background: var(--agent-conversation-user-bg, var(--transparency-block));
  color: var(--agent-conversation-user-text, var(--text-primary));
  font-size: 13px;
  line-height: 24px;
  box-shadow: none;
}

.workspace-agents-status-panel__detail-user-message.agent-gui-conversation__user-message-bubble.agent-gui-conversation__user-message-editor {
  display: grid;
  width: calc(100% - 32px);
  min-width: 0;
  max-width: calc(100% - 32px);
  gap: 8px;
  padding: 10px 12px 8px;
  border-radius: 16px;
}

.agent-gui-conversation__user-message-editor:focus-within {
  outline: 1px solid var(--tsh-shell-accent);
  outline-offset: 1px;
}

.agent-gui-conversation__user-message-editor-textarea {
  box-sizing: border-box;
  width: 100%;
  min-height: 48px;
  max-height: 192px;
  padding: 0;
  resize: none;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text-primary);
  font: inherit;
  line-height: 1.55;
}

.agent-gui-conversation__user-message-editor-textarea:disabled {
  color: var(--text-secondary);
  cursor: not-allowed;
}

.agent-gui-conversation__user-message-editor-actions {
  display: flex;
  width: 100%;
  gap: 4px;
  justify-content: flex-end;
  align-items: center;
}

.workspace-agents-status-panel__detail-user-message.agent-gui-conversation__user-message-editor
  > .agent-gui-conversation__user-message-editor-actions {
  display: flex;
  width: 100%;
  justify-content: flex-end;
}

.agent-gui-conversation__user-message-editor-actions > [data-slot="button"] {
  border-radius: 10px;
}

.workspace-agents-status-panel__detail-user-message[data-agent-mention-only="true"].agent-gui-conversation__user-message-bubble {
  max-width: min(100%, calc(var(--agent-mention-max-width, 16rem) + 24px));
}

.workspace-agents-status-panel__detail-user-message .tsh-agent-object-token {
  font-size: inherit;
  overflow: visible;
}

.workspace-agents-status-panel__detail-user-message
  .agent-rich-text-mention-node {
  /* Avoid a percentage max-width feeding the mention's untruncated intrinsic
     width back into the fit-content message bubble. The nested pill still
     shrinks against this wrapper when the available line is narrower. */
  max-width: var(--agent-mention-max-width, 16rem);
}

.workspace-agents-status-panel__detail-user-message
  .tsh-agent-object-token--file {
  --agent-mention-file-icon-size: 16px;
}

.workspace-agents-status-panel__detail-user-message > div,
.workspace-agents-status-panel__detail-user-message > [contenteditable="false"],
.workspace-agents-status-panel__detail-user-message .ProseMirror {
  display: inline-block;
  width: fit-content;
  min-width: 0;
  max-width: 100%;
  vertical-align: top;
  font-size: inherit;
  line-height: inherit;
}

.workspace-agents-status-panel__detail-user-message.agent-gui-conversation__user-message-bubble
  p {
  width: fit-content;
  max-width: 100%;
  margin: 0;
}

.workspace-agents-status-panel__detail-user-message.agent-gui-conversation__user-message-bubble
  p
  + p {
  margin-top: 16px;
}

.workspace-agents-status-panel__detail-markdown-shell {
  width: 100%;
}

.workspace-agents-status-panel__detail-markdown.agent-gui-conversation__assistant-markdown {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.workspace-agents-status-panel__detail-markdown.agent-gui-conversation__assistant-markdown
  p {
  margin: 0;
}

.workspace-agents-status-panel__detail-markdown.agent-gui-conversation__assistant-markdown
  p
  + p {
  margin-top: 16px;
}

.workspace-agents-status-panel__detail-markdown.agent-gui-conversation__assistant-markdown
  hr {
  height: 1px;
  margin: 14px 0;
  border: 0;
  background: var(--line-2, var(--tutti-line-2));
}

.workspace-agents-status-panel__detail-markdown.agent-gui-conversation__assistant-markdown
  pre,
.workspace-agents-status-panel__detail-markdown.agent-gui-conversation__assistant-markdown
  pre
  code {
  font-family: "Droid Sans Mono", var(--tsh-font-mono);
}

.workspace-agents-status-panel__detail-markdown p:last-child,
.workspace-agents-status-panel__detail-markdown ul:last-child,
.workspace-agents-status-panel__detail-markdown ol:last-child,
.workspace-agents-status-panel__detail-markdown pre:last-child {
  margin-bottom: 0;
}

.workspace-agents-status-panel__detail-thinking-section,
.workspace-agents-status-panel__detail-turn-summary,
.workspace-agents-status-panel__detail-tool-section {
  max-width: min(860px, 100%);
  padding: 4px 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.tsh-agent-object-token {
  min-width: 0;
  /* 超出最大展示宽度时截断为省略号(标签 __main 已有 ellipsis);hover 经原生 title 看完整文本。 */
  max-width: min(100%, var(--agent-mention-max-width, 16rem));
  text-decoration: none;
}

.tsh-agent-object-token__main {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tsh-agent-object-token--file {
  position: relative;
  top: 3px;
  display: inline-flex;
  align-items: center;
  box-sizing: border-box;
  gap: 4px;
  padding: 2px 4px;
  border: 1px solid transparent;
  border-radius: 4px;
  background: transparent;
  color: var(--folder);
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  vertical-align: middle;
}

.tsh-agent-object-token--file .tsh-agent-object-token__icon {
  width: var(--agent-mention-file-icon-size, 16px);
  height: var(--agent-mention-file-icon-size, 16px);
  flex: 0 0 var(--agent-mention-file-icon-size, 16px);
  background-color: currentColor;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: var(--agent-mention-file-icon-size, 16px)
    var(--agent-mention-file-icon-size, 16px);
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: var(--agent-mention-file-icon-size, 16px)
    var(--agent-mention-file-icon-size, 16px);
  mask-image: url("./assets/icons/product-filled.svg");
  -webkit-mask-image: url("./assets/icons/product-filled.svg");
}

.tsh-agent-object-token--entity {
  position: relative;
  top: -2px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: 100%;
  min-height: 20px;
  padding: 0;
  background: transparent;
  color: var(--text-primary);
  font-size: 13px;
  font-weight: 600;
  line-height: inherit;
  vertical-align: middle;
}

[data-agent-mention-only="true"] .tsh-agent-object-token--file,
[data-agent-mention-only="true"] .tsh-agent-object-token--entity {
  top: 0;
}

.workspace-agents-status-panel__detail-user-message
  [data-agent-file-mention="true"][data-agent-mention-kind="file"].tsh-agent-object-token--file {
  top: -2px;
  line-height: 20px;
  vertical-align: middle;
}

.workspace-agents-status-panel__detail-user-message
  [data-agent-file-mention="true"][data-agent-mention-kind="workspace-app"].tsh-agent-object-token--entity {
  top: -2px;
  min-height: 24px;
  line-height: 24px;
  vertical-align: middle;
}

.workspace-agents-status-panel__detail-user-message
  [data-agent-file-mention="true"][data-agent-mention-kind="workspace-app"]
  .tsh-agent-object-token__main {
  overflow: visible;
}

.tsh-agent-object-token__kind {
  box-sizing: border-box;
  display: inline-flex;
  flex: 0 0 auto;
  min-width: 0;
  align-items: center;
  justify-content: center;
  overflow: visible;
  white-space: nowrap;
  height: 16px;
  padding: 0 4px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 16px;
}

[data-agent-mention-kind="task"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind {
  flex-basis: 18px;
  width: 18px;
  height: 18px;
  padding: 0;
  background: transparent;
  color: var(--label-purple);
}

[data-agent-mention-kind="task"].tsh-agent-object-token--entity {
  gap: 4px;
  color: var(--label-purple);
}

[data-agent-mention-kind="task"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind-icon {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  mask-image: url("./assets/icons/issue-filled.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 16px 16px;
  -webkit-mask-image: url("./assets/icons/issue-filled.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 16px 16px;
}

[data-agent-mention-kind="workspace-issue"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind {
  flex-basis: 18px;
  width: 18px;
  height: 18px;
  padding: 0;
  background: transparent;
  color: var(--label-purple);
}

[data-agent-mention-kind="workspace-issue"].tsh-agent-object-token--entity {
  gap: 4px;
  color: var(--label-purple);
}

[data-agent-mention-kind="workspace-issue"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind-icon {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  mask-image: url("./assets/icons/issue-filled.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 16px 16px;
  -webkit-mask-image: url("./assets/icons/issue-filled.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 16px 16px;
}

[data-agent-mention-kind="session"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind {
  flex-basis: 18px;
  width: 18px;
  height: 18px;
  padding: 0;
  background: transparent;
  color: var(--room-issue-running, var(--tsh-ui-pill-success-fg));
}

[data-agent-mention-kind="session"].tsh-agent-object-token--entity {
  gap: 4px;
  color: var(--room-issue-running, var(--tsh-ui-pill-success-fg));
}

[data-agent-mention-kind="session"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind-icon {
  display: block;
  flex: 0 0 16px;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  mask-image: url("./assets/icons/agent-sessions-filled.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 16px 16px;
  -webkit-mask-image: url("./assets/icons/agent-sessions-filled.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 16px 16px;
}

[data-agent-mention-kind="workspace-app"].tsh-agent-object-token--entity,
[data-agent-mention-kind="workspace-reference"][data-agent-reference-source="app"].tsh-agent-object-token--entity {
  color: var(--agent-gui-mention-app-color, var(--tutti-purple));
}

[data-agent-mention-kind="skill"].tsh-agent-object-token--entity,
[data-agent-mention-kind="capability"].tsh-agent-object-token--entity {
  top: -1px;
  gap: 0;
  padding: 0 4px 0 0;
  background: transparent;
  color: var(--tutti-purple);
}

[data-agent-mention-kind="skill"].tsh-agent-object-token--entity
  .tsh-agent-object-token__main,
[data-agent-mention-kind="capability"].tsh-agent-object-token--entity
  .tsh-agent-object-token__main {
  padding: 0 6px;
  border-radius: 6px;
  background: transparent;
}

[data-agent-mention-kind="skill"].tsh-agent-object-token--entity.ProseMirror-selectednode
  .tsh-agent-object-token__main,
[data-agent-mention-kind="capability"].tsh-agent-object-token--entity.ProseMirror-selectednode
  .tsh-agent-object-token__main {
  background: color-mix(in srgb, var(--tutti-purple) 20%, transparent);
}

[data-agent-mention-kind="skill"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind,
[data-agent-mention-kind="capability"].tsh-agent-object-token--entity
  .tsh-agent-object-token__kind {
  display: none;
}

[data-agent-mention-kind="workspace-app"]
  [data-agent-mention-app-icon="true"]
  .tsh-agent-object-token__kind-icon,
[data-agent-mention-kind="workspace-reference"][data-agent-reference-source="app"]
  [data-agent-mention-app-icon="true"]
  .tsh-agent-object-token__kind-icon {
  display: block;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  background-color: currentColor;
  mask-image: url("./assets/icons/product-filled.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 16px 16px;
  -webkit-mask-image: url("./assets/icons/product-filled.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 16px 16px;
}

.agent-gui-node__composer-textarea .agent-rich-text-mention-node {
  display: inline-flex;
  align-items: center;
  top: 1px;
  height: 24px;
  min-height: 24px;
  line-height: 24px;
  vertical-align: middle;
}

.agent-gui-node__composer-textarea
  .agent-rich-text-mention-node[data-agent-custom-mention="true"] {
  top: 0;
  height: auto;
  min-height: 0;
  line-height: inherit;
}

.agent-gui-node__composer-textarea
  .agent-rich-text-mention-node[data-agent-file-mention="true"].tsh-agent-object-token,
.agent-gui-node__composer-textarea
  .agent-rich-text-mention-node
  [data-slot="mention-pill"] {
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  top: 0;
  height: 24px;
  min-height: 24px;
  padding-top: 0;
  padding-right: 4px;
  padding-bottom: 0;
  padding-left: 4px;
  border-radius: 4px;
  line-height: 24px;
  transform: translateY(1px);
  transition: background-color 140ms ease-in-out;
  vertical-align: middle;
}

.agent-gui-node__composer-textarea
  .agent-rich-text-mention-node
  [data-slot="mention-pill"] {
  height: 24px;
}

.agent-gui-node__composer-textarea
  [data-agent-mention-kind="skill"].tsh-agent-object-token--entity,
.agent-gui-node__composer-textarea
  [data-agent-mention-kind="capability"].tsh-agent-object-token--entity {
  top: 1px;
  height: 24px;
  min-height: 24px;
  box-sizing: border-box;
  line-height: 24px;
  vertical-align: middle;
}

.agent-gui-node__composer-textarea
  [data-agent-mention-kind="skill"].tsh-agent-object-token--entity
  .tsh-agent-object-token__main,
.agent-gui-node__composer-textarea
  [data-agent-mention-kind="capability"].tsh-agent-object-token--entity
  .tsh-agent-object-token__main {
  height: 24px;
  box-sizing: border-box;
  border-radius: 4px;
  font-size: 13px;
  line-height: 24px;
  transform: translateY(-2px);
}

.agent-gui-node__composer-textarea
  [data-agent-file-mention="true"].tsh-agent-object-token:hover {
  background: color-mix(in srgb, currentColor 16%, transparent);
}

.agent-gui-conversation__assistant-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token,
.workspace-agents-status-panel__detail-user-message
  [data-agent-file-mention="true"].tsh-agent-object-token {
  cursor: pointer;
  font-size: 13px;
}

.agent-gui-conversation__assistant-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token
  .tsh-agent-object-token__main,
.workspace-agents-status-panel__detail-user-message
  [data-agent-file-mention="true"].tsh-agent-object-token
  .tsh-agent-object-token__main {
  font-size: 13px;
}

.agent-gui-conversation__assistant-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token:hover,
.workspace-agents-status-panel__detail-user-message
  [data-agent-file-mention="true"].tsh-agent-object-token:hover {
  background: color-mix(in srgb, currentColor 16%, transparent);
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"].tsh-agent-object-token--file {
  color: var(--folder);
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-upload-error="true"].tsh-agent-object-token--file {
  border-color: color-mix(in srgb, var(--state-danger) 42%, transparent);
  background: color-mix(in srgb, var(--state-danger) 8%, transparent);
  color: var(--state-danger);
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-entry-kind="directory"]
  .tsh-agent-object-token__icon {
  mask-image: url("./assets/icons/folder-filled.svg");
  -webkit-mask-image: url("./assets/icons/folder-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="markdown"]
  .tsh-agent-object-token__icon {
  mask-image: url("./assets/icons/product-filled.svg");
  -webkit-mask-image: url("./assets/icons/product-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="code"]
  .tsh-agent-object-token__icon {
  mask-image: url("./assets/icons/code-filled.svg");
  -webkit-mask-image: url("./assets/icons/code-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="image"]
  .tsh-agent-object-token__icon {
  mask-image: url("./assets/icons/image-filled.svg");
  -webkit-mask-image: url("./assets/icons/image-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="video"]
  .tsh-agent-object-token__icon {
  mask-image: url("./assets/icons/video-filled.svg");
  -webkit-mask-image: url("./assets/icons/video-filled.svg");
}

[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="document"]
  .tsh-agent-object-token__icon,
[data-agent-file-mention="true"][data-agent-mention-kind="file"][data-agent-file-visual-kind="binary"]
  .tsh-agent-object-token__icon,
[data-agent-file-mention="true"][data-agent-mention-kind="file"]:not(
    [data-agent-file-entry-kind="directory"]
  ):not([data-agent-file-visual-kind])
  .tsh-agent-object-token__icon {
  mask-image: url("./assets/icons/doc-filled.svg");
  -webkit-mask-image: url("./assets/icons/doc-filled.svg");
}

.agent-gui-node__composer-textarea
  [data-agent-file-mention="true"].tsh-agent-object-token--file {
  vertical-align: middle;
}

.agent-gui-node__shell,
.agent-gui-node__side-surface {
  --agent-mention-file-icon-size: 16px;
  --agent-gui-text-primary: var(--text-primary);
  --agent-gui-text-secondary: var(--text-secondary);
  --agent-gui-text-tertiary: var(--text-tertiary);
  --agent-gui-surface: transparent;
  --agent-gui-surface-strong: var(--node-surface);
  --agent-gui-surface-raised: var(--background-fronted);
  --agent-gui-surface-muted: var(--transparency-block);
  --agent-gui-surface-hover: var(--transparency-block);
  --agent-gui-border: var(--cove-border);
  --agent-gui-border-subtle: var(--line-2);
  --agent-gui-package-accent: var(--accent-codex);
  --agent-gui-package-accent-strong: var(--accent-codex);
  --agent-gui-package-accent-bg: color-mix(
    in srgb,
    var(--agent-gui-surface-raised) 88%,
    var(--agent-gui-package-accent) 12%
  );
  --agent-gui-package-border-focus: var(--accent-codex-border);
  --agent-gui-package-success: var(--state-success);
  --agent-gui-package-warning: var(--state-warning);
  --agent-gui-package-danger: var(--state-danger);
  --agent-gui-accent: var(--agent-gui-package-accent);
  --agent-gui-accent-strong: var(--agent-gui-package-accent-strong);
  --agent-gui-accent-bg: var(--agent-gui-package-accent-bg);
  --agent-gui-border-focus: var(--agent-gui-package-border-focus);
  --agent-gui-mention-app-color: var(--tutti-purple);
  --agent-gui-success: var(--agent-gui-package-success);
  --agent-gui-warning: var(--agent-gui-package-warning);
  --agent-gui-danger: var(--agent-gui-package-danger);
  --agent-conversation-text: var(--text-primary);
  --agent-conversation-user-text: var(--text-primary);
  --agent-conversation-user-bg: var(--agent-gui-surface-muted);
  --agent-gui-session-flow-background: var(
    --background-session-flow,
    rgb(252 253 255)
  );
  --agent-gui-session-sidepanel-background: var(
    --background-session-sidepanel,
    rgb(244 245 247)
  );
  --agent-gui-detail-padding-x: 48px;
  color: var(--agent-gui-text-primary);
}

.agent-gui-node__shell {
  width: 100%;
  height: 100%;
  container: agent-gui-node / inline-size;
  background: transparent;
}

:root[data-theme="dark"]
  :is(.agent-gui-node__shell, .agent-gui-node__side-surface) {
  --agent-gui-session-flow-background: var(
    --background-session-flow,
    rgb(24 24 24)
  );
  --agent-gui-session-sidepanel-background: var(
    --background-session-sidepanel,
    rgb(42 42 43)
  );
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"])
    :is(.agent-gui-node__shell, .agent-gui-node__side-surface) {
    --agent-gui-session-flow-background: var(
      --background-session-flow,
      rgb(24 24 24)
    );
    --agent-gui-session-sidepanel-background: var(
      --background-session-sidepanel,
      rgb(42 42 43)
    );
  }
}

.agent-gui-node__body {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  padding: 0;
}

.agent-gui-node__layout {
  --agent-gui-provider-rail-width: 0px;

  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  background: var(--agent-gui-session-sidepanel-background);
  transition: grid-template-columns 180ms cubic-bezier(0.22, 1, 0.36, 1);
}

.agent-gui-node__layout[data-rail-resizing="true"] {
  transition: none;
}

.workbench-window[data-window-header-layout="overlay"] {
  --agent-gui-workbench-header-height: 44px;

  grid-template-rows: minmax(0, 1fr);
}

.workbench-window[data-window-header-layout="overlay"]
  .workbench-window__header {
  position: absolute !important;
  top: 0 !important;
  right: 0 !important;
  left: 0 !important;
  z-index: 30;
  width: 100% !important;
  height: var(--agent-gui-workbench-header-height);
  min-height: var(--agent-gui-workbench-header-height);
  padding: 0;
  overflow: visible;
  border-bottom: 0;
  background: transparent;
  cursor: default;
  pointer-events: none !important;
  user-select: auto;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .workbench-window__header {
  cursor: grab !important;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .workbench-window__header:active {
  cursor: grabbing !important;
}

.workbench-window[data-window-header-layout="overlay"]
  .workbench-window__header {
  z-index: calc(var(--z-panel) + 1);
}

.workbench-window[data-window-header-layout="overlay"] .workbench-window__body {
  grid-row: 1;
  overflow: hidden;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .workbench-window__body {
  display: flex;
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
}

.workbench-window[data-agent-gui-standalone-window="true"] {
  width: 100vw;
  height: 100vh;
  max-width: 100vw;
  max-height: 100vh;
  overflow: hidden;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .workspace-node-window,
.workbench-window[data-agent-gui-standalone-window="true"]
  [data-workspace-node-window-root="true"],
.workbench-window[data-agent-gui-standalone-window="true"]
  [data-workspace-node-window-body="true"],
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__shell,
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__body,
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__layout {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__provider-rail-panel,
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__rail,
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__detail-panel,
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__detail {
  min-height: 0;
  overflow: hidden;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__rail-toolbar {
  flex: 0 0 auto;
}

.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__conversation-list,
.workbench-window[data-agent-gui-standalone-window="true"]
  .agent-gui-node__timeline {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.workbench-window[data-window-header-layout="overlay"]
  .agent-gui-node__provider-rail-panel {
  padding-top: var(--agent-gui-workbench-header-height);
}

/* The provider rail nests the workbench-header offset on the panel and the 2px
   breathing room on the inner rail, so the "All" tile sits at header + 2px. The
   toolbar has no such wrapper, so fold the same 2px into its offset to keep the
   search field top aligned with the provider tiles. */
.workbench-window[data-window-header-layout="overlay"]
  .agent-gui-node__rail-toolbar {
  padding-top: calc(var(--agent-gui-workbench-header-height) + 2px);
}

.workbench-window[data-window-header-layout="overlay"]
  .agent-gui-node__detail-panel {
  position: relative;
}

.workbench-window[data-window-header-layout="overlay"] .agent-gui-node__detail {
  padding-top: var(--agent-gui-workbench-header-height);
}

.workbench-window[data-window-header-layout="overlay"]
  .agent-gui-node__timeline-with-composer {
  padding-top: 20px;
}

.agent-gui-workbench-dock-icon {
  box-sizing: border-box;
  display: grid;
  width: 44px;
  height: 44px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  padding: 3px;
  border: 1px solid var(--agent-gui-workbench-dock-icon-border, var(--line-1));
  border-radius: 8px;
  background: var(
    --agent-gui-workbench-dock-icon-bg,
    var(--transparency-block)
  );
}

.agent-gui-workbench-dock-icon__tile {
  display: block;
  overflow: hidden;
  min-width: 0;
  min-height: 0;
  border-radius: 6px;
  background: transparent;
}

.agent-gui-workbench-dock-icon__tile > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
}

.agent-gui-workbench-dock-icon--single {
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
}

.agent-gui-workbench-dock-icon--single > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.agent-gui-workbench-header {
  --agent-gui-workbench-header-rail-width: 280px;
  --agent-gui-workbench-header-padding-x: 16px;
  --agent-gui-workbench-header-primary-gap: 12px;
  --agent-gui-workbench-header-traffic-light-hit-area-size: 20px;
  --agent-gui-workbench-header-traffic-light-gap: 8px;
  --agent-gui-workbench-header-traffic-light-size: 12px;
  --agent-gui-workbench-header-title-max-width: calc(100% - 32px);
  --agent-gui-workbench-header-text: var(--text-primary);
  --agent-gui-workbench-header-muted: var(--text-secondary);
  position: relative;
  display: grid;
  width: 100%;
  height: var(--agent-gui-workbench-header-height, 44px);
  min-height: var(--agent-gui-workbench-header-height, 44px);
  grid-template-columns:
    minmax(0, var(--agent-gui-workbench-header-rail-width))
    minmax(0, 1fr);
  align-items: center;
  background: transparent;
  color: var(--agent-gui-workbench-header-text);
  cursor: grab;
  pointer-events: auto;
  transition: grid-template-columns 180ms cubic-bezier(0.22, 1, 0.36, 1);
  user-select: none;
}

/*
 * Windows keeps the native caption buttons, but Electron overlays them on the
 * app-owned header when titleBarStyle is hidden. Match that overlay's height
 * and reserve its right-side hit area so Agent content never sits underneath
 * the native minimize/maximize/close buttons.
 */
.agent-gui-workbench-header[data-tutti-titlebar-overlay="true"] {
  --agent-gui-workbench-header-height: 52px;
  --tutti-titlebar-controls-inset: calc(
    100vw - env(titlebar-area-width, calc(100vw - 138px)) + 10px
  );
  box-sizing: border-box;
  padding-right: var(--tutti-titlebar-controls-inset);
}

.agent-gui-workbench-header[data-tutti-titlebar-overlay="true"]
  .agent-gui-workbench-header__traffic-lights {
  visibility: hidden;
  pointer-events: none;
}

.agent-gui-workbench-header:active {
  cursor: grabbing;
}

.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"] {
  grid-template-columns: minmax(0, 0px) minmax(0, 1fr);
}

.agent-gui-workbench-header__primary {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  height: 100%;
  min-width: 0;
  align-items: center;
  gap: var(--agent-gui-workbench-header-primary-gap);
  padding: 0 var(--agent-gui-workbench-header-padding-x);
  background: var(--agent-gui-session-sidepanel-background);
  pointer-events: auto;
}

.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]
  .agent-gui-workbench-header__primary {
  grid-column: 1 / -1;
  width: 100%;
  background: transparent;
}

/*
 * Tool-sidebar actions belong to the single Agent window header regardless of
 * whether that header is owned by the native window or an embedding host.
 * Collapsing the conversation rail must not pull them into the 720px content
 * cap. Let the primary row span the host header and keep the same trailing
 * inset as the expanded detail row.
 *
 * The tool actions are absolutely positioned against the window's right edge,
 * so they no longer occupy space in the flex row. In the collapsed primary row
 * the title is preceded by the traffic lights and header chrome buttons, which
 * means a max-width on the title alone cannot stop its right edge from sliding
 * under those actions. Reserve the actions' width plus the normal inset as
 * trailing padding on the row itself so the title flex-grows and truncates
 * before it can reach them, regardless of what precedes it.
 */
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"][data-agent-gui-workbench-header-collapsed="true"]
  .agent-gui-workbench-header__primary {
  width: 100%;
  padding-inline-end: calc(
    var(--agent-gui-tool-sidebar-layout-width, 0px) +
      var(--agent-gui-workbench-header-padding-x)
  );
}

.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
  .agent-gui-workbench-header__secondary-accessory {
  padding-right: 0;
}

/* Keep the tool header on the same right edge as its body panel.
   The body panel is right-anchored independently of the Agent header's rail
   grid; leaving this accessory in the grid makes its left edge drift when the
   panel expands to the available width. */
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
  .agent-gui-workbench-header__secondary-accessory:has(
    [data-agent-tool-sidebar-header="true"]
  ) {
  position: absolute;
  top: 0;
  right: 0;
  margin-left: 0;
}

/*
 * The tool-sidebar actions are removed from the flex flow above. On Windows
 * the native caption buttons occupy the right edge of the same overlay. Keep
 * the tool header anchored to the same edge as its body panel, then reserve
 * the caption-button hit area inside that header so its controls stay clear
 * without shifting the header border into the Agent surface.
 */
.agent-gui-workbench-header[data-tutti-titlebar-overlay="true"]
  [data-agent-tool-sidebar-header="true"] {
  box-sizing: border-box;
  padding-right: calc(
    var(--tutti-titlebar-controls-inset) +
      var(--agent-gui-workbench-header-padding-x)
  );
}

/*
 * The detached-window button pushes the detail controls to the far edge while
 * the conversation rail is expanded. Once the rail collapses, every primary
 * control and the session title share one full-width row, so keep that group
 * anchored immediately after the traffic lights. Secondary tool actions retain
 * their own right alignment across the full header width.
 */
.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]
  .agent-gui-workbench-header__detached-window {
  margin-left: 0;
}

.agent-gui-workbench-header__traffic-lights {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: var(--agent-gui-workbench-header-traffic-light-gap);
  margin-right: 0;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"] {
  cursor: grab !important;
  -webkit-app-region: drag;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]:active {
  cursor: grabbing !important;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__primary {
  cursor: grab !important;
  -webkit-app-region: drag;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__primary:active {
  cursor: grabbing !important;
}

.agent-gui-workbench-header__traffic-light {
  position: relative;
  display: inline-flex;
  width: var(--agent-gui-workbench-header-traffic-light-hit-area-size);
  height: var(--agent-gui-workbench-header-traffic-light-hit-area-size);
  flex: 0 0 auto;
  margin: calc(
    (
        var(--agent-gui-workbench-header-traffic-light-size) -
          var(--agent-gui-workbench-header-traffic-light-hit-area-size)
      ) /
      2
  );
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  opacity: 0.78;
  transition: opacity 160ms ease;
}

.agent-gui-workbench-header__traffic-light::before {
  position: absolute;
  inset: calc(
    (
        var(--agent-gui-workbench-header-traffic-light-hit-area-size) -
          var(--agent-gui-workbench-header-traffic-light-size)
      ) /
      2
  );
  border-radius: inherit;
  background-color: color-mix(in srgb, var(--text-tertiary) 72%, transparent);
  content: "";
  transition: background-color 160ms ease;
}

.agent-gui-workbench-header__traffic-light-icon {
  position: absolute;
  z-index: 1;
  inset: 5px;
  width: 10px;
  height: 10px;
  color: color-mix(in srgb, #000 68%, transparent);
  opacity: 0;
  pointer-events: none;
  transition: opacity 120ms ease;
}

.agent-gui-workbench-header__traffic-lights:hover
  .agent-gui-workbench-header__traffic-light,
.agent-gui-workbench-header__traffic-lights:focus-within
  .agent-gui-workbench-header__traffic-light {
  opacity: 1;
}

.agent-gui-workbench-header__traffic-light:focus-visible {
  outline: none;
}

.agent-gui-workbench-header__traffic-lights:hover
  .agent-gui-workbench-header__traffic-light-icon,
.agent-gui-workbench-header__traffic-lights:focus-within
  .agent-gui-workbench-header__traffic-light-icon {
  opacity: 1;
}

.agent-gui-workbench-header__traffic-lights:hover
  .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="close"]::before,
.agent-gui-workbench-header__traffic-lights:focus-within
  .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="close"]::before {
  background-color: #ff5f57;
}

.agent-gui-workbench-header__traffic-lights:hover
  .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="minimize"]::before,
.agent-gui-workbench-header__traffic-lights:focus-within
  .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="minimize"]::before {
  background-color: #ffbd2e;
}

.agent-gui-workbench-header__traffic-lights:hover
  .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="maximize"]::before,
.agent-gui-workbench-header__traffic-lights:focus-within
  .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="maximize"]::before {
  background-color: #28c840;
}

.agent-gui-workbench-header__agent-brand {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
}

.agent-gui-workbench-header__primary-accessory {
  display: inline-flex;
  min-width: 0;
  flex: 0 0 auto;
  align-items: center;
  -webkit-app-region: no-drag;
}

.agent-gui-workbench-header__detail {
  display: flex;
  width: 100%;
  height: 100%;
  min-width: 0;
  align-items: center;
}

.agent-gui-workbench-header__secondary-accessory {
  display: inline-flex;
  min-width: 0;
  flex: 0 0 auto;
  align-items: center;
  margin-left: auto;
  padding-right: var(--agent-gui-workbench-header-padding-x);
  pointer-events: auto;
  -webkit-app-region: no-drag;
}

/* The collapsed primary row already supplies the header's right inset. Avoid
   stacking the accessory inset when actions move out of the detail column. */
.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]
  .agent-gui-workbench-header__secondary-accessory {
  padding-right: 0;
}

.agent-gui-workbench-header__agent-name,
.agent-gui-workbench-header__session-title,
.agent-gui-workbench-header__detail-title {
  box-sizing: border-box;
  min-width: 0;
  color: var(--agent-gui-workbench-header-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 20px;
  white-space: nowrap;
}

.agent-gui-workbench-header__title-text {
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Mention typography and icons use the same 24px row as the plain title, so
   the whole rich title can share the Agent icon's vertical center directly. */
.agent-gui-workbench-header__rich-title {
  display: block;
  width: max-content;
  min-width: 0;
  max-width: calc(100% - 36px);
  height: 24px;
  flex: 0 1 auto;
  overflow: hidden;
}

.agent-gui-workbench-header__rich-title > div,
.agent-gui-workbench-header__rich-title .ProseMirror {
  display: block;
  width: 100%;
  min-width: 0;
  height: 24px;
  margin: 0;
  overflow: visible;
}

.agent-gui-workbench-header__rich-title p {
  display: flex;
  width: max-content;
  min-width: 100%;
  max-width: none;
  height: 24px;
  align-items: center;
  margin: 0;
  overflow: visible;
  overflow-wrap: normal;
  line-height: 24px;
  white-space: nowrap;
  word-break: normal;
}

.agent-gui-workbench-header__rich-title .agent-rich-text-mention-node,
.agent-gui-workbench-header__rich-title .tsh-agent-object-token--file,
.agent-gui-workbench-header__rich-title .tsh-agent-object-token--entity,
.agent-gui-workbench-header__rich-title [data-slot="mention-pill"] {
  top: 0;
  align-items: center;
  transform: none;
  vertical-align: middle;
}

.agent-gui-workbench-header__rich-title
  .agent-rich-text-mention-node[data-agent-custom-mention="true"] {
  display: inline-flex;
  max-width: min(100%, var(--agent-mention-max-width, 20rem));
  height: 24px;
  align-items: center;
  margin-right: 4px;
  transform: translateY(-1.5px);
  vertical-align: middle;
}

.agent-gui-workbench-header__rich-title .tsh-agent-object-token--file {
  height: 24px;
  min-height: 24px;
  padding-top: 0;
  padding-bottom: 0;
  line-height: 24px;
}

.agent-gui-workbench-header__rich-title
  .tsh-agent-object-token--file
  .tsh-agent-object-token__main {
  transform: translateY(-1.25px);
}

.agent-gui-workbench-header__agent-name {
  flex: 0 0 auto;
}

.agent-gui-workbench-header__session-title {
  display: flex;
  flex: 0 1 auto;
  max-width: min(100%, var(--agent-gui-workbench-header-title-max-width));
  margin-left: 4px;
  align-items: center;
  gap: 8px;
}

.agent-gui-workbench-header__session-icon {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  border-radius: 5px;
}

.agent-gui-workbench-header__session-icon-info-trigger {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  border-radius: 5px;
  pointer-events: auto;
  -webkit-app-region: no-drag;
}

.agent-gui-workbench-header__session-icon-info-trigger:focus-visible {
  outline: auto;
}

.agent-gui-workbench-header__session-icon--pending {
  background: var(--transparency-block);
  animation: agent-gui-workbench-header-icon-pending 1.2s ease-in-out infinite;
}

@keyframes agent-gui-workbench-header-icon-pending {
  0%,
  100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

.agent-gui-workbench-header__detail-title {
  display: flex;
  height: 100%;
  flex: 0 1 auto;
  max-width: min(100%, var(--agent-gui-workbench-header-title-max-width));
  min-width: 0;
  align-items: center;
  gap: 8px;
  padding: 0 20px;
  pointer-events: none;
}

.agent-gui-workbench-header__session-title:has(
    .agent-gui-workbench-header__session-menu-trigger
  )
  > .agent-gui-workbench-header__title-text,
.agent-gui-workbench-header__detail-title:has(
    .agent-gui-workbench-header__session-menu-trigger
  )
  > .agent-gui-workbench-header__title-text {
  max-width: calc(100% - 36px);
}

.agent-gui-workbench-header__session-menu-trigger {
  pointer-events: auto;
}

.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
  .agent-gui-workbench-header__session-title,
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
  .agent-gui-workbench-header__detail-title {
  box-sizing: border-box;
  width: auto;
  max-width: calc(
    100% - var(--agent-gui-tool-sidebar-layout-width, 0px) - 16px
  );
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
}

/*
 * In the collapsed primary row the trailing reserve is supplied by the row's
 * own padding-inline-end (it has to account for the leading traffic lights and
 * chrome buttons that a title-level max-width cannot see). Relax the shared
 * max-width here so the reservation is not counted twice, which would strand
 * the title far short of the actions.
 */
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"][data-agent-gui-workbench-header-collapsed="true"]
  .agent-gui-workbench-header__session-title {
  max-width: 100%;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__agent-brand,
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__session-title,
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__detail-title {
  cursor: grab !important;
  -webkit-app-region: drag;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__agent-brand:active,
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__session-title:active,
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__detail-title:active {
  cursor: grabbing !important;
}

.agent-gui-workbench-header__icon-button {
  display: inline-flex !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  min-height: 28px !important;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: var(--agent-gui-workbench-header-muted) !important;
  cursor: pointer;
  /* Header chrome icon buttons must not animate: no hover fade, no
     press-down motion inherited from the ui-system Button base. */
  transition: none !important;
}

.agent-gui-workbench-header__icon-button:active {
  transform: none !important;
}

.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__traffic-lights,
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__traffic-light,
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
  .agent-gui-workbench-header__icon-button {
  cursor: pointer !important;
  -webkit-app-region: no-drag;
}

.agent-gui-workbench-header__icon-button:hover,
.agent-gui-workbench-header__icon-button:focus-visible {
  background: color-mix(
    in srgb,
    var(--text-primary) 8%,
    transparent
  ) !important;
  color: var(--agent-gui-workbench-header-text) !important;
}

.agent-gui-workbench-header__rail-toggle {
  margin-left: auto;
}

.agent-gui-workbench-header__detached-window {
  margin-left: auto;
}

.agent-gui-workbench-header__detached-window
  + .agent-gui-workbench-header__rail-toggle {
  /* The primary row gap is 12px; keep this icon pair at a net 8px. */
  margin-left: -4px;
}

.agent-gui-workbench-header[data-agent-gui-workbench-header-body-error="true"]
  .agent-gui-workbench-header__rail-toggle {
  display: none !important;
}

.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]
  .agent-gui-workbench-header__rail-toggle {
  margin-left: 0;
}

.agent-gui-workbench-header__icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
}

.agent-gui-node__rail-panel {
  position: relative;
  z-index: 2;
  min-width: 0;
  min-height: 0;
  height: 100%;
  border-right: 0;
  overflow: visible;
  isolation: isolate;
}

.agent-gui-node__rail-panel--collapsed {
  overflow: hidden;
  pointer-events: none;
}

.agent-gui-node__rail-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(
    var(--agent-gui-provider-rail-width, 0px) +
      var(--agent-gui-conversation-rail-width) - 6px
  );
  z-index: 20;
  width: 12px;
  min-width: 12px;
  cursor: col-resize;
  touch-action: none;
  opacity: 1;
  transition:
    left 180ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 120ms ease;
}

.agent-gui-node__rail-resize-handle[data-resizing="true"] {
  transition: none;
}

.agent-gui-node__rail-resize-handle--collapsed {
  left: calc(var(--agent-gui-provider-rail-width, 0px) - 6px);
  opacity: 0;
}

.agent-gui-node__rail-resize-handle::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  transform: translateX(-50%);
  background: transparent;
  transition:
    background-color 150ms ease,
    width 150ms ease;
}

.agent-gui-node__rail-resize-handle:hover::after,
.agent-gui-node__rail-resize-handle:focus-visible::after,
.agent-gui-node__rail-resize-handle[data-resizing="true"]::after {
  width: 2px;
  background: color-mix(in srgb, var(--border-focus) 40%, transparent);
}

.agent-gui-node__detail-panel {
  position: relative;
  display: flex;
  height: 100%;
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
  border-radius: 16px;
  background: var(--agent-gui-session-flow-background);
}

.agent-gui-node__detail-panel > .agent-gui-node__detail {
  min-height: 0;
  border-radius: inherit;
  overflow: hidden;
}

.agent-gui-node__composer-file-drop-overlay {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: grid;
  place-items: center;
  padding: 24px;
  border-radius: inherit;
  border: 2px dashed color-mix(in srgb, var(--tutti-purple) 70%, transparent);
  background: color-mix(
    in srgb,
    var(--tutti-purple) 12%,
    var(--agent-gui-session-flow-background)
  );
  opacity: 0;
  pointer-events: none;
  transition: opacity 150ms ease-out;
}

.agent-gui-node__composer-file-drop-overlay--active {
  opacity: 1;
}

.agent-gui-node__composer-file-drop-overlay-card {
  color: var(--text-primary);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}

.agent-gui-node__rail {
  position: relative;
  display: flex;
  flex-direction: column;
  width: var(
    --agent-gui-conversation-rail-content-width,
    var(--agent-gui-conversation-rail-width)
  );
  min-width: var(
    --agent-gui-conversation-rail-content-width,
    var(--agent-gui-conversation-rail-width)
  );
  height: 100%;
  min-height: 0;
  background: var(--agent-gui-session-sidepanel-background);
  box-shadow: none;
  opacity: 1;
}

.agent-gui-node__provider-rail-panel {
  position: relative;
  z-index: 3;
  display: flex;
  width: var(--agent-gui-provider-rail-width, 52px);
  min-width: 0;
  min-height: 0;
  flex-direction: column;
  align-items: center;
  background: var(--agent-gui-session-sidepanel-background);
  overflow: hidden;
  transition: width 180ms cubic-bezier(0.22, 1, 0.36, 1);
  -webkit-app-region: no-drag;
}

.agent-gui-node__provider-rail-panel::after {
  content: "";
  pointer-events: none;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 1px;
  background: linear-gradient(
    180deg,
    transparent 0,
    var(--line-1) 24px,
    var(--line-1) calc(100% - 24px),
    transparent 100%
  );
}

.workbench-window[data-window-header-layout="overlay"]
  .agent-gui-node__provider-rail-panel::after {
  top: var(--agent-gui-workbench-header-height);
}

.agent-gui-node__rail > * {
  transition:
    opacity 120ms ease,
    filter 120ms ease;
  transition-delay: 40ms;
}

.agent-gui-node__rail::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 1;
  background: color-mix(
    in srgb,
    var(--agent-gui-session-sidepanel-background) 88%,
    transparent
  );
  opacity: 0;
  transition: opacity 120ms ease;
}

.agent-gui-node__rail-panel--collapsed .agent-gui-node__rail {
  box-shadow: none;
}

.agent-gui-node__rail-panel--collapsed .agent-gui-node__rail > * {
  filter: blur(1px);
  opacity: 0;
  transition-delay: 0ms;
}

.agent-gui-node__rail-panel--collapsed .agent-gui-node__rail::after {
  opacity: 1;
  transition-delay: 0ms;
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__layout,
  .agent-gui-workbench-header,
  .agent-gui-node__rail-resize-handle,
  .agent-gui-node__provider-rail-panel,
  .agent-gui-node__rail > *,
  .agent-gui-node__rail::after {
    transition: none;
  }

  .agent-gui-node__rail-panel--collapsed .agent-gui-node__rail > * {
    filter: none;
  }
}

.agent-gui-node__rail-toolbar {
  --agent-gui-rail-control-radius: 6px;

  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 2px 12px 16px 12px;
}

.agent-gui-node__activity-toggle-button {
  position: relative;
  flex: 0 0 32px;
  width: 32px;
  min-width: 32px;
  height: 32px;
  min-height: 32px;
  border-radius: var(--agent-gui-rail-control-radius);
  background: transparent;
  color: var(--text-secondary);
}

.agent-gui-node__activity-toggle-button:hover,
.agent-gui-node__activity-toggle-button:focus-visible {
  background: var(--transparency-hover);
  color: var(--text-primary);
}

.agent-gui-node__activity-toggle-button[data-active="true"] {
  background: color-mix(in srgb, var(--agent-gui-accent) 12%, transparent);
  color: var(--agent-gui-accent-strong);
}

.agent-gui-node__activity-toggle-button svg {
  width: 18px;
  height: 18px;
}

.agent-gui-node__activity-toggle-dot {
  position: absolute;
  top: 5px;
  right: 5px;
  width: 6px;
  height: 6px;
  border: 1px solid var(--agent-gui-session-sidepanel-background);
  border-radius: 999px;
  background: var(--agent-gui-accent);
}

.agent-gui-node__project-rail-header {
  display: flex;
  flex: 0 0 auto;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-height: 26px;
  margin-bottom: 8px;
  padding: 0 6px 0 10px;
}

.agent-gui-node__conversation-section + .agent-gui-node__project-rail-header {
  margin-top: 24px;
}

.agent-gui-node__project-rail-title {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 400;
  line-height: 18px;
}

.agent-gui-node__project-rail-title > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__project-rail-add-project {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 140ms ease,
    color 140ms ease;
}

.agent-gui-node__project-rail-header:hover
  .agent-gui-node__project-rail-add-project,
.agent-gui-node__project-rail-header:focus-within
  .agent-gui-node__project-rail-add-project {
  opacity: 1;
  pointer-events: auto;
}

.agent-gui-node__project-rail-add-project-trigger {
  width: 24px;
  min-width: 24px;
  height: 24px;
  min-height: 24px;
  max-width: 24px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  padding: 0;
  color: var(--text-secondary);
}

.agent-gui-node__project-rail-add-project-trigger > span {
  display: none;
}

.agent-gui-node__project-rail-add-project-trigger > svg {
  display: none;
}

.agent-gui-node__project-rail-add-project-trigger:hover:not(:disabled),
.agent-gui-node__project-rail-add-project-trigger:focus-visible {
  background: var(--transparency-block-hover);
  color: var(--text-primary);
  outline: none;
}

.agent-gui-node__project-rail-add-project-icon {
  position: absolute;
  inset: 50% auto auto 50%;
  width: 14px;
  height: 14px;
  color: var(--text-secondary);
  pointer-events: none;
  transform: translate(-50%, -50%);
}

.agent-gui-node__project-rail-add-project-trigger:hover:not(:disabled)
  + .agent-gui-node__project-rail-add-project-icon,
.agent-gui-node__project-rail-add-project-trigger:focus-visible
  + .agent-gui-node__project-rail-add-project-icon {
  color: var(--text-primary);
}

.room-issue-node__search-field {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.room-issue-node__search-input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  height: 32px !important;
  min-height: 32px;
  max-height: 32px;
  border: 0 !important;
  border-radius: var(--agent-gui-rail-control-radius) !important;
  padding-left: 12px;
  padding-right: 36px;
  font-size: 13px !important;
  line-height: 18px;
  appearance: none;
}

.room-issue-node__search-input:hover,
.room-issue-node__search-input:focus,
.room-issue-node__search-input:focus-visible {
  background: var(--transparency-hover);
}

.room-issue-node__search-field[data-has-value="false"]
  .room-issue-node__search-input {
  padding-right: 12px;
}

.room-issue-node__search-input::-webkit-search-cancel-button,
.room-issue-node__search-input::-webkit-search-decoration {
  appearance: none;
}

.room-issue-node__search-clear-button {
  position: absolute;
  top: 50%;
  right: 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  min-width: 24px;
  height: 24px;
  min-height: 24px;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  appearance: none;
  transform: translateY(-50%);
}

.room-issue-node__search-clear-button:hover,
.room-issue-node__search-clear-button:focus-visible {
  color: var(--text-secondary);
  background: var(--transparency-block-hover);
  outline: none;
}

.room-issue-node__search-clear-button svg {
  width: 14px;
  height: 14px;
}

.agent-gui-node__rail-toolbar .room-issue-node__search-field,
.agent-gui-node__rail-toolbar .room-issue-node__search-input {
  min-width: 0;
  overflow: hidden;
}

.agent-gui-node__rail-toolbar .room-issue-node__search-input {
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__rail-toolbar .room-issue-node__search-input::placeholder {
  text-overflow: ellipsis;
}

.agent-gui-node__new-conversation-icon-button {
  flex: 0 0 auto;
  width: auto;
  min-width: max-content;
  box-sizing: border-box;
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  border: 0 !important;
  border-radius: var(--agent-gui-rail-control-radius) !important;
  font-size: 13px;
  gap: 8px;
  white-space: nowrap;
}

.agent-gui-node__new-conversation-icon-button svg {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
}

.agent-gui-node__window-agent-info {
  color: var(--text-secondary);
}

.agent-gui-node__composer-send-button {
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  border: 1px solid var(--text-primary);
  border-radius: 999px;
  background: var(--text-primary);
  color: var(--text-inverted);
  transition:
    border-color 140ms ease,
    background-color 140ms ease,
    color 140ms ease;
}

.agent-gui-node__composer-send-button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.agent-gui-node__composer-send-button svg {
  width: 18px;
  height: 18px;
}

/* Plan-review decision copy: the send button widens into a labeled pill
   ("Accept plan" / "Request changes") while the empty-send override is on. */
.agent-gui-node__composer-send-button[data-plan-review-label="true"] {
  display: inline-flex;
  width: auto;
  min-width: 28px;
  max-width: 220px;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 10px 0 12px;
  font-size: 12px;
  font-weight: 500;
  line-height: 1;
}

.agent-gui-node__composer-reference-trigger {
  min-width: 36px;
  min-height: 36px;
  padding: 0;
}

.agent-gui-node__composer-reference-trigger svg:first-child {
  width: 14px;
  height: 14px;
}

.agent-gui-node__gateway-status {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 18px 12px;
  padding: 0 14px;
  min-height: 38px;
  border: 1px solid var(--agent-gui-border-subtle);
  border-radius: 8px;
  background: var(--agent-gui-surface-muted);
  color: var(--agent-gui-text-secondary);
  font-size: 13px;
  line-height: 20px;
  font-weight: 600;
}

.agent-gui-node__gateway-status[data-state="starting"] {
  border-color: color-mix(
    in srgb,
    var(--agent-gui-accent) 24%,
    var(--agent-gui-border-subtle)
  );
  color: var(--agent-gui-accent-strong);
}

.agent-gui-node__gateway-status[data-state="failed"] {
  align-items: flex-start;
  flex-direction: column;
  min-height: 0;
  padding-top: 10px;
  padding-bottom: 10px;
  border-color: color-mix(
    in srgb,
    var(--agent-gui-danger) 24%,
    var(--agent-gui-border-subtle)
  );
  color: var(--agent-gui-danger);
}

.agent-gui-node__gateway-retry-button {
  width: fit-content;
  border: 1px solid
    color-mix(in srgb, var(--agent-gui-danger) 24%, var(--agent-gui-border));
  border-radius: 6px;
  background: var(--agent-gui-surface-muted);
  padding: 6px 10px;
  color: var(--agent-gui-danger);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
}

.agent-gui-node__gateway-retry-button:hover {
  background: color-mix(in srgb, var(--agent-gui-danger) 8%, transparent);
  border-color: color-mix(
    in srgb,
    var(--agent-gui-danger) 44%,
    var(--agent-gui-border)
  );
}

.agent-gui-node__conversation-list {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  /* The native overlay scrollbar does not reserve a gutter on macOS, so the
     right inset must match the left side explicitly. */
  padding: 0 12px 18px 12px;
}

.agent-gui-node__activity-heading {
  flex: 0 0 auto;
  min-width: 0;
  margin: 14px 0 0;
  padding: 4px 10px 6px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 500;
  line-height: 18px;
}

.agent-gui-node__activity-heading[data-first="true"] {
  margin-top: 0;
}

.agent-gui-node__activity-empty {
  min-width: 0;
  padding: 8px 10px 10px;
  color: var(--text-tertiary);
  font-size: 12px;
  line-height: 18px;
}

.agent-gui-node__conversation-section {
  position: relative;
  display: grid;
  min-width: 0;
  max-width: 100%;
}

.agent-gui-node__pinned-project-rail-header {
  min-width: 0;
  padding: 4px 10px;
  color: var(--text-secondary);
  font-size: 13px;
  font-weight: 400;
  line-height: 18px;
}

.agent-gui-node__conversation-section[data-project-dragging="true"] {
  opacity: 0.42;
}

.agent-gui-node__conversation-section[data-project-drop-indicator]::before {
  position: absolute;
  right: 6px;
  left: 6px;
  z-index: 4;
  height: 2px;
  border-radius: 999px;
  background: var(--agent-gui-accent);
  content: "";
  pointer-events: none;
}

.agent-gui-node__conversation-section[data-project-drop-indicator="before"]::before {
  top: -1px;
}

.agent-gui-node__conversation-section[data-project-drop-indicator="after"]::before {
  bottom: -1px;
}

.agent-gui-node__project-drag-image {
  position: fixed;
  top: -1000px;
  left: -1000px;
  display: flex;
  max-width: 220px;
  align-items: center;
  gap: 7px;
  border: 1px solid var(--border-subtle);
  border-radius: 7px;
  background: var(--agent-gui-surface-raised);
  box-shadow: var(--shadow-elevated);
  color: var(--text-primary);
  padding: 7px 10px;
  font-size: 12px;
  pointer-events: none;
}

.agent-gui-node__project-drag-image > span:last-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__conversation-section + .agent-gui-node__conversation-section {
  margin-top: 12px;
}

.agent-gui-node__conversation-section[data-kind="project"]
  + .agent-gui-node__conversation-section[data-kind="project"] {
  margin-top: 2px;
}

.agent-gui-node__conversation-section[data-kind="pinned"]
  + .agent-gui-node__conversation-section[data-kind="conversations"],
.agent-gui-node__conversation-section[data-kind="project"]
  + .agent-gui-node__conversation-section[data-kind="conversations"] {
  margin-top: 24px;
}

.agent-gui-node__conversation-section-header {
  display: flex;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  border-radius: 6px;
  background-color: transparent;
  padding: 4px 6px 4px 10px;
  transition: background-color 140ms ease;
}

.agent-gui-node__conversation-section[data-kind="project"]
  > .agent-gui-node__conversation-section-header:hover {
  background-color: var(--agent-gui-surface-hover);
}

.agent-gui-node__conversation-section-toggle {
  position: relative;
  display: inline-flex;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: inherit;
  padding: 2px 0;
  text-align: left;
}

button.agent-gui-node__conversation-section-toggle {
  cursor: pointer;
}

button.agent-gui-node__conversation-section-toggle:hover {
  color: var(--text-primary);
}

.agent-gui-node__conversation-section-chevron {
  position: absolute;
  left: 0;
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  color: var(--text-tertiary);
  opacity: 0;
  pointer-events: none;
  transition:
    color 140ms ease,
    opacity 140ms ease,
    transform 140ms ease;
}

.agent-gui-node__conversation-section[data-kind="project"]
  > .agent-gui-node__conversation-section-header:hover
  .agent-gui-node__conversation-section-chevron {
  opacity: 1;
}

.agent-gui-node__conversation-section-toggle[aria-expanded="true"]
  .agent-gui-node__conversation-section-chevron {
  transform: rotate(90deg);
}

button.agent-gui-node__conversation-section-toggle:hover
  .agent-gui-node__conversation-section-chevron {
  color: var(--text-secondary);
}

.agent-gui-node__conversation-section-label {
  display: inline-flex;
  flex: 1 1 auto;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 6px;
  overflow: hidden;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
}

.agent-gui-node__conversation-section-label > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__conversation-section-label-icon {
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
  transition: opacity 140ms ease;
}

.agent-gui-node__conversation-section[data-kind="project"]
  > .agent-gui-node__conversation-section-header:hover
  .agent-gui-node__conversation-section-label-icon {
  opacity: 0;
}

.agent-gui-node__conversation-section-actions {
  position: relative;
  z-index: 1;
  display: inline-flex;
  flex: none;
  align-items: center;
  gap: 4px;
  min-width: 44px;
  pointer-events: auto;
}

.agent-gui-node__conversation-section[data-kind="conversations"]
  .agent-gui-node__conversation-section-actions {
  min-width: 0;
}

.agent-gui-node__conversation-section-action-tooltip-wrap {
  display: inline-flex;
  flex: none;
}

.agent-gui-node__conversation-section-action-tooltip {
  max-width: 180px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__conversation-section-more-button {
  flex: none;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 140ms ease,
    color 140ms ease;
}

.agent-gui-node__conversation-section-more-button svg {
  width: 14px;
  height: 14px;
}

.agent-gui-node__conversation-section:hover
  .agent-gui-node__conversation-section-more-button,
.agent-gui-node__conversation-section:focus-within
  .agent-gui-node__conversation-section-more-button,
.agent-gui-node__conversation-section-more-button[aria-expanded="true"] {
  opacity: 1;
  pointer-events: auto;
}

.agent-gui-node__conversation-section-items {
  display: grid;
  min-width: 0;
  max-width: 100%;
  grid-template-rows: 1fr;
  opacity: 1;
  visibility: visible;
  transition:
    grid-template-rows 180ms ease,
    opacity 140ms ease,
    visibility 0s linear 0s;
  padding-left: 14px;
  padding-top: 8px;
}

.agent-gui-node__conversation-section[data-kind="project"]
  .agent-gui-node__conversation-section-items {
  padding-left: 0;
  padding-top: 4px;
}

.agent-gui-node__conversation-section[data-kind="pinned"]
  .agent-gui-node__conversation-section-items {
  padding-left: 0;
}

.agent-gui-node__conversation-section[data-kind="conversations"]
  .agent-gui-node__conversation-section-items {
  padding-left: 0;
}

.agent-gui-node__conversation-section[data-collapsed="true"]
  .agent-gui-node__conversation-section-items {
  grid-template-rows: 0fr;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition:
    grid-template-rows 180ms ease,
    opacity 120ms ease,
    visibility 0s linear 180ms;
}

.agent-gui-node__conversation-section-items-inner {
  display: grid;
  min-height: 0;
  min-width: 0;
  max-width: 100%;
  gap: 4px;
  overflow: hidden;
}

.agent-gui-node__conversation-section[data-kind="project"]
  .agent-gui-node__conversation-section-items-inner {
  gap: 2px;
}

.agent-gui-node__conversation-section-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  min-width: 0;
  margin-bottom: 12px;
  padding: 2px 6px 0 22px;
}

.agent-gui-node__conversation-section-pagination-button {
  min-width: 0;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--text-tertiary);
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  line-height: 18px;
  padding: 1px 4px;
  text-align: left;
  transition:
    background-color 140ms ease,
    color 140ms ease;
}

.agent-gui-node__conversation-section-pagination-button:hover,
.agent-gui-node__conversation-section-pagination-button:focus-visible {
  background-color: var(--agent-gui-surface-hover);
  color: var(--text-primary);
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__conversation-section-items {
    transition: none;
  }
}

.agent-gui-node__conversation-section-empty {
  min-width: 0;
  padding: 7px 12px 7px 26px;
  color: var(--text-tertiary);
  font-size: 13px;
  line-height: 18px;
}

.agent-gui-node__conversation-list-skeleton {
  display: grid;
  gap: 10px;
  padding: 2px 0;
}

.agent-gui-node__conversation-list-skeleton-row {
  position: relative;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  grid-template-rows: repeat(2, 10px);
  column-gap: 10px;
  row-gap: 8px;
  align-items: center;
  min-height: 46px;
  overflow: hidden;
  border-radius: 8px;
  background: color-mix(in srgb, var(--transparency-block) 54%, transparent);
  padding: 10px 12px;
}

.agent-gui-node__conversation-list-skeleton-row::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    100deg,
    transparent 0%,
    color-mix(in srgb, var(--background-fronted) 48%, transparent) 46%,
    transparent 82%
  );
  animation: agent-gui-conversation-list-skeleton-shimmer 1.18s ease-in-out
    infinite;
}

.agent-gui-node__conversation-list-skeleton-spine,
.agent-gui-node__conversation-list-skeleton-rib {
  position: relative;
  z-index: 1;
  display: block;
  border-radius: 999px;
  background: color-mix(
    in srgb,
    var(--agent-gui-text-tertiary) 18%,
    transparent
  );
}

.agent-gui-node__conversation-list-skeleton-spine {
  grid-row: 1 / -1;
  width: 3px;
  height: 26px;
  justify-self: center;
}

.agent-gui-node__conversation-list-skeleton-rib {
  height: 12px;
}

.agent-gui-node__conversation-list-skeleton-rib-primary {
  width: 78%;
}

.agent-gui-node__conversation-list-skeleton-rib-secondary {
  width: 52%;
  opacity: 0.72;
}

.agent-gui-node__conversation-list-skeleton-row[data-size="long"]
  .agent-gui-node__conversation-list-skeleton-rib-primary {
  width: 88%;
}

.agent-gui-node__conversation-list-skeleton-row[data-size="medium"]
  .agent-gui-node__conversation-list-skeleton-rib-primary {
  width: 72%;
}

.agent-gui-node__conversation-list-skeleton-row[data-size="short"]
  .agent-gui-node__conversation-list-skeleton-rib-primary {
  width: 58%;
}

.agent-gui-node__conversation-list-skeleton-row[data-size="long"]
  .agent-gui-node__conversation-list-skeleton-rib-secondary {
  width: 60%;
}

.agent-gui-node__conversation-list-skeleton-row[data-size="medium"]
  .agent-gui-node__conversation-list-skeleton-rib-secondary {
  width: 48%;
}

.agent-gui-node__conversation-list-skeleton-row[data-size="short"]
  .agent-gui-node__conversation-list-skeleton-rib-secondary {
  width: 38%;
}

.agent-gui-node__conversation-item {
  --agent-gui-conversation-actions-width: 72px;
  --agent-gui-conversation-actions-inset: 4px;
  --agent-gui-conversation-actions-gap: 8px;

  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: 32px;
  min-height: 32px;
  border: 1px solid transparent;
  border-radius: 6px;
  background-color: transparent;
  color: var(--agent-gui-text-primary);
  overflow: hidden;
  padding: 0;
  text-align: left;
  transition:
    background-color 140ms ease,
    border-color 140ms ease;
}

.agent-gui-node__conversation-item[data-presentation="activity"] {
  height: auto;
  min-height: 56px;
  margin-bottom: 4px;
}

.agent-gui-node__conversation-item[data-presentation="activity"]
  .agent-gui-node__conversation-select {
  align-items: start;
  min-height: 56px;
  padding-top: 8px;
  padding-bottom: 8px;
}

.agent-gui-node__conversation-activity-text {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 2px;
  overflow: hidden;
}

.agent-gui-node__conversation-activity-project-label {
  display: block;
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  color: var(--text-tertiary);
  font-size: 12px;
  line-height: 18px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__conversation-activity-secondary {
  display: flex;
  align-items: flex-start;
  min-width: 0;
  max-height: 34px;
  overflow: hidden;
  color: var(--text-tertiary);
  font-size: 12px;
  line-height: 17px;
}

.agent-gui-node__conversation-activity-secondary > span {
  display: -webkit-box;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.agent-gui-node__conversation-activity-secondary-icon {
  display: block;
  flex: 0 0 12px;
  width: 12px;
  height: 12px;
  margin: 2px 4px 0 0;
}

.agent-gui-node__conversation-item[data-presentation="activity"]
  .agent-gui-node__conversation-actions {
  top: 4px;
  transform: none;
}

.agent-gui-node__conversation-item:has(
  .agent-gui-node__conversation-open-window-button
) {
  --agent-gui-conversation-actions-width: 96px;
}

.agent-gui-node__conversation-item:focus-within,
.agent-gui-node__conversation-item:hover,
.agent-gui-node__conversation-item[data-state="open"],
.agent-gui-node__conversation-item:has(
  .agent-gui-node__conversation-actions [data-state="open"]
) {
  background-color: var(--agent-gui-surface-hover);
}

.agent-gui-node__conversation-item[data-active="true"] {
  border-color: var(--line-1);
  background-color: var(--background-fronted);
}

.agent-gui-node__conversation-select {
  display: grid;
  box-sizing: border-box;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--agent-gui-conversation-actions-gap);
  align-items: center;
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  color: inherit;
  overflow: hidden;
  padding: 0 8px 0 12px;
  text-align: left;
  transition: padding-right 140ms ease;
}

.agent-gui-node__conversation-section[data-kind="project"]
  .agent-gui-node__conversation-select {
  padding-left: 26px;
}

.agent-gui-node__conversation-section[data-kind="pinned"]
  .agent-gui-node__conversation-select {
  padding-left: 26px;
}

.agent-gui-node__conversation-section[data-kind="conversations"]
  .agent-gui-node__conversation-select {
  padding-left: 26px;
}

.agent-gui-node__conversation-item:hover .agent-gui-node__conversation-select,
.agent-gui-node__conversation-item[data-state="open"]
  .agent-gui-node__conversation-select,
.agent-gui-node__conversation-item:has(
    .agent-gui-node__conversation-actions [data-state="open"]
  )
  .agent-gui-node__conversation-select,
.agent-gui-node__conversation-item:has(
    .agent-gui-node__conversation-actions:focus-within
  )
  .agent-gui-node__conversation-select {
  grid-template-columns: minmax(0, 1fr) 0;
  padding-right: calc(
    var(--agent-gui-conversation-actions-width) +
      var(--agent-gui-conversation-actions-inset)
  );
}

.agent-gui-node__conversation-item[data-pending-delete="true"]
  .agent-gui-node__conversation-select {
  grid-template-columns: minmax(0, 1fr) 0;
  padding-right: min(96px, calc(100% - 24px));
}

.agent-gui-node__conversation-meta {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 28px;
  gap: 4px;
}

.agent-gui-node__conversation-meta[data-kind="loading"],
.agent-gui-node__conversation-meta[data-kind="waiting"],
.agent-gui-node__conversation-meta[data-kind="failed"],
.agent-gui-node__conversation-meta[data-kind="unread-complete"] {
  width: 28px;
  min-width: 28px;
  justify-content: center;
}

.agent-gui-node__conversation-meta[data-worktree="true"] {
  width: auto;
  min-width: max-content;
}

.agent-gui-node__conversation-meta[data-kind="time"] {
  margin-right: 6px;
  min-width: max-content;
  white-space: nowrap;
}

.agent-gui-node__conversation-actions {
  position: absolute;
  top: 50%;
  right: var(--agent-gui-conversation-actions-inset);
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  box-sizing: border-box;
  min-width: var(--agent-gui-conversation-actions-width);
  max-width: calc(100% - 20px);
  opacity: 0;
  transform: translateY(-50%);
}

.agent-gui-node__conversation-more-button {
  background: transparent;
  color: var(--text-tertiary);
}

.agent-gui-node__conversation-more-button svg {
  width: 16px;
  height: 16px;
}

.agent-gui-node__conversation-more-button:not(:disabled):hover,
.agent-gui-node__conversation-more-button:not(:disabled):focus-visible {
  background: var(--transparency-hover);
  color: var(--text-primary);
}

.agent-gui-node__conversation-delete-button,
.agent-gui-node__conversation-open-window-button,
.agent-gui-node__conversation-pin-button {
  background: transparent;
  background-color: transparent;
  color: var(--text-tertiary);
}

.agent-gui-node__conversation-pin-button svg,
.agent-gui-node__conversation-open-window-button svg,
.agent-gui-node__conversation-delete-button svg {
  width: 14px;
  height: 14px;
}

.agent-gui-node__conversation-item:hover .agent-gui-node__conversation-actions,
.agent-gui-node__conversation-item[data-state="open"]
  .agent-gui-node__conversation-actions,
.agent-gui-node__conversation-actions:focus-within,
.agent-gui-node__conversation-actions:has([data-state="open"]) {
  opacity: 1;
  /* Only in the visible state: fading in on hover stays smooth while
     leaving the row swaps back to the meta icon instantly, with no
     lingering cross-fade overlapping the two. */
  transition: opacity 140ms ease;
}

.agent-gui-node__conversation-item[data-pinned="true"]
  .agent-gui-node__conversation-pin-button {
  color: var(--agent-gui-accent);
}

.agent-gui-node__conversation-item[data-pending-delete="true"]
  .agent-gui-node__conversation-actions {
  opacity: 1;
}

.agent-gui-node__conversation-item[data-pending-delete="true"]
  .agent-gui-node__conversation-delete-button {
  width: auto;
  min-width: 76px;
  background: transparent;
  color: var(--agent-gui-danger, var(--state-danger));
  padding: 0 10px;
  opacity: 1;
}

.agent-gui-node__conversation-delete-confirm-text {
  display: inline-flex;
  align-items: center;
  height: 100%;
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

.agent-gui-node__conversation-item[data-pending-delete="true"]
  .agent-gui-node__conversation-meta,
.agent-gui-node__conversation-item:hover .agent-gui-node__conversation-meta,
.agent-gui-node__conversation-item[data-state="open"]
  .agent-gui-node__conversation-meta,
.agent-gui-node__conversation-item:has(
    .agent-gui-node__conversation-actions:focus-within
  )
  .agent-gui-node__conversation-meta,
.agent-gui-node__conversation-item:has(
    .agent-gui-node__conversation-actions [data-state="open"]
  )
  .agent-gui-node__conversation-meta {
  width: 0;
  min-width: 0;
  margin-right: 0;
  overflow: hidden;
  opacity: 0;
}

.agent-gui-node__conversation-title-row {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  max-width: 100%;
  gap: 6px;
  overflow: hidden;
}

.agent-gui-node__conversation-provider-icon {
  flex: 0 0 14px;
  width: 14px;
  height: 14px;
}

.agent-gui-node__conversation-provider-image {
  display: block;
  object-fit: contain;
}

.agent-gui-node__conversation-provider-mask-icon {
  display: inline-block;
  color: var(--text-tertiary);
  background-color: currentColor;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-size: contain;
  -webkit-mask-position: center;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-size: contain;
}

.agent-gui-node__conversation-title-mention-icon {
  display: inline-flex;
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  align-items: center;
  justify-content: center;
  color: var(--text-primary);
}

.agent-gui-node__conversation-title-mention-icon > svg {
  width: 14px;
  height: 14px;
}

.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-open-window-button:not(:disabled):hover,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-open-window-button:not(
    :disabled
  ):focus-visible,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-open-window-button:not(
    :disabled
  ):active {
  background: transparent;
  background-color: transparent;
  color: var(--text-primary);
}

.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-open-window-button:not(:disabled):hover
  svg,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-open-window-button:not(
    :disabled
  ):focus-visible
  svg,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-open-window-button:not(:disabled):active
  svg {
  color: var(--text-primary);
}

.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-pin-button:not(:disabled):hover,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-pin-button:not(:disabled):focus-visible,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-pin-button:not(:disabled):active {
  background: transparent;
  background-color: transparent;
  color: var(--agent-gui-accent);
}

.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-pin-button:not(:disabled):hover
  svg,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-pin-button:not(:disabled):focus-visible
  svg,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-pin-button:not(:disabled):active
  svg {
  color: var(--agent-gui-accent);
  fill: currentColor;
}

.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-delete-button:not(:disabled):hover,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-delete-button:not(
    :disabled
  ):focus-visible,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-delete-button:not(:disabled):active {
  background: transparent;
  background-color: transparent;
  color: var(--agent-gui-danger, var(--state-danger));
}

.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-delete-button:not(:disabled):hover
  svg,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-delete-button:not(
    :disabled
  ):focus-visible
  svg,
.agent-gui-node__conversation-actions
  > button.agent-gui-node__conversation-delete-button:not(:disabled):active
  svg {
  color: var(--agent-gui-danger, var(--state-danger));
  fill: currentColor;
}

.agent-gui-node__conversation-delete-button:disabled,
.agent-gui-node__conversation-open-window-button:disabled,
.agent-gui-node__conversation-pin-button:disabled {
  cursor: not-allowed;
  opacity: 0.4;
}

.agent-gui-node__conversation-title {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: var(--text-primary);
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__conversation-title
  [data-workspace-agent-markdown-shell="true"],
.agent-gui-node__conversation-title [data-workspace-agent-markdown="true"] {
  display: block;
  height: 18px;
  line-height: inherit;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__conversation-time {
  display: inline-flex;
  align-items: center;
  flex: none;
  color: var(--text-tertiary);
  font-size: 11px;
  font-weight: 400;
  line-height: 18px;
  white-space: nowrap;
}

.agent-gui-node__conversation-status-glyph {
  display: block;
  flex: none;
  width: 14px;
  height: 14px;
  transform-origin: center;
}

.agent-gui-node__conversation-worktree-glyph {
  display: block;
  flex: none;
  width: 15px;
  height: 15px;
  color: var(--text-tertiary);
}

.agent-gui-node__conversation-meta[data-kind="loading"] {
  color: var(--agent-gui-text-tertiary);
}

.agent-gui-node__conversation-meta[data-kind="failed"] {
  width: 28px;
  height: 28px;
  min-width: 28px;
  justify-content: center;
  color: var(--state-danger);
}

.agent-gui-node__conversation-meta[data-kind="waiting"] {
  width: 28px;
  height: 28px;
  min-width: 28px;
  justify-content: center;
  color: var(--color-amber-500);
}

.agent-gui-node__conversation-meta[data-kind="waiting"]
  .agent-gui-node__conversation-status-glyph,
.agent-gui-node__conversation-meta[data-kind="failed"]
  .agent-gui-node__conversation-status-glyph {
  width: 16px;
  height: 16px;
}

.agent-gui-node__conversation-meta[data-kind="failed"]
  .agent-gui-node__conversation-status-glyph {
  color: var(--state-danger);
}

.agent-gui-node__conversation-unread-lamp {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--agent-gui-accent);
}

@keyframes agent-gui-conversation-spin {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes agent-gui-conversation-list-skeleton-shimmer {
  100% {
    transform: translateX(100%);
  }
}

@keyframes agent-gui-interactive-prompt-enter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.agent-gui-node__detail {
  position: relative;
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 0;
  background: inherit;
}

.agent-gui-node__detail-workbench {
  display: flex;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.agent-gui-node__detail-primary {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: inherit;
}

.agent-gui-node__side-pane {
  position: relative;
  display: flex;
  flex: 0 0 var(--agent-gui-side-pane-width, 440px);
  flex-direction: column;
  width: var(--agent-gui-side-pane-width, 440px);
  min-width: 360px;
  max-width: 600px;
  min-height: 0;
  overflow: hidden;
  border-left: 1px solid var(--line-1, var(--tutti-line-1));
  background: var(--agent-gui-session-sidepanel-background);
}

.agent-gui-node__side-surface {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: var(--agent-gui-session-sidepanel-background);
}

.agent-gui-node__side-resize-handle {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -4px;
  z-index: 8;
  width: 8px;
  cursor: col-resize;
  touch-action: none;
}

.agent-gui-node__side-resize-handle::after {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 3px;
  width: 2px;
  background: transparent;
  content: "";
  transition: background 120ms ease;
}

.agent-gui-node__side-resize-handle:hover::after,
.agent-gui-node__side-resize-handle:focus-visible::after {
  background: var(--tutti-purple);
}

.agent-gui-node__side-resize-handle:focus-visible {
  outline: none;
}

.agent-gui-node__side-close-button {
  display: inline-grid;
  flex: 0 0 auto;
  place-items: center;
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--text-secondary, var(--tutti-text-secondary));
  cursor: pointer;
}

.agent-gui-node__side-header {
  display: flex;
  flex: 0 0 44px;
  align-items: center;
  justify-content: flex-end;
  padding: 6px 10px 4px;
}

.agent-gui-node__side-close-button:hover {
  background: var(--transparency-block, var(--tutti-surface-2));
  color: var(--text-primary, var(--tutti-text-primary));
}

.agent-gui-node__side-close-button:focus-visible {
  outline: 2px solid var(--tutti-purple);
  outline-offset: 1px;
}

.agent-gui-node__side-timeline-frame {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
}

.agent-gui-node__side-timeline {
  display: grid;
  align-content: start;
  min-height: 0;
  padding: 8px 18px 112px;
  scroll-padding-bottom: 112px;
}

.agent-gui-node__side-empty-state {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 56px 20px;
  color: var(--text-secondary, var(--tutti-text-secondary));
  text-align: center;
}

.agent-gui-node__side-empty-state-icon {
  margin-bottom: 18px;
  color: var(--text-secondary, var(--tutti-text-secondary));
}

.agent-gui-node__side-empty-state-title {
  color: var(--text-primary, var(--tutti-text-primary));
  font-size: 17px;
  font-weight: 600;
  line-height: 24px;
}

.agent-gui-node__side-empty-state-description {
  max-width: 360px;
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 22px;
}

.agent-gui-node__side-error {
  margin: 0 12px 12px;
  color: var(--destructive, var(--tutti-destructive));
  font-size: 13px;
  line-height: 20px;
}

.agent-gui-node__side-composer {
  position: sticky;
  bottom: 0;
  z-index: 4;
  flex: 0 0 auto;
  background: linear-gradient(
    to bottom,
    transparent,
    var(--agent-gui-session-sidepanel-background) 18px
  );
}

.agent-gui-node__side-composer > .agent-gui-node__composer {
  padding-right: 10px;
  padding-left: 10px;
}

/* Dock Composer defaults to the main conversation-flow surface. Side is an
   adapter host for the shared Composer, so keep the dock padding and footer on
   the tool-sidebar surface without changing the shared input-card surface. */
.agent-gui-node__side-composer > .agent-gui-node__composer[data-layout="dock"],
.agent-gui-node__side-composer
  > .agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-footer {
  background: var(--agent-gui-session-sidepanel-background);
}

@media (max-width: 860px) {
  .agent-gui-node__detail-workbench:has(.agent-gui-node__side-pane)
    > .agent-gui-node__detail-primary {
    display: none;
  }

  .agent-gui-node__side-pane {
    flex-basis: 100%;
    width: 100%;
    min-width: 0;
    max-width: none;
    border-left: 0;
  }

  .agent-gui-node__side-resize-handle {
    display: none;
  }
}

.agent-gui-node__timeline {
  --agent-gui-message-locator-inline-offset: var(--agent-gui-detail-padding-x);

  position: relative;
  display: grid;
  flex: 1 1 auto;
  align-content: start;
  gap: 24px;
  min-height: 0;
  overflow: auto;
  padding: 32px var(--agent-gui-detail-padding-x)
    calc(24px + var(--agent-gui-bottom-dock-safe-area, 0px));
  scroll-padding-bottom: calc(
    24px + var(--agent-gui-bottom-dock-safe-area, 0px)
  );
  background: transparent;
}

.agent-gui-transcript-row {
  display: grid;
  width: 100%;
  min-width: 0;
  transform-origin: top center;
}

.agent-gui-message-locator {
  --agent-message-locator-dot-size: 6px;
  --agent-message-locator-hit-size: 36px;
  --agent-message-locator-center-offset: 18px;
  --agent-message-locator-inline-shift: 8px;
  --agent-message-locator-scrollbar-gap: 8px;
  --agent-message-locator-visible-height: 100vh;
  --agent-message-locator-visible-top-offset: 0px;
  --agent-message-locator-viewport-height: var(--agent-message-locator-height);

  position: sticky;
  top: max(
    0px,
    calc(
      var(--agent-message-locator-visible-top-offset) +
        (
          (
              var(--agent-message-locator-visible-height) -
                var(--agent-message-locator-viewport-height)
            ) /
            2
        )
    )
  );
  right: 0;
  z-index: 7;
  justify-self: stretch;
  width: calc(100% + var(--agent-gui-message-locator-inline-offset));
  height: var(--agent-message-locator-viewport-height);
  margin-right: calc(-1 * var(--agent-gui-message-locator-inline-offset));
  margin-bottom: calc(-1 * var(--agent-message-locator-viewport-height));
  pointer-events: none;
}

.agent-gui-message-locator__viewport {
  position: absolute;
  top: 0;
  right: calc(
    var(--agent-message-locator-scrollbar-gap) +
      var(--agent-message-locator-center-offset) -
      var(--agent-message-locator-hit-size) / 2 -
      var(--agent-message-locator-inline-shift)
  );
  width: var(--agent-message-locator-hit-size);
  height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  pointer-events: auto;
  scrollbar-width: none;
  cursor: pointer;
  z-index: 1;
}

.agent-gui-message-locator__viewport::-webkit-scrollbar {
  display: none;
}

.agent-gui-message-locator__content {
  position: relative;
  min-height: 100%;
  height: var(--agent-message-locator-height);
}

.agent-gui-message-locator__track-segment {
  position: absolute;
  top: var(--agent-message-locator-segment-position);
  left: calc(var(--agent-message-locator-hit-size) / 2);
  width: 1px;
  height: 8px;
  transform: translate(-50%, -50%);
  background: var(--line-1, var(--nexight-line-1));
}

.agent-gui-message-locator__tick {
  position: absolute;
  top: var(--agent-message-locator-position);
  left: 0;
  display: grid;
  width: var(--agent-message-locator-hit-size);
  height: var(--agent-message-locator-hit-size);
  padding: 0;
  border: 0;
  place-items: center;
  background: transparent;
  color: inherit;
  transform: translateY(-50%);
  cursor: pointer;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-appearance: none;
  appearance: none;
}

.agent-gui-message-locator__dot {
  box-sizing: border-box;
  width: var(--agent-message-locator-dot-size);
  height: var(--agent-message-locator-dot-size);
  border: 0 solid transparent;
  border-radius: 999px;
  background: color-mix(
    in srgb,
    var(--text-tertiary, var(--tutti-text-tertiary)) 62%,
    transparent
  );
  transition:
    background 140ms ease,
    border-color 140ms ease,
    transform 140ms ease;
}

.agent-gui-message-locator__tick:hover .agent-gui-message-locator__dot,
.agent-gui-message-locator__tick:focus-visible .agent-gui-message-locator__dot,
.agent-gui-message-locator__tick[data-selected="true"]
  .agent-gui-message-locator__dot {
  transform: scale(1.6667);
}

.agent-gui-message-locator__tick[data-selected="true"]
  .agent-gui-message-locator__dot {
  border-width: 2px;
  border-color: var(--text-secondary, var(--tutti-text-secondary));
  background: transparent;
}

.agent-gui-message-locator__tick:hover .agent-gui-message-locator__dot,
.agent-gui-message-locator__tick:focus-visible .agent-gui-message-locator__dot {
  border-width: 2px;
  border-color: var(--text-primary, var(--tutti-text-primary));
  background: transparent;
}

.agent-gui-message-locator__tick[data-unread-agent-response="true"]
  .agent-gui-message-locator__dot {
  background: var(--tutti-purple);
}

.agent-gui-message-locator__tick[data-unread-agent-response="true"]:hover
  .agent-gui-message-locator__dot,
.agent-gui-message-locator__tick[data-unread-agent-response="true"]:focus-visible
  .agent-gui-message-locator__dot {
  border-width: 2px;
  border-color: var(--tutti-purple);
  background: transparent;
}

.agent-gui-message-locator__panel {
  position: absolute;
  top: 50%;
  right: calc(22px + var(--agent-message-locator-scrollbar-gap));
  display: grid;
  width: min(360px, calc(100vw - 112px));
  max-width: max-content;
  max-height: calc(var(--agent-message-locator-visible-height) - 32px);
  gap: 12px;
  overflow-y: auto;
  padding: 16px;
  border: 1px solid
    color-mix(in srgb, var(--line-2, var(--tutti-line-2)) 72%, transparent);
  border-radius: 8px;
  background: var(
    --background-fronted,
    var(--surface-1, var(--tutti-surface-1))
  );
  box-shadow: var(--shadow-panel);
  color: var(--text-primary, var(--tutti-text-primary));
  opacity: 0;
  transform: translateY(-50%) translateX(4px);
  transition:
    opacity 140ms ease,
    transform 140ms ease;
  pointer-events: none;
}

.agent-gui-message-locator__panel[data-open="true"] {
  opacity: 1;
  transform: translateY(-50%) translateX(0);
  pointer-events: auto;
}

.agent-gui-message-locator__panel-item {
  display: block;
  min-width: 0;
  max-width: 100%;
  padding: 0;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text-tertiary, var(--tutti-text-tertiary));
  text-align: left;
  cursor: pointer;
  transition: color 160ms ease;
}

.agent-gui-message-locator__panel-item:hover,
.agent-gui-message-locator__panel-item:focus-visible {
  background: color-mix(
    in srgb,
    var(--surface-2, var(--tutti-surface-2)) 86%,
    transparent
  );
  outline: none;
}

.agent-gui-message-locator__panel-item[data-active="true"] {
  color: var(--text-primary, var(--tutti-text-primary));
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-message-locator__panel,
  .agent-gui-message-locator__panel-item {
    transition: none;
  }
}

.agent-gui-message-locator__panel-item-text {
  display: block;
  overflow: hidden;
  max-width: 100%;
  text-align: left;
  font-size: 13px;
  font-weight: 520;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-transcript-virtual {
  position: relative;
  width: 100%;
  min-width: 0;
  contain: layout;
  overflow-anchor: none;
}

.agent-gui-transcript-virtual-item {
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding-bottom: 16px;
  will-change: transform;
}

.agent-gui-transcript-virtual-item
  > .agent-gui-transcript-row
  + .agent-gui-transcript-row,
.agent-gui-transcript-virtual-item
  > [data-testid="agent-transcript-turn-divider"]
  + .agent-gui-transcript-row {
  margin-top: 16px;
}

.agent-gui-transcript-row[data-agent-transcript-row-enter="true"] {
  animation: agent-gui-transcript-row-enter 180ms cubic-bezier(0.16, 1, 0.3, 1)
    both;
}

@keyframes agent-gui-transcript-row-enter {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-transcript-row[data-agent-transcript-row-enter="true"] {
    animation: none;
  }
}

.workspace-agents-status-panel__conversation-timeline.agent-gui-node__timeline {
  --agent-gui-message-locator-inline-offset: 28px;

  padding-right: 28px;
  padding-left: 28px;
}

.agent-gui-node__timeline-with-composer {
  padding-top: 24px;
  padding-bottom: calc(120px + var(--agent-gui-bottom-dock-safe-area, 0px));
  scroll-padding-bottom: calc(
    120px + var(--agent-gui-bottom-dock-safe-area, 0px)
  );
}

.agent-gui-node__timeline-with-composer.agent-gui-node__timeline--scrolled-from-top {
  -webkit-mask-image: linear-gradient(
    180deg,
    transparent 0,
    rgb(0 0 0 / 0.18) 10px,
    rgb(0 0 0 / 0.62) 26px,
    black 44px
  );
  mask-image: linear-gradient(
    180deg,
    transparent 0,
    rgb(0 0 0 / 0.18) 10px,
    rgb(0 0 0 / 0.62) 26px,
    black 44px
  );
}

.agent-gui-node__timeline-unavailable-chat-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 24px;
  scroll-padding-bottom: 24px;
}

.agent-gui-node__timeline-centered {
  display: flex;
  align-items: stretch;
  justify-content: center;
}

.agent-gui-node__transcript-skeleton {
  display: grid;
  gap: 20px;
  width: 100%;
  min-width: 0;
}

.agent-gui-node__transcript-skeleton-row {
  display: flex;
  flex-direction: column;
  gap: 9px;
  width: min(72%, 560px);
  min-width: 0;
}

.agent-gui-node__transcript-skeleton-row-user {
  justify-self: end;
  align-items: flex-end;
  width: min(48%, 360px);
}

.agent-gui-node__transcript-skeleton-row-assistant {
  justify-self: start;
  align-items: flex-start;
}

.agent-gui-node__transcript-skeleton-line,
.agent-gui-node__transcript-skeleton-bubble {
  position: relative;
  display: block;
  overflow: hidden;
  height: 16px;
  border-radius: 4px;
  background: var(--transparency-block);
}

.agent-gui-node__transcript-skeleton-line::after,
.agent-gui-node__transcript-skeleton-bubble::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(
    90deg,
    transparent 0%,
    color-mix(in srgb, var(--background-fronted) 42%, transparent) 50%,
    transparent 100%
  );
  animation: agent-gui-transcript-skeleton-shimmer 1.2s ease-in-out infinite;
}

.agent-gui-node__transcript-skeleton-line-long {
  width: 100%;
}

.agent-gui-node__transcript-skeleton-line-medium {
  width: 72%;
}

.agent-gui-node__transcript-skeleton-line-short {
  width: 46%;
}

@keyframes agent-gui-transcript-skeleton-shimmer {
  100% {
    transform: translateX(100%);
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__conversation-list-skeleton-row::after,
  .agent-gui-node__transcript-skeleton-line::after,
  .agent-gui-node__transcript-skeleton-bubble::after {
    animation: none;
  }
}

.agent-gui-node__bottom-dock {
  position: sticky;
  bottom: 0;
  z-index: 4;
  display: grid;
  align-self: stretch;
  box-sizing: border-box;
  gap: 0;
  margin-right: auto;
  margin-left: auto;
  width: 100%;
  margin-top: auto;
  padding-top: 0;
  background: transparent;
  border-top: 0;
  pointer-events: none;
}

.agent-gui-node__bottom-dock > .agent-gui-node__composer {
  padding-right: 12px;
  padding-left: 12px;
  pointer-events: none;
}

.agent-gui-node__bottom-dock-scroll-to-bottom {
  position: absolute;
  bottom: calc(
    100% + var(--agent-gui-bottom-dock-floating-safe-area, 0px) + 8px
  );
  left: 50%;
  z-index: 6;
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  margin: 0;
  padding: 0;
  border: 1px solid
    color-mix(in srgb, var(--line-2, var(--tutti-line-2)) 72%, transparent);
  border-radius: 999px;
  background: var(--background-fronted, var(--tutti-surface-1));
  box-shadow: 0 10px 26px rgb(0 0 0 / 10%);
  color: var(--text-secondary, var(--tutti-text-secondary));
  pointer-events: auto;
  cursor: pointer;
  transform: translateX(-50%);
  transition:
    background 140ms ease,
    color 140ms ease,
    transform 140ms ease;
}

.agent-gui-node__bottom-dock-scroll-to-bottom:hover {
  background: var(--background-fronted, var(--tutti-surface-1));
  color: var(--text-primary, var(--tutti-text-primary));
  transform: translateX(-50%) translateY(-1px);
}

.agent-gui-node__bottom-dock-scroll-to-bottom:focus-visible {
  border-color: color-mix(
    in srgb,
    var(--text-secondary, var(--tutti-text-secondary)) 46%,
    transparent
  );
  background: var(--background-fronted, var(--tutti-surface-1));
  color: var(--text-primary, var(--tutti-text-primary));
  outline: none;
  transform: translateX(-50%) translateY(-1px);
}

.agent-gui-node__bottom-dock-scroll-to-bottom:active {
  transform: translateX(-50%);
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__bottom-dock-scroll-to-bottom {
    transition: none;
  }
}

.agent-gui-node__bottom-dock > .agent-gui-chrome__session-chrome,
.agent-gui-node__bottom-dock-prompt,
.agent-gui-node__bottom-dock
  > .agent-gui-node__composer
  .agent-gui-node__composer-floating-prompt,
.agent-gui-node__bottom-dock
  > .agent-gui-node__composer
  .agent-gui-node__composer-input-shell {
  pointer-events: auto;
}

.agent-gui-node__bottom-dock-prompt {
  position: relative;
  z-index: 5;
  margin: 0 12px 8px;
}

.agent-gui-node__empty,
.agent-gui-node__empty-state {
  color: var(--agent-gui-text-secondary);
  font-size: 13px;
  line-height: 20px;
}

.agent-gui-node__empty-state {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: center;
  min-height: 0;
  margin: 0;
  padding: 16px 14px;
  color: var(--text-secondary);
  text-align: center;
}

.agent-gui-node__conversation-rail-load-error {
  display: flex;
  flex: 1 1 auto;
  min-height: 0;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 16px 14px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 20px;
  text-align: center;
}

.agent-gui-node__conversation-rail-load-error-icon {
  width: 20px;
  height: 20px;
  color: var(--text-secondary);
}

.agent-gui-node__unavailable-chat-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 24px;
  color: var(--agent-gui-text-tertiary, var(--text-tertiary));
  text-align: center;
}

.agent-gui-node__unavailable-chat-empty-icon {
  width: 25px;
  height: 25px;
  flex: none;
  color: var(--text-tertiary);
}

.agent-gui-node__unavailable-chat-empty-text {
  margin-top: 10px;
  color: var(--text-tertiary);
  font-size: 13px;
  font-weight: 500;
  line-height: 20px;
}

.agent-gui-node__timeline-row {
  display: flex;
  width: 100%;
  min-width: 0;
}

.agent-gui-node__timeline-row[data-kind="user"] {
  justify-content: flex-end;
}

.agent-gui-node__timeline-row[data-kind="assistant"],
.agent-gui-node__timeline-row[data-kind="tool"] {
  justify-content: flex-start;
}

.agent-gui-node__timeline-row[data-kind="system"] {
  justify-content: center;
}

.agent-gui-node__layout [data-slot="status-dot"],
[data-testid="workspace-agent-message-center"] [data-slot="status-dot"] {
  --agent-gui-status-dot-color: var(
    --agent-gui-text-tertiary,
    var(--text-tertiary)
  );
  display: inline-flex;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--agent-gui-status-dot-color);
}

.agent-gui-node__layout [data-slot="status-dot"][data-size="xs"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-size="xs"] {
  width: 6px;
  height: 6px;
}

.agent-gui-node__layout [data-slot="status-dot"][data-size="sm"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-size="sm"] {
  width: 8px;
  height: 8px;
}

.agent-gui-node__layout [data-slot="status-dot"][data-size="md"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-size="md"] {
  width: 10px;
  height: 10px;
}

.agent-gui-node__layout [data-slot="status-dot"][data-tone="neutral"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-tone="neutral"] {
  --agent-gui-status-dot-color: var(
    --agent-gui-text-tertiary,
    var(--text-tertiary)
  );
}

.agent-gui-node__layout [data-slot="status-dot"][data-tone="green"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-tone="green"] {
  --agent-gui-status-dot-color: var(--state-success);
}

.agent-gui-node__layout [data-slot="status-dot"][data-tone="blue"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-tone="blue"] {
  --agent-gui-status-dot-color: var(--status-running);
}

.agent-gui-node__layout [data-slot="status-dot"][data-tone="amber"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-tone="amber"] {
  --agent-gui-status-dot-color: var(--state-warning);
}

.agent-gui-node__layout [data-slot="status-dot"][data-tone="red"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-tone="red"] {
  --agent-gui-status-dot-color: var(--state-danger);
}

.agent-gui-node__layout [data-slot="status-dot"][data-pulse="true"],
[data-testid="workspace-agent-message-center"]
  [data-slot="status-dot"][data-pulse="true"] {
  animation: agent-gui-status-dot-pulse 1.8s ease-in-out infinite;
}

@keyframes agent-gui-status-dot-pulse {
  0%,
  100% {
    opacity: 1;
    box-shadow: 0 0 0 0
      color-mix(in srgb, var(--agent-gui-status-dot-color) 36%, transparent);
  }

  50% {
    opacity: 0.45;
    box-shadow: 0 0 0 4px
      color-mix(in srgb, var(--agent-gui-status-dot-color) 18%, transparent);
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__layout [data-slot="status-dot"][data-pulse="true"],
  [data-testid="workspace-agent-message-center"]
    [data-slot="status-dot"][data-pulse="true"] {
    animation: none;
  }
}

.agent-gui-node__message-bubble {
  max-width: 100%;
  min-width: 0;
  color: var(--text-primary);
  font-size: 13px;
  line-height: 20px;
}

.agent-gui-node__timeline-row[data-kind="user"]
  .agent-gui-node__message-bubble {
  max-width: min(620px, 86%);
  border-radius: 8px;
  background: var(--transparency-block);
  padding: 10px 14px;
}

.agent-gui-node__timeline-row[data-kind="assistant"]
  .agent-gui-node__message-bubble {
  width: 100%;
  max-width: 860px;
  padding: 2px 0;
}

.agent-gui-node__timeline-row[data-kind="tool"]
  .agent-gui-node__message-bubble {
  width: 100%;
  max-width: 860px;
  border-left: 2px solid var(--agent-gui-border-subtle);
  padding: 2px 0 2px 10px;
  color: var(--text-primary);
  font-size: 13px;
  line-height: 20px;
}

.agent-gui-node__timeline-row[data-kind="system"]
  .agent-gui-node__message-bubble {
  max-width: min(520px, 90%);
  border-radius: 8px;
  background: var(--agent-gui-surface-muted);
  padding: 6px 10px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 18px;
  text-align: center;
}

.agent-gui-node__timeline-row p {
  margin: 0;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.agent-gui-node__row-meta {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  margin-bottom: 4px;
  color: var(--agent-gui-text-secondary);
  font-size: 11px;
  line-height: 18px;
}

.agent-gui-node__timeline-row[data-kind="user"] .agent-gui-node__row-meta,
.agent-gui-node__timeline-row[data-kind="system"] .agent-gui-node__row-meta {
  display: none;
}

.agent-gui-node__timeline-row[data-kind="assistant"] .agent-gui-node__row-meta,
.agent-gui-node__timeline-row[data-kind="tool"] .agent-gui-node__row-meta {
  color: var(--agent-gui-text-tertiary);
}

.agent-gui-node__timeline-row[data-kind="tool"] .agent-gui-node__row-meta {
  margin-bottom: 3px;
  font-weight: 400;
}

.agent-gui-node__composer {
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin-top: 0;
  padding: 0 12px 12px;
  background: transparent;
}

.agent-gui-node__composer-hero {
  width: min(760px, 100%);
  min-width: 320px;
  margin: 0 auto;
}

.agent-gui-node__composer-input-group {
  display: grid;
  min-width: 0;
}

.agent-gui-node__slash-status-panel {
  width: 100%;
  min-width: 0;
  padding: 10px 12px;
  color: var(--agent-gui-text-primary);
  font-size: 11px;
}

.agent-gui-node__slash-status-limit {
  display: grid;
  grid-template-columns: minmax(24px, 1fr) max-content;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.agent-gui-node__slash-status-limit-meter {
  position: relative;
  display: block;
  width: 100%;
  height: 6px;
  overflow: hidden;
  border-radius: 0;
  background: color-mix(
    in srgb,
    var(--agent-gui-text-primary) 10%,
    transparent
  );
}

.agent-gui-node__slash-status-limit-value {
  min-width: 0;
  text-align: right;
  white-space: nowrap;
}

.agent-gui-node__slash-status-limit-meter-fill {
  position: absolute;
  inset: 0 auto 0 0;
  min-width: 2px;
  border-radius: 0;
  background: var(--agent-gui-text-primary);
}

.agent-gui-node__composer-input-group-hero {
  padding: 2px;
  border: 1px solid var(--agent-gui-border-focus);
  border-radius: 16px;
  background: var(--agent-gui-accent-bg);
}

/* In dock layout a growing draft overhangs upward past the composer's top
   edge (the dock only reserves the collapsed input height in flow), so the
   floating panels anchored at bottom: 100% must be lifted by that overhang
   (--agent-gui-composer-input-overflow) or the grown input covers them. */
.agent-gui-node__composer-floating-prompt {
  position: absolute;
  right: 12px;
  bottom: calc(100% + 8px + var(--agent-gui-composer-input-overflow, 0px));
  left: 12px;
  z-index: 5;
}

.agent-gui-node__composer-floating-prompt--queued {
  z-index: 1;
  right: 24px;
  bottom: calc(100% + var(--agent-gui-composer-input-overflow, 0px));
  left: 24px;
}

.agent-gui-node__composer-input-shell {
  display: grid;
  gap: 10px;
  position: relative;
  isolation: isolate;
  z-index: 2;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--agent-gui-border-subtle);
  border-radius: 12px;
  background: var(--agent-gui-surface-raised);
  box-shadow: 0 8px 24px rgb(0 0 0 / 4%);
  transition: box-shadow 140ms ease;
}

.agent-gui-node__composer-hero-prompt-input-area {
  box-sizing: border-box;
  width: calc(100% - 8px);
  margin-inline: 4px;
}

.agent-gui-node__composer[data-layout="dock"] {
  /* Opaque backdrop for the footer strip: the timeline can slide beneath the
     dock, and a transparent footer would show message rows behind the
     toolbar controls. */
  background: var(--agent-gui-session-flow-background);
}

/* Compact host surfaces are not conversation timelines. Keep attachments and
   growing text in normal flow so they cannot overhang unrelated host chrome. */
.agent-gui-node__composer[data-layout="embedded"] {
  position: relative;
  bottom: auto;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  background: transparent;
}

.agent-gui-node__composer[data-layout="embedded"]
  .agent-gui-node__composer-input-shell {
  gap: 8px;
}

.agent-gui-node__shell[data-quick-composer-input-surface="borderless"]
  .agent-gui-node__composer-input-shell,
.agent-gui-node__shell[data-quick-composer-input-surface="borderless"]
  .agent-gui-node__composer-input-shell:hover,
.agent-gui-node__shell[data-quick-composer-input-surface="borderless"]
  .agent-gui-node__composer-input-shell:focus-within {
  border-color: transparent;
  box-shadow: none;
}

.agent-gui-node__composer[data-layout="embedded"]
  .agent-gui-node__composer-prompt-input-area {
  display: grid;
  min-width: 0;
}

.agent-gui-node__composer[data-layout="embedded"]
  .agent-gui-node__composer-prompt-input-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 8px;
  min-width: 0;
}

.agent-gui-node__composer[data-layout="embedded"]
  .agent-gui-node__composer-textarea {
  min-height: 46px;
  max-height: 96px;
  overflow-y: auto;
}

/* Full-height launch surfaces explicitly assign the available block size.
   Keep that contract opt-in so compact embedded composers continue sizing to
   their content. */
.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"] {
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
}

.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__composer-input-group {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
}

.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__composer-input-shell {
  grid-template-rows: minmax(0, 1fr) auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  flex: 1 1 auto;
}

.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__composer-prompt-input-area {
  display: flex;
  height: 100%;
  min-height: 0;
  flex-direction: column;
}

.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__composer-prompt-input-line {
  align-items: stretch;
  height: 100%;
  min-height: 0;
  flex: 1 1 auto;
}

.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__rich-text-editor-surface,
.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__rich-text-editor-content {
  height: 100%;
  min-height: 0;
}

.agent-gui-node__composer[data-layout="embedded"][data-fill-available-height="true"]
  .agent-gui-node__composer-textarea {
  height: 100%;
  min-height: 0;
  max-height: none;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-input-shell {
  /* Reserve only the collapsed input height (56px, keep in sync with
     DOCK_COMPOSER_INPUT_MIN_HEIGHT) in the layout flow. A growing draft
     (long paste, attachments) expands the text box upward over the
     conversation instead of enlarging the dock and pushing the message
     stream up. */
  grid-template-rows: 56px auto;
  gap: 6px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area {
  display: grid;
  /* Keep the input shadow above the following footer row. Both rows otherwise
     share z-index: 1, so the later-painted footer visually clips the shadow. */
  z-index: 2;
  grid-template-rows: minmax(0, 1fr);
  box-sizing: border-box;
  height: var(--agent-gui-composer-input-height, 56px);
  min-height: 56px;
  max-height: var(--agent-gui-composer-input-max-height, 110px);
  align-items: end;
  align-self: end;
  contain: layout;
  overflow: hidden;
  padding: 0 12px;
  border: 1px solid var(--line-2);
  border-radius: 10px;
  background: var(--agent-gui-surface-raised);
  box-shadow: 0 8px 24px rgb(0 0 0 / 4%);
  transition:
    height 160ms ease,
    border-color 140ms ease,
    box-shadow 140ms ease;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area:focus-within,
.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area:hover {
  border-color: var(--line-2);
  box-shadow: 0 8px 24px rgb(0 0 0 / 6%);
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area[data-has-draft-attachments="true"] {
  grid-template-rows:
    minmax(0, var(--agent-gui-composer-attachment-height, 0px))
    minmax(40px, 1fr);
  align-items: end;
  padding: 12px;
}

.agent-gui-node__composer[data-layout="dock"]
  [data-testid="agent-gui-composer-attachment-drafts"] {
  margin-bottom: 0;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area[data-has-draft-images="true"]
  [data-testid="agent-gui-composer-image-drafts"] {
  min-height: 0;
  margin-bottom: 0;
  overflow: hidden;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area[data-has-draft-images="true"]
  [data-testid="agent-gui-composer-image-draft"] {
  max-height: 56px;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  box-sizing: border-box;
  gap: 8px;
  height: calc(var(--agent-gui-composer-text-height, 56px) - 2px);
  min-height: 54px;
  max-height: 118px;
  min-width: 0;
  padding: 0 0 12px;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area[data-has-draft-attachments="true"]
  .agent-gui-node__composer-prompt-input-line {
  min-height: 40px;
  height: calc(var(--agent-gui-composer-text-height, 56px) - 2px);
  max-height: 118px;
  padding: 4px 0 0;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-send-button,
.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-stop-button {
  align-self: end;
}

.agent-gui-node__composer-input-shell > * {
  position: relative;
  z-index: 1;
}

.agent-gui-edge-glow,
.agent-gui-node__composer-input-group[data-edge-glow="true"] {
  --agent-gui-star-border-size: 2px;
  --agent-gui-star-border-duration: 5.8s;
  --agent-gui-star-border-color: rgb(248 250 252 / 90%);
  --agent-gui-star-border-mid-color: color-mix(
    in srgb,
    var(--accent-codex) 68%,
    transparent
  );
  --agent-gui-star-border-core-stop: 42%;
  --agent-gui-star-border-fade-stop: 72%;
  --agent-gui-star-border-length: clamp(88px, 18%, 160px);
  --agent-gui-star-border-radius: 16px;
  --agent-gui-star-border-shadow: drop-shadow(
    0 0 8px color-mix(in srgb, var(--accent-codex) 58%, transparent)
  );
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.agent-gui-edge-glow > * {
  position: relative;
  z-index: 1;
}

.agent-gui-node__composer-input-group[data-edge-glow="true"] {
  overflow: hidden;
}

html[data-theme="light"] .agent-gui-edge-glow,
html[data-theme="light"]
  .agent-gui-node__composer-input-group[data-edge-glow="true"] {
  --agent-gui-star-border-color: color-mix(
    in srgb,
    var(--accent-codex) 90%,
    transparent
  );
  --agent-gui-star-border-mid-color: color-mix(
    in srgb,
    var(--accent-codex) 50%,
    transparent
  );
  --agent-gui-star-border-core-stop: 24%;
  --agent-gui-star-border-fade-stop: 58%;
}

.agent-gui-edge-glow::before,
.agent-gui-edge-glow::after,
.agent-gui-node__composer-input-group[data-edge-glow="true"]::before,
.agent-gui-node__composer-input-group[data-edge-glow="true"]::after {
  content: "";
  position: absolute;
  top: calc(var(--agent-gui-star-border-size) / -2);
  left: 0;
  z-index: 0;
  width: var(--agent-gui-star-border-length);
  height: var(--agent-gui-star-border-size);
  border-radius: 999px;
  background: radial-gradient(
    circle,
    var(--agent-gui-star-border-color) 0,
    var(--agent-gui-star-border-mid-color)
      var(--agent-gui-star-border-core-stop),
    transparent var(--agent-gui-star-border-fade-stop)
  );
  filter: var(--agent-gui-star-border-shadow);
  offset-anchor: 50% 50%;
  offset-path: inset(
    calc(var(--agent-gui-star-border-size) / 2) round
      var(--agent-gui-star-border-radius)
  );
  offset-rotate: auto;
  pointer-events: none;
}

.agent-gui-edge-glow::before,
.agent-gui-node__composer-input-group[data-edge-glow="true"]::before {
  animation: agent-gui-star-border-path var(--agent-gui-star-border-duration)
    linear infinite;
}

.agent-gui-edge-glow::after,
.agent-gui-node__composer-input-group[data-edge-glow="true"]::after {
  animation: agent-gui-star-border-path var(--agent-gui-star-border-duration)
    linear infinite;
  animation-delay: calc(var(--agent-gui-star-border-duration) / -2);
}

.workspace-agent-decision-toast__edge-glow.agent-gui-edge-glow {
  --agent-gui-star-border-size: 1px;
  --agent-gui-star-border-color: color-mix(
    in srgb,
    var(--tutti-purple) 62%,
    transparent
  );
  --agent-gui-star-border-mid-color: color-mix(
    in srgb,
    var(--tutti-purple) 28%,
    transparent
  );
  --agent-gui-star-border-core-stop: 18%;
  --agent-gui-star-border-fade-stop: 48%;
  --agent-gui-star-border-length: clamp(180px, 58%, 280px);
  --agent-gui-star-border-radius: 12px;
  --agent-gui-star-border-shadow: drop-shadow(
    0 0 3px color-mix(in srgb, var(--tutti-purple) 30%, transparent)
  );
}

.workspace-agent-decision-toast[data-sonner-toast] {
  --decision-toast-collapse-duration: 320ms;
  --decision-toast-collapse-easing: cubic-bezier(0.22, 1, 0.36, 1);
  --decision-toast-content-fade-duration: 160ms;
  min-height: 0;
  overflow: visible;
  border: 0;
  border-radius: 12px;
  background: transparent;
  padding: 0;
  transform: translateX(calc(100% + 24px)) !important;
  transition:
    transform 360ms var(--decision-toast-collapse-easing),
    opacity 240ms ease,
    width var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    right var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    min-height var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    height var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    max-height var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    padding var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    border-top-width 0ms linear,
    border-radius 120ms ease,
    box-shadow 200ms !important;
}

.workspace-agent-decision-toast[data-sonner-toast][data-mounted="true"] {
  transform: var(--y) translateX(0) !important;
}

.workspace-agent-decision-toast__prompt
  .agent-gui-conversation__interactive-prompt-card {
  border: 0;
  padding: 12px;
  box-shadow: none;
}

.workspace-agent-decision-toast__outcome-card {
  border: 1px solid var(--line-1);
  border-radius: 8px;
  background: var(--background-fronted);
  padding: 10px;
}

.workspace-agent-decision-toast__outcome-card:hover {
  border-color: var(--line-2);
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"] {
  --decision-toast-collapsed-offset: 0px;
  --decision-toast-collapsed-scale: 0.94;
  --y: translateY(
    calc(var(--front-toast-height) + var(--decision-toast-collapsed-offset))
  );
  width: calc(var(--width) * var(--decision-toast-collapsed-scale));
  min-height: 0 !important;
  height: 10px !important;
  max-height: 10px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid var(--line-2);
  border-top-width: 0;
  border-radius: 0 0 8px 8px;
  background: var(--background-fronted);
  box-shadow: 0 8px 24px
    color-mix(in srgb, var(--shadow-elevated) 72%, transparent);
  pointer-events: auto;
  right: calc(
    (var(--width) - (var(--width) * var(--decision-toast-collapsed-scale))) / 2
  ) !important;
  transition:
    transform var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    opacity 240ms ease,
    width var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    right var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    min-height var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    height var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    max-height var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    padding var(--decision-toast-collapse-duration)
      var(--decision-toast-collapse-easing),
    border-top-width 0ms linear,
    border-radius 0ms linear,
    box-shadow 200ms !important;
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  > [data-content],
.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  > [data-content]
  > [data-title],
.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  > [data-content]
  article {
  min-height: 0 !important;
  height: 10px !important;
  max-height: 10px !important;
  overflow: hidden !important;
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  > [data-content]
  article {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"][data-index="2"] {
  --decision-toast-collapsed-offset: 8px;
  --decision-toast-collapsed-scale: 0.88;
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"][data-index="3"] {
  --decision-toast-collapsed-offset: 16px;
  --decision-toast-collapsed-scale: 0.82;
}

.workspace-agent-decision-toast__edge-glow,
.workspace-agent-decision-toast__close,
.workspace-agent-decision-toast__content {
  transition: opacity var(--decision-toast-content-fade-duration) ease;
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  .workspace-agent-decision-toast__edge-glow,
.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  .workspace-agent-decision-toast__close,
.workspace-agent-decision-toast[data-sonner-toast][data-expanded="false"][data-front="false"]
  .workspace-agent-decision-toast__content {
  opacity: 0 !important;
  pointer-events: none !important;
}

.workspace-agent-decision-toast[data-sonner-toast][data-expanded="true"][data-front="false"]
  .workspace-agent-decision-toast__close,
.workspace-agent-decision-toast[data-sonner-toast][data-expanded="true"][data-front="false"]
  .workspace-agent-decision-toast__content {
  opacity: 0;
  animation: workspace-agent-decision-toast-content-fade-in 180ms ease 300ms
    forwards;
}

.workspace-agent-decision-toast[data-sonner-toast][data-removed="true"][data-swipe-out="false"] {
  opacity: 0 !important;
  transform: translateX(calc(100% + 24px)) !important;
}

@keyframes workspace-agent-decision-toast-content-fade-in {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.workspace-agents-status-panel__activity.agent-gui-edge-glow {
  --agent-gui-star-border-radius: 8px;
  border-color: var(--border-focus);
}

[data-message-center-item-id].agent-gui-edge-glow,
html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
  --agent-gui-star-border-color: var(--tutti-purple);
  --agent-gui-star-border-mid-color: color-mix(
    in srgb,
    var(--tutti-purple) 48%,
    transparent
  );
  --agent-gui-star-border-radius: 8px;
  --agent-gui-star-border-shadow: drop-shadow(
    0 0 6px color-mix(in srgb, var(--tutti-purple) 58%, transparent)
  );
  overflow: hidden;
}

.agent-gui-node__composer-controls-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.agent-gui-node__composer-select {
  min-height: 30px;
  border: 1px solid var(--agent-gui-border-subtle);
  border-radius: 6px;
  background: var(--agent-gui-surface-muted);
  color: var(--agent-gui-text-primary);
  font-size: 13px;
  padding: 0 10px;
}

.agent-gui-node__composer-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  border-radius: 6px;
  background: var(--agent-gui-surface-muted);
  padding: 0 10px;
  font-size: 13px;
  color: var(--agent-gui-text-primary);
  cursor: pointer;
  transition:
    opacity 120ms ease,
    background 120ms ease;
}

.agent-gui-node__composer-toggle:hover:not(:disabled) {
  background: var(--agent-gui-surface-strong, var(--agent-gui-surface-muted));
}

/* Off state: dim the control so the on/off choice reads at a glance. */
.agent-gui-node__composer-toggle[aria-pressed="false"] {
  opacity: 0.4;
}

.agent-gui-node__composer-toggle:disabled {
  cursor: default;
  opacity: 0.5;
}

.agent-gui-node__composer-queued-prompt-list {
  display: grid;
  width: 100%;
  min-width: 0;
  gap: 0;
  max-height: 36px;
  overflow: hidden;
  overscroll-behavior: contain;
  padding-right: 2px;
  transition: max-height 180ms cubic-bezier(0.16, 1, 0.3, 1);
}

.agent-gui-node__composer-queued-prompt-panel {
  display: grid;
  min-width: 0;
  gap: 4px;
  position: relative;
  z-index: 1;
  margin-bottom: -1px;
  padding: 10px 16px 12px;
  border: 1px solid var(--agent-gui-border-subtle, var(--line-2));
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
  background: var(--background-panel);
  box-shadow: none;
  cursor: default;
}

.agent-gui-node__composer-queued-prompt-panel[data-expandable="true"] {
  cursor: pointer;
}

.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-list {
  max-height: var(--agent-gui-queued-prompt-expanded-height, 280px);
  overflow-y: auto;
}

.agent-gui-node__composer-queued-prompt-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 4px;
  min-height: 20px;
}

.agent-gui-node__composer-queued-prompt-expand-cue {
  display: block;
  flex: 0 0 auto;
  color: var(--agent-gui-accent-strong);
  opacity: 0;
  transition:
    opacity 120ms ease,
    transform 120ms ease;
}

.agent-gui-node__composer-queued-prompt-panel:hover
  .agent-gui-node__composer-queued-prompt-expand-cue,
.agent-gui-node__composer-queued-prompt-panel:focus-visible
  .agent-gui-node__composer-queued-prompt-expand-cue,
.agent-gui-node__composer-queued-prompt-panel:focus-within
  .agent-gui-node__composer-queued-prompt-expand-cue,
.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-expand-cue {
  opacity: 1;
}

.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-expand-cue {
  transform: rotate(90deg);
}

.agent-gui-node__composer-queued-prompt-card {
  display: contents;
}

.agent-gui-node__composer-queued-prompt-row {
  display: grid;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 2px 0;
}

.agent-gui-node__composer-queued-prompt-row[data-draining="true"] {
  opacity: 0.58;
}

.agent-gui-node__composer-queued-prompt-main {
  display: block;
  width: 100%;
  min-width: 0;
}

.agent-gui-node__composer-queued-prompt-body {
  display: flex;
  width: 100%;
  align-items: center;
  min-width: 0;
  overflow: hidden;
  gap: 6px;
}

.agent-gui-node__composer-queued-prompt-images {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.agent-gui-node__composer-queued-prompt-image {
  display: block;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  border: 1px solid var(--agent-gui-border-subtle, var(--line-2));
  border-radius: 4px;
  object-fit: cover;
  background: var(--agent-gui-surface-muted);
}

.agent-gui-node__composer-queued-prompt-label {
  min-width: 0;
  font-size: 13px;
  font-weight: 600;
  color: var(--agent-gui-accent-strong);
  line-height: 20px;
}

.agent-gui-node__composer-queued-prompt-panel[data-queue-status="paused_by_user"]
  .agent-gui-node__composer-queued-prompt-label {
  overflow-wrap: anywhere;
  white-space: normal;
}

.agent-gui-node__composer-queued-prompt-count {
  margin-left: 4px;
  color: var(--agent-gui-accent-strong);
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  font-variant-numeric: tabular-nums;
}

.agent-gui-node__composer-queued-prompt-text {
  position: relative;
  width: 0;
  max-width: 100%;
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  font-size: 13px;
  line-height: 28px;
  overflow: hidden;
  text-overflow: clip;
  word-break: break-word;
  white-space: nowrap;
}

.agent-gui-node__composer-queued-prompt-text[data-overflowing="true"]::after {
  content: "…";
  position: absolute;
  top: 0;
  right: 0;
  width: 28px;
  height: 28px;
  background: linear-gradient(90deg, transparent, var(--background-panel) 52%);
  color: var(--agent-gui-text-secondary, var(--text-secondary));
  line-height: 28px;
  text-align: right;
  pointer-events: none;
}

.agent-gui-node__composer-queued-prompt-markdown {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-workspace-agent-markdown-shell="true"] {
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  white-space: nowrap;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-workspace-agent-markdown="true"] {
  display: block;
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

/* Queued rows are single-line previews. Flatten every markdown block
   (lists, code blocks, quotes, headings) to plain inline text — including
   their box styling from the markdown renderer — so the row's nowrap +
   overflow: hidden + "…" overlay can truncate instead of the blocks
   stacking extra lines. Scoped under the text wrapper to outrank the
   renderer's own [&_ol]/[&_pre]-style utilities. */
.agent-gui-node__composer-queued-prompt-text
  .agent-gui-node__composer-queued-prompt-markdown
  :is(p, ul, ol, li, blockquote, pre, h1, h2, h3, h4, h5, h6) {
  display: inline;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  white-space: nowrap;
}

.agent-gui-node__composer-queued-prompt-text
  .agent-gui-node__composer-queued-prompt-markdown
  pre
  code {
  white-space: nowrap;
}

/* Standalone media, tables, rules, and explicit line breaks cannot collapse
   into one text line — drop them from the preview entirely. MentionPill owns
   its nested image icon, which remains part of the inline mention preview. */
.agent-gui-node__composer-queued-prompt-text
  .agent-gui-node__composer-queued-prompt-markdown
  :is(img, video, table, hr, br, input):not([data-slot="mention-pill"] *) {
  display: none;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"] {
  width: max-content;
  max-width: min(100%, var(--agent-mention-max-width, 16rem));
  color: inherit;
  vertical-align: middle;
}

/* Entity mentions wrap the shared MentionPill in an interactive link. Keep
   that link layout-only so the pill remains the single owner of its visual
   box; otherwise the wrapper's padding and offset create a second pill around
   it and push adjacent queued mentions apart. */
.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token--entity {
  color: inherit;
  top: 0;
  gap: 0;
  max-width: min(100%, var(--agent-mention-max-width, 16rem));
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  line-height: inherit;
  transition: none;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token--file,
.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token--entity
  > [data-slot="mention-pill"] {
  top: 0;
  vertical-align: middle;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"].tsh-agent-object-token:hover {
  border-color: transparent;
  background: transparent;
  text-decoration: none;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-mention-kind="workspace-app"].tsh-agent-object-token--entity {
  color: inherit;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"]
  .tsh-agent-object-token__kind,
.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-file-mention="true"]
  [data-agent-mention-app-icon="true"] {
  color: inherit;
}

.agent-gui-node__composer-queued-prompt-markdown
  [data-agent-mention-kind="workspace-app"]
  [data-agent-mention-app-icon="true"]
  .tsh-agent-object-token__kind-icon {
  display: block;
  width: 16px;
  height: 16px;
  background-color: currentColor;
  mask-image: url("./assets/icons/product-filled.svg");
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: 16px 16px;
  -webkit-mask-image: url("./assets/icons/product-filled.svg");
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: 16px 16px;
}

.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-text {
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-markdown,
.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-markdown
  [data-workspace-agent-markdown-shell="true"],
.agent-gui-node__composer-queued-prompt-panel[data-expanded="true"]
  .agent-gui-node__composer-queued-prompt-markdown
  [data-workspace-agent-markdown="true"] {
  overflow: hidden;
  text-overflow: clip;
  white-space: nowrap;
}

.agent-gui-node__composer-queued-prompt-actions {
  display: inline-flex;
  justify-self: end;
  flex: 0 0 auto;
  align-items: center;
  gap: 4px;
}

.agent-gui-node__composer-queued-prompt-actions button {
  color: var(--text-secondary);
}

.agent-gui-node__composer-prompt-input-area textarea,
.agent-gui-node__composer-textarea {
  --agent-gui-composer-text-line-height: 24px;
  --agent-gui-composer-text-max-visible-lines: 3.5;
  /* prettier-ignore */
  --agent-gui-composer-text-viewport-height: calc(var(--agent-gui-composer-text-line-height) * var(--agent-gui-composer-text-max-visible-lines));

  width: 100%;
  min-width: 0;
  min-height: 46px;
  max-height: var(--agent-gui-composer-text-viewport-height);
  overflow-y: auto;
  border: 0;
  background: transparent;
  color: var(--agent-gui-text-primary);
  font: inherit;
  font-size: 13px;
  line-height: var(--agent-gui-composer-text-line-height);
  outline: 0;
  padding: 0;
  resize: none;
  scrollbar-width: thin;
  scrollbar-color: var(--transparency-hover) transparent;
  scrollbar-gutter: stable;
  -ms-overflow-style: auto;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area
  textarea,
.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-textarea {
  display: block;
  height: auto;
  min-height: 24px;
  max-height: var(--agent-gui-composer-text-viewport-height);
  overflow-x: hidden;
  overflow-y: auto;
  overflow-wrap: anywhere;
  padding-top: 12px;
  scrollbar-gutter: stable;
  /* Keep the scrollbar persistently visible (not hover/focus-only) once the
     draft overflows the visible viewport: a long pasted/dictated block of
     text must never look like a single visible line with no affordance that
     more content exists below (see: Feishu recvo2ITCPrpcA). */
  scrollbar-width: thin;
  white-space: pre-wrap;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area[data-has-draft-attachments="true"]
  textarea,
.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area[data-has-draft-attachments="true"]
  .agent-gui-node__composer-textarea {
  max-height: var(--agent-gui-composer-text-viewport-height);
  padding-top: 0;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-prompt-input-area
  textarea::-webkit-scrollbar,
.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-textarea::-webkit-scrollbar {
  display: block;
  width: 4px;
  height: 4px;
}

.agent-gui-node__composer-prompt-input-area textarea::-webkit-scrollbar,
.agent-gui-node__composer-textarea::-webkit-scrollbar {
  display: block;
  width: 4px;
  height: 4px;
}

.agent-gui-node__composer-prompt-input-area textarea::-webkit-scrollbar-track,
.agent-gui-node__composer-prompt-input-area textarea::-webkit-scrollbar-corner,
.agent-gui-node__composer-textarea::-webkit-scrollbar-track,
.agent-gui-node__composer-textarea::-webkit-scrollbar-corner {
  background: transparent;
}

.agent-gui-node__composer-prompt-input-area textarea::-webkit-scrollbar-thumb,
.agent-gui-node__composer-textarea::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: var(--transparency-hover);
}

.agent-gui-node__composer-input-shell[data-input-disabled="true"],
.agent-gui-node__composer-textarea[aria-disabled="true"] {
  cursor: not-allowed;
}

.agent-gui-node__composer-textarea.ProseMirror {
  border: 0;
  outline: 0;
  box-shadow: none;
}

.agent-gui-node__composer-textarea.ProseMirror:focus,
.agent-gui-node__composer-textarea.ProseMirror-focused {
  border: 0;
  outline: 0;
  box-shadow: none;
}

.agent-gui-node__composer-textarea p {
  margin: 0;
  font-size: 13px;
  line-height: 24px;
  min-height: 0;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-textarea
  p {
  display: block;
  width: auto;
  min-width: 0;
  min-height: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: pre-wrap;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-textarea
  .agent-rich-text-placeholder-node:first-child {
  position: relative;
  display: block;
  width: 100%;
  min-height: 24px;
}

.agent-gui-node__composer-textarea
  p:empty:not(.agent-rich-text-placeholder-node) {
  min-height: 0;
  line-height: 0;
}

.agent-gui-node__composer-textarea
  p:not(.agent-rich-text-placeholder-node):not(:empty) {
  position: relative;
  top: 0;
  line-height: var(--agent-gui-composer-text-line-height);
}

.agent-gui-node__composer-textarea
  p:not(.agent-rich-text-placeholder-node):not(:empty)
  .agent-rich-text-mention-node {
  transform: translateY(-2px);
}

.agent-gui-node__composer-textarea
  .agent-rich-text-placeholder-node:first-child::before {
  content: attr(data-agent-rich-text-placeholder);
  float: left;
  height: 0;
  color: var(--agent-gui-text-tertiary);
  font-size: 13px;
  line-height: 24px;
  pointer-events: none;
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-textarea
  .agent-rich-text-placeholder-node:first-child::before {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  float: none;
  height: 24px;
  line-height: 24px;
  white-space: nowrap;
}

.agent-gui-node__composer-prompt-input-area textarea::placeholder,
.agent-gui-node__composer-textarea::placeholder {
  color: var(--agent-gui-text-tertiary);
  line-height: 24px;
}

.agent-gui-node__composer-input-shell:focus-within,
.agent-gui-node__composer-input-shell:hover {
  box-shadow: 0 8px 24px rgb(0 0 0 / 6%);
}

.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-input-shell:focus-within,
.agent-gui-node__composer[data-layout="dock"]
  .agent-gui-node__composer-input-shell:hover {
  box-shadow: none;
}

.agent-gui-node__composer-input-shell:focus-within {
  border-color: var(--agent-gui-border-subtle);
}

.agent-gui-node__composer-input-shell-hero {
  border-color: transparent;
  border-radius: 14px;
  box-shadow: none;
}

.agent-gui-node__composer-input-shell-hero:hover,
.agent-gui-node__composer-input-shell-hero:focus-within {
  border-color: transparent;
  box-shadow: none;
}

.agent-gui-node__composer-project-row[data-project-missing="true"] {
  display: none;
}

.agent-gui-node__composer-project-row {
  display: flex;
  flex-wrap: nowrap;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 2px 8px;
}

.agent-gui-node__composer-input-group-hero
  .agent-gui-node__composer-project-row {
  padding: 2px 8px;
}

.agent-gui-node__composer-project-controls {
  display: grid;
  grid-template-columns: fit-content(240px);
  flex: 0 1 auto;
  min-width: 0;
  max-width: 100%;
  align-items: center;
  gap: 0;
}

.agent-gui-node__composer-project-controls:has(
  [data-testid="agent-gui-session-launch-mode"]
) {
  grid-template-columns: fit-content(240px) max-content;
}

.agent-gui-node__composer-project-trigger {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 240px;
}

.agent-gui-node__composer-project-controls
  [data-testid="agent-gui-session-launch-mode"] {
  flex: 0 0 auto;
  max-width: none;
}

.agent-gui-node__composer-provider-select {
  flex: 0 1 auto;
  min-width: 0;
}

.agent-gui-node__composer-handoff-trigger {
  padding-left: 6px;
}

.agent-gui-node__composer-handoff-icon {
  position: relative;
  display: inline-flex;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  align-items: center;
  justify-content: center;
  color: var(--text-secondary);
  contain: layout paint;
}

.agent-gui-node__composer-handoff-icon[data-playing="true"] {
  color: var(--text-primary);
}

.agent-gui-node__composer-handoff-icon[data-disabled="true"] {
  color: var(--agent-gui-text-tertiary);
}

.agent-gui-node__composer-handoff-icon-static,
.agent-gui-node__composer-handoff-icon-animated {
  width: 18px;
  height: 18px;
  display: block;
}

.agent-gui-node__composer-handoff-icon-static {
  background-color: currentColor;
  opacity: 1;
}

.agent-gui-node__composer-handoff-icon:has(
    .agent-gui-node__composer-handoff-icon-animated[data-active="true"]
  )
  .agent-gui-node__composer-handoff-icon-static {
  opacity: 0;
}

.agent-gui-node__composer-handoff-icon-animated {
  position: absolute;
  inset: 0;
  /* Match the APNG's padded 44px canvas to the static icon's visual size. */
  transform: scale(1.3);
  filter: var(--agent-gui-handoff-animation-filter, none);
  opacity: 0;
  pointer-events: none;
}

.agent-gui-node__composer-handoff-icon-animated[data-active="true"] {
  transform: translateZ(0) scale(1.3);
  opacity: 1;
  backface-visibility: hidden;
  will-change: opacity, transform;
}

.agent-gui-node__composer-tutti-mode-icon {
  position: relative;
  display: inline-flex;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  align-items: center;
  justify-content: center;
  /* Inherit color from the chip label so the mark tracks every state:
     text-secondary at rest, text-primary on hover, tutti-purple when armed. */
  contain: layout paint;
}

.agent-gui-node__composer-tutti-mode-icon-static,
.agent-gui-node__composer-tutti-mode-icon-animated {
  width: 16px;
  height: 16px;
  display: block;
}

.agent-gui-node__composer-tutti-mode-icon-static {
  background-color: currentColor;
  opacity: 1;
}

.agent-gui-node__composer-tutti-mode-icon:has(
    .agent-gui-node__composer-tutti-mode-icon-animated[data-active="true"]
  )
  .agent-gui-node__composer-tutti-mode-icon-static {
  opacity: 0;
}

.agent-gui-node__composer-tutti-mode-icon-animated {
  position: absolute;
  inset: 0;
  /* Match the 16px static mark exactly; the APNG canvas already pads the
    snapping hand and bursting stars, so no enlargement is applied. */
  opacity: 0;
  pointer-events: none;
}

.agent-gui-node__composer-tutti-mode-icon-animated[data-active="true"] {
  transform: translateZ(0);
  opacity: 1;
  backface-visibility: hidden;
  will-change: opacity, transform;
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__composer-tutti-mode-icon-animated {
    display: none;
  }

  .agent-gui-node__composer-tutti-mode-icon-static {
    opacity: 1 !important;
  }
}

.agent-gui-node__composer-handoff-icon[data-disabled="true"]
  .agent-gui-node__composer-handoff-icon-animated {
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__composer-handoff-icon-animated {
    display: none;
  }

  .agent-gui-node__composer-handoff-icon-static {
    opacity: 1 !important;
  }
}

:root[data-theme="dark"] .agent-gui-node__composer-handoff-icon-animated {
  --agent-gui-handoff-animation-filter: brightness(0) invert(1);
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"])
    .agent-gui-node__composer-handoff-icon-animated {
    --agent-gui-handoff-animation-filter: brightness(0) invert(1);
  }
}

.agent-gui-node__composer-handoff-menu-content [data-slot="select-item"] {
  padding-right: 0.5rem;
}

.agent-gui-node__composer-handoff-menu-content
  [data-slot="select-item"]
  > span:first-child {
  display: none;
}

.agent-gui-node__composer-prompt-tips {
  display: flex;
  flex: 1 1 0;
  min-width: 0;
  overflow: hidden;
  align-items: center;
  justify-content: flex-end;
}

.agent-gui-node__composer-prompt-tip {
  --agent-gui-prompt-tip-count: 1;
  --agent-gui-prompt-tip-cycle-duration: 5200ms;
  display: block;
  box-sizing: border-box;
  width: min(620px, 100%);
  max-width: 100%;
  min-width: 0;
  height: 18px;
  overflow: hidden;
  color: var(--agent-gui-text-tertiary);
  font-size: 11px;
  line-height: 18px;
  text-align: right;
}

.agent-gui-node__composer-prompt-tip-track {
  display: block;
  min-width: 0;
  animation: agent-gui-node-prompt-tip-in 180ms ease backwards;
}

.agent-gui-node__composer-prompt-tip[data-rotating="true"]
  .agent-gui-node__composer-prompt-tip-track {
  animation: agent-gui-node-prompt-tip-track
    var(--agent-gui-prompt-tip-cycle-duration)
    steps(var(--agent-gui-prompt-tip-count)) infinite;
  will-change: transform;
}

.agent-gui-node__layout[data-agent-gui-active="false"]
  .agent-gui-node__composer-prompt-tip-track,
.agent-gui-node__layout[data-agent-gui-active="false"]
  .agent-gui-node__composer-prompt-tip-item {
  animation: none;
  will-change: auto;
}

.agent-gui-node__composer-prompt-tip-item {
  display: block;
  min-width: 0;
  height: 18px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__composer-prompt-tip[data-rotating="true"]
  .agent-gui-node__composer-prompt-tip-item {
  animation: agent-gui-node-prompt-tip-cycle 5200ms
    cubic-bezier(0.22, 1, 0.36, 1) infinite;
}

.agent-gui-node__composer-prompt-tip-prefix {
  color: var(--agent-gui-text-tertiary);
  font-weight: 500;
}

.agent-gui-node__composer-prompt-tip-label {
  color: var(--agent-gui-text-tertiary);
  font-weight: 400;
}

.agent-gui-node__composer-prompt-tip-text {
  color: var(--agent-gui-text-tertiary);
  font-weight: 450;
}

.agent-gui-node__composer-prompt-tip-tooltip {
  max-width: min(560px, calc(100vw - 32px));
  overflow-wrap: anywhere;
  text-align: left;
  white-space: normal;
}

@keyframes agent-gui-node-prompt-tip-in {
  from {
    opacity: 0;
    transform: translateY(2px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes agent-gui-node-prompt-tip-track {
  to {
    transform: translateY(calc(var(--agent-gui-prompt-tip-count) * -18px));
  }
}

@keyframes agent-gui-node-prompt-tip-cycle {
  0% {
    opacity: 0;
    transform: translateY(6px);
  }

  4%,
  92% {
    opacity: 1;
    transform: translateY(0);
  }

  100% {
    opacity: 0;
    transform: translateY(-6px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-node__composer-prompt-tip-track,
  .agent-gui-node__composer-prompt-tip-item,
  .agent-gui-node__composer-prompt-tip[data-rotating="true"]
    .agent-gui-node__composer-prompt-tip-track,
  .agent-gui-node__composer-prompt-tip[data-rotating="true"]
    .agent-gui-node__composer-prompt-tip-item {
    animation: none;
  }
}

.agent-gui-node__composer-footer {
  display: flex;
  width: 100%;
  min-width: 0;
  justify-self: stretch;
  align-items: center;
  justify-content: space-between;
  column-gap: 12px;
  row-gap: 4px;
  flex-wrap: wrap;
  padding-top: 0;
}

.agent-gui-node__composer[data-layout="dock"] .agent-gui-node__composer-footer {
  position: relative;
  /* The base rule's width: 100% keeps the parent's content width, so the
     negative margins only shift the row left instead of widening it: the
     right edge falls 24px short of the composer edge and strands the model
     dropdown far from the send button above. width: auto lets
     justify-self: stretch + the negative margins span the full row. */
  width: auto;
  margin: 0 -12px -12px;
  padding: 0 14px 12px;
  background: var(--agent-gui-session-flow-background);
}

.agent-gui-node__composer-footer-left,
.agent-gui-node__composer-footer-right {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 10px;
}

.agent-gui-node__composer-footer-left {
  gap: 8px;
}

.agent-gui-node__composer-footer-accessory {
  display: flex;
  flex: 0 0 100%;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}

.agent-gui-node__composer-footer-accessory:empty {
  display: none;
}

.agent-gui-node__composer-footer-right {
  flex: 1 1 auto;
  gap: 2px;
  margin-left: auto;
  justify-content: flex-end;
  overflow: hidden;
}

.agent-gui-node__composer-footer-right
  .agent-gui-node__composer-menu-trigger
  > svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  margin-left: 0;
}

.agent-gui-node__composer-menu-trigger {
  display: inline-flex;
  min-width: 0;
  min-height: 28px;
  max-width: min(100%, 240px);
  align-items: center;
  gap: 2px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  padding: 0 8px;
  color: var(--agent-gui-text-secondary);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.2;
}

/* Plan-task assignment rows space items with the row gap instead of each
   trigger's own horizontal padding. */
.tutti-plan-task-assignment-row .agent-gui-node__composer-menu-trigger {
  padding-right: 0;
  padding-left: 0;
}

.agent-gui-node__composer-menu-item > span:last-child {
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.agent-gui-node__composer-menu-item > span:last-child > span {
  width: 100%;
  min-width: 0;
}

.agent-gui-node__composer-menu-trigger[data-agent-plan-mode-badge="true"],
.agent-gui-node__composer-menu-trigger[data-agent-plan-mode-badge="true"]:hover:not(
    :disabled
  ) {
  color: var(--state-warning);
}

.agent-gui-node__composer-menu-trigger[data-agent-goal-badge="true"],
.agent-gui-node__composer-menu-trigger[data-agent-goal-badge="true"]:hover:not(
    :disabled
  ) {
  color: var(--tutti-purple);
}

/* Active Tutti Mode chip: icon (bg-current) and label both go tutti-purple. */
.agent-gui-node__composer-menu-trigger[data-agent-tutti-mode-active="true"],
.agent-gui-node__composer-menu-trigger[data-agent-tutti-mode-active="true"]:hover:not(
    :disabled
  ) {
  color: var(--tutti-purple);
}
.agent-gui-node__composer-menu-trigger:hover:not(:disabled) {
  color: var(--agent-gui-text-primary);
}

.agent-gui-node__composer-menu-trigger[data-agent-model-reasoning-trigger="true"] {
  flex: 0 1 auto;
  width: auto;
  min-width: 0;
  max-width: min(100%, 180px);
  overflow: hidden;
}

.agent-gui-node__composer-menu-trigger[data-agent-model-reasoning-trigger="true"]:hover:not(
    :disabled
  ) {
  color: var(--agent-gui-text-secondary);
}

.agent-gui-node__composer-menu-trigger[data-agent-model-reasoning-trigger="true"]
  > span:first-child {
  flex: 0 1 auto;
}

.agent-gui-node__composer-menu-trigger[data-agent-model-reasoning-trigger="true"]
  > svg {
  transition: transform 200ms ease;
}

.agent-gui-node__composer-menu-trigger[data-agent-model-reasoning-trigger="true"][data-state="open"]
  > svg {
  transform: rotate(180deg);
}

.agent-gui-node__composer-menu-trigger[data-permission-tone="accent"],
.agent-gui-node__composer-menu-trigger[data-permission-tone="accent"]:hover:not(
    :disabled
  ),
.agent-gui-node__composer-menu-trigger[data-permission-tone="accent"] > span,
.agent-gui-node__composer-menu-trigger[data-permission-tone="accent"] > svg {
  color: var(--tutti-purple);
}

.agent-gui-node__composer-menu-trigger[data-permission-tone="success"],
.agent-gui-node__composer-menu-trigger[data-permission-tone="success"]:hover:not(
    :disabled
  ),
.agent-gui-node__composer-menu-trigger[data-permission-tone="success"] > span,
.agent-gui-node__composer-menu-trigger[data-permission-tone="success"] > svg {
  color: var(--agent-gui-success);
}

.agent-gui-node__composer-menu-trigger[data-permission-tone="warning"],
.agent-gui-node__composer-menu-trigger[data-permission-tone="warning"]:hover:not(
    :disabled
  ),
.agent-gui-node__composer-menu-trigger[data-permission-tone="warning"] > span,
.agent-gui-node__composer-menu-trigger[data-permission-tone="warning"] > svg {
  color: var(--agent-gui-warning) !important;
}

.agent-gui-node__composer-menu-trigger:focus,
.agent-gui-node__composer-menu-trigger:focus-visible {
  outline: none;
  box-shadow: none;
}

.agent-gui-node__composer-menu-trigger:disabled {
  cursor: not-allowed;
  color: var(--agent-gui-text-tertiary);
  opacity: 0.6;
}

.agent-gui-node__composer-menu-trigger:disabled:hover {
  cursor: not-allowed;
  color: var(--agent-gui-text-tertiary);
}

.agent-gui-node__composer-menu-content {
  --accent: var(--tutti-purple);
  --agent-gui-text-primary: var(--text-primary);
  --agent-gui-text-secondary: var(--text-secondary);
  --agent-gui-text-tertiary: var(--text-tertiary);
  --agent-gui-surface-raised: var(--background-fronted);
  --agent-gui-border-subtle: var(--line-2);
  --agent-gui-package-accent: var(--tutti-purple);
  --agent-gui-package-accent-strong: var(--tutti-purple);
  --agent-gui-package-success: var(--state-success);
  --agent-gui-package-warning: var(--state-warning);
  --agent-gui-package-danger: var(--state-danger);
  --agent-gui-accent: var(--agent-gui-package-accent);
  --agent-gui-accent-strong: var(--agent-gui-package-accent-strong);
  --agent-gui-success: var(--agent-gui-package-success);
  --agent-gui-warning: var(--agent-gui-package-warning);
  --agent-gui-danger: var(--agent-gui-package-danger);
  border: 1px solid var(--agent-gui-border-subtle);
  border-radius: 8px;
  padding: 4px;
  background: var(--agent-gui-surface-raised);
  color: var(--agent-gui-text-primary);
  max-height: min(
    360px,
    var(--radix-dropdown-menu-content-available-height, 360px)
  );
  overflow-y: auto;
  overscroll-behavior: contain;
}

.agent-gui-node__composer-menu-content
  [data-workspace-user-project-action-separator="true"] {
  margin-inline: 12px;
  background: var(--agent-gui-border-subtle, var(--line-2));
}

.agent-gui-node__composer-menu-label {
  padding: 4px 10px 2px;
  color: var(--agent-gui-text-secondary);
  font-size: 11px;
  line-height: 14px;
  font-weight: 600;
}

.agent-gui-node__composer-menu-item {
  min-height: 28px;
  border-radius: 6px;
  padding-block: 4px;
  padding-inline: 10px 28px;
  color: var(--agent-gui-text-primary);
  font-size: 13px;
  line-height: 1.2;
}

.agent-gui-node__composer-menu-item[data-disabled] {
  cursor: not-allowed;
  color: var(--text-disabled);
  opacity: 0.5;
}

.agent-gui-node__composer-menu-content[data-agent-composer-settings-layout="model-primary"]
  .agent-gui-node__composer-menu-item,
.agent-gui-node__composer-menu-content[data-agent-composer-settings-layout="model-submenu"]
  .agent-gui-node__composer-menu-item {
  padding-inline: 8px 10px;
}

.agent-gui-node__composer-menu-item-meta {
  min-width: 0;
  flex: 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.agent-gui-node__composer-chip {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  border-radius: 6px;
  padding: 0 12px;
  background: color-mix(in srgb, var(--agent-gui-success) 10%, transparent);
  color: var(--agent-gui-success);
  font-size: 13px;
  font-weight: 600;
}

.agent-gui-node__composer-send-button {
  display: grid;
  flex: 0 0 28px;
  place-items: center;
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  border: 0;
  border-radius: 999px;
  background: var(--text-primary);
  color: var(--text-inverted);
  padding: 0;
  transition:
    transform 140ms ease,
    background-color 140ms ease,
    color 140ms ease;
}

.agent-gui-node__composer-send-button:hover:not(:disabled) {
  transform: translateY(-1px);
  background: var(--text-primary);
  color: var(--text-inverted);
}

.agent-gui-node__composer-send-button:disabled {
  background: var(--text-disabled);
  color: var(--white-stationary);
  box-shadow: none;
}

.agent-gui-node__composer-send-button[data-state="loading"],
.agent-gui-node__composer-send-button[data-state="stopping"] {
  border: 0;
  background: var(--transparency-block);
  color: var(--text-primary);
  box-shadow: none;
}

.agent-gui-node__composer-send-button[data-state="interrupt"] {
  background: rgb(24 24 27);
  color: #ffffff;
}

.agent-gui-node__composer-send-button[data-state="interrupt"]:hover:not(
    :disabled
  ) {
  background: rgb(9 9 11);
}

.agent-gui-node__provider-rail {
  display: flex;
  width: 52px;
  min-width: 0;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: center;
  padding: 2px 0 16px;
  overflow-x: hidden;
  overflow-y: auto;
  mask-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - 24px),
    transparent 100%
  );
  -webkit-mask-image: linear-gradient(
    to bottom,
    #000 0,
    #000 calc(100% - 24px),
    transparent 100%
  );
  -webkit-app-region: no-drag;
}

.agent-gui-node__provider-rail-footer {
  display: flex;
  width: 52px;
  min-width: 0;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0;
  -webkit-app-region: no-drag;
}

.agent-gui-node__provider-rail-config-footer {
  padding-bottom: 4px;
}

.agent-gui-node__provider-rail-config-footer:last-child {
  padding-bottom: 12px;
}

.agent-gui-node__provider-rail-sidebar-footer {
  padding-bottom: 0;
}

.agent-gui-node__provider-rail-sidebar-footer:last-child {
  padding-bottom: 12px;
}

.agent-gui-node__provider-rail-sidebar-footer
  + .agent-gui-node__provider-rail-config-footer {
  margin-top: 8px;
}

.agent-gui-node__provider-rail-config-button {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  border: 0;
  border-radius: 6px;
  background: transparent;
  color: var(--text-secondary);
  padding: 0;
  transition:
    background 120ms ease,
    color 120ms ease;
  -webkit-app-region: no-drag;
}

.agent-gui-node__provider-rail-config-button:hover:not(:disabled),
.agent-gui-node__provider-rail-config-button[data-state="open"] {
  background: var(--transparency-hover);
  color: var(--text-primary);
}

.agent-gui-node__provider-rail-config-button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--border-focus);
}

.agent-gui-node__provider-rail-config-button:disabled {
  color: var(--text-tertiary);
  cursor: not-allowed;
}

.agent-gui-node__provider-rail-tile {
  position: relative;
  display: grid;
  width: 52px;
  min-width: 0;
  grid-template-rows: 32px;
  gap: 0;
  place-items: center;
  border: 0;
  background: transparent;
  color: var(--text-tertiary);
  padding: 0;
  font-size: 10px;
  font-weight: 600;
  line-height: 14px;
  text-align: center;
  transition:
    color 120ms ease,
    margin 140ms ease,
    opacity 140ms ease;
  -webkit-app-region: no-drag;
}

.agent-gui-node__provider-rail-tile[draggable="true"] {
  cursor: grab;
}

.agent-gui-node__provider-rail-tile[draggable="true"]:active {
  cursor: grabbing;
}

.agent-gui-node__provider-rail-tile + .agent-gui-node__provider-rail-tile {
  margin-top: 12px;
}

.agent-gui-node__provider-rail-tile-label {
  max-width: 100%;
  margin-top: 4px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.agent-gui-node__provider-rail-tile:has(
  + .agent-gui-node__provider-rail-separator
) {
  padding-bottom: 0;
}

.agent-gui-node__provider-rail-tile:hover:not(:disabled) {
  color: var(--text-secondary);
}

.agent-gui-node__provider-rail-tile:disabled {
  cursor: not-allowed;
  opacity: 0.3;
}

.agent-gui-node__provider-rail-tile[data-dragging="true"] {
  opacity: 0.42;
}

.agent-gui-node__provider-rail-tile[data-drag-over="before"] {
  margin-top: 24px;
}

.agent-gui-node__provider-rail-tile[data-drag-over="after"] {
  margin-bottom: 12px;
}

.agent-gui-node__provider-rail-tile[data-drag-over="before"]::before,
.agent-gui-node__provider-rail-tile[data-drag-over="after"]::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  height: 2px;
  border-radius: 999px;
  background: var(--brand-primary, var(--tutti-purple));
  pointer-events: none;
}

.agent-gui-node__provider-rail-tile[data-drag-over="before"]::before {
  top: -13px;
}

.agent-gui-node__provider-rail-tile[data-drag-over="after"]::after {
  bottom: -13px;
}

.agent-gui-node__provider-rail-separator {
  display: block;
  width: 28px;
  height: 1px;
  flex: 0 0 auto;
  margin-block: 12px;
  background: var(--line-2);
}

.agent-gui-node__provider-rail-tile[data-loading="true"] {
  cursor: progress;
}

.agent-gui-node__provider-rail-avatar {
  --agent-gui-avatar-badge-offset: -4px;
  --agent-gui-avatar-badge-size: 16px;

  position: relative;
  box-sizing: border-box;
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  overflow: visible;
  border: 2px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--text-tertiary);
  transition:
    border-color 140ms ease,
    outline-color 140ms ease,
    background-color 140ms ease,
    color 140ms ease,
    opacity 140ms ease,
    transform 140ms ease;
}

.agent-gui-node__provider-rail-tile:not([data-selected="true"])
  .agent-gui-node__provider-rail-avatar {
  opacity: 1;
}

/* "Beta" tag straddling the selected icon's stroke: its centerline sits on
   the avatar's outer edge (the stroke is centered there with a -1px
   outline offset), horizontally centered on the icon. */
.agent-gui-node__provider-rail-beta-badge {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  width: 26px;
  height: auto;
  pointer-events: none;
}

.agent-gui-node__provider-rail-tile:hover:not(:disabled)
  .agent-gui-node__provider-rail-avatar {
  background: var(--fill-secondary);
  color: var(--text-secondary);
}

.agent-gui-node__provider-rail-tile[data-selected="true"] {
  color: var(--text-primary);
}

/* Selected stroke floats 1px outside the 28px icon container: a 2px outline
   centered on the avatar's outer edge (-1px offset) leaves exactly 1px of
   transparent gap between the container and the stroke's inner edge. */
.agent-gui-node__provider-rail-tile[data-selected="true"]
  .agent-gui-node__provider-rail-avatar {
  border-color: transparent;
  background: color-mix(in srgb, var(--background-fronted) 80%, white);
  outline: 2px solid var(--brand-primary, var(--tutti-purple));
  outline-offset: -1px;
  color: var(--brand-primary, var(--tutti-purple));
}

.agent-gui-node__provider-rail-avatar-icon {
  width: 18px;
  height: 18px;
}

.agent-gui-node__provider-rail-avatar-image {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  object-fit: contain;
}

.agent-gui-node__agent-avatar {
  position: relative;
}

.agent-gui-node__agent-avatar-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.agent-gui-node__agent-avatar-badge {
  position: absolute;
  right: var(--agent-gui-avatar-badge-offset, -4px);
  bottom: var(--agent-gui-avatar-badge-offset, -4px);
  box-sizing: border-box;
  display: grid;
  width: var(--agent-gui-avatar-badge-size, 16px);
  height: var(--agent-gui-avatar-badge-size, 16px);
  place-items: center;
  overflow: hidden;
  border: 1px solid var(--background-fronted);
  border-radius: 999px;
  background: var(--background-fronted);
  pointer-events: none;
  font-size: 9px;
  line-height: 1;
}

.agent-gui-node__agent-avatar-badge-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.agent-gui-node__provider-rail-tile[data-loading="true"]
  .agent-gui-node__provider-rail-avatar {
  background: linear-gradient(
    90deg,
    var(--fill-tertiary),
    var(--fill-secondary),
    var(--fill-tertiary)
  );
  background-size: 200% 100%;
  animation: agent-gui-provider-target-loading 1.2s ease-in-out infinite;
}

.agent-gui-provider-manager-tile[data-dragging="true"] {
  opacity: 0.45;
}

.agent-gui-provider-manager-drop-zone {
  transition:
    background-color 140ms ease,
    box-shadow 140ms ease;
}

.agent-gui-provider-manager-drop-zone[data-drop-active="true"] {
  background: color-mix(
    in srgb,
    var(--brand-primary, var(--tutti-purple)) 7%,
    transparent
  );
  box-shadow: inset 0 0 0 1px
    color-mix(
      in srgb,
      var(--brand-primary, var(--tutti-purple)) 42%,
      transparent
    );
}

.agent-gui-provider-manager-drop-zone[data-drop-blocked="true"] {
  background: color-mix(in srgb, var(--state-danger) 6%, transparent);
  box-shadow: inset 0 0 0 1px
    color-mix(in srgb, var(--state-danger) 28%, transparent);
}

.agent-gui-provider-manager-tile
  > :not(.agent-gui-provider-manager-drop-indicator) {
  transition: translate 140ms ease;
}

.agent-gui-provider-manager-tile[data-drag-over="before"]
  > :not(.agent-gui-provider-manager-drop-indicator) {
  translate: 8px 0;
}

.agent-gui-provider-manager-tile[data-drag-over="after"]
  > :not(.agent-gui-provider-manager-drop-indicator) {
  translate: -8px 0;
}

.agent-gui-provider-manager-drop-indicator {
  position: absolute;
  top: 4px;
  bottom: 4px;
  width: 2px;
  border-radius: 999px;
  background: var(--brand-primary, var(--tutti-purple));
  pointer-events: none;
}

.agent-gui-provider-manager-drop-indicator[data-position="before"] {
  left: -9px;
}

.agent-gui-provider-manager-drop-indicator[data-position="after"] {
  right: -9px;
}

.agent-gui-provider-manager-tile[data-long-press="true"] {
  animation: agent-gui-provider-manager-long-press 550ms linear;
}

.agent-gui-provider-manager-tile[data-editing="true"] {
  transform-origin: 50% 42%;
  animation: agent-gui-provider-manager-wiggle 180ms ease-in-out infinite
    alternate;
}

.agent-gui-provider-manager-tile[data-editing="true"]:nth-child(2n) {
  animation-delay: -90ms;
  animation-direction: alternate-reverse;
}

.agent-gui-provider-manager-tile[data-editing="true"][data-drag-active="true"] {
  animation: none;
}

@keyframes agent-gui-provider-manager-wiggle {
  0% {
    transform: rotate(-1.2deg) translateY(0);
  }

  100% {
    transform: rotate(1.2deg) translateY(-0.5px);
  }
}

@keyframes agent-gui-provider-manager-long-press {
  from {
    scale: 1;
  }

  to {
    scale: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-provider-manager-tile[data-editing="true"] {
    animation: none;
  }
}

@keyframes agent-gui-provider-target-loading {
  0% {
    background-position: 100% 0;
  }

  100% {
    background-position: -100% 0;
  }
}

.agent-gui-node__empty-hero {
  /* Center one shared frame instead of each state's intrinsic content height.
     Wrapped titles, composer controls, and readiness actions then grow down. */
  --agent-gui-empty-hero-anchor-block-size: 398px;

  display: flex;
  width: 100%;
  min-height: 100%;
  align-items: center;
  justify-content: center;
  padding: 24px clamp(32px, 4vw, 48px) 40px;
}

.agent-gui-node__empty-hero-body {
  --agent-gui-empty-hero-gap: 24px;

  display: grid;
  width: min(820px, 100%);
  min-width: 0;
  block-size: var(--agent-gui-empty-hero-anchor-block-size);
  align-content: start;
  gap: var(--agent-gui-empty-hero-gap);
  justify-items: center;
}

.agent-gui-node__empty-hero-icon-slot {
  display: grid;
  width: 54px;
  height: 54px;
  place-items: center;
}

/* The coverflow carousel needs a wider, taller stage than the single-icon
   slot; keep it centered in the hero column. */
.agent-gui-node__empty-hero-icon-slot:has(
  > .agent-gui-node__empty-hero-carousel
),
.agent-gui-node__empty-hero-icon-slot[data-carousel-placeholder="true"] {
  width: min(400px, 100%);
  min-width: 320px;
  height: 112px;
}

.agent-gui-node__empty-hero-carousel-stage {
  position: relative;
  top: -24px;
  width: 100%;
  min-height: 100%;
}

.agent-gui-node__empty-hero-carousel-layer {
  position: absolute;
  z-index: 1;

  --agent-gui-hero-carousel-scale: 0.8;

  /* The stage measures the body's placeholder slot and pins the layer to it;
     the calc()/50% fallbacks remain only as the first-paint estimate. */
  top: var(--agent-gui-hero-carousel-slot-top, calc(50% - 210px));
  left: var(--agent-gui-hero-carousel-slot-left, 50%);
  width: round(nearest, min(400px, calc(100% - 64px)), 1px);
  min-width: 320px;
  transform: translateX(-50%) scale(var(--agent-gui-hero-carousel-scale));
  transform-origin: center center;
}

@media (max-height: 639px) {
  .agent-gui-node__empty-hero-carousel-layer {
    --agent-gui-hero-carousel-scale: 0.64;
    top: calc(
      var(--agent-gui-hero-carousel-slot-top, calc(50% - 210px)) - 16px
    );
  }
}

.agent-gui-node__empty-hero-carousel-placeholder {
  width: min(400px, 100%);
  min-width: 320px;
  height: 112px;
  flex: 0 0 auto;
}

/* Keep the overlayed carousel interactive while the ready/gated body below it
   changes independently. */
.agent-gui-node__empty-hero-carousel-layer
  > .agent-gui-node__empty-hero-carousel {
  pointer-events: auto;
}

.agent-gui-node__empty-hero-icon-effect {
  --agent-gui-avatar-badge-offset: -5px;
  --agent-gui-avatar-badge-size: 18px;

  display: block;
  width: 48px;
  height: 48px;
  object-fit: contain;
  animation: agent-gui-empty-hero-enter 260ms cubic-bezier(0.16, 1, 0.3, 1) 40ms
    backwards;
}

/* Empty-hero agent carousel ("All" tab): a three.js ring of same-sized agent
   records (see agentGuiHeroCarouselScene.ts). Records farther around the ring
   genuinely shrink and fade with perspective; visuals live on the canvas,
   while visually-hidden buttons keep the switcher reachable by keyboard,
   screen readers, and DOM tests. */
.agent-gui-node__empty-hero-carousel {
  position: relative;
  width: 100%;
  height: 112px;
  outline: none;
  touch-action: pan-y;
  animation: agent-gui-empty-hero-enter 260ms cubic-bezier(0.16, 1, 0.3, 1) 40ms
    backwards;
}

/* Reference VinylPlayer structure, scaled from 440px to the 112px hero slot. */
.agent-gui-vinyl-player {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 440px;
  height: 440px;
  overflow: visible;
  border-radius: 40px;
  background: transparent;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.25);
  transform-origin: center;
}

.agent-gui-vinyl-player__chassis {
  position: absolute;
  top: 12px;
  left: 0;
  z-index: 0;
  width: 440px;
  height: 416px;
  object-fit: fill;
  pointer-events: none;
}

/* "Beta" wordmark SVG tucked into the turntable's bottom-right corner, tilted
   30° to the left. The player renders at 0.25 (root) × 0.8 (hero layer) = 0.2
   on screen, so the artwork is counter-scaled to net a readable on-screen size;
   position lengths stay in the 440px local space (× 0.2 on screen). */
.agent-gui-vinyl-player__beta {
  position: absolute;
  top: 380px;
  left: 372px;
  z-index: 3;
  width: 113px;
  height: auto;
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(-30deg) scale(1.9);
  transform-origin: center;
  animation: agent-gui-vinyl-player-beta-slap 420ms
    cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

/* Sticker "slap": drops in oversized and transparent, then snaps down to size
   with a slight overshoot so it lands like a decal being pressed on. Keep the
   translate/rotate in every keyframe since transform is a single property. */
@keyframes agent-gui-vinyl-player-beta-slap {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) rotate(-30deg) scale(4.2);
  }

  60% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(-30deg) scale(1.7);
  }

  100% {
    opacity: 1;
    transform: translate(-50%, -50%) rotate(-30deg) scale(1.9);
  }
}

.agent-gui-vinyl-player__indicator {
  position: absolute;
  top: 32px;
  left: 32px;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border: 1px solid #c0c2c4;
  border-radius: 50%;
  background: #9ea0a3;
  box-shadow:
    0 2px 4px rgb(0 0 0 / 10%),
    inset 0 1px 2px rgb(255 255 255 / 80%);
  display: none;
}

.agent-gui-vinyl-player__indicator-light {
  display: flex;
  width: 20px;
  height: 20px;
  align-items: center;
  justify-content: center;
  gap: 2px;
  border: 1px solid #384a3c;
  border-radius: 50%;
  background: #4b6652;
  box-shadow: inset 0 2px 6px rgb(0 0 0 / 40%);
}

.agent-gui-vinyl-player__indicator-light--playing {
  border-color: #86f0a6;
  background: #5edb84;
  box-shadow:
    0 0 12px rgb(74 222 128 / 70%),
    inset 0 1px 4px rgb(255 255 255 / 60%);
}

.agent-gui-vinyl-player__indicator-light > span {
  width: 1px;
  height: 8px;
  background: rgb(255 255 255 / 80%);
}

.agent-gui-vinyl-player__platter {
  position: absolute;
  top: 29px;
  left: 24px;
  display: grid;
  width: 370px;
  height: 370px;
  place-items: center;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}

.agent-gui-vinyl-player__platter-inner {
  display: grid;
  width: 340px;
  height: 340px;
  place-items: center;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
}

.agent-gui-vinyl-player__record {
  position: relative;
  display: grid;
  width: 326px;
  height: 326px;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background:
    repeating-radial-gradient(
      circle at center,
      rgb(255 255 255 / 9%) 0 2px,
      rgb(0 0 0 / 0%) 2px 8px
    ),
    #111;
  box-shadow: 0 4px 15px rgb(0 0 0 / 60%);
  animation: agent-gui-vinyl-player-record-spin 4s linear infinite paused;
}

.agent-gui-vinyl-player__record--playing {
  animation-play-state: running;
}

@keyframes agent-gui-vinyl-player-record-spin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-vinyl-player__record {
    animation: none;
  }
}

.agent-gui-vinyl-player__groove,
.agent-gui-vinyl-player__reflection,
.agent-gui-vinyl-player__label,
.agent-gui-vinyl-player__hole {
  position: absolute;
  border-radius: 50%;
}

.agent-gui-vinyl-player__groove {
  border: 2px solid rgb(255 255 255 / 12%);
}

.agent-gui-vinyl-player__reflection {
  inset: 0;
  background: conic-gradient(
    from 0deg,
    transparent 0deg,
    rgb(255 255 255 / 15%) 45deg,
    transparent 90deg,
    transparent 180deg,
    rgb(255 255 255 / 15%) 225deg,
    transparent 270deg
  );
  mix-blend-mode: screen;
  opacity: 0.35;
}

.agent-gui-vinyl-player__label {
  display: grid;
  width: 144px;
  height: 144px;
  place-items: center;
  overflow: hidden;
  background: #2a2a2a;
  box-shadow: inset 0 0 12px rgb(0 0 0 / 60%);
}

.agent-gui-vinyl-player__label > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.agent-gui-vinyl-player__tonearm {
  position: absolute;
  top: -20px;
  right: 14px;
  z-index: 4;
  width: 140px;
  height: 400px;
  object-fit: contain;
  pointer-events: none;
  transform: rotate(15deg);
  transform-origin: 50% 8%;
}

.agent-gui-vinyl-player__hole {
  width: 12px;
  height: 12px;
  border: 0.5px solid #717171;
  background: #e0e2e5;
  box-shadow: inset 0 1px 4px rgb(0 0 0 / 80%);
}

.agent-gui-vinyl-player__power-control {
  position: absolute;
  bottom: 32px;
  left: 32px;
  display: none;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.agent-gui-vinyl-player__lever {
  display: block;
  width: 16px;
  height: 44px;
  border: 1px solid #111;
  border-radius: 10px;
  background: linear-gradient(90deg, #1a1a1a, #3a3a3a, #1a1a1a);
  box-shadow: 4px 2px 8px rgb(0 0 0 / 40%);
  transform-origin: bottom;
}

.agent-gui-vinyl-player__power-label {
  color: #3f4144;
  font-size: 10px;
  font-weight: 700;
}

.agent-gui-vinyl-player__tone-control {
  position: absolute;
  right: 32px;
  bottom: 32px;
  display: none;
  align-items: center;
  gap: 12px;
  color: #65676b;
  font-size: 10px;
  font-weight: 700;
}

.agent-gui-vinyl-player__tone-control > span:first-child {
  width: 30px;
  height: 52px;
  border: 1px solid #a0a2a4;
  border-radius: 6px;
  background: linear-gradient(#b0b2b5, #ced0d3);
  box-shadow: inset 0 2px 5px rgb(0 0 0 / 30%);
}

/* Match the WebGL carousel's historical BADGE_DIAMETER (0.36) and
   BADGE_OFFSET (0.4): the selected DOM player must keep the same owner-marker
   geometry as the records that move into and out of the center slot. */
.agent-gui-vinyl-player__owner-badge {
  position: absolute;
  right: -8%;
  bottom: -8%;
  z-index: 5;
  box-sizing: border-box;
  display: grid;
  width: 36%;
  aspect-ratio: 1;
  place-items: center;
  overflow: hidden;
  border: 8px solid var(--background-fronted);
  border-radius: 999px;
  background: var(--background-fronted);
  font-size: 18px;
  line-height: 1;
}

.agent-gui-node__empty-hero-carousel:has(:focus-visible) {
  border-radius: 12px;
  box-shadow: 0 0 0 1.5px var(--tutti-purple);
}

.agent-gui-node__empty-hero-carousel-canvas {
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 120ms ease-out;

  /* Fade-out mask: the horizontal fade runs edge to edge so there is no dead
     band beside the integer-aligned canvas buffer. The vertical band melts
     tiles sinking down the wheel instead of clipping them at the bottom. */
  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      #000 20%,
      #000 80%,
      transparent 100%
    ),
    linear-gradient(180deg, #000 0%, #000 70%, transparent 100%);
  mask-composite: intersect;
  mask-size: 100% 100%;
  mask-position: center;
}

.agent-gui-node__empty-hero-carousel[data-icons-ready="true"]
  > .agent-gui-node__empty-hero-carousel-canvas {
  opacity: 1;
}

.agent-gui-node__empty-hero-carousel-item {
  position: absolute;
  overflow: hidden;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
}

.agent-gui-node__empty-hero-title {
  margin: 0;
  text-align: center;
  color: var(--text-primary);
  font-size: 24px;
  line-height: 1.3;
  font-weight: 500;
  animation: agent-gui-empty-hero-enter 280ms cubic-bezier(0.16, 1, 0.3, 1)
    110ms backwards;
}

.agent-gui-node__empty-hero-provider {
  font-family: Merriweather, Georgia, serif;
  font-style: italic;
  font-weight: 700;
}

.agent-gui-node__empty-provider-gate {
  max-width: 520px;
  gap: 8px;
}

/* Gate gap is 8px; add 16px so the icon-to-title spacing is 24px. */
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-icon-effect,
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-carousel,
.agent-gui-node__empty-provider-gate
  > .agent-gui-node__empty-hero-carousel-placeholder {
  margin-bottom: 16px;
}

/* Keep the gate's carousel the same width as the ready hero's so the ring
   doesn't jump when selection lands on an unavailable agent. */
.agent-gui-node__empty-provider-gate > .agent-gui-node__empty-hero-carousel {
  max-width: min(400px, 100%);
}

.agent-gui-node__empty-provider-gate-description {
  max-width: 420px;
  margin: 0;
  text-align: center;
  color: var(--text-secondary);
  font-size: 14px;
  line-height: 1.55;
  animation: agent-gui-empty-hero-enter 280ms cubic-bezier(0.16, 1, 0.3, 1)
    150ms backwards;
}

.agent-gui-node__empty-provider-gate-status {
  min-height: 20px;
  color: var(--text-secondary);
  font-size: 13px;
  line-height: 20px;
  animation: agent-gui-empty-hero-enter 280ms cubic-bezier(0.16, 1, 0.3, 1)
    170ms backwards;
}

.agent-gui-node__empty-provider-gate-action {
  /* Container gap is 8px; add 16px so the description-to-button spacing is 24px. */
  margin-top: 16px;
  animation: agent-gui-empty-hero-enter 300ms cubic-bezier(0.16, 1, 0.3, 1)
    190ms backwards;
}

.agent-gui-node__empty-hero-provider-select {
  display: inline-flex;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 0;
  vertical-align: baseline;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: inherit;
  font: inherit;
  gap: 0.08em;
  line-height: inherit;
  letter-spacing: inherit;
  box-shadow: none;
  white-space: nowrap;
}

.agent-gui-node__empty-hero-provider-select:hover,
.agent-gui-node__empty-hero-provider-select:focus,
.agent-gui-node__empty-hero-provider-select:focus-visible,
.agent-gui-node__empty-hero-provider-select[data-state="open"] {
  background: transparent;
  color: inherit;
  box-shadow: none;
}

.agent-gui-node__empty-hero-provider-select > svg {
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
  margin-top: 0.08em;
  margin-left: 2px;
  opacity: 0.72;
  stroke-width: 3px;
}

.agent-gui-node__empty-provider-gate-action:disabled {
  border-color: var(--line-2);
  background: var(--fill-tertiary);
  color: var(--text-disabled);
  cursor: not-allowed;
  opacity: 0.65;
}

.agent-gui-node__empty-hero-body > .agent-gui-node__composer-hero {
  animation: agent-gui-empty-hero-enter 300ms cubic-bezier(0.16, 1, 0.3, 1)
    180ms backwards;
}

.agent-gui-node__empty-hero-suggestions {
  position: relative;
  display: grid;
  width: min(760px, 100%);
  margin: 0 auto;
  gap: 12px;
  justify-items: stretch;
  animation: agent-gui-empty-hero-enter 300ms cubic-bezier(0.16, 1, 0.3, 1)
    240ms backwards;
}

.agent-gui-node__empty-hero-suggestions-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.agent-gui-node__empty-hero-suggestions-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid var(--line-2, var(--nexight-line-2));
  border-radius: 999px;
  background: transparent;
  padding: 6px 14px;
  color: var(--text-secondary);
  font: inherit;
  font-size: 11px;
  line-height: 1.2;
  cursor: pointer;
  transition:
    background 120ms ease,
    border-color 120ms ease,
    color 120ms ease;
}

.agent-gui-node__empty-hero-suggestions-chip:hover {
  border-color: var(--line-1, var(--nexight-line-1));
  background: var(--background-fronted);
  color: var(--text-primary);
}

.agent-gui-node__empty-hero-suggestions-chip[aria-pressed="true"] {
  border-color: var(--line-1, var(--nexight-line-1));
  background: color-mix(in srgb, var(--text-tertiary) 12%, transparent);
  color: var(--text-primary);
}

.agent-gui-node__empty-hero-suggestions-chip-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  opacity: 0.8;
}

.agent-gui-node__empty-hero-suggestions-card {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  z-index: 5;
  display: grid;
  gap: 2px;
  border: 1px solid var(--line-2, var(--nexight-line-2));
  border-radius: 16px;
  background: var(--background-fronted);
  padding: 8px;
  box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.28);
  animation: agent-gui-empty-hero-enter 220ms cubic-bezier(0.16, 1, 0.3, 1)
    backwards;
}

.agent-gui-node__empty-hero-suggestions-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px 4px;
}

.agent-gui-node__empty-hero-suggestions-card-title {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--text-tertiary);
  font-size: 13px;
  line-height: 1.2;
}

.agent-gui-node__empty-hero-suggestions-card-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex: 0 0 auto;
  border: 0;
  border-radius: 8px;
  background: transparent;
  padding: 0;
  color: var(--text-tertiary);
  cursor: pointer;
  transition:
    background 120ms ease,
    color 120ms ease;
}

.agent-gui-node__empty-hero-suggestions-card-close:hover {
  background: color-mix(in srgb, var(--text-tertiary) 10%, transparent);
  color: var(--text-primary);
}

.agent-gui-node__empty-hero-suggestions-card-close > svg {
  width: 16px;
  height: 16px;
}

.agent-gui-node__empty-hero-suggestions-item {
  display: flex;
  align-items: center;
  width: 100%;
  height: 32px;
  border: 0;
  border-radius: 6px;
  background: transparent;
  padding: 0 14px;
  color: var(--text-secondary);
  font: inherit;
  font-size: 13px;
  line-height: 1.2;
  text-align: left;
  cursor: pointer;
  transition:
    background 120ms ease,
    color 120ms ease;
}

.agent-gui-node__empty-hero-suggestions-item:hover {
  background: color-mix(in srgb, var(--text-tertiary) 8%, transparent);
  color: var(--text-primary);
}

@container agent-gui-node (max-width: 900px) {
  .agent-gui-node__empty-hero {
    padding-right: 32px;
    padding-left: 32px;
  }

  .agent-gui-node__empty-hero-body,
  .agent-gui-node__empty-hero-body > .agent-gui-node__composer-hero,
  .agent-gui-node__empty-hero-body > .agent-gui-node__empty-hero-suggestions {
    width: 100%;
  }
}

[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-hero-icon-effect,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-hero-carousel,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-hero-title,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-provider-gate-description,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-provider-gate-status,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-provider-gate-action,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-hero-body
  > .agent-gui-node__composer-hero,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-hero-suggestions,
[data-workspace-node-window-kind="agentGui"][data-workspace-node-window-appearance="embedded"]
  .agent-gui-node__empty-hero-suggestions-card {
  animation: none;
}

@keyframes agent-gui-empty-hero-enter {
  from {
    opacity: 0;
    transform: translate3d(0, 18px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes agent-gui-star-border-path {
  0% {
    opacity: 0;
    offset-distance: 0%;
  }

  5% {
    opacity: 1;
  }

  20% {
    opacity: 1;
  }

  27% {
    opacity: 0;
  }

  30% {
    opacity: 0;
    offset-distance: 30%;
  }

  34% {
    opacity: 1;
  }

  46% {
    opacity: 1;
  }

  50% {
    opacity: 0;
    offset-distance: 50%;
  }

  55% {
    opacity: 1;
  }

  70% {
    opacity: 1;
  }

  77% {
    opacity: 0;
  }

  80% {
    opacity: 0;
    offset-distance: 80%;
  }

  84% {
    opacity: 1;
  }

  96% {
    opacity: 1;
  }

  100% {
    opacity: 0;
    offset-distance: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .agent-gui-edge-glow::before,
  .agent-gui-edge-glow::after,
  .agent-gui-node__composer-input-group[data-edge-glow="true"]::before,
  .agent-gui-node__composer-input-group[data-edge-glow="true"]::after {
    animation: none;
    opacity: 0.62;
  }
}

.desktop-dock-popup__agent-info {
  position: relative;
  z-index: 2;
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  color: var(--text-tertiary);
  cursor: default;
  outline: none;
  transition:
    background-color 140ms ease,
    color 140ms ease;
}

.desktop-dock-popup__agent-info:hover,
.desktop-dock-popup__agent-info:focus-visible {
  color: var(--text-secondary);
  background: var(--transparency-block);
}

.desktop-dock-popup__agent-info-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 3;
  box-sizing: border-box;
  width: min(280px, calc(100vw - 48px));
  min-width: 220px;
  max-width: calc(100vw - 48px);
  padding: 10px 12px;
  border: 1px solid var(--line-2, var(--tutti-line-2));
  border-radius: 8px;
  background: var(--background-fronted);
  box-shadow: 0 12px 32px rgb(0 0 0 / 0.16);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition:
    opacity 140ms ease,
    transform 140ms ease;
}

.desktop-dock-popup__agent-info-popover--portal {
  position: fixed;
  z-index: 1000000;
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  transform-origin: top center;
  animation: desktop-dock-agent-info-popover-enter 160ms
    cubic-bezier(0.16, 1, 0.3, 1) both;
}

.desktop-dock-popup__agent-info:hover .desktop-dock-popup__agent-info-popover,
.desktop-dock-popup__agent-info:focus-visible
  .desktop-dock-popup__agent-info-popover,
.desktop-dock-popup__agent-info:focus-within
  .desktop-dock-popup__agent-info-popover {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

@keyframes desktop-dock-agent-info-popover-enter {
  from {
    opacity: 0;
    transform: translateY(-4px) scale(0.98);
  }

  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .desktop-dock-popup__agent-info-popover--portal {
    animation: none;
  }
}

.desktop-dock-popup__agent-info-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.desktop-dock-popup__agent-info-item {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: 16px;
  align-items: baseline;
  color: var(--text-primary);
  font-size: 12.5px;
  line-height: 1.45;
  white-space: normal;
}

.desktop-dock-popup__agent-info-item[data-has-label="false"] {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
}

.desktop-dock-popup__agent-info-label {
  color: var(--text-secondary);
  white-space: nowrap;
}

.desktop-dock-popup__agent-info-value {
  display: block;
  overflow: hidden;
  min-width: 0;
  color: var(--text-primary);
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.desktop-dock-popup__agent-info-item[data-has-label="false"]
  .desktop-dock-popup__agent-info-value {
  text-align: left;
}

.desktop-dock-popup__agent-status-secondary {
  color: var(--text-tertiary);
}

.workspace-node-window__title:has(.desktop-dock-popup__agent-info) {
  overflow: visible;
}

.workspace-agents-status-panel__activity-footer {
  width: 100%;
  margin-top: 4px;
}

[data-workspace-app-icon="true"] {
  display: inline-grid;
  min-width: 0;
  min-height: 0;
  place-items: center;
  overflow: hidden;
  border-radius: 22.5%;
  background: var(--workspace-app-icon-bg, transparent);
}

[data-workspace-app-icon="true"] > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

[data-workspace-app-icon="true"] > .tsh-agent-object-token__kind-icon {
  display: block;
}

.workspace-agents-status-panel__detail-subagent-log {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.workspace-agents-status-panel__detail-subagent-log-entry {
  color: var(--tutti-text-muted, rgba(0, 0, 0, 0.55));
  font-size: 12px;
  line-height: 1.5;
  white-space: pre-wrap;
  word-break: break-word;
}

.workspace-agents-status-panel__detail-subagent-log-entry--latest {
  color: var(--tutti-text-primary, rgba(0, 0, 0, 0.85));
}

.workspace-agents-status-panel__detail-subagent-log-entry--tool {
  font-family: var(--tutti-font-mono, ui-monospace, monospace);
}

.workspace-agents-status-panel__detail-subagent-log-entry--failure {
  color: var(--tutti-status-danger, #c0392b);
}

.workspace-agents-status-panel__detail-subagent-log-omitted {
  color: var(--tutti-text-muted, rgba(0, 0, 0, 0.45));
  font-size: 11px;
  font-style: italic;
}

.workspace-agents-status-panel__detail-subagent-activity--failure {
  color: var(--tutti-status-danger, #c0392b);
}

.workspace-agents-status-panel__detail-subagent-name {
  color: var(--text-secondary);
  margin-left: 4px;
}

.workspace-agents-status-panel__detail-tool-row--subagent
  .workspace-agents-status-panel__detail-subagent-status {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

/* Sub-agent body indents like an expanded tool (24px under the icon column) */
.workspace-agents-status-panel__detail-subagent-reveal {
  box-sizing: border-box;
  padding-left: 24px;
}

/* Bash-block-style sub-agent body: task strip on top, progress below */
.workspace-agents-status-panel__detail-subagent-terminal {
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 8px;
  background: var(--background-panel);
}

.workspace-agents-status-panel__detail-subagent-task-strip {
  padding: 8px 12px;
  border-bottom: 1px solid var(--line-2);
  color: var(--text-secondary);
  font-size: 11px;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.workspace-agents-status-panel__detail-subagent-activity--in-terminal {
  padding: 8px 12px;
  font-size: 11px;
  line-height: 1.5;
}

/* Fully occluded Workbench nodes stay mounted for instant switching, but their
   animations must not keep repainting pixels that cannot reach the screen.
   Partial exposure removes this rule, even when another window owns focus. */
.agent-gui-node__layout[data-agent-gui-visible="false"]
  :where(*, *::before, *::after) {
  animation-play-state: paused !important;
}

/* Occlusion is geometric, not focus-based. Fully covered Workbench bodies keep
   their DOM state but stop producing tiles; partially exposed bodies remain
   painted in full so moving the covering window never reveals a black region. */
.agent-gui-node__layout[data-agent-gui-visible="false"] {
  content-visibility: hidden;
}
