/* Code Agent workspace panel (injected into Dev Cockpit right pane) */
#ca-panel {
    border-bottom: 1px solid var(--dc-border,#2a2f3a);
    background: var(--dc-panel,#11141b);
    color: var(--dc-text,#d7dce5);
    font-size: 12.5px;
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    max-height: 100%;
}
.ca-header {
    display: flex; align-items: center; gap: 8px;
    padding: 6px 10px;
    background: var(--dc-panel-dark,#161a23);
    border-bottom: 1px solid var(--dc-border,#2a2f3a);
}
.ca-title { font-weight: 600; }
.ca-pill {
    padding: 1px 8px; border-radius: 10px; font-size: 11px;
    border: 1px solid var(--dc-border-light,#3a4152);
}
.ca-pill-ok   { color: var(--dc-ok,#6fe39a); border-color: var(--dc-ok-border,#2f7a4d); }
.ca-pill-warm { color: var(--dc-warn,#ffd479); border-color: var(--dc-warn-border,#8a6d2f); }
.ca-pill-bad  { color: var(--dc-error,#ff7b7b); border-color: var(--dc-error-border,#8a2f2f); }
.ca-pill-unknown { color: var(--dc-text-dim,#9aa3b2); }

#ca-body { display: flex; flex-direction: column; min-height: 0; padding: 8px 10px; gap: 6px; }
#ca-goal {
    width: 100%; resize: vertical; min-height: 48px;
    background: var(--dc-glass-input-bg,#0c0f15); color: var(--dc-text-bright,#e7ebf2); border: 1px solid var(--dc-border,#2a2f3a);
    border-radius: 6px; padding: 6px 8px; font-size: 12.5px; box-sizing: border-box;
}
.ca-toolbar { display: flex; gap: 6px; flex-wrap: wrap; }
.ca-btn {
    padding: 4px 10px; border-radius: 6px; cursor: pointer;
    border: 1px solid var(--dc-border-light,#3a4152); background: var(--dc-btn-bg,#1a1f2b); color: var(--dc-text,#d7dce5); font-size: 12px;
}
.ca-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.ca-btn-primary { background: var(--dc-primary,#2456c4); border-color: var(--dc-primary-border,#2f63da); color: #fff; }
.ca-btn-danger  { background: var(--dc-danger,#5b1f1f); border-color: var(--dc-error-border,#8a2f2f); }
.ca-btn-ok      { background: var(--dc-ok-bg,#1f4d31); border-color: var(--dc-ok-border,#2f7a4d); }
.ca-btn-warn    { background: var(--dc-warn-bg,#4d3c1f); border-color: var(--dc-warn-border,#8a6d2f); }
.ca-btn-ghost   { background: transparent; }

.ca-status { display: flex; align-items: center; gap: 6px; font-weight: 600; }
.ca-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.ca-dot-idle { background: var(--dc-idle,#5a6375); }
.ca-dot-warm { background: var(--dc-warn,#ffd479); }
.ca-dot-run  { background: var(--dc-run,#4f8cff); animation: ca-pulse 1.2s infinite; }
.ca-dot-ok   { background: var(--dc-ok,#6fe39a); }
.ca-dot-bad  { background: var(--dc-error,#ff7b7b); }
.ca-dot-warn { background: var(--dc-warn,#ffae5e); }
@keyframes ca-pulse { 50% { opacity: 0.35; } }

.ca-step { color: var(--dc-text-dim,#9aa3b2); font-size: 11.5px; min-height: 14px;
           white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.ca-tabs { display: flex; gap: 2px; border-bottom: 1px solid var(--dc-border,#2a2f3a); }
.ca-tab {
    background: transparent; border: none; color: var(--dc-text-dim,#9aa3b2); cursor: pointer;
    padding: 4px 9px; font-size: 12px; border-bottom: 2px solid transparent;
}
.ca-tab.active { color: var(--dc-text-bright,#e7ebf2); border-bottom-color: var(--dc-run,#4f8cff); }

.ca-panes { min-height: 90px; flex: 1; overflow: auto; }
.ca-pane { display: none; padding: 6px 2px; }
.ca-pane.active { display: block; }

/* Legacy Dev Cockpit chat, folded into the Chat tab (single workspace) */
#ca-pane-chat.active { display: flex; flex-direction: column; min-height: 220px; }
#ca-pane-chat .dc-chat-history { flex: 1; min-height: 160px; max-height: 46vh; overflow: auto; }
#ca-pane-chat .dc-chat-toolbar { flex: 0 0 auto; }
/* ONE input box for the whole workspace: the legacy chat input/Send stay in
   the DOM (dcPanel's handlers drive the stream) but are hidden — the top
   goal box + 💬 Chat button feed them programmatically. */
#ca-pane-chat .dc-chat-input-wrap { display: none; }
.ca-mono { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 11.5px;
           white-space: pre-wrap; word-break: break-word; margin: 0; }
#ca-pane-plan ol { margin: 4px 0 4px 18px; padding: 0; }
.ca-plan-files, .ca-plan-risk { color: var(--dc-text-dim,#9aa3b2); font-size: 11.5px; margin-top: 4px; }
.ca-goal-card { border: 1px solid var(--dc-border,#2a2f3a); border-radius: 6px;
                padding: 6px 8px; margin-bottom: 6px; font-size: 12px; }
.ca-goal-type { font-weight: 600; color: var(--dc-run,#4f8cff); margin-bottom: 2px; }

.ca-file-row { display: flex; align-items: center; gap: 6px; padding: 3px 0; }
.ca-file-path { font-family: ui-monospace, monospace; font-size: 11.5px; }
.ca-badge { font-size: 10px; padding: 0 6px; border-radius: 8px; border: 1px solid; }
.ca-badge-new { color: var(--dc-ok,#6fe39a); border-color: var(--dc-ok-border,#2f7a4d); }
.ca-badge-mod { color: var(--dc-warn,#ffd479); border-color: var(--dc-warn-border,#8a6d2f); }
.ca-badge-rb  { color: var(--dc-text-dim,#9aa3b2); border-color: var(--dc-border-light,#3a4152); text-decoration: line-through; }

.ca-log-row { font-family: ui-monospace, monospace; font-size: 11px; padding: 1px 0; color: var(--dc-text-muted,#b9c1cf); }
.ca-log-bad { color: var(--dc-error-light,#ff9b9b); }

[data-theme="light"] #ca-panel,
[data-theme="light"] .ca-diff-box {
    --dc-border: #d1d5db;
    --dc-panel: #ffffff;
    --dc-text: #1f2937;
    --dc-panel-dark: #f3f4f6;
    --dc-border-light: #e5e7eb;
    --dc-ok: #16a34a;
    --dc-ok-border: #15803d;
    --dc-warn: #d97706;
    --dc-warn-border: #b45309;
    --dc-error: #dc2626;
    --dc-error-border: #b91c1c;
    --dc-text-dim: #6b7280;
    --dc-text-bright: #111827;
    --dc-glass-input-bg: #f9fafb;
    --dc-btn-bg: #f3f4f6;
    --dc-primary: #2563eb;
    --dc-primary-border: #1d4ed8;
    --dc-danger: #fef2f2;
    --dc-ok-bg: #dcfce7;
    --dc-warn-bg: #fef3c7;
    --dc-idle: #9ca3af;
    --dc-run: #3b82f6;
    --dc-text-muted: #4b5563;
    --dc-error-light: #ef4444;
}

.ca-log-bad { color: var(--dc-error-light, #ff9b9b); }
.ca-test-block { margin-bottom: 8px; }
.ca-test-head { font-weight: 600; color: var(--dc-text-bright, #cfd6e3); margin-bottom: 2px; }
.ca-summary-pre { white-space: pre-wrap; word-break: break-word; font-size: 12px;
                  font-family: inherit; margin: 0; }

.ca-changed-file { color: var(--dc-warn, #ffd479) !important; font-weight: 600; }
.ca-changed-file::after { content: ' ●'; color: var(--dc-warn, #ffd479); }

.ca-diff-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 10000;
    display: flex; align-items: center; justify-content: center;
}
.ca-diff-box {
    background: var(--dc-panel, #11141b); border: 1px solid var(--dc-border, #2a2f3a); border-radius: 8px;
    width: min(900px, 92vw); max-height: 80vh; display: flex; flex-direction: column;
}
.ca-diff-head { display: flex; justify-content: space-between; align-items: center;
                padding: 8px 12px; border-bottom: 1px solid var(--dc-border, #2a2f3a); color: var(--dc-text-bright, #e7ebf2);
                font-family: ui-monospace, monospace; font-size: 12px; }
.ca-diff-box pre { overflow: auto; padding: 10px 12px; margin: 0;
                   font-size: 11.5px; line-height: 1.45; color: var(--dc-text-muted, #b9c1cf); }
.ca-diff-add { color: var(--dc-ok, #6fe39a); }
.ca-diff-del { color: var(--dc-error-light, #ff8b8b); }

/* Plan-from-Chat bridge */
.ca-chatplan-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0 8px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.18);
  margin-bottom: 8px;
}
.ca-chatplan-n { color: var(--dc-text-dim, #94a3b8); font-size: 11.5px; }
.ca-chatplan-all { margin-left: auto; }
.ca-chatplan-phase {
  margin: 4px 0;
  border: 1px solid rgba(148, 163, 184, 0.15);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
}
.ca-chatplan-phase > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  cursor: pointer;
  font-weight: 600;
  font-size: 12.5px;
  list-style: none;
}
.ca-chatplan-phase > summary::before { content: '▸'; color: #60a5fa; }
.ca-chatplan-phase[open] > summary::before { content: '▾'; }
.ca-chatplan-impl { margin-left: auto; flex-shrink: 0; }
.ca-chatplan-body { padding: 4px 12px 10px; }
.ca-chatplan-back { margin-bottom: 8px; }
