/* Connections panel: migration review, round-trip verdict, run history.
   Everything here is about making a review readable at a glance — the point of
   the panel is that someone can decide whether to apply, and a wall of
   undifferentiated rows is how a destructive change gets waved through. */

.card details > summary{list-style:none;user-select:none}
.card details > summary::-webkit-details-marker{display:none}
.card details > summary::before{content:'▸';display:inline-block;width:14px;color:var(--muted);
  transition:transform .12s ease}
.card details[open] > summary::before{transform:rotate(90deg)}
.card details > summary:hover{background:var(--gray-soft)}
.card details table{border-top:1px solid #f0f1f4}

/* The confirmation for destructive changes is a deliberate act, so it is
   readable as a sentence rather than a tick next to a word. */
.warn-bar label{font-size:12.5px;line-height:1.5}
.warn-bar input[type=checkbox]{width:15px;height:15px;accent-color:var(--red);flex:none}

/* The four areas (MSG 0038). Tabs rather than four sidebar entries: they are one
   subject — a client — seen from four angles, and three of them are meaningless
   until a client is being driven. */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px}
.tab{background:none;border:0;border-bottom:2px solid transparent;padding:8px 14px;font-size:13px;
  font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit}
.tab:hover{color:var(--text)}
.tab.on{color:var(--accent);border-bottom-color:var(--accent)}

/* The client currently being driven, in the registry table. */
tr.row-on td{background:var(--accent-soft)}

/* A run in flight. Nothing animates a percentage the daemon cannot compute —
   this is a phase indicator, not a progress bar pretending to know. */
.run-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--amber);
  margin-right:6px;animation:run-pulse 1.1s ease-in-out infinite}
@keyframes run-pulse{0%,100%{opacity:.35}50%{opacity:1}}

