/* Connections share the overview's visual system and carry their own fallbacks
   so a source-detail route does not depend on loading the overview first. */
.connections-view,.connection-detail {
  --cn-text:var(--ov-text,#1e2248);
  --cn-secondary:var(--ov-secondary,#636f7f);
  --cn-surface:var(--ov-surface,#fff);
  --cn-canvas:var(--ov-canvas,#f3f5f8);
  --cn-hover:var(--ov-hover,#f3f7fd);
  --cn-line:var(--ov-line,#e3e7ed);
  --cn-control:#7a8797;
  --cn-action:var(--ov-action,#005eeb);
  --cn-positive:var(--ov-positive,#16815c);
  --cn-warning:var(--ov-warning,#8a601b);
  --cn-danger:var(--ov-danger,#b23f45);
  --cn-radius:var(--ov-radius,8px);
  color:var(--cn-text);font-size:14px;line-height:20px;
}
.connections-view { min-width:0; }
.connections-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:24px; }
.connections-heading h1 { margin:0;font-size:28px;line-height:32px;font-weight:600;letter-spacing:-.6px; }
.connections-heading p { margin:8px 0 0;color:var(--cn-secondary);max-width:640px; }
.connection-button { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:100%;padding:8px 16px;border:1px solid var(--cn-line);border-radius:var(--cn-radius);background:var(--cn-surface);color:var(--cn-text);font:inherit;font-weight:500;white-space:normal;text-align:center; }
.connection-button svg { width:20px;height:20px;flex:none; }
.connection-button:hover:not(:disabled) { border-color:var(--cn-secondary);background:var(--cn-hover); }
.connection-button.connection-primary { background:var(--cn-action);border-color:var(--cn-action);color:#fff; }
.connection-button.connection-primary:hover:not(:disabled) { background:#0049b8;border-color:#0049b8; }
.connection-button:disabled,.connection-close:disabled { opacity:1;color:var(--cn-secondary);background:var(--cn-canvas);cursor:wait; }
.connections-controls { display:grid;grid-template-columns:minmax(200px,1fr) minmax(180px,264px);gap:16px;margin-bottom:16px; }
.connections-controls label { display:grid;gap:8px;min-width:0;color:var(--cn-secondary);font-size:12px;line-height:16px; }
.connections-controls input,.connections-controls select { width:100%;min-width:0;min-height:44px;padding:8px 12px;border:1px solid var(--cn-control);border-radius:var(--cn-radius);background:var(--cn-surface);color:var(--cn-text);font-size:14px;line-height:20px; }
.connections-controls input::placeholder { color:var(--cn-secondary); }
.connections-categories { display:flex;flex-wrap:wrap;gap:4px 16px;margin-bottom:8px;border-bottom:1px solid var(--cn-line); }
.connections-categories button { min-width:44px;min-height:44px;padding:8px 0;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--cn-secondary);font:inherit; }
.connections-categories [aria-pressed=true] { color:var(--cn-action);border-bottom-color:var(--cn-action);font-weight:600; }
.connections-notice { color:var(--cn-secondary);font-size:12px;line-height:16px;overflow-wrap:anywhere; }
.connections-notice:not(:empty) { margin:12px 0; }
.connections-result { color:var(--cn-secondary);font-size:12px;line-height:16px;margin:16px 0 8px; }
.connections-result:empty { display:none; }
.connections-list { list-style:none;margin:0;padding:0 24px;background:var(--cn-surface);border-radius:var(--cn-radius); }
.connection-requests { margin-top:24px; }
.connection-requests h2 { margin:0;font-size:20px;line-height:28px; }
.connection-requests>p { margin:8px 0 16px;color:var(--cn-secondary); }
.connection-row { display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,28%);gap:16px;padding:16px 0;border-bottom:1px solid var(--cn-line);align-items:center;min-width:0; }
.connection-row:last-child { border-bottom:0; }
.connection-open { display:grid;grid-template-columns:44px minmax(0,1fr) 16px;align-items:center;gap:4px 16px;min-height:64px;min-width:0;width:100%;padding:0;border:0;border-radius:4px;background:transparent;text-align:left;color:var(--cn-text);font:inherit; }
.connection-open:hover { background:var(--cn-hover); }
.connection-icon { display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:var(--cn-radius);background:var(--cn-canvas);color:var(--cn-action); }
.connection-icon svg { width:28px;height:28px; }
.connection-open>.connection-icon { grid-column:1;grid-row:1 / span 2; }
.connection-identity { display:grid;gap:4px;grid-column:2;grid-row:1;min-width:0; }
.connection-identity strong { font-size:16px;line-height:20px;font-weight:600;overflow-wrap:anywhere; }
.connection-identity>span { color:var(--cn-secondary);font-size:12px;line-height:16px;overflow-wrap:anywhere; }
.connection-status { display:block;font-size:12px;line-height:16px;font-weight:500;color:var(--cn-secondary);overflow-wrap:anywhere; }
.connection-status-facts { display:flex;flex-wrap:wrap;gap:4px 16px;grid-column:2;grid-row:2; }
.connection-configuration { color:var(--cn-secondary);font-size:12px;line-height:16px; }
.connection-status[data-tone=positive] { color:var(--cn-positive); }
.connection-status[data-tone=warning] { color:var(--cn-warning); }
.connection-status[data-tone=danger] { color:var(--cn-danger); }
.connection-chevron { grid-column:3;grid-row:1 / span 2;color:var(--cn-secondary);font-size:24px;line-height:24px; }
.connection-dependents { min-width:0; }
.connection-label { display:block;color:var(--cn-secondary);font-size:12px;line-height:16px;margin-bottom:4px; }
.connection-agents { display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0; }
.connection-agent { display:inline-flex;align-items:center;min-height:44px;max-width:100%;padding:4px 8px;border-radius:4px;background:var(--cn-hover);color:var(--cn-action);font-size:14px;line-height:20px;overflow-wrap:anywhere;text-decoration:none; }
a.connection-agent:hover { text-decoration:underline; }
.connection-unassigned { color:var(--cn-secondary);font-size:12px;line-height:16px; }
.connection-usage { margin:4px 0 0;color:var(--cn-secondary);font-size:12px;line-height:16px; }
.connections-empty { display:grid;justify-items:start;gap:12px;padding:32px 24px;background:var(--cn-surface);border-radius:var(--cn-radius); }
.connections-empty h2 { margin:0;font-size:20px;line-height:28px;font-weight:600; }
.connections-empty p { margin:0;max-width:520px;color:var(--cn-secondary); }
.connection-empty-icon { display:grid;place-items:center;width:44px;height:44px;color:var(--cn-secondary); }
.connection-empty-icon svg { width:32px;height:32px; }
.connection-detail { position:fixed;inset:0 0 0 auto;width:min(640px,100%);height:100dvh;max-height:100dvh;max-width:100%;margin:0;padding:0;border:0;border-left:1px solid var(--cn-line);border-radius:0;background:var(--cn-surface);overflow:auto;overscroll-behavior:contain; }
.connection-detail::backdrop { background:rgb(30 34 72 / 28%); }
.connection-detail-heading { display:flex;align-items:flex-start;justify-content:space-between;gap:16px;position:sticky;top:0;z-index:1;padding:24px;background:var(--cn-surface);border-bottom:1px solid var(--cn-line); }
.connection-detail-identity { display:flex;align-items:center;gap:16px;min-width:0; }
.connection-detail-identity>div { min-width:0; }
.connection-detail-identity p { margin:0 0 4px;color:var(--cn-secondary);font-size:12px;line-height:16px; }
.connection-detail h2 { margin:0;font-size:20px;line-height:28px;font-weight:600;overflow-wrap:anywhere; }
.connection-close { display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border:1px solid var(--cn-line);border-radius:var(--cn-radius);background:var(--cn-surface);color:var(--cn-secondary); }
.connection-close svg { width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6; }
.connection-close:hover:not(:disabled) { color:var(--cn-text);background:var(--cn-hover); }
.connection-detail-body { display:grid;gap:24px;padding:24px; }
.connection-detail-body p { margin:8px 0 0;overflow-wrap:anywhere; }
.connection-detail-body h3 { margin:0 0 8px;font-size:16px;line-height:24px;font-weight:600; }
.connection-secondary { color:var(--cn-secondary);font-size:14px;line-height:20px; }
.connection-health { padding:0 0 24px;border-bottom:1px solid var(--cn-line); }
.connection-health .connection-status { font-size:16px;line-height:24px; }
.connection-health .connection-secondary { font-size:12px;line-height:16px; }
.connection-health .connection-impact { margin-top:16px; }
.connection-detail-section { min-width:0; }
.connection-facts { display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px 16px;margin:0; }
.connection-facts dt { color:var(--cn-secondary); }
.connection-facts dd { margin:0;overflow-wrap:anywhere; }
.connection-agent-details { display:grid;gap:8px;margin-top:12px; }
.connection-agent-details>div { display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px; }
.connection-agent-details>div>span { color:var(--cn-secondary);font-size:12px;line-height:16px; }
.connection-capabilities { margin:0;padding-left:20px; }
.connection-capabilities li+li { margin-top:8px; }
.connection-actions { display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding-top:24px;border-top:1px solid var(--cn-line); }
.connection-detail-body .connection-action-status { margin:0;color:var(--cn-danger); }
.connection-action-status:empty { display:none; }
.connection-detail[data-content=true] { width:min(960px,100%); }
.connection-detail [hidden] { display:none!important; }
.connection-detail-tabs { display:flex;gap:24px;padding:0 24px;border-bottom:1px solid var(--cn-line); }
.connection-detail-tabs button { min-height:48px;padding:8px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--cn-secondary);font:inherit;font-weight:500; }
.connection-detail-tabs button[aria-pressed=true] { color:var(--cn-action);border-color:var(--cn-action); }
.connection-content-panel { padding:24px;min-width:0; }
.source-content { min-width:0; }
.source-context { display:flex;align-items:end;gap:16px;flex-wrap:wrap; }
.source-context label,.source-search label { display:grid;gap:8px;color:var(--cn-secondary);font-size:12px;line-height:16px;flex:1;min-width:0; }
.source-context label { min-width:200px; }
.source-content select,.source-content input { min-width:0;width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--cn-control);border-radius:8px;color:var(--cn-text);background:white;font:inherit;font-size:14px;line-height:20px; }
.source-scope { margin:12px 0 0;color:var(--cn-secondary);font-size:12px;line-height:18px; }
.source-editor-link { margin:8px 0 20px; }
.source-editor-link a,.source-original { color:var(--cn-action);text-decoration:underline;text-underline-offset:3px; }
.source-editor-link a:hover,.source-original:hover { text-decoration:underline; }
.source-collections { display:flex;flex-wrap:wrap;gap:8px;margin:16px 0; }
.source-collection-select { display:grid;gap:8px;width:100%;min-width:0;color:var(--cn-secondary);font-size:12px;line-height:16px; }
.source-collections button { display:flex;align-items:center;gap:8px;min-height:40px;max-width:100%;padding:8px 12px;border:1px solid var(--cn-line);border-radius:8px;background:white;color:var(--cn-text);font:inherit; }
.source-collections button[aria-pressed=true] { border-color:var(--cn-action);background:var(--cn-hover);color:var(--cn-action); }
.source-collections button span { color:var(--cn-secondary);font-size:12px; }
.source-search { display:flex;align-items:end;gap:12px;margin-bottom:24px; }
.source-list-heading { display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px; }
.source-list-heading h3 { margin:0;font-size:18px;line-height:26px; }
.source-list-heading>span,.source-entry-type,.source-entry-meta { color:var(--cn-secondary);font-size:12px;line-height:18px; }
.source-content-list { list-style:none;margin:0;padding:0;border-top:1px solid var(--cn-line); }
.source-content-list>li { margin:0;border-bottom:1px solid var(--cn-line); }
.source-entry { position:relative;display:grid;gap:6px;width:100%;min-height:92px;padding:16px 36px 16px 12px;text-align:left;color:var(--cn-text);border:0;border-radius:4px;background:white;font:inherit; }
.source-entry:hover:not(:disabled) { background:var(--cn-hover); }
.source-entry:disabled { color:var(--cn-secondary);cursor:default; }
.source-entry strong { font-size:16px;line-height:22px;font-weight:600;overflow-wrap:anywhere; }
.source-entry-summary { display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:21px;overflow-wrap:anywhere; }
.source-entry-arrow { position:absolute;right:12px;top:50%;font-size:24px;color:var(--cn-secondary); }
.source-entry-meta:empty { display:none; }
.source-more { margin-top:20px; }
.source-empty { padding:24px 0; }
.source-empty h3 { margin:0 0 8px;font-size:18px;line-height:26px; }
.source-empty p,.source-notice { color:var(--cn-secondary);line-height:22px; }
.source-notice { padding:12px 16px;background:var(--cn-canvas);border-radius:8px; }
.source-error { color:var(--cn-danger);overflow-wrap:anywhere; }
.source-error:empty { display:none; }
.source-back { min-height:44px;margin:0 0 16px;padding:8px 0;border:0;background:none;color:var(--cn-action);font:inherit; }
.source-document header { margin-bottom:24px; }
.source-document header h3 { margin:6px 0 0;font-size:24px;line-height:32px;overflow-wrap:anywhere; }
.source-fields { display:grid;grid-template-columns:minmax(120px,28%) minmax(0,1fr);gap:12px 20px;margin:0 0 24px; }
.source-fields dt { color:var(--cn-secondary); }
.source-fields dd { margin:0;white-space:pre-wrap;overflow-wrap:anywhere; }
.source-reading { white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:25px;tab-size:2; }
.source-document-section { margin-top:24px; }
.source-document-section h4 { margin:0 0 12px;font-size:16px;line-height:24px; }
.source-table-scroll { max-width:100%;overflow:auto;border:1px solid var(--cn-line);border-radius:8px; }
.source-table-scroll table { width:100%;border-collapse:collapse;font-size:13px;line-height:20px; }
.source-table-scroll th,.source-table-scroll td { padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--cn-line);min-width:110px;max-width:380px;overflow-wrap:anywhere;white-space:pre-wrap; }
.source-table-scroll th { background:var(--cn-canvas);font-weight:600; }
.source-table-scroll tr:last-child td { border-bottom:0; }
.source-original { display:inline-flex;align-items:center;min-height:44px;margin:16px 16px 0 0; }
.source-loading { color:var(--cn-secondary);padding:20px 0; }
.connections-view :focus-visible,.connection-detail :focus-visible { outline:2px solid var(--cn-action);outline-offset:3px; }
@media(max-width:1100px) {
  .connection-row { grid-template-columns:minmax(0,1fr) minmax(144px,25%); }
}
@media(max-width:640px) {
  .connections-heading { flex-wrap:wrap;gap:16px;margin-bottom:24px; }
  .connections-heading h1 { font-size:28px;line-height:32px; }
  .connections-controls { grid-template-columns:minmax(0,1fr); }
  .connections-categories { column-gap:16px; }
  .connections-list { padding:0 16px; }
  .connection-row { grid-template-columns:minmax(0,1fr);gap:12px;padding:16px 0; }
  .connection-open { gap:4px 12px; }
  .connection-dependents { padding-left:56px; }
  .connection-agents { gap:4px 8px; }
  .connections-empty { padding:24px 16px; }
  .connection-detail-heading,.connection-detail-body { padding:16px; }
  .connection-content-panel { padding:16px; }
  .connection-detail-tabs { padding:0 16px;gap:16px; }
  .connection-detail-tabs button { font-size:13px; }
  .source-context { display:grid;grid-template-columns:minmax(0,1fr);gap:12px; }
  .source-context label { min-width:0; }
  .source-search { flex-wrap:wrap; }
  .source-search label { flex-basis:100%; }
  .source-search button { width:100%; }
  .source-list-heading { display:grid;gap:4px; }
  .source-fields { grid-template-columns:minmax(0,1fr);gap:4px; }
  .source-fields dd+dt { margin-top:12px; }
  .source-document header h3 { font-size:20px;line-height:28px; }
  .source-collections button { min-height:44px; }
  .connection-detail-identity { gap:12px; }
  .connection-detail-identity .connection-icon { display:none; }
  .connection-facts { grid-template-columns:minmax(0,1fr);gap:4px; }
  .connection-facts dd+dt { margin-top:12px; }
  .connection-actions { align-items:stretch;flex-direction:column; }
  .connection-actions .connection-button { width:100%; }
}
@media(prefers-reduced-motion:reduce) {
  .connections-view *,.connection-detail * { scroll-behavior:auto; }
}
