.pane { display: flex; flex-direction: column; min-width: 0; min-height: 0; height: 100%; background: var(--background); border: 1px solid var(--border); border-radius: 10px; overflow: hidden; } .paneCurrent { border-color: color-mix(in srgb, var(--primary) 60%, var(--border)); } .header { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--foreground) 3%, transparent); flex: 0 0 auto; } /* Per-pane connection-loss indicator: each pane has its own daemon connection, so a drop on one shouldn't silently leave stale messages with no signal. */ .connectionError { flex: 0 0 auto; padding: 6px 10px; background: var(--warning-bg); border-bottom: 1px solid var(--warning-border); color: var(--warning-color); font-size: 12px; } .connectionErrorText { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .title { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; color: var(--foreground); } .currentBadge { flex: 0 0 auto; padding: 1px 7px; border-radius: 999px; font-size: 11px; font-weight: 600; color: var(--primary); background: color-mix(in srgb, var(--primary) 14%, transparent); } .closeButton { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: none; border-radius: 6px; background: transparent; color: var(--muted-foreground); cursor: pointer; } .closeButton:hover { color: var(--foreground); background: color-mix(in srgb, var(--foreground) 8%, transparent); } /* The transcript takes the remaining height and scrolls independently per pane. */ .body { flex: 1 1 auto; min-height: 0; overflow-y: auto; display: flex; flex-direction: column; } .footer { flex: 0 0 auto; border-top: 1px solid var(--border); padding: 8px; position: relative; } .approval { margin-bottom: 8px; }