.panel { background: var(--secondary); border: 0.5px solid var(--border); border-radius: var(--radius); width: 100%; min-width: 0; max-width: 100%; overflow: hidden; } .header { display: flex; align-items: center; gap: 8px; min-width: 0; cursor: pointer; } .header:hover { opacity: 0.85; } .desc { font-size: 12px; color: var(--muted-foreground); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .toggle { font-size: 10px; color: var(--muted-foreground); flex-shrink: 0; } .meta { font-size: 11px; color: var(--muted-foreground); flex-shrink: 0; } .body { margin-top: 8px; padding-left: 10px; display: flex; flex-direction: column; gap: 6px; min-width: 0; max-width: 100%; overflow: hidden; } .content { font-size: 13px; line-height: 1.6; min-width: 0; max-width: 100%; overflow-x: auto; } .content pre { white-space: pre-wrap; word-break: break-word; font-size: 13px; color: var(--foreground); } .stream { white-space: pre-wrap; word-break: break-word; font-size: 13px; color: var(--foreground); max-height: 400px; overflow-y: auto; } /* Compact live stream: 5-line window pinned to the tail via JS. */ .streamCollapsed { max-height: calc(5 * 1.6em); overflow: hidden; } /* Result and sub-tool list: scroll within the same cap as the live stream so the enclosing panel never grows past a screen. */ .scrollWindow { max-height: 400px; overflow-y: auto; } .expandToggle { display: block; margin: 2px 0 0 auto; background: none; border: none; color: color-mix(in srgb, var(--muted-foreground) 60%, transparent); font-size: 12px; cursor: pointer; padding: 0 4px; } .expandToggle:hover { color: var(--muted-foreground); } .tabBar { display: flex; gap: 0; border-bottom: 1px solid var(--border); margin-bottom: 6px; } .tab { padding: 4px 12px; font-size: 12px; color: var(--muted-foreground); background: none; border: none; border-bottom: 2px solid transparent; cursor: pointer; font-family: inherit; } .tab:hover { color: var(--muted-foreground); } .tabActive { color: var(--foreground); border-bottom-color: var(--agent-blue-500); } .tools { display: flex; flex-direction: column; gap: 6px; } .tools .panel { border-left-width: 2px; } /* * Per-sub-tool hover time. Deliberately a *separate* class pair from the * message-level MessageTimestamp (.row/.tip): the Tools list nests inside a * message that is already wrapped by MessageTimestamp, and reusing the same * hover rule across both layers couples them. These scoped names keep the * sub-tool tooltip independent of the surrounding message's time tooltip. */ .toolTimeRow { position: relative; } .toolTimeRow > .toolTimeTip { position: absolute; top: 2px; right: 4px; z-index: 5; color: var(--muted-foreground); font-size: 11px; line-height: 1.4; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 0.12s ease; } .toolTimeRow:hover > .toolTimeTip { opacity: 1; }