/* MSG 0040 Deploy screen (mockup: strip + plan table + progress) */
.dep-app{background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.dep-strip{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fbfbfd;border-bottom:1px solid var(--border);flex-wrap:wrap;font-size:13px}
.dep-strip .dep-label{font-weight:700}
.dep-strip select{font:inherit;font-size:12.5px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;background:#fff}
.dep-strip .spacer{flex:1}
.dep-advanced{display:flex;gap:10px;align-items:flex-end;padding:10px 14px;border-bottom:1px solid var(--border);flex-wrap:wrap;background:#fcfcfd}
.dep-advanced .field{margin:0;min-width:140px}
.dep-advanced .field label{font-size:11px;color:var(--muted)}
.dep-advanced input,.dep-advanced select{font:inherit;font-size:12.5px;padding:4px 8px;border:1px solid var(--border);border-radius:6px;width:100%}
.dep-plan{width:100%;border-collapse:collapse;font-size:12.5px}
.dep-plan th{text-align:left;padding:8px 12px;background:#f4f5f7;border-bottom:1px solid var(--border);font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.dep-plan td{padding:8px 12px;border-bottom:1px solid #f2f3f6;vertical-align:top}
.dep-plan tr.dep-refused{background:#fef2f2}
.dep-foot{display:flex;align-items:center;gap:12px;padding:11px 14px;border-top:1px solid var(--border);background:#fafbfc;flex-wrap:wrap;font-size:12.5px}
.dep-foot .spacer{flex:1}
.dep-ack{display:flex;gap:6px;align-items:center;color:var(--red,#dc2626);font-weight:600;font-size:12px}
.dep-ack input{accent-color:var(--red,#dc2626)}
.dep-progress{display:flex;align-items:center;gap:12px;padding:11px 14px;background:#fffbeb;color:#92400e;border-top:1px solid #fde68a;flex-wrap:wrap;font-size:13px}
.dep-bar{flex:1;min-width:120px;height:8px;background:#fde68a;border-radius:4px;overflow:hidden}
.dep-bar i{display:block;height:100%;background:#d97706;border-radius:4px}
.dep-more{margin:14px;border:1px solid var(--border);border-radius:8px;padding:8px 12px}
.dep-more>summary{cursor:pointer;font-weight:600;font-size:12.5px;color:var(--muted)}
.chip{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;padding:2px 8px;border-radius:999px;background:#f1f2f5;color:var(--muted)}
.chip .dot{width:6px;height:6px;border-radius:50%;background:#9ca3af}
.chip.up{background:#ecfdf5;color:#059669}.chip.up .dot{background:#059669}
.chip.dn{background:#fef2f2;color:#dc2626}.chip.dn .dot{background:#dc2626}

/* MSG 0040 Changes screen (mockup vocabulary, console tokens) */
.chg-app{background:var(--panel,#fff);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.chg-status{display:flex;align-items:center;gap:9px;padding:8px 16px;background:#fbfbfd;border-bottom:1px solid var(--border);font-size:12.5px;flex-wrap:wrap}
.chg-status .sep{color:#cfd3da}.chg-status .spacer{flex:1}
.chg-status .mini{display:inline-flex;gap:3px;align-items:center}
.chg-status .mini i{width:6px;height:6px;border-radius:50%;background:#d7dbe2;display:block}
.chg-status .mini i.f{background:var(--amber,#d97706)}.chg-status .mini i.d{background:var(--green,#059669)}
.chg-split{display:flex;min-height:420px}
.chg-side{width:290px;border-right:1px solid var(--border);background:#fcfcfd;overflow-y:auto;flex-shrink:0}
.chg-main{flex:1;min-width:0;display:flex;flex-direction:column}
.chg-sgrp{padding:7px 12px;font-size:10.5px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;color:var(--muted);background:#f4f5f7;border-bottom:1px solid var(--border);display:flex;justify-content:space-between}
.chg-item{display:flex;align-items:center;gap:9px;padding:7px 12px;font-size:12.5px;cursor:pointer;border-bottom:1px solid #f2f3f6}
.chg-item:hover{background:#eef0f4}.chg-item.on{background:var(--accent-soft,#eef2ff);box-shadow:inset 3px 0 0 var(--accent)}
.chg-item .nm{font-family:var(--mono,ui-monospace,Consolas,monospace);font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chg-quiet{padding:8px 12px;font-size:12px;color:var(--muted);border-bottom:1px solid #f2f3f6}
.g1{width:15px;text-align:center;font-weight:800;font-size:12px;flex-shrink:0}
.g-m{color:var(--amber,#d97706)}.g-a{color:var(--green,#059669)}.g-d{color:var(--red,#dc2626)}.g-c{color:var(--red,#dc2626)}
.cnt{font-size:10.5px;color:var(--muted);font-weight:600}
.ck{width:13px;height:13px;accent-color:var(--accent);flex-shrink:0}
.chg-ehead{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);background:#fafbfc;font-size:12.5px}
.chg-ehead .path{font-family:var(--mono,ui-monospace,Consolas,monospace);font-size:12px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.seg{display:flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}
.seg button{padding:3px 10px;font-size:11.5px;font-weight:600;background:#fff;border:0;border-right:1px solid var(--border);cursor:pointer;color:var(--muted)}
.seg button:last-child{border-right:0}.seg button.on{background:var(--accent);color:#fff}
.chg-fld{border-bottom:1px solid #f2f3f6}
.chg-fld .fh{display:flex;align-items:center;gap:9px;padding:8px 14px;background:#fbfbfc;font-size:12.5px}
.chg-fld .fn{font-family:var(--mono,ui-monospace,Consolas,monospace);font-weight:600}
.wasnow{display:flex;font-family:var(--mono,ui-monospace,Consolas,monospace);font-size:12px}
.wasnow>div{flex:1;padding:6px 14px}
.was{background:#fef2f2;color:#7f1d1d;border-right:1px solid var(--border)}
.now{background:#ecfdf5;color:#065f46}
.wl{font-size:9.5px;text-transform:uppercase;letter-spacing:.5px;font-weight:700;opacity:.6;display:block}
.pl{display:inline-block;padding:2px 8px;border-radius:20px;font-size:10.5px;font-weight:700}
.pl.add{background:#ecfdf5;color:#059669}.pl.wid{background:#eef2ff;color:var(--accent)}.pl.des{background:#fef2f2;color:#dc2626}.pl.unm{background:#f1f2f5;color:var(--muted)}
.chg-ed{background:#1e2330;color:#d7dce8;padding:0;flex:1;overflow:auto;font-size:12px;font-family:var(--mono,ui-monospace,Consolas,monospace)}
.chg-ed .ln{display:flex;min-height:21px}
.chg-ed .ln .g{width:42px;flex-shrink:0;text-align:right;padding-right:9px;color:#6b7280;font-size:11.5px}
.chg-ed .ln .s{width:16px;flex-shrink:0;text-align:center;font-weight:700}
.chg-ed .ln .c{padding-right:14px;white-space:pre;flex:1}
.chg-ed .ln.a{background:rgba(34,197,94,.12)}.chg-ed .ln.a .s{color:#4ade80}
.chg-ed .ln.d{background:rgba(239,68,68,.12)}.chg-ed .ln.d .s{color:#f87171}
.chg-ed .ln.h{background:#252a38;color:#9ca3af;font-style:italic}
.chg-impact{padding:4px 14px 10px 36px;font-size:12px}
.chg-impact .row{display:flex;gap:10px;align-items:baseline;padding:3px 0;border-top:1px solid #f2f3f6}
.chg-impact .nm{font-family:var(--mono,ui-monospace,Consolas,monospace);font-size:12px}
.chg-impact .muted{color:var(--muted,#6b7280)}
.chg-pushbar{border-top:1px solid var(--border);background:#fafbfc;padding:11px 14px}
.chg-pushbar .row1{display:flex;align-items:center;gap:9px;margin-bottom:8px;font-size:12.5px;flex-wrap:wrap}
.chg-pushbar .bumps{font-size:11.5px;color:var(--muted);display:flex;gap:14px;flex-wrap:wrap}
.chg-pushbar .bumps b{color:var(--text);font-family:var(--mono,ui-monospace,Consolas,monospace);font-size:11.5px}
.chg-foot-warn{margin-top:8px;padding:8px 10px;background:#fef2f2;color:#991b1b;border-radius:6px;font-size:12.5px;display:flex;gap:8px;align-items:center}
.chg-ban{padding:8px 14px;background:#fef2f2;color:#991b1b;font-size:12.5px;border-bottom:1px solid var(--border)}
.chg-ban-cf{padding:10px 14px;background:#fffbeb;color:#92400e;font-size:12.5px;border-bottom:1px solid #fde68a;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.chg-ban-cf b{font-weight:700}
.lnk{background:none;border:0;color:var(--accent);font-size:12.5px;font-weight:600;cursor:pointer;padding:0}
.empty{padding:56px 30px;text-align:center}.empty .big{font-size:16px;font-weight:700;margin-bottom:5px}.empty .sm2{color:var(--muted);font-size:13px;margin-bottom:16px}

/* MSG 0051 — outcome chips, module tree, collation, evidence (MB-CLI-0014) */
.diff-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 0 10px}
.diff-chip{border:1px solid var(--border,#e5e7eb);background:#fff;border-radius:6px;padding:4px 10px;
  font-size:12.5px;cursor:pointer;color:var(--text,#111)}
.diff-chip.on{background:#111;color:#fff;border-color:#111}
.diff-tree{border:1px solid var(--border,#e5e7eb);border-radius:8px;overflow:hidden}
.diff-mod{border-bottom:1px solid var(--border,#e5e7eb)}
.diff-mod:last-child{border-bottom:0}
.diff-mod > summary{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;
  background:#fafbfc;font-size:13px;list-style:none}
.diff-mod > summary::-webkit-details-marker{display:none}
.diff-mod-count{margin-left:auto;color:var(--muted,#6b7280);font-size:12px}
.diff-mod-body{padding:4px 8px 10px 16px}
.diff-obj{margin:4px 0}
.diff-obj-head{font-size:12px;padding:4px 6px}
.diff-obj-row{display:flex;width:100%;text-align:left;border:0;background:#fff;padding:6px 8px;
  border-radius:6px;cursor:pointer;font-size:13px;gap:4px;align-items:baseline}
.diff-obj-row:hover{background:#f3f4f6}
.diff-sample{margin:4px 0 8px 12px;padding:6px 8px;background:#f9fafb;border-radius:6px}
.diff-sample-nav{display:flex;gap:8px;margin-top:6px}
.diff-leaf{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;width:100%;text-align:left;
  border:0;background:transparent;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:12.5px}
.diff-leaf:hover,.diff-leaf.on{background:#eef2ff}
.diff-leaf-out{font-weight:600;min-width:92px;text-transform:lowercase}
.diff-evidence{margin-top:12px;border:1px solid var(--border,#e5e7eb);border-radius:8px;padding:10px 12px}
.diff-evidence-label{font-size:12px;font-weight:600;margin-bottom:6px}
.diff-evidence-body{max-height:280px;overflow:auto;font-size:11.5px;white-space:pre-wrap;
  background:#0f172a;color:#e2e8f0;padding:10px;border-radius:6px;margin:0}
