	    .graph-overlay {
	      position: fixed;
	      inset: 0;
	      z-index: 260;
	      display: flex;
	      align-items: flex-end;
	      justify-content: center;
	      padding: 6px 12px 12px;
	      box-sizing: border-box;
	      background: rgba(8, 12, 24, 0.36);
	      overflow: hidden;
	    }
	    .graph-overlay-shell {
	      width: 100%;
	      min-height: 0;
	      height: 100svh;
	      height: 100dvh;
	      display: flex;
	      flex-direction: column;
	      overflow: hidden;
	      border: 0;
	      border-radius: 0;
	      background: var(--card);
	      box-shadow: none;
	      transform: translateY(100%);
	      opacity: 0.98;
	      transition: transform 300ms cubic-bezier(0.22, 0.88, 0.22, 1), opacity 220ms ease;
	    }
	    .graph-overlay.graph-overlay-active .graph-overlay-shell {
	      transform: translateY(0);
	      opacity: 1;
	    }
	    .graph-overlay.graph-overlay-closing .graph-overlay-shell {
	      transform: translateY(100%);
	      opacity: 0.98;
	      pointer-events: none;
	    }
	    .search-overlay {
	      position: fixed;
	      inset: 0;
	      z-index: 258;
	      display: flex;
	      align-items: flex-end;
	      justify-content: center;
	      padding: 6px 12px 12px;
	      box-sizing: border-box;
	      background: rgba(8, 12, 24, 0);
	      transition: background 220ms ease;
	      overflow: hidden;
	    }
	    .search-overlay.search-overlay-active {
	      background: rgba(8, 12, 24, 0.36);
	    }
	    .search-overlay-shell {
	      width: min(1600px, 100%);
	      min-height: 0;
	      height: min(96svh, calc(100svh - 18px));
	      display: flex;
	      flex-direction: column;
	      overflow: hidden;
	      border: 1px solid var(--panel-strong);
	      border-radius: 10px 10px 6px 6px;
	      background: var(--card);
	      box-shadow: 0 16px 40px rgba(0, 0, 0, 0.28);
	      transform: translateY(calc(100% + 24px));
	      opacity: 0.98;
	      transition: transform 300ms cubic-bezier(0.22, 0.88, 0.22, 1), opacity 220ms ease;
	    }
	    .search-overlay.search-overlay-active .search-overlay-shell {
	      transform: translateY(0);
	      opacity: 1;
	    }
	    .search-overlay.search-overlay-closing .search-overlay-shell {
	      transform: translateY(calc(100% + 24px));
	      opacity: 0.98;
	      pointer-events: none;
	    }
	    .search-overlay-toolbar {
	      height: 56px;
	      flex-shrink: 0;
	      display: flex;
	      align-items: center;
	      justify-content: space-between;
	      gap: 10px;
	      padding: 0 14px;
	      border-bottom: 1px solid var(--panel-strong);
	      background: var(--card);
	    }
	    .search-overlay-toolbar-left { min-width: 0; display: flex; flex-direction: column; }
	    .search-overlay-toolbar-title { font-size: 12px; letter-spacing: 0.6px; text-transform: uppercase; color: var(--muted); }
	    .search-overlay-toolbar-subtitle { font-size: 14px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	    .search-overlay-toolbar-right { display: flex; align-items: center; gap: 8px; }
	    .search-overlay-layout {
	      flex: 1;
	      min-height: 0;
	      display: grid;
	      grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
	      overflow: hidden;
	      background: var(--bg);
	    }
	    .search-overlay-panel {
	      border-right: 1px solid var(--panel-strong);
	      padding: 12px;
	      overflow-y: auto;
	      overflow-x: hidden;
	      background: var(--card);
	    }
	    .search-overlay-stage {
	      min-height: 0;
	      overflow: auto;
	      background: var(--bg);
	    }
	    .search-overlay-stage .ds-search-wrap {
	      max-width: 1040px;
	      margin: 0 auto;
	    }
	    .graph-layout {
	      --graph-create-panel-width: clamp(320px, 34vw, 560px);
	      --graph-panel-width: clamp(260px, 26vw, 320px);
	      flex: 1;
	      min-height: 0;
	      display: grid;
	      grid-template-columns: minmax(0, 1fr) 12px minmax(0, var(--graph-panel-width));
	      grid-template-rows: minmax(0, 1fr);
	      gap: 0;
	      padding: 0;
	      box-sizing: border-box;
	      overflow: hidden;
	      position: relative;
	      transition: grid-template-columns 220ms cubic-bezier(0.22, 1, 0.36, 1);
	    }
	    .graph-layout.graph-layout-panel-collapsed {
	      --graph-panel-width: 0px;
	    }
	    .graph-layout.graph-layout-panel-collapsed .graph-panel {
	      opacity: 0;
	      transform: translateX(8px);
	      pointer-events: none;
	      border-color: transparent;
	      padding-left: 0;
	      padding-right: 0;
	    }
	    .graph-overlay-shell-create-focus .graph-panel,
	    .graph-overlay-shell-create-focus .graph-panel-edge-toggle {
	      filter: blur(0.8px);
	      opacity: 0.34;
	      pointer-events: none;
	      user-select: none;
	    }
	    .graph-create-panel {
	      position: absolute;
	      left: 0;
	      top: 0;
	      bottom: 0;
	      width: min(calc(100% - 92px), var(--graph-create-panel-width));
	      display: flex;
	      flex-direction: column;
	      gap: 0;
	      border-right: 1px solid var(--panel-strong);
	      background: color-mix(in oklab, var(--surface) 78%, #eef2f6 22%);
	      overflow: visible;
	      opacity: 0;
	      pointer-events: none;
	      transform: translateX(calc(-100% - 8px));
	      transition: opacity 180ms ease, transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
	      z-index: 8;
	      box-shadow: 1px 0 0 color-mix(in oklab, var(--panel-strong) 68%, transparent), 10px 0 22px rgba(15, 23, 42, 0.06);
	    }
	    .graph-overlay-shell-edge-create .graph-create-panel {
	      opacity: 1;
	      pointer-events: auto;
	      transform: none;
	    }
	    .graph-create-resize-handle {
	      position: absolute;
	      top: 0;
	      left: calc(min(calc(100% - 92px), var(--graph-create-panel-width)) - 6px);
	      bottom: 0;
	      width: 14px;
	      display: flex;
	      align-items: center;
	      justify-content: center;
	      cursor: col-resize;
	      z-index: 12;
	      pointer-events: auto;
	      opacity: 0;
	      transition: opacity 180ms ease;
	    }
	    .graph-overlay-shell-edge-create .graph-create-resize-handle {
	      opacity: 1;
	    }
	    .graph-create-panel-resizing {
	      cursor: col-resize;
	      user-select: none;
	    }
	    .graph-create-panel .graph-panel-section {
	      position: relative;
	      padding-right: 24px;
	      min-height: 0;
	      max-height: 100%;
	      overflow-y: auto;
	      overflow-x: hidden;
	    }
	    .graph-panel-edge-toggle {
	      align-self: center;
	      justify-self: center;
	      width: 12px;
	      height: 72px;
	      border: 1px solid var(--panel-strong);
	      border-right: none;
	      border-radius: 6px 0 0 6px;
	      background: color-mix(in oklab, var(--panel) 64%, var(--card));
	      color: var(--muted);
	      font-size: 10px;
	      line-height: 1;
	      cursor: pointer;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      padding: 0;
	      user-select: none;
	      opacity: 0.7;
	      transition: background 140ms ease, color 140ms ease, border-color 140ms ease, opacity 140ms ease;
	      z-index: 3;
	    }
	    .graph-panel-edge-toggle:hover {
	      background: color-mix(in oklab, var(--brand) 12%, var(--panel));
	      color: color-mix(in oklab, var(--brand) 58%, var(--text));
	      border-color: color-mix(in oklab, var(--brand) 38%, var(--panel-strong));
	      opacity: 1;
	    }
	    .graph-panel-edge-toggle[data-collapsed="true"] {
	      border-right: 1px solid var(--panel-strong);
	      border-left: none;
	      border-radius: 0 6px 6px 0;
	    }
	    .graph-panel {
	      background: var(--surface);
	      border-left: 1px solid var(--panel-strong);
	      border-radius: 0;
	      padding: 0;
	      display: flex;
	      flex-direction: column;
	      gap: 0;
	      min-height: 0;
	      max-height: 100%;
	      overflow-y: auto;
	      overflow-x: hidden;
	      overscroll-behavior: contain;
	      min-width: 0;
	      transition: opacity 180ms ease, transform 220ms cubic-bezier(0.22, 1, 0.36, 1), padding 220ms cubic-bezier(0.22, 1, 0.36, 1), border-color 180ms ease;
	    }
	    .graph-panel > * {
	      flex-shrink: 0;
	    }
	    .graph-panel-section {
	      display: grid;
	      gap: 10px;
	      padding: 16px 18px;
	      border-bottom: 1px solid var(--panel-strong);
	    }
	    .graph-panel-section:last-child {
	      border-bottom: none;
	    }
	    .graph-panel-section-inspector {
	      padding-top: 18px;
	    }
	    .graph-panel-title {
	      font-size: 11px;
	      color: var(--muted);
	      letter-spacing: 0.08em;
	      text-transform: uppercase;
	      font-weight: 700;
	    }
	    .graph-inspector-panel {
	      border: none;
	      border-radius: 0;
	      background: transparent;
	      padding: 0;
	      display: grid;
	      gap: 10px;
	      min-height: 0;
	    }
	    .graph-inspector-panel .graph-muted-line {
	      padding: 0;
	      line-height: 1.5;
	    }
	    .graph-guide-box {
	      border: 1px solid color-mix(in oklab, var(--brand) 24%, var(--panel-strong));
	      border-radius: 4px;
	      background: color-mix(in oklab, var(--brand) 6%, var(--card));
	      padding: 8px 9px;
	      display: grid;
	      gap: 5px;
	    }
	    .graph-guide-row {
	      font-size: 11px;
	      line-height: 1.35;
	      color: var(--muted);
	    }
	    .graph-guide-row strong {
	      color: color-mix(in oklab, var(--brand) 58%, var(--text));
	      font-weight: 700;
	    }
	    .graph-stats-grid { display: grid; grid-template-columns: 1fr; gap: 8px; }
	    .graph-stat-card {
	      border: 1px solid var(--panel-strong);
	      border-radius: 4px;
	      background: var(--panel);
	      padding: 8px 10px;
	    }
	    .graph-stat-label { font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.4px; }
	    .graph-stat-value { font-size: 20px; font-weight: 700; margin-top: 2px; line-height: 1.1; }
	    .graph-stat-list {
	      display: grid;
	      gap: 0;
	      border-top: 1px solid var(--panel-strong);
	    }
	    .graph-column-toggle-list {
	      display: grid;
	      gap: 0;
	      border-top: 1px solid var(--panel-strong);
	    }
    .graph-references-panel { display: grid; gap: 4px; }
	    .graph-ref-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; padding: 5px 4px; border-bottom: 1px solid var(--panel-strong); font-size: 12px; }
	    .graph-ref-row:last-child { border-bottom: none; }
	    .graph-ref-info { display: grid; gap: 2px; min-width: 0; flex: 1; }
	    .graph-ref-title { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	    .graph-ref-meta { color: var(--muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	    .graph-ref-actions { display: flex; align-items: center; gap: 2px; flex-shrink: 0; }
	    .graph-ref-url-link { text-decoration: none; font-size: 13px; opacity: 0.7; }
	    .graph-ref-url-link:hover { opacity: 1; }
	    .graph-ref-action { padding: 1px 4px; font-size: 11px; min-width: 0; }
	    .graph-ref-form { display: grid; gap: 6px; padding: 6px 4px; border: 1px solid var(--panel-strong); border-radius: 4px; background: var(--card); margin-top: 4px; }
	    .graph-ref-form-title { font-size: 12px; font-weight: 600; }
	    .graph-ref-form-row { display: grid; gap: 3px; }
	    .graph-ref-label { font-size: 11px; color: var(--muted); }
	    .graph-ref-input { width: 100%%; box-sizing: border-box; font-size: 12px; padding: 3px 5px; border: 1px solid var(--panel-strong); border-radius: 3px; background: var(--bg); color: var(--text); }
	    .graph-ref-textarea { resize: vertical; min-height: 48px; }
	    .graph-ref-doi-row { display: flex; gap: 4px; align-items: center; }
	    .graph-ref-doi-row .graph-ref-input { flex: 1; }
	    .graph-ref-doi-status { font-size: 11px; }
	    .graph-ref-doi-found { color: #2d6a4f; }
	    .graph-ref-doi-not-found { color: #c0392b; }
	    .graph-ref-form-actions { display: flex; gap: 4px; }
	    .graph-ref-form-status { font-size: 11px; color: var(--muted); }
	    .graph-muted-line { font-size: 12px; color: var(--muted); padding: 4px 0; }
	    .project-references-list { display: flex; flex-direction: column; gap: 14px; padding: 18px 12px 20px; }
	    .project-reference-card {
	      display: flex; align-items: flex-start; justify-content: space-between; gap: 8px;
	      padding: 10px 12px; border-radius: 6px; border: 1px solid var(--panel-strong); border-left-width: 3px;
	      border-left-color: color-mix(in oklab, var(--reference-entry-accent, var(--graph-node-accent-reference)) 82%, var(--panel-strong));
	      background: color-mix(in oklab, var(--reference-entry-accent, var(--graph-node-accent-reference)) 4%, var(--card));
	      box-shadow: 0 1px 0 rgba(13, 18, 40, 0.10), 2px 2px 0 rgba(13, 18, 40, 0.10);
	      margin: 0 12px;
	      transition: border-color 220ms cubic-bezier(0.22, 1, 0.36, 1), background-color 220ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 220ms cubic-bezier(0.22, 1, 0.36, 1);
	      overflow: hidden;
	    }
	    .project-reference-card:hover {
	      border-color: color-mix(in oklab, var(--reference-entry-accent, var(--graph-node-accent-reference)) 50%, var(--panel-strong));
	      background: color-mix(in oklab, var(--reference-entry-accent, var(--graph-node-accent-reference)) 7%, var(--card));
	      box-shadow: 0 0 0 1px color-mix(in oklab, var(--reference-entry-accent, var(--graph-node-accent-reference)) 20%, var(--panel-strong)), 0 1px 0 rgba(13, 18, 40, 0.12), 3px 3px 0 rgba(13, 18, 40, 0.10);
	    }
	    .project-reference-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
	    .project-reference-title { font-size: 13px; font-weight: 500; }
	    .project-reference-meta { font-size: 12px; color: var(--muted); }
	    .project-reference-links { font-size: 11px; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
	    .project-reference-link { color: var(--accent, #2176ae); text-decoration: none; word-break: break-all; }
	    .project-reference-link:hover { text-decoration: underline; }
	    .project-reference-notes { font-size: 12px; font-style: italic; margin-top: 2px; color: var(--muted); }
	    .project-reference-actions { display: flex; gap: 2px; flex-shrink: 0; }
	    .project-ref-doi-row { display: flex; gap: 6px; align-items: flex-end; margin-bottom: 2px; }
	    /* Reference file import */
	    #ref-drop-zone.drag-over { outline: 2px dashed var(--graph-node-accent-reference); outline-offset: -2px; border-radius: 6px; background: color-mix(in oklab, var(--graph-node-accent-reference) 5%, transparent); }
	    .modal-box.asimov-popup-import { max-width: 620px; min-width: 480px; }
	    .ref-import-list { display: flex; flex-direction: column; gap: 3px; max-height: 340px; overflow-y: auto; margin: 8px 0; border: 1px solid var(--panel-strong); border-radius: 4px; padding: 6px; }
	    .ref-import-entry { display: flex; align-items: flex-start; gap: 8px; padding: 5px 7px; border-radius: 3px; font-size: 12px; }
	    .ref-import-entry--error { background: color-mix(in oklab, var(--danger, #c0392b) 8%, transparent); }
	    .ref-import-entry--skip { opacity: 0.5; }
	    .ref-import-check { margin-top: 2px; flex-shrink: 0; accent-color: var(--graph-node-accent-reference); }
	    .ref-import-info { flex: 1; min-width: 0; }
	    .ref-import-title { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	    .ref-import-meta { color: var(--muted); font-size: 11px; }
	    .ref-import-warn { color: var(--danger, #c0392b); font-size: 11px; display: block; margin-top: 2px; }
	    .ref-import-file-err { color: var(--danger, #c0392b); font-size: 12px; }

	    .graph-bulk-action-box {
	      border: 1px solid var(--panel-strong);
	      border-radius: 0;
	      background: transparent;
	      padding: 12px;
	      display: grid;
	      gap: 8px;
	    }
	    .graph-layout-control-box {
	      border: 1px solid var(--panel-strong);
	      border-radius: 0;
	      background: transparent;
	      padding: 12px;
	      display: grid;
	      gap: 10px;
	    }
	    .graph-bulk-action-box .btn {
	      justify-self: flex-start;
	    }
	    .graph-bulk-action-inline {
	      display: flex;
	      gap: 6px;
	      flex-wrap: wrap;
	    }
	    .graph-bulk-action-hint {
	      font-size: 11px;
	      line-height: 1.35;
	      color: var(--muted);
	    }
	    .graph-bulk-action-status {
	      font-size: 11px;
	      color: #1b5e20;
	      min-height: 13px;
	    }
	    .graph-bulk-action-status-error {
	      color: #9f1f1f;
	    }
	    .graph-slider-field {
	      display: flex;
	      align-items: center;
	      justify-content: space-between;
	      gap: 8px;
	      font-size: 11px;
	      color: var(--muted);
	      font-weight: 600;
	    }
	    .graph-slider-label {
	      color: var(--text);
	    }
	    .graph-slider-value {
	      font-variant-numeric: tabular-nums;
	      color: var(--muted);
	    }
	    #graph-lane-spacing-slider,
	    #graph-node-spacing-slider {
	      width: 100%;
	      margin: 0;
	      accent-color: color-mix(in oklab, var(--brand) 76%, var(--text));
	    }
	    .graph-category-manager {
	      border: 1px solid var(--panel-strong);
	      border-radius: 4px;
	      background: var(--card);
	      padding: 8px;
	      display: grid;
	      gap: 8px;
	    }
	    .graph-category-manager-actions {
	      display: flex;
	      gap: 6px;
	      flex-wrap: wrap;
	    }
	    .graph-category-manager-list {
	      display: grid;
	      gap: 6px;
	    }
	    .graph-category-row {
	      border: 1px solid var(--panel-strong);
	      border-radius: 3px;
	      background: var(--panel);
	      padding: 6px 7px;
	      display: grid;
	      grid-template-columns: minmax(0, 1fr) auto;
	      grid-template-areas:
	        "main count"
	        "actions actions";
	      gap: 5px 8px;
	      align-items: center;
	    }
	    .graph-category-row-main {
	      grid-area: main;
	      min-width: 0;
	      display: grid;
	      gap: 2px;
	    }
	    .graph-category-row-title {
	      font-size: 11px;
	      font-weight: 700;
	      color: var(--text);
	      white-space: nowrap;
	      overflow: hidden;
	      text-overflow: ellipsis;
	    }
	    .graph-category-row-meta {
	      display: flex;
	      align-items: center;
	      gap: 6px;
	      min-width: 0;
	    }
	    .graph-category-kind {
	      font-size: 9px;
	      letter-spacing: 0.35px;
	      text-transform: uppercase;
	      border: 1px solid var(--panel-strong);
	      border-radius: 2px;
	      padding: 1px 4px;
	      line-height: 1.4;
	      color: var(--muted);
	      background: var(--card);
	    }
	    .graph-category-kind-measurement { border-color: color-mix(in oklab, var(--graph-node-accent-measurement) 56%, var(--panel-strong)); color: color-mix(in oklab, var(--graph-node-accent-measurement) 70%, var(--text)); }
	    .graph-category-kind-experiment { border-color: color-mix(in oklab, var(--graph-node-accent-experiment) 56%, var(--panel-strong)); color: color-mix(in oklab, var(--graph-node-accent-experiment) 70%, var(--text)); }\n\t    .graph-category-kind-reference { border-color: color-mix(in oklab, var(--graph-node-accent-reference) 56%, var(--panel-strong)); color: color-mix(in oklab, var(--graph-node-accent-reference) 70%, var(--text)); }
	    .graph-category-kind-asset { border-color: color-mix(in oklab, var(--brand) 56%, var(--panel-strong)); color: color-mix(in oklab, var(--brand) 70%, var(--text)); }
	    .graph-category-kind-script { border-color: color-mix(in oklab, var(--graph-node-accent-script) 56%, var(--panel-strong)); color: color-mix(in oklab, var(--graph-node-accent-script) 70%, var(--text)); }
	    .graph-category-kind-figure { border-color: color-mix(in oklab, var(--graph-node-accent-figure) 56%, var(--panel-strong)); color: color-mix(in oklab, var(--graph-node-accent-figure) 70%, var(--text)); }
	    .graph-category-scope {
	      font-size: 10px;
	      color: var(--muted);
	    }
	    .graph-category-row-count {
	      grid-area: count;
	      justify-self: end;
	      min-width: 18px;
	      text-align: right;
	      font-size: 11px;
	      color: var(--muted);
	      font-weight: 700;
	    }
	    .graph-category-row-actions {
	      grid-area: actions;
	      display: flex;
	      gap: 5px;
	      flex-wrap: wrap;
	    }
	    .graph-category-mutation-status {
	      min-height: 13px;
	      font-size: 11px;
	      color: #1b5e20;
	    }
	    .graph-category-mutation-status-error {
	      color: #9f1f1f;
	    }
	    .graph-column-toggle-row {
	      display: grid;
	      grid-template-columns: auto minmax(0, 1fr) auto;
	      align-items: center;
	      gap: 8px;
	      padding: 9px 0;
	      border-top: 1px solid var(--panel-strong);
	      font-size: 12px;
	      line-height: 1.4;
	      cursor: pointer;
	    }
	    .graph-column-toggle-row:first-child { border-top: none; }
	    .graph-column-toggle-row-child { padding-left: 18px; }
	    .graph-column-toggle-row-grandchild { padding-left: 32px; }
	    .graph-column-toggle-row-greatgrandchild { padding-left: 46px; }
	    .graph-column-toggle-row-ultradeep { padding-left: 60px; }
	    .graph-column-toggle-row input {
	      margin: 0;
	      width: 13px;
	      height: 13px;
	      cursor: pointer;
	    }
	    .graph-column-toggle-row span {
	      min-width: 0;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	      color: var(--text);
	    }
	    .graph-column-toggle-row strong {
	      font-size: 11px;
	      color: var(--muted);
	    }
	    .graph-column-toggle-row input:disabled,
	    .graph-column-toggle-row input:disabled + span {
	      cursor: default;
	      color: var(--muted);
	    }
	    .graph-stat-row {
	      display: flex;
	      justify-content: space-between;
	      gap: 8px;
	      padding: 9px 0;
	      font-size: 12px;
	      border-top: 1px solid var(--panel-strong);
	      line-height: 1.4;
	    }
	    .graph-stat-row:first-child { border-top: none; }
	    .graph-stat-row-legend { align-items: center; }
	    .graph-kind-legend-label {
	      min-width: 0;
	      display: inline-flex;
	      align-items: center;
	      gap: 10px;
	      color: var(--text);
	    }
	    .graph-kind-legend-label > span {
	      min-width: 0;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	    }
	    .graph-kind-legend-icon {
	      width: 26px;
	      height: 10px;
	      flex-shrink: 0;
	    }
	    .graph-kind-legend-text {
	      font-size: 12px;
	      line-height: 1.4;
	      color: var(--text);
	    }
	    .graph-kind-legend-icon {
	      width: 26px;
	      height: 10px;
	      flex-shrink: 0;
	      display: block;
	      overflow: visible;
	    }
	    .graph-kind-legend-icon .graph-edge {
	      vector-effect: none;
	      pointer-events: none;
	    }
	    .graph-relation-badge-row {
	      display: flex;
	      align-items: center;
	      margin: 2px 0 4px;
	    }
	    .graph-relation-badge {
	      --graph-relation-badge-accent: color-mix(in oklab, var(--text) 62%, var(--panel-strong));
	      display: inline-flex;
	      align-items: center;
	      gap: 8px;
	      min-width: 0;
	      max-width: 100%;
	      padding: 0;
	      color: color-mix(in oklab, var(--graph-relation-badge-accent) 62%, var(--text));
	    }
	    .graph-relation-badge-compact {
	      gap: 6px;
	      font-size: 11px;
	    }
	    .graph-relation-badge-glyph {
	      flex-shrink: 0;
	      min-width: 26px;
	      height: 22px;
	      padding: 0 7px;
	      border-radius: 999px;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      font-size: 10px;
	      font-weight: 800;
	      letter-spacing: 0.08em;
	      text-transform: uppercase;
	      color: white;
	      background:
	        linear-gradient(135deg, color-mix(in oklab, var(--graph-relation-badge-accent) 88%, white 12%), color-mix(in oklab, var(--graph-relation-badge-accent) 72%, black 28%));
	      box-shadow: inset 0 1px 0 color-mix(in oklab, white 24%, transparent);
	    }
	    .graph-relation-badge-compact .graph-relation-badge-glyph {
	      min-width: 22px;
	      height: 18px;
	      padding: 0 6px;
	      font-size: 9px;
	    }
	    .graph-relation-badge-text {
	      min-width: 0;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	      font-size: 12px;
	      font-weight: 700;
	      letter-spacing: 0.02em;
	    }
	    .graph-relation-badge-tone-lab {
	      --graph-relation-badge-accent: color-mix(in oklab, var(--graph-node-accent-experiment) 78%, #1b8f83 22%);
	    }
	    .graph-relation-badge-tone-signal {
	      --graph-relation-badge-accent: color-mix(in oklab, var(--brand) 62%, #c24a36 38%);
	    }
	    .graph-relation-badge-tone-input {
	      --graph-relation-badge-accent: color-mix(in oklab, var(--text) 58%, #3f6d8b 42%);
	    }
	    .graph-relation-badge-tone-output {
	      --graph-relation-badge-accent: color-mix(in oklab, #2f9b70 74%, var(--brand) 26%);
	    }
	    .graph-relation-badge-tone-reference {
	      --graph-relation-badge-accent: color-mix(in oklab, #7b5aa6 68%, var(--text) 32%);
	    }
	    .graph-muted-line { font-size: 12px; color: var(--muted); padding: 10px; }
	    .graph-stage {
	      position: relative;
	      min-width: 0;
	      min-height: 0;
	      max-height: 100%;
	      display: flex;
	      flex-direction: column;
	      gap: 0;
	      z-index: 1;
	    }
	    .graph-stage-guide-box {
	      display: none;
	    }
	    .graph-stage-guide-box strong {
	      color: color-mix(in oklab, var(--brand) 60%, var(--text));
	    }
	    .graph-help-toggle {
	      position: absolute;
	      right: 16px;
	      bottom: 16px;
	      z-index: 6;
	      width: 32px;
	      height: 32px;
	      border: 1px solid var(--panel-strong);
	      border-radius: 999px;
	      background: var(--surface);
	      color: var(--text);
	      font-size: 14px;
	      font-weight: 700;
	      line-height: 1;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      cursor: pointer;
	      box-shadow: none;
	    }
	    .graph-help-popover {
	      position: absolute;
	      right: 16px;
	      bottom: 56px;
	      z-index: 6;
	      width: min(320px, calc(100% - 32px));
	      border: 1px solid var(--panel-strong);
	      background: var(--surface);
	      padding: 12px 14px;
	      display: grid;
	      gap: 8px;
	      box-shadow: none;
	    }
	    .graph-help-title {
	      font-size: 11px;
	      font-weight: 700;
	      letter-spacing: 0.08em;
	      text-transform: uppercase;
	      color: var(--muted);
	    }
	    .graph-help-copy {
	      font-size: 12px;
	      line-height: 1.5;
	      color: var(--text);
	    }
	    .graph-stage-status {
	      border: 1px solid var(--panel-strong);
	      border-radius: 4px;
	      background: var(--card);
	      padding: 8px 10px;
	      font-size: 12px;
	    }
	    .graph-stage-loading { color: var(--muted); }
	    .graph-stage-ready { color: var(--text); }
	    .graph-stage-error {
	      color: #9f1f1f;
	      border-color: #e4b4b4;
	      background: #fff5f5;
	    }
	    .graph-canvas-shell {
	      flex: 1;
	      min-height: 0;
	      border: 1px solid var(--panel-strong);
	      border-radius: 0;
	      background: var(--surface);
	      position: relative;
	      overflow: hidden;
	      cursor: all-scroll;
	      touch-action: none;
	    }
	    .graph-canvas-shell.graph-cursor-locked {
	      cursor: not-allowed;
	    }
	    .graph-canvas-shell.graph-cursor-node { cursor: grab; }
	    .graph-canvas-shell.graph-cursor-hook { cursor: pointer; }
	    .graph-canvas-shell.graph-cursor-edge { cursor: pointer; }
	    .graph-canvas-shell.graph-cursor-node .graph-edge { cursor: inherit !important; }
	    .graph-canvas-shell.graph-scene-panning { cursor: all-scroll; }
	    .graph-canvas-shell.graph-canvas-shell-inspector-open { cursor: default; }
	    .graph-inspector-popup {
	      position: absolute;
	      inset: 0;
	      display: none;
	      pointer-events: none;
	      z-index: 22;
	    }
	    .graph-inspector-popup-active {
	      display: block;
	    }
	    .graph-inspector-popup-shell {
	      pointer-events: auto;
	    }
	    .graph-scene {
	      position: absolute;
	      inset: 0;
	      transform-origin: 0 0;
	      transform: translate(var(--graph-scene-pan-x, 0px), var(--graph-scene-pan-y, 0px)) scale(var(--graph-scene-scale, 1));
	      will-change: transform;
	    }
	    .graph-canvas-placeholder-slot {
	      position: absolute;
	      inset: 0;
	      z-index: 1;
	      pointer-events: none;
	    }
	    .graph-overlay-shell-edge-create .graph-canvas-placeholder-slot {
	      z-index: 6;
	      pointer-events: auto;
	    }
	    .graph-canvas-placeholder {
	      position: absolute;
	      inset: 12px;
	      border: 1px dashed var(--panel-strong);
	      border-radius: 4px;
	      background: var(--panel);
	      display: flex;
	      flex-direction: column;
	      align-items: center;
	      justify-content: center;
	      gap: 8px;
	      text-align: center;
	      padding: 14px;
	      box-sizing: border-box;
	    }
	    .graph-canvas-placeholder-title {
	      font-size: 13px;
	      font-weight: 700;
	      letter-spacing: 0.3px;
	      text-transform: uppercase;
	    }
	    .graph-canvas-placeholder-copy {
	      font-size: 12px;
	      color: var(--muted);
	      max-width: 64ch;
	    }
	    .graph-edge-creation-form {
	      margin: 0;
	      gap: 10px;
	      padding: 0;
	      background: transparent;
	    }
	    .graph-edge-creation-block {
	      display: grid;
	      gap: 6px;
	      padding: 0;
	      border: none;
	      border-radius: 0;
	      background: transparent;
	    }
	    .graph-edge-creation-title {
	      font-size: 13px;
	      font-weight: 600;
	      color: var(--text);
	    }
	    .graph-edge-creation-block-hero {
	      gap: 8px;
	      padding: 0 0 2px;
	      border-left: none;
	      background: transparent;
	    }
	    .graph-edge-creation-label {
	      font-size: 10px;
	      font-weight: 600;
	      color: var(--text-muted);
	      letter-spacing: .05em;
	      text-transform: uppercase;
	    }
	    .graph-edge-creation-route {
	      display: grid;
	      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	      gap: 8px;
	      align-items: center;
	    }
	    .graph-edge-creation-endpoint {
	      min-width: 0;
	      width: 100%;
	      box-sizing: border-box;
	      padding: 7px 10px;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      font-size: 13px;
	      line-height: 1.35;
	      color: var(--text);
	      white-space: normal;
	      overflow-wrap: anywhere;
	    }
	    .graph-edge-creation-arrow {
	      width: 24px;
	      height: 24px;
	      border-radius: 999px;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      background: color-mix(in oklab, var(--brand) 10%, var(--surface));
	      color: color-mix(in oklab, var(--brand) 62%, var(--text));
	      font-size: 12px;
	      font-weight: 700;
	    }
	    .graph-edge-creation-badge-row {
	      margin: -2px 0 2px;
	    }
	    .graph-edge-creation-form .graph-connect-field {
	      gap: 0;
	    }
	    .graph-edge-creation-select-field {
	      display: grid;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      overflow: hidden;
	    }
	    .graph-edge-creation-textarea-field {
	      display: grid;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      overflow: hidden;
	    }
	    .graph-edge-creation-readonly-field {
	      display: grid;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      overflow: hidden;
	    }
	    .graph-edge-creation-readonly {
	      min-width: 0;
	      padding: 8px 10px;
	      font-size: 13px;
	      line-height: 1.4;
	      color: var(--text);
	      white-space: nowrap;
	      overflow: hidden;
	      text-overflow: ellipsis;
	    }
	    .graph-edge-creation-readonly-multiline {
	      white-space: normal;
	      overflow-wrap: anywhere;
	    }
	    .graph-edge-creation-form .graph-connect-field > span:not(.graph-edge-evidence-axis-label):not(.graph-edge-evidence-axis-select) {
	      display: none;
	    }
	    .graph-edge-creation-form .graph-connect-field select {
	      width: 100%;
	      min-height: 35px;
	      border: 0;
	      border-radius: 0;
	      background: transparent;
	      color: var(--text);
	      font: inherit;
	      font-size: 13px;
	      font-weight: 400;
	      padding: 8px 10px;
	      box-shadow: none;
	    }
	    .graph-edge-creation-form .graph-connect-field textarea {
	      width: 100%;
	      min-height: 78px;
	      border: 0;
	      border-radius: 0;
	      background: transparent;
	      color: var(--text);
	      font: inherit;
	      font-size: 13px;
	      font-weight: 400;
	      line-height: 1.45;
	      padding: 9px 10px;
	      resize: vertical;
	      box-shadow: none;
	    }
	    .graph-edge-creation-form textarea[readonly] {
	      resize: none;
	    }
	    .graph-edge-creation-select-field:hover {
	      border-color: var(--border);
	      background: var(--surface);
	    }
	    .graph-edge-creation-textarea-field:hover {
	      border-color: var(--border);
	      background: var(--surface);
	    }
	    .graph-edge-creation-select-field:focus-within {
	      border-color: #9ca3af;
	      box-shadow: none;
	    }
	    .graph-edge-creation-textarea-field:focus-within {
	      border-color: #9ca3af;
	      box-shadow: none;
	    }
	    .graph-edge-creation-form .graph-connect-evidence-grid {
	      gap: 10px;
	    }
	    .graph-edge-evidence-loading {
	      display: none;
	      padding: 10px 12px;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      font-size: 12px;
	      color: var(--muted);
	    }
	    .graph-edge-evidence-editor[data-evidence-state="loading"] .graph-edge-evidence-loading,
	    .graph-edge-evidence-editor[data-evidence-state="empty"] .graph-edge-evidence-loading,
	    .graph-edge-evidence-editor[data-evidence-state="error"] .graph-edge-evidence-loading,
	    .graph-edge-evidence-editor[data-evidence-state="unsupported"] .graph-edge-evidence-loading {
	      display: block;
	    }
	    .graph-edge-inspector-readonly-form .graph-edge-evidence-editor[data-evidence-state="loading"] .graph-edge-evidence-loading,
	    .graph-edge-inspector-readonly-form .graph-edge-evidence-editor[data-evidence-state="empty"] .graph-edge-evidence-loading,
	    .graph-edge-inspector-readonly-form .graph-edge-evidence-editor[data-evidence-state="error"] .graph-edge-evidence-loading,
	    .graph-edge-inspector-readonly-form .graph-edge-evidence-editor[data-evidence-state="unsupported"] .graph-edge-evidence-loading {
	      display: none;
	    }
	    .graph-edge-evidence-editor[data-evidence-state="loading"] .graph-connect-evidence-grid,
	    .graph-edge-evidence-editor[data-evidence-state="empty"] .graph-connect-evidence-grid,
	    .graph-edge-evidence-editor[data-evidence-state="error"] .graph-connect-evidence-grid,
	    .graph-edge-evidence-editor[data-evidence-state="unsupported"] .graph-connect-evidence-grid {
	      display: none;
	    }
	    .graph-edge-evidence-axis-control {
	      display: grid;
	      grid-template-columns: auto minmax(0, 1fr);
	      align-items: center;
	      gap: 8px;
	      min-width: 0;
	    }
	    .graph-edge-evidence-axis-label {
	      display: inline-block;
	      font-size: 12px;
	      font-weight: 600;
	      color: var(--text);
	      text-transform: none;
	      letter-spacing: 0;
	      white-space: nowrap;
	      min-width: 14px;
	    }
	    .graph-edge-evidence-axis-select {
	      min-width: 0;
	    }
	    .graph-edge-evidence-axis-select select {
	      min-height: 34px;
	    }
	    .graph-edge-creation-form .graph-connect-evidence-preview .project-experiment-evidence-measurement {
	      min-height: 340px;
	    }
	    .graph-edge-creation-form .graph-connect-evidence-preview .project-experiment-evidence-measurement-placeholder {
	      min-height: 280px;
	    }
	    .graph-connect-evidence-preview-asset {
	      min-height: 0;
	    }
	    .graph-edge-asset-preview-shell {
	      display: flex;
	      align-items: center;
	      justify-content: center;
	      min-height: 120px;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      overflow: hidden;
	    }
	    .graph-edge-asset-preview-image {
	      display: block;
	      max-width: 100%;
	      max-height: 280px;
	      object-fit: contain;
	      background: transparent;
	    }
	    .graph-evidence-preview-plot-shell {
	      display: grid;
	      gap: 8px;
	      padding: 8px 10px 10px;
	    }
	    .graph-evidence-preview-plot {
	      min-height: 340px;
	      width: 100%;
	    }
	    .graph-evidence-preview-plot .js-plotly-plot,
	    .graph-evidence-preview-plot .plot-container,
	    .graph-evidence-preview-plot .svg-container {
	      width: 100% !important;
	    }
	    .graph-edge-creation-form .graph-connect-actions {
	      padding-top: 4px;
	      display: flex;
	      gap: 8px;
	    }
	    .graph-edge-creation-form .graph-connect-actions .btn {
	      font: inherit;
	      font-size: 12px;
	      padding: 5px 10px;
	      border: 1px solid var(--border);
	      border-radius: var(--radius);
	      background: var(--surface);
	      color: var(--text);
	      cursor: pointer;
	      transition: background .12s, color .12s, border-color .12s;
	      box-shadow: none;
	    }
	    .graph-edge-creation-form .graph-connect-actions .btn:hover {
	      background: var(--bg);
	    }
	    .graph-edge-creation-form .graph-connect-actions .btn.primary {
	      background: #145ea8;
	      border-color: #145ea8;
	      color: #fff;
	    }
	    .graph-edge-creation-form .graph-connect-actions .btn.primary:hover {
	      background: #0f4f94;
	      border-color: #0f4f94;
	    }
	    .graph-edge-creation-form .graph-connect-actions .btn:disabled {
	      opacity: 0.5;
	      cursor: default;
	    }
	    .graph-edge-creation-actions-block {
	      margin-top: 0;
	    }
	    .graph-edge-creation-form .graph-connect-status {
	      min-height: 16px;
	    }
	    @media (max-width: 960px) {
	      .graph-layout,
	      .graph-layout.graph-layout-panel-collapsed {
	        grid-template-columns: 1fr !important;
	      }
	      .graph-create-panel,
	      .graph-overlay-shell-edge-create .graph-create-panel {
	        display: none;
	      }
	    }
	    .graph-node-board {
	      min-width: 100%;
	      min-height: 100%;
	      box-sizing: border-box;
	      padding: 20px 30px 28px;
	      display: flex;
	      flex-direction: column;
	      gap: 16px;
	      align-items: stretch;
	    }
	    .graph-main-lanes {
	      display: grid;
	      grid-template-columns: repeat(var(--graph-col-count, 1), 292px);
	      column-gap: var(--graph-lane-gap, 38px);
	      row-gap: 18px;
	      align-items: start;
	      align-content: start;
	      justify-content: start;
	    }
	    .graph-node-board-has-experiment-band .graph-main-lanes {
	      margin-top: 44px;
	    }
	    .graph-experiment-band {
	      border-color: color-mix(in oklab, var(--graph-node-accent-experiment) 52%, var(--panel-strong));
	      background: color-mix(in oklab, var(--graph-node-accent-experiment) 8%, var(--card));
	      min-height: 0;
	      width: 100%;
	      max-width: 100%;
	      align-self: stretch;
	      margin-inline: 0;
	    }
	    .graph-experiment-band-header {
	      border-bottom-color: color-mix(in oklab, var(--graph-node-accent-experiment) 34%, var(--panel-strong));
	      background: color-mix(in oklab, var(--graph-node-accent-experiment) 14%, var(--panel));
	    }
	    .graph-node-list.graph-experiment-band-list {
	      display: flex;
	      flex-direction: row;
	      flex-wrap: nowrap;
	      align-items: stretch;
	      justify-content: flex-start;
	      width: 100%;
	      gap: 10px;
	      overflow-x: auto;
	      overflow-y: hidden;
	      overscroll-behavior-x: contain;
	    }
	    .graph-experiment-band-list .graph-node-card {
	      flex: 0 0 230px;
	      width: 230px;
	      min-height: 44px;
	      padding: 6px 8px;
	      gap: 6px;
	    }
	    .graph-experiment-band-list .graph-node-card .graph-node-main {
	      gap: 3px;
	    }
	    .graph-experiment-band-list .graph-node-card .graph-node-title {
	      font-size: 11px;
	    }
	    .graph-experiment-band-list .graph-node-card .graph-node-meta {
	      font-size: 10px;
	    }
	    .graph-experiment-band-list .graph-node-card .graph-node-type-chip {
	      width: 14px;
	      height: 14px;
	      font-size: 9px;
	    }
	    .graph-experiment-band-list .graph-node-card.graph-node-card-parent {
	      row-gap: 4px;
	      padding-top: 8px;
	      padding-bottom: 8px;
	    }
	    .graph-experiment-band-list .graph-node-card.graph-node-card-parent .graph-node-main {
	      padding-right: 0;
	    }
	    .graph-experiment-band .graph-muted-line {
	      padding: 4px 2px;
	    }
	    .graph-node-column {
	      position: relative;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 45%, transparent);
	      border-radius: 4px;
	      background: color-mix(in oklab, var(--card) 58%, transparent);
	      min-height: 120px;
	      display: flex;
	      flex-direction: column;
	    }
	    .graph-node-column::before {
	      content: "";
	      position: absolute;
	      inset: -1px;
	      border: 1px solid transparent;
	      border-radius: inherit;
	      pointer-events: none;
	      opacity: 0;
	    }
	    .graph-node-column-header {
	      position: relative;
	      z-index: 20;
	      height: 34px;
	      flex-shrink: 0;
	      box-sizing: border-box;
	      display: flex;
	      align-items: center;
	      justify-content: space-between;
	      gap: 8px;
	      padding: 0 10px;
	      border-bottom: 1px solid color-mix(in oklab, var(--panel-strong) 42%, transparent);
	      font-size: 11px;
	      text-transform: uppercase;
	      letter-spacing: 0.4px;
	      color: color-mix(in oklab, var(--muted) 70%, transparent);
	      background: color-mix(in oklab, var(--panel) 48%, transparent);
	      user-select: none;
	      -webkit-user-select: none;
	    }
	    .graph-node-column-header-main {
	      min-width: 0;
	      display: flex;
	      align-items: center;
	      gap: 8px;
	      flex: 1;
	    }
	    .graph-node-column-title {
	      min-width: 0;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	      user-select: none;
	      -webkit-user-select: none;
	    }
	    .graph-node-column-title-editable {
	      cursor: default;
	      border-radius: 3px;
	      padding: 1px 3px;
	      margin-left: -3px;
	      margin-right: -3px;
	    }
	    .graph-node-column-title-editing {
	      overflow: visible;
	      text-overflow: clip;
	      white-space: normal;
	      background: transparent !important;
	    }
	    .graph-lane-title-input {
	      width: 100%;
	      box-sizing: border-box;
	      border: 1px solid color-mix(in oklab, var(--brand) 60%, var(--panel-strong));
	      border-radius: 3px;
	      height: 20px;
	      background: var(--card);
	      color: var(--text);
	      font-size: 11px;
	      letter-spacing: 0.3px;
	      padding: 0 5px;
	      user-select: text;
	      -webkit-user-select: text;
	    }
	    .graph-lane-title-input:focus {
	      outline: 1px solid color-mix(in oklab, var(--brand) 50%, var(--panel-strong));
	    }
	    .graph-node-column-header-actions {
	      display: flex;
	      align-items: center;
	      gap: 4px;
	      flex-shrink: 0;
	    }
	    .graph-lane-action-btn {
	      width: 18px;
	      height: 18px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 86%, transparent);
	      border-radius: 2px;
	      background: color-mix(in oklab, var(--panel) 70%, transparent);
	      color: color-mix(in oklab, var(--text) 64%, var(--muted));
	      font-size: 11px;
	      line-height: 1;
	      padding: 0;
	      cursor: pointer;
	    }
	    .graph-lane-action-btn:hover:not(:disabled) {
	      border-color: color-mix(in oklab, var(--brand) 62%, var(--panel-strong));
	      color: color-mix(in oklab, var(--brand) 74%, var(--text));
	    }
	    .graph-lane-action-btn:disabled {
	      opacity: 0.45;
	      cursor: default;
	    }
	    .graph-node-column-header strong {
	      color: color-mix(in oklab, var(--text) 66%, transparent);
	      font-size: 11px;
	      font-weight: 600;
	      min-width: 18px;
	      text-align: right;
	    }
	    .graph-node-column-create {
	      min-height: 120px;
	      border-style: dashed;
	      background: color-mix(in oklab, var(--card) 36%, transparent);
	      display: flex;
	      align-items: center;
	      justify-content: center;
	    }
	    .graph-node-column-create-btn {
	      width: 30px;
	      height: 30px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 86%, transparent);
	      border-radius: 3px;
	      background: color-mix(in oklab, var(--panel) 62%, transparent);
	      color: color-mix(in oklab, var(--text) 54%, var(--muted));
	      font-size: 18px;
	      line-height: 1;
	      cursor: pointer;
	      opacity: 0.75;
	    }
	    .graph-node-column-create-btn:hover:not(:disabled) {
	      opacity: 1;
	      color: color-mix(in oklab, var(--brand) 68%, var(--text));
	      border-color: color-mix(in oklab, var(--brand) 58%, var(--panel-strong));
	    }
	    .graph-node-column-create-btn:disabled {
	      cursor: default;
	      opacity: 0.45;
	    }
	    .graph-node-column-drop-target {
	      border-color: color-mix(in oklab, var(--brand) 58%, var(--panel-strong));
	      box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--brand) 32%, transparent);
	    }
	    .graph-node-column-appearing {
	      transform-origin: left center;
	      animation: graph-lane-grow-appear 300ms cubic-bezier(0.2, 0.9, 0.2, 1);
	    }
	    @keyframes graph-lane-grow-appear {
	      from {
	        transform: translateX(18px) scaleX(0.32) scaleY(0.96);
	        opacity: 0.06;
	      }
	      68% {
	        transform: translateX(-2px) scaleX(1.03) scaleY(1);
	        opacity: 1;
	      }
	      to {
	        transform: translateX(0px) scaleX(1) scaleY(1);
	        opacity: 1;
	      }
	    }
	    .graph-node-column-swapping {
	      box-shadow: 0 4px 14px rgba(13, 18, 40, 0.12);
	    }
	    .graph-node-list {
	      display: flex;
	      flex-direction: column;
	      gap: var(--graph-node-gap, 10px);
	      padding: 10px;
	      min-height: 0;
	    }
	    .graph-node-card {
	      position: relative;
	      min-height: 52px;
	      box-sizing: border-box;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 64%, transparent);
	      border-radius: 10px;
	      background: color-mix(in oklab, var(--card) 96%, var(--panel));
	      box-shadow: 0 4px 14px rgba(13, 18, 40, 0.04);
	      display: flex;
	      align-items: center;
	      gap: 8px;
	      padding: 8px 10px;
	      cursor: grab;
	      user-select: none;
	      -webkit-user-select: none;
	      touch-action: none;
	    }
	    .graph-node-card.graph-node-measurement_run,
	    .graph-node-child.graph-node-measurement_run,
	    .graph-node-child.graph-node-measurement_column,
	    .graph-node-child.graph-node-measurement_series {
	      background: var(--card);
	      border-color: color-mix(in oklab, var(--graph-node-entry-accent, var(--graph-node-accent-measurement)) 22%, var(--panel-strong));
	      box-shadow: 0 4px 14px rgba(13, 18, 40, 0.04), inset 0 0 0 1px color-mix(in oklab, var(--graph-node-entry-accent, var(--graph-node-accent-measurement)) 8%, transparent);
	    }
	    .graph-node-card.graph-node-asset,
	    .graph-node-child.graph-node-asset {
	      background: color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 6%, var(--card));
	      border-color: color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 24%, var(--panel-strong));
	      box-shadow: 0 4px 14px rgba(13, 18, 40, 0.04), inset 0 0 0 1px color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 8%, transparent);
	    }
	    .graph-node-card.graph-node-reference,
	    .graph-node-child.graph-node-reference {
	      background: var(--card);
	      border-color: var(--panel-strong);
	    }
	    .graph-node-child.graph-node-reference .graph-node-child-type {
	      border-color: color-mix(in oklab, var(--graph-node-accent-reference) 54%, var(--panel-strong));
	      color: color-mix(in oklab, var(--graph-node-accent-reference) 82%, var(--text));
	      background: color-mix(in oklab, var(--graph-node-accent-reference) 12%, var(--card));
	      box-shadow: inset 0 0 0 1px color-mix(in oklab, var(--graph-node-accent-reference) 10%, transparent);
	    }
	    .graph-node-card-positioned {
	      left: var(--graph-node-x, 0px);
	      top: var(--graph-node-y, 0px);
	    }
	    .graph-node-card-dragging {
	      cursor: grabbing;
	      z-index: 8;
	      box-shadow: 0 0 0 1px var(--panel-strong);
	      pointer-events: none;
	    }
	    .graph-node-card-selected {
	      border-color: color-mix(in oklab, var(--brand) 58%, var(--panel-strong));
	      box-shadow: 0 0 0 1px color-mix(in oklab, var(--brand) 40%, var(--panel-strong));
	    }
	    .graph-node-card.graph-node-asset.graph-node-card-selected {
	      border-color: color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 58%, var(--panel-strong));
	      box-shadow: 0 0 0 1px color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 40%, var(--panel-strong));
	    }
	    .graph-node-child-wrap-selected > .graph-node-child {
	      border-color: color-mix(in oklab, var(--brand) 58%, var(--panel-strong));
	      box-shadow: 0 0 0 1px color-mix(in oklab, var(--brand) 36%, var(--panel-strong));
	    }
	    .graph-node-child-wrap-selected > .graph-node-child.graph-node-asset {
	      border-color: color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 58%, var(--panel-strong));
	      box-shadow: 0 0 0 1px color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 36%, var(--panel-strong));
	    }
	    .graph-node-focus-dimmed {
	      opacity: 0.42;
	      transition: opacity 120ms ease;
	    }
	    .graph-focus-active .graph-node-card:not(.graph-node-focus-dimmed),
	    .graph-focus-active .graph-node-child:not(.graph-node-focus-dimmed) {
	      opacity: 1;
	    }
	    .graph-node-main {
	      min-width: 0;
	      flex: 1;
	      display: flex;
	      flex-direction: column;
	      gap: 4px;
	    }
	    .graph-node-title-row {
	      display: flex;
	      align-items: center;
	      gap: 7px;
	      min-width: 0;
	    }
	    .graph-node-type-chip {
	      width: 16px;
	      height: 16px;
	      border: 1.6px solid var(--graph-node-badge-accent, #d1d5db);
	      border-radius: 3px;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      font-size: 10px;
	      font-weight: 700;
	      color: var(--graph-node-badge-text, var(--muted));
	      background: var(--graph-node-badge-bg, var(--panel));
	      flex-shrink: 0;
	      box-shadow: none;
	    }
	    .graph-node-measurement_run .graph-node-type-chip,
	    .graph-node-measurement_column .graph-node-type-chip,
	    .graph-node-measurement_series .graph-node-type-chip {
	      --graph-node-badge-accent: #4f8a78;
	      --graph-node-badge-text: #355d52;
	      --graph-node-badge-bg: #eef6f3;
	    }
	    .graph-node-experiment .graph-node-type-chip {
	      --graph-node-badge-accent: #5f7ea6;
	      --graph-node-badge-text: #415a79;
	      --graph-node-badge-bg: #eef3f9;
	    }
	    .graph-node-reference .graph-node-type-chip {
	      --graph-node-badge-accent: #8b6aa9;
	      --graph-node-badge-text: #654a7e;
	      --graph-node-badge-bg: #f4eef9;
	    }
	    .graph-node-asset .graph-node-type-chip,
	    .graph-node-script .graph-node-type-chip {
	      --graph-node-badge-accent: #c07b45;
	      --graph-node-badge-text: #8a5831;
	      --graph-node-badge-bg: #fbf2ea;
	    }
	    .graph-node-figure .graph-node-type-chip {
	      --graph-node-badge-accent: #c15f5f;
	      --graph-node-badge-text: #8a4444;
	      --graph-node-badge-bg: #faefef;
	    }
	    .graph-node-title {
	      min-width: 0;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	      font-size: 12px;
	      font-weight: 700;
	      color: var(--text);
	    }
	    .graph-node-meta {
	      font-size: 11px;
	      color: var(--muted);
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	    }
	    .graph-node-experiment-context {
	      display: grid;
	      gap: 3px;
	    }
	    .graph-node-experiment-line {
	      min-width: 0;
	      display: block;
	    }
	    .graph-node-experiment-text {
	      font-size: 10px;
	      line-height: 1.25;
	      color: var(--text);
	      white-space: normal;
	      overflow-wrap: anywhere;
	      word-break: break-word;
	      display: -webkit-box;
	      -webkit-line-clamp: 2;
	      -webkit-box-orient: vertical;
	      overflow: hidden;
	      text-overflow: ellipsis;
	    }
	    .graph-node-experiment-line-answer .graph-node-experiment-text {
	      color: color-mix(in oklab, var(--text) 72%, var(--muted));
	    }
	    .graph-node-card-parent {
	      align-items: flex-start;
	      flex-wrap: wrap;
	      row-gap: 6px;
	    }
	    .graph-node-card-parent .graph-node-main {
	      width: 100%;
	      padding-right: 12px;
	    }
	    .graph-node-card-parent .graph-node-hook-left,
	    .graph-node-card-parent .graph-node-hook-right {
	      top: 24px;
	      margin-top: -4px;
	    }
	    .graph-node-card-parent.graph-node-experiment {
	      padding-top: 12px;
	      padding-bottom: 12px;
	    }
	    .graph-node-card-parent.graph-node-experiment .graph-node-main {
	      padding-right: 0;
	    }
	    .graph-node-card-has-children {
	      padding-bottom: 9px;
	    }
	    .graph-node-children {
	      width: 100%;
	      display: grid;
	      gap: 7px;
	      padding-left: 8px;
	      cursor: default;
	    }
	    .graph-node-child-group {
	      border-top: 1px dashed color-mix(in oklab, var(--panel-strong) 54%, transparent);
	      padding-top: 6px;
	      display: grid;
	      gap: 5px;
	    }
	    .graph-node-child-group-title {
	      font-size: 10px;
	      line-height: 1.2;
	      letter-spacing: 0.35px;
	      text-transform: uppercase;
	      color: color-mix(in oklab, var(--muted) 82%, transparent);
	      padding-left: 2px;
	      font-weight: 700;
	    }
	    .graph-node-child-wrap {
	      display: grid;
	      gap: 4px;
	    }
	    .graph-node-child-wrap-depth-2 { margin-left: 10px; }
	    .graph-node-child-wrap-depth-3 { margin-left: 14px; }
	    .graph-node-child-wrap-depth-4 { margin-left: 18px; }
	    .graph-node-child {
	      position: relative;
	      min-height: 36px;
	      box-sizing: border-box;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 88%, transparent);
	      border-radius: 3px;
	      background: color-mix(in oklab, var(--card) 94%, var(--panel));
	      display: flex;
	      align-items: center;
	      padding: 6px 8px;
	      overflow: visible;
	      cursor: default;
	    }
	    .graph-node-child-depth-2 {
	      min-height: 32px;
	      padding: 5px 8px 5px 10px;
	    }
	    .graph-node-child-depth-3 {
	      min-height: 30px;
	      padding: 4px 8px 4px 10px;
	    }
	    .graph-node-child-depth-4 {
	      min-height: 28px;
	      padding: 3px 7px 3px 9px;
	    }
	    .graph-node-child-main {
	      min-width: 0;
	      width: 100%;
	      display: grid;
	      grid-template-columns: auto auto minmax(0, 1fr);
	      align-items: center;
	      gap: 6px;
	      padding-right: 8px;
	    }
	    .graph-node-child-type {
	      width: 13px;
	      height: 13px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 85%, transparent);
	      border-radius: 2px;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      font-size: 9px;
	      font-weight: 700;
	      color: color-mix(in oklab, var(--muted) 78%, transparent);
	      background: color-mix(in oklab, var(--panel) 70%, transparent);
	      flex-shrink: 0;
	    }
	    .graph-node-child-title {
	      min-width: 0;
	      font-size: 11px;
	      font-weight: 600;
	      color: var(--text);
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	    }
	    .graph-node-child-depth-1 .graph-node-child-title {
	      font-size: 10px;
	    }
	    .graph-node-child-depth-2 .graph-node-child-title {
	      font-size: 9px;
	    }
	    .graph-node-child-depth-3 .graph-node-child-title {
	      font-size: 8px;
	    }
	    .graph-node-child-depth-4 .graph-node-child-title {
	      font-size: 7px;
	    }
	    .graph-node-child-depth-2 .graph-node-child-type {
	      width: 11px;
	      height: 11px;
	      font-size: 7px;
	    }
	    .graph-node-child-depth-3 .graph-node-child-type {
	      width: 10px;
	      height: 10px;
	      font-size: 6px;
	    }
	    .graph-node-child-depth-4 .graph-node-child-type {
	      width: 9px;
	      height: 9px;
	      font-size: 5px;
	    }
	    .graph-node-child.graph-node-dataset .graph-node-child-main {
	      align-items: start;
	    }
	    .graph-node-child.graph-node-dataset .graph-node-child-title {
	      white-space: normal;
	      overflow: visible;
	      text-overflow: clip;
	      line-height: 1.2;
	      overflow-wrap: anywhere;
	      word-break: break-word;
	    }
	    .graph-node-child-list {
	      display: grid;
	      gap: 4px;
	      margin-left: 10px;
	    }
	    .graph-node-child-list-depth-3 { margin-left: 12px; }
	    .graph-node-child-list-depth-4 { margin-left: 14px; }
	    .graph-node-fold-toggle {
	      width: 16px;
	      height: 16px;
	      padding: 0;
	      border: none;
	      border-radius: 0;
	      background: transparent;
	      color: var(--muted);
	      font-size: 10px;
	      line-height: 1;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      cursor: pointer;
	      flex-shrink: 0;
	    }
	    .graph-node-fold-toggle:hover {
	      color: color-mix(in oklab, var(--brand) 68%, var(--muted));
	    }
	    .graph-node-fold-toggle-chevron {
	      width: 7px;
	      height: 7px;
	      border-right: 1.5px solid currentColor;
	      border-bottom: 1.5px solid currentColor;
	      transform: rotate(45deg) translateY(-1px);
	      transform-origin: 50% 50%;
	      transition: transform 120ms ease;
	    }
	    .graph-node-fold-toggle[aria-expanded="false"] .graph-node-fold-toggle-chevron {
	      transform: rotate(-45deg);
	    }
	    .graph-node-fold-toggle-spacer {
	      width: 14px;
	      height: 14px;
	      flex-shrink: 0;
	      display: inline-block;
	    }
	    .graph-node-fold-toggle-child {
	      width: 14px;
	      height: 14px;
	    }
	    .graph-node-hook {
	      all: unset;
	      position: absolute;
	      top: 50%;
	      width: auto;
	      height: auto;
	      margin-top: 0;
	      margin-left: 0;
	      cursor: pointer;
	      pointer-events: auto;
	      transition: transform 120ms ease;
	      z-index: 24;
	      display: block;
	      overflow: visible;
	      line-height: 0;
	      transform: translateY(-50%);
	    }
	    .graph-node-hook-icon {
	      display: block;
	      width: 13px;
	      height: 15px;
	      overflow: visible;
	      pointer-events: none;
	    }
	    .graph-node-hook-icon polygon {
	      fill: #ffffff;
	      stroke: #111111;
	      stroke-width: 0.95;
	      stroke-linejoin: round;
	      vector-effect: non-scaling-stroke;
	    }
	    .graph-node-hook:hover:not(:disabled) {
	      transform: translateY(-50%) scale(1.15);
	    }
	    .graph-node-hook:hover:not(:disabled) .graph-node-hook-icon polygon {
	      stroke: var(--brand);
	      fill: #ffffff;
	    }
	    .graph-node-hook:disabled,
	    .graph-node-hook-readonly {
	      cursor: default;
	      opacity: 0.55;
	    }
	    .graph-hook-active {
	      transform: translateY(-50%) scale(1.22);
	    }
	    .graph-hook-active .graph-node-hook-icon polygon {
	      stroke: var(--brand);
	      fill: #ffffff;
	    }
	    .graph-hook-snap {
	      transform: translateY(-50%) scale(1.22);
	    }
	    .graph-hook-snap .graph-node-hook-icon polygon {
	      stroke: var(--brand);
	      fill: #ffffff;
	    }
	    .graph-node-hook-in { left: -9px; }
	    .graph-node-hook-out { right: -9px; }
	    .graph-node-hook-left {
	      left: -9px;
	      right: auto;
	      top: 50%;
	      bottom: auto;
	      margin-left: 0;
	    }
	    .graph-node-hook-right {
	      right: -9px;
	      left: auto;
	      top: 50%;
	      bottom: auto;
	      margin-left: 0;
	    }
	    .graph-node-hook-top {
	      left: 50%;
	      right: auto;
	      top: -5px;
	      bottom: auto;
	      margin-top: 0;
	      margin-left: -4px;
	    }
	    .graph-node-hook-bottom {
	      left: 50%;
	      right: auto;
	      top: auto;
	      bottom: -5px;
	      margin-top: 0;
	      margin-left: -4px;
	    }
	    .graph-node-hook-child {
	      width: auto;
	      height: auto;
	    }
	    .graph-node-hook-child .graph-node-hook-icon {
	      width: 11px;
	      height: 13px;
	    }
	    .graph-node-card-parent .graph-node-child .graph-node-hook {
	      top: 50%;
	    }
	    .graph-node-child .graph-node-hook-in { left: -7px; }
	    .graph-node-child .graph-node-hook-out { right: -7px; }
	    .graph-edge-layer {
	      position: absolute;
	      top: 0;
	      left: 0;
	      overflow: visible;
	      pointer-events: none;
	    }
	    .graph-edge-layer-structural {
	      z-index: 12;
	    }
	    .graph-edge-layer-authored {
	      z-index: 14;
	    }
	    .graph-edge {
	      fill: none;
	      stroke-linecap: round;
	      stroke-linejoin: round;
	      vector-effect: non-scaling-stroke;
	      pointer-events: stroke;
	      transition: opacity 120ms ease, stroke-width 120ms ease;
	    }
	    .graph-edge-control {
	      fill: var(--surface);
	      stroke: color-mix(in oklab, var(--text) 36%, var(--border));
	      stroke-width: 1.4;
	      vector-effect: non-scaling-stroke;
	      pointer-events: all;
	      cursor: grab;
	      opacity: 1;
	      transition: opacity 120ms ease, stroke 120ms ease, fill 120ms ease;
	    }
	    .graph-edge-control:hover {
	      opacity: 1;
	      stroke: var(--text);
	    }
	    .graph-edge-control:active {
	      cursor: grabbing;
	    }
	    .graph-edge-control-structural {
	      stroke: color-mix(in oklab, #64748b 62%, var(--border));
	    }
	    .graph-edge-control-kind-evidence {
	      fill: #ffffff;
	      stroke: #2563eb;
	      stroke-width: 1.8;
	      opacity: 1 !important;
	    }
	    .graph-edge-control-kind-conclusion {
	      stroke: color-mix(in oklab, #0f766e 68%, var(--border));
	    }
	    .graph-edge-control-kind-data_input {
	      stroke: color-mix(in oklab, var(--text) 44%, var(--border));
	    }
	    .graph-edge-control-kind-produces {
	      stroke: color-mix(in oklab, #15803d 64%, var(--border));
	    }
	    .graph-edge-control-kind-reference {
	      stroke: color-mix(in oklab, #7c3aed 62%, var(--border));
	    }
	    .graph-edge-hit {
	      stroke: transparent;
	      stroke-width: 12;
	      cursor: pointer;
	      pointer-events: stroke;
	    }
	    .graph-edge-structural {
	      stroke: #64748b;
	      stroke-width: 1.5;
	      stroke-dasharray: 5 4;
	      opacity: 0.82;
	      cursor: pointer;
	    }
	    .graph-edge-authored {
	      stroke: #334155;
	      stroke-width: 2.2;
	      opacity: 0.96;
	      cursor: pointer;
	    }
	    .graph-edge-authored:hover,
	    .graph-edge-structural:hover {
	      stroke-width: 2.8;
	      opacity: 1;
	    }
	    .graph-edge-kind-evidence {
	      stroke: #2563eb;
	      stroke-width: 3;
	      stroke-dasharray: 1.6 6.6;
	      opacity: 1;
	      filter: none;
	    }
	    .graph-edge-kind-conclusion {
	      stroke: #0f766e;
	      stroke-width: 3.4;
	      opacity: 1;
	      filter: none;
	    }
	    .graph-edge-kind-data_input {
	      stroke: #475569;
	      stroke-width: 2;
	      stroke-dasharray: 10 5;
	    }
	    .graph-edge-kind-produces {
	      stroke: #15803d;
	      stroke-width: 2.6;
	      filter: none;
	    }
	    .graph-edge-kind-reference {
	      stroke: #7c3aed;
	      stroke-width: 2.1;
	      stroke-dasharray: 14 4 2 4;
	    }
	    .graph-edge-dimmed {
	      opacity: 0.34 !important;
	    }
	    .graph-focus-active .graph-edge-dimmed-group .graph-edge-control {
	      opacity: 0.22 !important;
	    }
	    .graph-overlay-shell-create-focus .graph-node-dimmed,
	    .graph-overlay-shell-create-focus .graph-edge-dimmed {
	      opacity: 0.18 !important;
	      filter: blur(0.8px);
	    }
	    .graph-overlay-shell-create-focus .graph-edge-control {
	      opacity: 0.16 !important;
	      filter: blur(0.8px);
	      pointer-events: none !important;
	    }
	    .graph-overlay-shell-create-focus .graph-node-card:not(.graph-node-dimmed),
	    .graph-overlay-shell-create-focus .graph-node-child-wrap:not(.graph-node-dimmed) .graph-node-child,
	    .graph-overlay-shell-create-focus .graph-edge-group:not(.graph-edge-dimmed-group) .graph-edge-authored,
	    .graph-overlay-shell-create-focus .graph-edge-group:not(.graph-edge-dimmed-group) .graph-edge-structural {
	      filter: none;
	    }
	    .graph-control-dragging .graph-edge,
	    .graph-control-dragging .graph-edge-control {
	      transition: none;
	    }
	    .graph-control-dragging .graph-edge-group:not(.graph-edge-group-dragging) .graph-edge-control {
	      opacity: 0 !important;
	      pointer-events: none !important;
	    }
	    .graph-edge-group-dragging .graph-edge-structural,
	    .graph-edge-group-dragging .graph-edge-authored {
	      opacity: 1 !important;
	      stroke-width: 3;
	    }
	    .graph-link-drag-layer {
	      position: absolute;
	      top: 0;
	      left: 0;
	      pointer-events: none;
	      z-index: 18;
	      overflow: visible;
	    }
	    .graph-marquee-selection {
	      position: absolute;
	      border: 1px solid color-mix(in oklab, var(--brand) 70%, var(--panel-strong));
	      background: color-mix(in oklab, var(--brand) 18%, transparent);
	      box-sizing: border-box;
	      pointer-events: none;
	      z-index: 26;
	      display: none;
	    }
	    .graph-marquee-selection.graph-marquee-selection-active { display: block; }
	    .graph-link-live-path {
	      fill: none;
	      stroke: color-mix(in oklab, var(--text) 52%, var(--border));
	      stroke-width: 2.2;
	      stroke-linecap: round;
	      stroke-linejoin: round;
	      opacity: 0.96;
	    }
	    .graph-link-live-path-snapped {
	      stroke: color-mix(in oklab, var(--text) 52%, var(--border));
	      stroke-width: 2.2;
	      opacity: 0.96;
	    }
	    .graph-link-live-path-settle {
	      stroke: color-mix(in oklab, var(--text) 52%, var(--border));
	      stroke-width: 2.2;
	      opacity: 0.96;
	      transition: opacity 140ms ease;
	    }
	    .graph-link-dragging {
	      cursor: crosshair;
	    }
	    .graph-link-dragging .graph-edge-layer {
	      pointer-events: none;
	    }
    .graph-connect-popover {
      position: absolute;
      width: min(360px, calc(100% - 16px));
      max-height: min(90svh, 820px);
      border: 1px solid var(--panel-strong);
      border-radius: 4px;
      background: var(--card);
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);
      padding: 8px;
      box-sizing: border-box;
      z-index: 22;
      display: grid;
      gap: 6px;
      overflow-y: auto;
      overflow-x: hidden;
    }
    .graph-connect-popover.graph-connect-popover-has-evidence {
      width: min(980px, calc(100% - 16px));
    }
	    .graph-connect-title {
	      font-size: 11px;
	      letter-spacing: 0.4px;
	      text-transform: uppercase;
	      color: var(--muted);
	      font-weight: 700;
	    }
    .graph-connect-route {
      display: grid;
      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
      gap: 6px;
      align-items: center;
      min-width: 0;
    }
    .graph-connect-arrow {
      font-size: 11px;
      color: var(--muted);
      line-height: 1;
    }
    .graph-connect-endpoint {
      border: 1px solid var(--panel-strong);
      border-radius: 3px;
      background: color-mix(in oklab, var(--panel) 62%, var(--card));
      padding: 5px 7px;
      font-size: 11px;
      color: var(--text);
      line-height: 1.2;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .graph-connect-field {
      display: grid;
      gap: 3px;
      font-size: 11px;
    }
    .graph-connect-field-compact {
      min-width: 0;
    }
    .graph-connect-field > span {
      color: var(--muted);
      letter-spacing: 0.3px;
      text-transform: uppercase;
      font-size: 9px;
      font-weight: 700;
    }
	    .graph-connect-field input,
	    .graph-connect-field select,
	    .graph-connect-field textarea {
	      width: 100%;
	      box-sizing: border-box;
	      border: 1px solid var(--panel-strong);
	      border-radius: 3px;
	      background: var(--card);
	      color: var(--text);
      font-size: 11px;
      padding: 5px 6px;
      resize: vertical;
    }
    .graph-connect-field input {
      height: 28px;
      resize: none;
    }
    .graph-connect-field input:focus,
    .graph-connect-field select:focus,
    .graph-connect-field textarea:focus {
      outline: 1px solid color-mix(in oklab, var(--brand) 45%, var(--panel-strong));
      border-color: var(--brand);
    }
    .graph-connect-summary-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
    }
    .graph-connect-summary-item {
      display: grid;
      gap: 2px;
      padding: 5px 7px;
      border: 1px solid var(--panel-strong);
      border-radius: 3px;
      background: color-mix(in oklab, var(--panel) 62%, var(--card));
      min-width: 0;
    }
    .graph-connect-summary-item span {
      color: var(--muted);
      letter-spacing: 0.3px;
      text-transform: uppercase;
      font-size: 9px;
      font-weight: 700;
    }
    .graph-connect-summary-item strong {
      font-size: 11px;
      line-height: 1.25;
      min-width: 0;
      overflow-wrap: anywhere;
    }
    .graph-connect-scope-row {
      display: grid;
      gap: 5px;
      padding: 6px;
      border: 1px solid var(--panel-strong);
      border-radius: 3px;
      background: color-mix(in oklab, var(--panel) 52%, var(--card) 48%);
    }
    .graph-edge-evidence-editor[data-evidence-supported="true"] {
      grid-template-columns: repeat(2, minmax(0, 1fr));
      column-gap: 10px;
      row-gap: 6px;
    }
	    .graph-edge-evidence-editor[data-evidence-supported="true"] > .graph-connect-scope-title,
	    .graph-edge-evidence-editor[data-evidence-supported="true"] > .graph-inspector-readonly,
	    .graph-edge-evidence-editor[data-evidence-supported="true"] > .graph-connect-evidence-preview,
	    .graph-edge-evidence-editor[data-evidence-supported="true"] > .graph-connect-evidence-grid {
	      grid-column: 1 / -1;
	    }
    .graph-connect-scope-title {
      font-size: 9px;
      text-transform: uppercase;
      letter-spacing: 0.4px;
      color: var(--muted);
      font-weight: 700;
    }
	    .graph-edge-evidence-editor-hidden {
	      display: none !important;
	    }
	    .graph-edge-evidence-field-hidden {
	      display: none !important;
	    }
    .graph-connect-evidence-preview {
      border: none;
      border-radius: 0;
      background: transparent;
      padding: 0;
    }
    .graph-connect-evidence-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 10px;
      align-items: start;
    }
    .graph-connect-evidence-controls {
      display: grid;
      gap: 8px;
      align-content: start;
    }
    .graph-connect-evidence-axis-row {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 6px;
      min-width: 0;
    }
    .graph-connect-evidence-preview-wrap {
      min-width: 0;
    }
    .graph-connect-evidence-preview .project-experiment-evidence-measurement {
      min-height: 160px;
      border: none;
      background: transparent;
    }
    .graph-connect-evidence-preview .project-experiment-evidence-measurement-chart {
      padding: 0;
    }
    .graph-connect-evidence-preview .project-experiment-evidence-measurement-svg {
      height: 168px;
      border: none;
      background: transparent;
    }
    .graph-connect-popover.graph-connect-popover-has-evidence .graph-connect-evidence-preview .project-experiment-evidence-measurement {
      min-height: 360px;
    }
    .graph-connect-popover.graph-connect-popover-has-evidence .graph-connect-evidence-preview .project-experiment-evidence-measurement-chart {
      padding: 0;
    }
    .graph-connect-popover.graph-connect-popover-has-evidence .graph-connect-evidence-preview .project-experiment-evidence-measurement-svg {
      height: 344px;
      border: none;
      background: transparent;
    }
    .graph-connect-evidence-preview .project-experiment-evidence-measurement-placeholder {
      min-height: 148px;
    }
    .graph-connect-popover.graph-connect-popover-has-evidence .graph-connect-evidence-preview .project-experiment-evidence-measurement-placeholder {
      min-height: 344px;
    }
	    .graph-connect-status {
	      min-height: 14px;
	      font-size: 11px;
	      color: #9f1f1f;
	    }
	    .graph-connect-actions {
	      display: flex;
	      justify-content: flex-end;
	      gap: 6px;
	    }
	    .graph-inspector-shell {
	      border: 1px solid var(--panel-strong);
	      border-radius: 0;
	      background: transparent;
	      padding: 12px;
	      min-height: 0;
	    }
	    .graph-inspector-shell-primary {
	      border-width: 1px;
	      border-color: var(--panel-strong);
	      background: transparent;
	      box-shadow: none;
	      padding: 12px;
	      min-height: 0;
	      max-height: none;
	      overflow: visible;
	      overflow-x: hidden;
	    }
	    .graph-inspector-shell-primary .graph-inspector-type {
	      color: var(--muted);
	    }
	    .graph-inspector-card {
	      display: grid;
	      gap: 8px;
	      align-content: start;
	      min-height: 0;
	    }
	    .graph-inspector-type {
	      font-size: 11px;
	      letter-spacing: 0.08em;
	      text-transform: uppercase;
	      color: var(--muted);
	      font-weight: 700;
	    }
	    .graph-inspector-endpoint {
	      border: 1px solid var(--panel-strong);
	      border-radius: 0;
	      background: transparent;
	      padding: 8px 10px;
	      font-size: 12px;
	      line-height: 1.45;
	      max-height: 68px;
	      overflow-y: auto;
	      overflow-x: hidden;
	      overscroll-behavior: contain;
	    }
	    .graph-inspector-link-row {
	      display: grid;
	      gap: 6px;
	    }
	    .graph-inspector-edge-route {
	      display: grid;
	      grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	      gap: 6px;
	      align-items: center;
	    }
	    .graph-inspector-edge-route .graph-inspector-endpoint {
	      max-height: 56px;
	      padding: 5px 7px;
	    }
	    .graph-inspector-link-label {
	      font-size: 10px;
	      text-transform: uppercase;
	      letter-spacing: 0.45px;
	      color: var(--muted);
	      font-weight: 700;
	    }
	    .graph-inspector-link-kind {
	      font-size: 11px;
	      border: 1px solid color-mix(in oklab, var(--brand) 30%, var(--panel-strong));
	      border-radius: 3px;
	      background: color-mix(in oklab, var(--brand) 9%, var(--card));
	      padding: 6px 8px;
	      color: var(--text);
	    }
	    .graph-inspector-custom-box {
	      border: 1px solid var(--panel-strong);
	      border-radius: 3px;
	      background: color-mix(in oklab, var(--panel) 84%, var(--card));
	      padding: 6px 8px;
	      font-size: 11px;
	      line-height: 1.35;
	      color: var(--text);
	      max-height: 92px;
	      overflow-y: auto;
	      overflow-x: hidden;
	      overscroll-behavior: contain;
	      word-break: break-word;
	    }
	    .graph-inspector-arrow {
	      font-size: 12px;
	      line-height: 1;
	      color: var(--muted);
	    }
	    .graph-inspector-meta {
	      font-size: 11px;
	      color: var(--muted);
	    }
	    .graph-inspector-readonly {
	      font-size: 11px;
	      color: var(--muted);
	      line-height: 1.35;
	    }
	    .graph-inspector-form {
	      display: grid;
	      gap: 8px;
	    }
	    .graph-inspector-header {
	      display: grid;
	      gap: 6px;
	    }
	    .graph-inspector-summary {
	      font-size: 12px;
	      line-height: 1.5;
	      color: var(--muted);
	    }
	    .graph-node-inspector-form {
	      --graph-inspector-accent: var(--brand);
	    }
	    .graph-node-inspector-meta {
	      color: var(--muted);
	    }
	    .graph-inspector-field-grid {
	      display: grid;
	      grid-template-columns: repeat(2, minmax(0, 1fr));
	      gap: 10px;
	    }
	    .graph-inspector-field {
	      min-width: 0;
	      display: grid;
	      gap: 5px;
	      padding: 10px 12px;
	      border: 1px solid var(--panel-strong);
	      border-radius: 0;
	      background: transparent;
	    }
	    .graph-inspector-field-full {
	      grid-column: 1 / -1;
	    }
	    .graph-inspector-field-label {
	      font-size: 11px;
	      font-weight: 600;
	      letter-spacing: 0.04em;
	      text-transform: uppercase;
	      color: var(--muted);
	    }
	    .graph-inspector-field-value {
	      font-size: 12px;
	      line-height: 1.5;
	      color: var(--text);
	      white-space: pre-wrap;
	      word-break: break-word;
	    }
	    .graph-node-inspector-grid {
	      grid-template-columns: 1fr;
	      gap: 8px;
	    }
	    .graph-node-inspector-details {
	      padding-top: 2px;
	      border-top: none;
	    }
	    .graph-node-measurement_run { border-left: 3px solid var(--graph-node-entry-accent, var(--graph-node-accent-measurement)); }
	    .graph-node-measurement_column { border-left: 3px solid color-mix(in oklab, var(--graph-node-entry-accent, var(--graph-node-accent-measurement)) 74%, var(--panel-strong)); }
	    .graph-node-measurement_series { border-left: 3px solid color-mix(in oklab, var(--graph-node-entry-accent, var(--graph-node-accent-measurement)) 58%, var(--panel-strong)); }
	    .graph-node-dataset { border-left: 3px solid color-mix(in oklab, var(--text) 52%, var(--panel-strong)); }
	    .graph-node-dataset_version { border-left: 3px solid color-mix(in oklab, var(--text) 60%, var(--panel-strong)); }
	    .graph-node-asset { border-left: 3px solid color-mix(in oklab, var(--asset-entry-accent, var(--brand)) 76%, var(--panel-strong)); }
	    .graph-node-script { border-left: 3px solid var(--graph-node-accent-script); }
	    .graph-node-figure { border-left: 3px solid var(--graph-node-accent-figure); }
	    .graph-node-experiment { border-left: 3px solid var(--graph-node-entry-accent, var(--graph-node-accent-experiment)); }
	    .graph-node-reference { border-left: 3px solid var(--graph-node-entry-accent, var(--graph-node-accent-reference)); }
	    .plot-stage-card,
	    .plot-chart-card,
	    .plot-message-card {
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 76%, transparent);
	      border-radius: 10px;
	      background: color-mix(in oklab, var(--card) 94%, var(--panel));
	      box-shadow: 0 10px 24px rgba(13, 18, 40, 0.06);
	    }
	    .plot-discovery-card,
	    .plot-sidebar-section {
	      padding: 0;
	    }
	    .plot-sidebar-tabs {
	      display: inline-flex;
	      gap: 2px;
	      background: color-mix(in oklab, var(--panel-strong) 40%, transparent);
	      border-radius: 6px;
	      padding: 2px;
	    }
	    .plot-sidebar-tab {
	      padding: 4px 10px;
	      border: none;
	      border-radius: 4px;
	      background: none;
	      color: var(--muted);
	      font: inherit;
	      font-size: 11px;
	      font-weight: 600;
	      cursor: pointer;
	    }
	    .plot-sidebar-tab.active {
	      background: var(--card);
	      color: var(--text);
	    }
	    .plot-sidebar-summary,
	    .plot-results-meta,
	    .plot-inline-toggle-row,
	    .plot-inline-actions,
	    .plot-result-card-footer,
	    .plot-tree-dataset,
	    .plot-stage-item,
	    .plot-stage-item-actions {
	      display: flex;
	      align-items: center;
	      gap: 6px;
	    }
	    .plot-sidebar-summary,
	    .plot-results-meta {
	      justify-content: space-between;
	      font-size: 10px;
	      color: var(--muted);
	    }
	    .plot-sidebar-section {
	      display: grid;
	      gap: 6px;
	    }
	    .plot-sidebar-section-title,
	    .plot-stage-card-header,
	    .plot-message-title {
	      font-size: 10px;
	      font-weight: 700;
	      letter-spacing: 0.4px;
	      text-transform: uppercase;
	      color: var(--muted);
	    }
	    .plot-field-grid,
	    .plot-filter-list,
	    .plot-sidebar-results,
	    .plot-tree-list,
	    .plot-stage-list,
	    .plot-message-list {
	      display: grid;
	      gap: 4px;
	    }
	    .plot-field-grid {
	      grid-template-columns: 1fr;
	    }
	    .plot-field-label {
	      display: grid;
	      gap: 2px;
	      font-size: 10px;
	      font-weight: 600;
	      color: var(--muted);
	      text-transform: uppercase;
	      letter-spacing: 0.3px;
	    }
	    .plot-field-label-inline {
	      font-size: 10px;
	      font-weight: 600;
	      color: var(--muted);
	      text-transform: uppercase;
	      letter-spacing: 0.3px;
	      margin-right: auto;
	    }
	    .plot-field-input {
	      width: 100%;
	      box-sizing: border-box;
	      padding: 4px 7px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 74%, transparent);
	      border-radius: 5px;
	      background: color-mix(in oklab, var(--bg) 86%, var(--card));
	      color: var(--text);
	      font: inherit;
	      font-size: 11px;
	      outline: none;
	    }
	    .plot-field-input:focus {
	      border-color: var(--brand);
	    }
	    .plot-filter-row {
	      display: grid;
	      gap: 4px;
	    }
	    .plot-inline-hint,
	    .plot-inline-error,
	    .plot-inline-blocked,
	    .plot-empty-copy,
	    .plot-stage-item-meta,
	    .plot-result-card-meta,
	    .plot-tree-dataset-meta,
	    .plot-workspace-subtitle {
	      font-size: 11px;
	      line-height: 1.4;
	      color: var(--muted);
	    }
	    .plot-inline-error,
	    .plot-message-error {
	      color: #a33b3b;
	    }
	    .plot-inline-blocked {
	      color: color-mix(in oklab, #a33b3b 76%, var(--muted));
	    }
	    /* ── Discovery: result rows (no card chrome) ── */
	    .plot-result-card {
	      display: grid;
	      gap: 2px;
	      min-width: 0;
	      padding: 5px 0;
	      border-bottom: 1px solid color-mix(in oklab, var(--panel-strong) 50%, transparent);
	    }
	    .plot-result-card:last-child { border-bottom: none; }
	    .plot-sidebar-results { grid-template-columns: 1fr; }
	    .plot-result-card-header {
	      display: flex;
	      align-items: baseline;
	      gap: 6px;
	      min-width: 0;
	    }
	    .plot-result-card-title-wrap { min-width: 0; flex: 1; }
	    .plot-result-card-title,
	    .plot-tree-dataset-title,
	    .plot-stage-item-title,
	    .plot-empty-title,
	    .plot-workspace-title {
	      font-size: 12px;
	      font-weight: 600;
	      color: var(--text);
	      white-space: nowrap;
	      overflow: hidden;
	      text-overflow: ellipsis;
	    }
	    .plot-result-card-footer {
	      justify-content: space-between;
	    }
	    /* Pills → plain muted text */
	    .plot-technique-pill {
	      font-size: 10px;
	      color: var(--muted);
	      flex-shrink: 0;
	    }
	    .plot-tree-count {
	      font-size: 10px;
	      color: var(--muted);
	      flex-shrink: 0;
	    }
	    /* ── Browse tree ── */
	    .plot-tree-project,
	    .plot-tree-run {
	      overflow: hidden;
	    }
	    .plot-tree-toggle {
	      width: 100%;
	      display: flex;
	      align-items: center;
	      gap: 4px;
	      padding: 4px 0;
	      border: 0;
	      background: none;
	      color: var(--text);
	      font: inherit;
	      font-size: 12px;
	      font-weight: 600;
	      cursor: pointer;
	      text-align: left;
	    }
	    .plot-tree-toggle:hover { color: var(--brand); }
	    .plot-tree-toggle-run {
	      padding-left: 12px;
	      font-weight: 500;
	    }
	    .plot-tree-children,
	    .plot-tree-datasets {
	      display: grid;
	      gap: 0;
	      padding-bottom: 2px;
	    }
	    .plot-tree-toggle-run { padding-left: 0; font-weight: 500; }
	    .plot-tree-children { padding-left: 14px; }
	    .plot-tree-datasets { padding-left: 14px; }
	    .plot-tree-dataset { padding-left: 0; }
	    .plot-tree-bucket,
	    .plot-tree-batch,
	    .plot-tree-source-file {
	      display: grid;
	      gap: 0;
	    }
	    .plot-tree-bucket-children,
	    .plot-tree-batch-children,
	    .plot-tree-file-children {
	      display: grid;
	      gap: 0;
	      padding-left: 14px;
	    }
	    .plot-tree-node-badge {
	      width: 14px;
	      height: 14px;
	      border-radius: 999px;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      flex-shrink: 0;
	      font-size: 8px;
	      font-weight: 700;
	      letter-spacing: 0.2px;
	      color: var(--muted);
	      background: color-mix(in oklab, var(--panel-strong) 70%, transparent);
	    }
	    .plot-tree-badge-bucket {
	      color: #0f6b91;
	      background: color-mix(in oklab, #0ea5e9 16%, var(--card));
	    }
	    .plot-tree-badge-batch {
	      color: #8a5a05;
	      background: color-mix(in oklab, #f59e0b 18%, var(--card));
	    }
	    .plot-tree-badge-file {
	      color: #31507f;
	      background: color-mix(in oklab, #7da6e8 18%, var(--card));
	    }
	    .plot-tree-source-file {
	      grid-template-columns: minmax(0, 1fr) auto;
	      align-items: center;
	      gap: 10px;
	      padding: 8px 10px 8px 2px;
	      border-radius: 7px;
	      margin: 2px 0;
	      user-select: none;
	    }
	    .plot-tree-file-main {
	      min-width: 0;
	      display: flex;
	      align-items: center;
	      gap: 8px;
	    }
	    .plot-tree-file-check {
	      width: 14px;
	      height: 14px;
	      flex-shrink: 0;
	      display: inline-flex;
	      align-items: center;
	      justify-content: center;
	      font-size: 11px;
	      font-weight: 700;
	      color: var(--col-accent, var(--brand));
	      border-radius: 3px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 80%, transparent);
	      background: color-mix(in oklab, var(--card) 86%, transparent);
	    }
	    .plot-tree-file-selectable {
	      cursor: pointer;
	      transition: background 0.18s ease;
	    }
	    .plot-tree-file-selectable:hover {
	      background: color-mix(in oklab, var(--panel-strong) 64%, transparent);
	    }
	    .plot-tree-file-selected {
	      background: color-mix(in oklab, var(--col-accent, var(--brand)) 11%, transparent);
	    }
	    .plot-tree-file-partial {
	      background: color-mix(in oklab, #f59e0b 10%, transparent);
	    }
	    .plot-tree-file-selected .plot-tree-file-check {
	      background: var(--col-accent, var(--brand));
	      border-color: var(--col-accent, var(--brand));
	      color: #fff;
	    }
	    .plot-tree-file-blocked { opacity: 0.48; }
	    .plot-tree-chevron {
	      color: var(--muted);
	      font-size: 9px;
	      transition: transform 140ms ease;
	      flex-shrink: 0;
	    }
	    .plot-tree-toggle[aria-expanded="false"] .plot-tree-chevron {
	      transform: rotate(-90deg);
	    }
	    .plot-tree-title {
	      min-width: 0;
	      flex: 1;
	      overflow: hidden;
	      text-overflow: ellipsis;
	      white-space: nowrap;
	    }
	    .plot-tree-meta {
	      font-size: 10px;
	      color: var(--muted);
	      flex-shrink: 0;
	    }
	    .plot-tree-dataset {
	      justify-content: space-between;
	      align-items: center;
	      padding: 3px 0;
	    }
	    .plot-tree-dataset-main {
	      min-width: 0;
	      flex: 1;
	      display: flex;
	      align-items: baseline;
	      gap: 5px;
	    }
	    .plot-tree-dataset-title-row,
	    .plot-stage-item-title-row {
	      display: flex;
	      align-items: center;
	      gap: 6px;
	      min-width: 0;
	      flex: 1;
	    }
	    .plot-tree-dataset-meta { display: none; }
	    /* ── Selectable dataset rows ── */
	    .plot-tree-dataset {
	      align-items: center;
	      gap: 5px;
	      padding: 4px 6px 4px 2px;
	      border-radius: 5px;
	      margin: 1px 0;
	      cursor: default;
	      user-select: none;
	    }
	    .plot-tree-dataset-selectable {
	      cursor: pointer;
	      transition: background 0.12s ease;
	    }
	    .plot-tree-dataset-selectable:hover {
	      background: color-mix(in oklab, var(--panel-strong) 60%, transparent);
	    }
	    .plot-tree-dataset-selected {
	      background: color-mix(in oklab, var(--col-accent, var(--brand)) 12%, transparent);
	    }
	    .plot-tree-dataset-selected:hover {
	      background: color-mix(in oklab, var(--col-accent, var(--brand)) 18%, transparent);
	    }
	    .plot-tree-dataset-blocked { opacity: 0.45; }
	    .plot-tree-dataset-check {
	      width: 14px;
	      height: 14px;
	      flex-shrink: 0;
	      display: flex;
	      align-items: center;
	      justify-content: center;
	      font-size: 10px;
	      font-weight: 700;
	      color: var(--col-accent, var(--brand));
	      border-radius: 3px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 80%, transparent);
	      transition: background 0.12s, border-color 0.12s, color 0.12s;
	    }
	    .plot-tree-dataset-selected .plot-tree-dataset-check {
	      background: var(--col-accent, var(--brand));
	      border-color: var(--col-accent, var(--brand));
	      color: #fff;
	    }
	    .plot-tree-dataset-name {
	      flex: 1;
	      min-width: 0;
	      font-size: 11.5px;
	      font-weight: 500;
	      color: var(--text);
	      white-space: nowrap;
	      overflow: hidden;
	      text-overflow: ellipsis;
	    }
	    .plot-tree-dataset-blocked .plot-tree-dataset-name { color: var(--muted); font-weight: 400; }
	    .plot-empty-card { padding: 6px 0; background: none; border: none; }
	    /* ── Search UX ── */
	    .plot-search-controls { display: grid; gap: 5px; }
	    .plot-search-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
	    .plot-search-toggles { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
	    .plot-search-toggle-group { display: flex; align-items: center; gap: 3px; }
	    .plot-toggle-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; color: var(--muted); margin-right: 1px; }
	    .plot-toggle-btn {
	      padding: 2px 7px; border: 1px solid color-mix(in oklab, var(--panel-strong) 80%, transparent);
	      border-radius: 4px; background: none; color: var(--muted); font: inherit; font-size: 10px;
	      font-weight: 600; cursor: pointer; transition: all 0.12s;
	    }
	    .plot-toggle-btn.active { background: var(--brand); color: #fff; border-color: var(--brand); }
	    .plot-toggle-btn:hover:not(.active) { border-color: var(--brand); color: var(--brand); }
	    .plot-search-actions { display: flex; align-items: center; gap: 6px; }
	    .plot-search-actions .btn { flex-shrink: 0; }
	    .plot-search-actions .btn.primary { margin-left: auto; }
	    .plot-search-divider { height: 1px; background: color-mix(in oklab, var(--panel-strong) 55%, transparent); margin: 2px 0; }
	    .plot-results-header { display: flex; align-items: center; gap: 6px; }
	    .plot-results-count { font-size: 10px; font-weight: 600; color: var(--muted); flex: 1; }
	    .plot-results-ms { font-size: 10px; color: color-mix(in oklab, var(--muted) 70%, transparent); }
	    /* Result rows */
	    .plot-result-row {
	      display: flex; align-items: center; gap: 6px;
	      padding: 4px 0;
	      border-bottom: 1px solid color-mix(in oklab, var(--panel-strong) 40%, transparent);
	    }
	    .plot-result-row:last-child { border-bottom: none; }
	    .plot-result-row-info { flex: 1; min-width: 0; }
	    .plot-result-row-title { font-size: 12px; font-weight: 600; color: var(--text); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	    .plot-result-row-meta { font-size: 10px; color: var(--muted); display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
	    /* ── Three-column plot workspace ── */
	    /* Per-column accent identities */
	    .plot-col-discovery { --col-accent: #0ea5e9; --col-accent-faint: rgba(14, 165, 233, 0.08); }
	    .plot-col-staged    { --col-accent: #f59e0b; --col-accent-faint: rgba(245, 158, 11, 0.07); }
	    .plot-col-plot      { --col-accent: var(--brand); --col-accent-faint: rgba(19, 119, 255, 0.06); }

	    .plot-workspace-shell {
	      --plot-collapse-duration: 1.25s;
	      --plot-col-gap: 1px;
	      --plot-col-rail: 56px;
	      --plot-col-rail-fullscreen: 32px;
	      display: grid;
	      grid-template-columns: 208px 160px 1fr;
	      width: 100%;
	      height: calc(100vh - 56px);
	      overflow: hidden;
	      transition: grid-template-columns var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	      gap: var(--plot-col-gap);
	      background: color-mix(in oklab, var(--panel-strong) 80%, transparent);
	    }
	    .plot-workspace-shell[data-focus="discovery"] {
	      grid-template-columns:
	        minmax(0, calc(100% - (var(--plot-col-rail) * 2) - (var(--plot-col-gap) * 2)))
	        var(--plot-col-rail)
	        var(--plot-col-rail);
	    }
	    .plot-workspace-shell[data-focus="staged"] {
	      grid-template-columns:
	        var(--plot-col-rail)
	        minmax(0, calc(100% - (var(--plot-col-rail) * 2) - (var(--plot-col-gap) * 2)))
	        var(--plot-col-rail);
	    }
	    .plot-workspace-shell[data-focus="plot"] {
	      grid-template-columns:
	        var(--plot-col-rail)
	        var(--plot-col-rail)
	        minmax(0, calc(100% - (var(--plot-col-rail) * 2) - (var(--plot-col-gap) * 2)));
	    }
	    .plot-workspace-shell[data-fullscreen="true"] {
	      grid-template-columns:
	        var(--plot-col-rail-fullscreen)
	        var(--plot-col-rail-fullscreen)
	        minmax(0, calc(100% - (var(--plot-col-rail-fullscreen) * 2) - (var(--plot-col-gap) * 2)));
	    }

	    .plot-col {
	      display: flex;
	      flex-direction: column;
	      overflow: hidden;
	      min-width: 0;
	      background: var(--card, #fff);
	      position: relative;
	      /* Box shadow transitions for focused elevation */
	      transition: box-shadow 0.3s ease;
	      cursor: pointer;
	    }
	    /* Subtle tinted background per column */
	    .plot-col-discovery { background: color-mix(in oklab, var(--card) 93%, #0ea5e9); }
	    .plot-col-staged    { background: color-mix(in oklab, var(--card) 94%, #f59e0b); }
	    .plot-col-plot      { background: var(--card); }

	    /* Top accent bar: slides in on focus */
	    .plot-col::before {
	      content: "";
	      display: block;
	      flex-shrink: 0;
	      height: 3px;
	      background: var(--col-accent);
	      transform: scaleX(0);
	      transform-origin: left;
	      transition: transform var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	    }
	    .plot-col-focused::before { transform: scaleX(1); }

	    .plot-col-focused {
	      cursor: default;
	      box-shadow: 0 0 0 1px color-mix(in oklab, var(--col-accent) 30%, transparent),
	                  0 6px 32px color-mix(in oklab, var(--col-accent) 14%, transparent);
	      z-index: 1;
	    }

	    /* Unfocused columns collapse to full-height header rails */
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) {
	      cursor: pointer;
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-header,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-header,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-header {
	      flex-direction: column;
	      justify-content: center;
	      align-items: center;
	      gap: 6px;
	      padding: 14px 6px;
	      height: 100%;
	      border-bottom: none;
	      overflow: hidden;
	      opacity: 0.6;
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused):hover .plot-col-header {
	      opacity: 0.9;
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-body,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-body,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-body {
	      opacity: 0;
	      pointer-events: none;
	    }

	    /* Col header */
	    .plot-col-header {
	      display: flex;
	      align-items: center;
	      gap: 8px;
	      padding: 0 16px;
	      border-bottom: 1px solid color-mix(in oklab, var(--panel-strong) 55%, transparent);
	      flex-shrink: 0;
	      min-width: 0;
	      min-height: 44px;
	      transition: background 0.28s ease, opacity 0.2s ease, padding var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), gap var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	    }
	    .plot-col-focused .plot-col-header {
	      background: color-mix(in oklab, var(--card) 80%, var(--col-accent-faint, transparent) 200%);
	      border-bottom-color: color-mix(in oklab, var(--col-accent) 25%, transparent);
	    }

	    /* Column icon */
	    .plot-col-icon {
	      flex-shrink: 0;
	      width: 16px;
	      height: 16px;
	      color: var(--muted);
	      opacity: 0.6;
	      overflow: hidden;
	      transition: color 0.2s ease, opacity var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), transform var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), width var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), height var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	    }
	    .plot-col-focused .plot-col-icon { color: var(--col-accent); opacity: 1; }

	    .plot-col-title {
	      font-size: 10.5px;
	      font-weight: 700;
	      letter-spacing: 0.5px;
	      text-transform: uppercase;
	      color: var(--muted);
	      flex-shrink: 0;
	      user-select: none;
	      cursor: pointer;
	      transition: color 0.2s ease, transform var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), letter-spacing var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	      white-space: nowrap;
	      transform-origin: center;
	    }
	    .plot-col-focused .plot-col-title { color: var(--col-accent); }
	    .plot-col-title-badge {
	      font-size: 10px;
	      font-weight: 600;
	      color: var(--muted);
	      flex-shrink: 0;
	      max-width: 80px;
	      padding: 0 4px;
	      border-radius: 8px;
	      overflow: hidden;
	      background: color-mix(in oklab, var(--panel-strong) 60%, transparent);
	      transition: background 0.2s ease, color 0.2s ease, max-width var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), opacity var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), padding var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), margin var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	    }
	    .plot-col-focused .plot-col-title-badge {
	      background: color-mix(in oklab, var(--col-accent) 14%, transparent);
	      color: var(--col-accent);
	    }
	    .plot-col-header-right {
	      display: flex;
	      align-items: center;
	      gap: 6px;
	      margin-left: auto;
	      flex-shrink: 0;
	      overflow: hidden;
	      max-width: 240px;
	      opacity: 1;
	      transition: opacity var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), max-width var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	    }

	    /* ── Body — columns clip content as the grid slides (no fade/transform) ── */
	    .plot-col-body {
	      flex: 1;
	      overflow-y: auto;
	      overflow-x: hidden;
	      padding: 24px 28px 20px;
	      display: grid;
	      gap: 12px;
	      align-content: start;
	      cursor: default;
	      transition: opacity var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1), padding var(--plot-collapse-duration) cubic-bezier(0.18, 0.9, 0.2, 1);
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-body {
	      pointer-events: none;
	    }
	    .plot-col-plot-body {
	      display: flex;
	      flex-direction: column;
	      gap: 14px;
	      padding: 24px 28px 22px;
	    }

	    /* ── Fullscreen: collapse non-plot cols to a sliver ── */
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-icon,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-icon,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-icon {
	      opacity: 0;
	      width: 0;
	      margin: 0;
	      transform: translateX(-6px);
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-header-right,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-header-right,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-header-right {
	      max-width: 0;
	      opacity: 0;
	      pointer-events: none;
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-title,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-title,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-title {
	      transform: none;
	      font-size: 9px;
	      line-height: 1.05;
	      letter-spacing: 0.35px;
	      white-space: normal;
	      text-align: center;
	    }
	    .plot-workspace-shell[data-focus] .plot-col:not(.plot-col-focused) .plot-col-title-badge,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-title-badge,
	    .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-title-badge {
	      max-width: 0;
	      opacity: 0;
	      padding: 0;
	      margin: 0;
	      overflow: hidden;
	    }

	    /* Fullscreen btn */
	    .plot-fullscreen-btn {
	      padding: 2px 6px;
	      border: 1px solid color-mix(in oklab, var(--panel-strong) 70%, transparent);
	      border-radius: 4px;
	      background: none;
	      color: var(--muted);
	      font-size: 13px;
	      line-height: 1;
	      cursor: pointer;
	      transition: color 0.15s, border-color 0.15s;
	    }
	    .plot-fullscreen-btn:hover { color: var(--text); border-color: var(--text); }
	    .plot-fullscreen-btn.active { color: var(--brand); border-color: var(--brand); }
	    .plot-stage-card,
	    .plot-chart-card,
	    .plot-message-card {
	      padding: 12px;
	    }
	    .plot-stage-list {
	      grid-template-columns: 1fr;
	      align-items: start;
	    }
	    .plot-stage-item {
	      justify-content: space-between;
	      padding: 5px 0;
	      min-height: auto;
	      border: none;
	      border-radius: 0;
	      background: none;
	      border-bottom: 1px solid color-mix(in oklab, var(--panel-strong) 50%, transparent);
	    }
	    .plot-stage-item:last-child { border-bottom: none; }
	    .plot-stage-item-main {
	      min-width: 0;
	      flex: 1;
	    }
	    .plot-stage-item-actions {
	      flex-shrink: 0;
	    }
	    .plot-empty-card,
	    .plot-chart-status {
	      display: grid;
	      gap: 6px;
	      justify-items: start;
	    }
	    .plot-chart-card {
	      flex: 1;
	      min-height: 0;
	      display: flex;
	      flex-direction: column;
	      padding: 0;
	      border: none;
	      background: none;
	      box-shadow: none;
	    }
	    .plot-chart-card.plot-chart-status {
	      justify-content: center;
	      align-items: center;
	      min-height: 200px;
	    }
	    .plot-workspace-chart {
	      width: 100%;
	      flex: 1;
	      min-height: 300px;
	    }
	    .plot-message-card {
	      display: grid;
	      gap: 8px;
	    }
	    .plot-message-warning {
	      border-color: color-mix(in oklab, #b9781e 34%, var(--panel-strong));
	    }
	    .plot-message-error {
	      border-color: color-mix(in oklab, #a33b3b 34%, var(--panel-strong));
	    }
	    .plot-message-list {
	      margin: 0;
	      padding-left: 18px;
	      font-size: 12px;
	      color: var(--text);
	    }
	    @media (max-width: 900px) {
	      .graph-overlay { padding: 0; }
	      .graph-overlay-shell {
	        width: 100%;
	        height: 100svh;
	        height: 100dvh;
	        border-radius: 0;
	      }
	      .graph-layout { grid-template-columns: 1fr; }
	      .graph-layout.graph-layout-panel-collapsed { grid-template-columns: 1fr; }
	      .graph-layout.graph-layout-panel-collapsed .graph-panel { display: flex; }
	      .graph-panel-edge-toggle { display: none; }
	      .graph-panel { max-height: 42vh; }
	      .graph-help-popover { width: min(320px, calc(100% - 24px)); }
	      .graph-toolbar-meta { display: none; }
	      .graph-node-board { padding: 10px; gap: 10px; }
	      .graph-node-board-has-experiment-band .graph-main-lanes { margin-top: 14px; }
	      .graph-main-lanes { grid-template-columns: 1fr; column-gap: 10px; row-gap: 10px; }
	      .graph-edge-evidence-editor[data-evidence-supported="true"] { grid-template-columns: 1fr; }
	      .graph-connect-popover.graph-connect-popover-has-evidence { width: min(640px, calc(100% - 16px)); }
	      .graph-connect-evidence-grid { grid-template-columns: 1fr; }
	      .graph-connect-evidence-axis-row,
	      .graph-connect-summary-grid { grid-template-columns: 1fr; }
	      .graph-experiment-band {
	        width: 100%;
	        max-width: 100%;
	        align-self: stretch;
	        margin-inline: 0;
	      }
	      .graph-node-list.graph-experiment-band-list {
	        width: 100%;
	      }
	      .search-overlay { padding: 0; }
	      .search-overlay-shell {
	        width: 100%;
	        height: min(96svh, calc(100svh - 8px));
	        border-radius: 10px 10px 0 0;
	      }
	      .search-overlay-layout { grid-template-columns: 1fr; }
	      .search-overlay-panel { max-height: 32vh; border-right: none; border-bottom: 1px solid var(--panel-strong); }
	      .plot-workspace-shell,
	      .plot-workspace-shell[data-focus],
	      .plot-workspace-shell[data-fullscreen="true"] {
	        grid-template-columns: 1fr;
	        height: auto;
	        overflow: visible;
	      }
	      .plot-workspace-shell { gap: 1px; background: color-mix(in oklab, var(--panel-strong) 60%, transparent); }
	      .plot-col { background: var(--card, #fff); }
	      .plot-col:last-child { }
	      .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-header,
	      .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-header {
	        flex-direction: row;
	        height: auto;
	        padding: 6px 8px;
	        border-bottom: 1px solid color-mix(in oklab, var(--panel-strong) 60%, transparent);
	        border-right: none;
	      }
	      .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-title-btn,
	      .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-title-btn {
	        writing-mode: horizontal-tb;
	        transform: none;
	      }
	      .plot-workspace-shell[data-fullscreen="true"] .plot-col-discovery .plot-col-body,
	      .plot-workspace-shell[data-fullscreen="true"] .plot-col-staged .plot-col-body { display: grid; }
	      .plot-workspace-chart { min-height: 300px; }
	    }

#panel-graph {
	padding: 0;
	overflow: hidden;
	display: flex;
	min-height: 0;
	background: var(--surface);
}

#panel-graph .graph-overlay {
	position: relative;
	inset: auto;
	width: 100%;
	height: 100%;
	min-height: 0;
	padding: 0;
	align-items: stretch;
	justify-content: stretch;
	background: transparent;
}

#panel-graph .graph-overlay-shell {
	height: 100%;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	transform: none;
	opacity: 1;
	transition: none;
	background: var(--surface);
}

#panel-graph .graph-layout {
	height: 100%;
}

#panel-graph .graph-panel {
	border-left: 1px solid var(--border);
}

@media (max-width: 900px) {
	#panel-graph .graph-overlay-shell {
		height: 100%;
	}
	#panel-graph .graph-panel {
		max-height: 36vh;
		border-left: none;
		border-bottom: 1px solid var(--border);
	}
}

#panel-graph .graph-layout {
	--graph-create-panel-width: clamp(280px, 24vw, 340px);
	--graph-panel-width: clamp(320px, 30vw, 392px);
	grid-template-columns: minmax(0, 1fr) 12px minmax(0, var(--graph-panel-width));
	background: var(--surface);
}

#panel-graph .graph-layout.graph-layout-panel-collapsed {
	grid-template-columns: minmax(0, 1fr) 12px 0 !important;
}

#panel-graph .graph-layout.graph-layout-panel-collapsed .graph-panel {
	opacity: 0;
	transform: translateX(16px);
	pointer-events: none;
	border-left: none;
	padding: 0;
}

#panel-graph .graph-create-panel {
	background: var(--bg);
	border-right: 1px solid var(--border);
	padding: 14px;
	gap: 14px;
	box-shadow: 16px 0 32px rgba(15, 23, 42, 0.08);
}

#panel-graph .graph-create-panel .graph-panel-section {
	display: grid;
	gap: 0;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	overflow: hidden;
}

#panel-graph .graph-panel {
	background: var(--bg);
	border-left: 1px solid var(--border);
	padding: 14px;
	gap: 14px;
}

#panel-graph .graph-panel-section {
	display: grid;
	gap: 0;
	padding: 0;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	overflow: hidden;
}

#panel-graph .graph-panel-section-actions {
	margin-top: auto;
}

#panel-graph .graph-panel-title {
	display: flex;
	align-items: center;
	min-height: 44px;
	padding: 0 14px;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0;
	text-transform: none;
	color: var(--text);
	border-bottom: 1px solid var(--border);
}

#panel-graph .graph-panel-edge-toggle {
	width: 12px;
	height: 72px;
	border: 1px solid var(--border);
	border-right: none;
	border-radius: 6px 0 0 6px;
	background: var(--surface);
	color: var(--text-muted, var(--muted));
	opacity: 1;
}

#panel-graph .graph-panel-edge-toggle:hover {
	background: var(--bg);
	border-color: var(--border);
	color: var(--text);
}

#panel-graph .graph-panel-edge-toggle[data-collapsed="true"] {
	border-radius: 0 6px 6px 0;
}

#panel-graph .graph-inspector-panel {
	gap: 0;
	padding: 8px 14px 14px;
}

#panel-graph .graph-inspector-panel > * + * {
	margin-top: 12px;
}

#panel-graph .graph-inspector-shell,
#panel-graph .graph-inspector-shell-primary {
	border: none;
	padding: 0;
	background: transparent;
}

#panel-graph .graph-inspector-card {
	gap: 10px;
}

#panel-graph .graph-inspector-header {
	gap: 4px;
}

#panel-graph [data-graph-edge-clear] {
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: transparent;
	color: var(--text-muted, var(--muted));
}

#panel-graph [data-graph-edge-clear]:hover {
	background: var(--bg);
	color: var(--text);
}

#panel-graph .graph-inspector-summary {
	font-size: 12px;
	line-height: 1.5;
	color: var(--text-muted, var(--muted));
}

#panel-graph .graph-inspector-type {
	font-size: 11px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-muted, var(--muted));
}

#panel-graph .graph-inspector-field-grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}

#panel-graph .graph-inspector-field {
	display: grid;
	gap: 6px;
	padding: 10px 12px;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
}

#panel-graph .graph-inspector-field-full {
	grid-column: 1 / -1;
}

#panel-graph .graph-inspector-field-label {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--text-muted, var(--muted));
}

#panel-graph .graph-inspector-field-value {
	font-size: 12px;
	line-height: 1.5;
	color: var(--text);
	white-space: pre-wrap;
	word-break: break-word;
}

#panel-graph .graph-inspector-endpoint,
#panel-graph .graph-inspector-readonly,
#panel-graph .graph-inspector-meta,
#panel-graph .graph-inspector-custom-box {
	border: 1px solid var(--border);
	background: var(--surface);
	padding: 10px 12px;
	border-radius: var(--radius);
	box-shadow: none;
}

#panel-graph .graph-inspector-link-row,
#panel-graph .graph-inspector-edge-route,
#panel-graph .graph-node-inspector-grid,
#panel-graph .graph-node-inspector-details,
#panel-graph .graph-inspector-form {
	gap: 10px;
}

#panel-graph .graph-stat-list,
#panel-graph .graph-column-toggle-list {
	border-top: none;
	padding: 0 14px 10px;
}

#panel-graph .graph-stat-row,
#panel-graph .graph-column-toggle-row {
	padding-block: 8px;
	border-top-color: var(--border);
}

#panel-graph .graph-stat-list {
	padding-top: 4px;
	padding-bottom: 6px;
}

#panel-graph .graph-kind-legend-label {
	gap: 8px;
}

#panel-graph .graph-kind-legend-text {
	font-size: 12px;
	font-weight: 500;
}

#panel-graph .graph-column-toggle-list {
	padding-top: 6px;
	padding-bottom: 10px;
}

#panel-graph .graph-column-toggle-row {
	position: relative;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	padding-block: 6px;
	border-top-color: var(--border);
}

#panel-graph .graph-column-toggle-row span {
	display: block;
}

#panel-graph .graph-column-toggle-row strong {
	font-size: 11px;
	font-weight: 600;
}

#panel-graph .graph-column-toggle-row-child,
#panel-graph .graph-column-toggle-row-grandchild,
#panel-graph .graph-column-toggle-row-greatgrandchild,
#panel-graph .graph-column-toggle-row-ultradeep {
	padding-left: 16px;
}

#panel-graph .graph-column-toggle-row-child::before,
#panel-graph .graph-column-toggle-row-grandchild::before,
#panel-graph .graph-column-toggle-row-greatgrandchild::before,
#panel-graph .graph-column-toggle-row-ultradeep::before {
	content: "";
	position: absolute;
	left: 6px;
	top: -1px;
	bottom: -1px;
	width: 1px;
	background: var(--border);
}

#panel-graph .graph-column-toggle-row-grandchild {
	padding-left: 28px;
}

#panel-graph .graph-column-toggle-row-grandchild::before {
	left: 16px;
}

#panel-graph .graph-column-toggle-row-grandchild span::after {
	left: -12px;
}

#panel-graph .graph-column-toggle-row-greatgrandchild {
	padding-left: 40px;
}

#panel-graph .graph-column-toggle-row-greatgrandchild::before {
	left: 28px;
}

#panel-graph .graph-column-toggle-row-ultradeep {
	padding-left: 52px;
}

#panel-graph .graph-column-toggle-row-ultradeep::before {
	left: 40px;
}

#panel-graph .graph-bulk-action-box,
#panel-graph .graph-layout-control-box {
	border: none;
	padding: 0 14px 14px;
	gap: 8px;
	background: transparent;
}

#panel-graph .graph-bulk-action-box {
	padding-top: 12px;
}

#panel-graph .graph-layout-control-box {
	padding-top: 12px;
}

#panel-graph .graph-bulk-action-box + .graph-bulk-action-box {
	margin-top: 0;
	border-top: 1px solid var(--border);
	padding-top: 12px;
}

#panel-graph .graph-bulk-action-box .btn {
	justify-self: stretch;
	width: 100%;
	min-height: 34px;
	padding: 0 12px;
	justify-content: center;
	border: 1px solid var(--border);
	border-radius: var(--radius);
	background: var(--surface);
	color: var(--text);
	font-size: 12px;
	font-weight: 500;
	box-shadow: none;
}

#panel-graph .graph-bulk-action-box .btn:hover {
	background: var(--bg);
}

#panel-graph .graph-bulk-action-box .btn.danger {
	color: #b42318;
	border-color: color-mix(in oklab, #b42318 24%, var(--border));
	background: var(--surface);
}

#panel-graph .graph-bulk-action-box .btn.danger:hover {
	background: color-mix(in oklab, #b42318 6%, var(--bg));
}

#panel-graph .graph-layout-control-box .btn {
	width: 100%;
}

#panel-graph .graph-bulk-action-hint,
#panel-graph .graph-bulk-action-status,
#panel-graph .graph-slider-field {
	font-size: 12px;
	line-height: 1.45;
}

#panel-graph .graph-bulk-action-hint {
	color: var(--text-muted, var(--muted));
}

#panel-graph .graph-slider-field {
	align-items: center;
	padding-top: 0;
	color: var(--text);
}

#panel-graph .graph-slider-label {
	color: var(--text);
	font-size: 12px;
	font-weight: 500;
}

#panel-graph .graph-slider-value {
	color: var(--text-muted, var(--muted));
	font-size: 12px;
}

#panel-graph #graph-lane-spacing-slider,
#panel-graph #graph-node-spacing-slider {
	accent-color: #334155;
	height: 16px;
}

#panel-graph .graph-layout-control-box .graph-slider-field + input,
#panel-graph .graph-layout-control-box input + .graph-bulk-action-hint {
	margin-top: -2px;
}

#panel-graph .graph-layout-control-box .graph-bulk-action-hint + .graph-slider-field {
	margin-top: 2px;
}

#panel-graph .graph-help-toggle {
	border-radius: var(--radius);
	width: 30px;
	height: 30px;
	background: var(--surface);
}

#panel-graph .graph-help-popover {
	border-color: var(--border);
	background: var(--surface);
	border-radius: var(--radius);
}

#panel-graph .graph-node-column {
	border: 1px solid var(--border);
	border-radius: 12px;
	background: color-mix(in oklab, var(--surface) 72%, var(--bg) 28%);
	overflow: visible;
}

#panel-graph .graph-node-column-header {
	height: 40px;
	padding: 0 12px;
	border-bottom: 1px solid var(--border);
	background: color-mix(in oklab, var(--surface) 86%, white 14%);
	color: var(--text-muted, var(--muted));
	border-top-left-radius: 12px;
	border-top-right-radius: 12px;
}

#panel-graph .graph-node-column-create {
	min-height: 120px;
	border-style: dashed;
	background: transparent;
}

#panel-graph .graph-node-column-create-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	min-height: 120px;
	border: none;
	border-radius: 0;
	background: none;
	color: var(--text-muted, var(--muted));
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	opacity: 1;
	font-size: 0;
}

#panel-graph .graph-node-column-create-btn::before {
	content: "+";
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border: 1px dashed var(--border);
	border-radius: 999px;
	font-size: 18px;
	line-height: 1;
	font-weight: 400;
}

#panel-graph .graph-node-column-create-btn:hover:not(:disabled) {
	background: var(--bg);
	color: var(--text);
	border-color: transparent;
}

#panel-graph .graph-node-card,
#panel-graph .graph-node-child {
	border-radius: 8px;
	background: var(--surface);
	box-shadow: none;
	border: 1px solid color-mix(in oklab, var(--border) 88%, transparent);
}

#panel-graph .graph-node-card.graph-node-measurement_run,
#panel-graph .graph-node-child.graph-node-measurement_run,
#panel-graph .graph-node-child.graph-node-measurement_column,
#panel-graph .graph-node-child.graph-node-measurement_series,
#panel-graph .graph-node-card.graph-node-asset,
#panel-graph .graph-node-child.graph-node-asset,
#panel-graph .graph-node-card.graph-node-reference,
#panel-graph .graph-node-child.graph-node-reference {
	background: var(--surface);
	box-shadow: none;
}

#panel-graph .graph-node-card {
	outline: 1px solid transparent;
	outline-offset: 0;
}

#panel-graph .graph-node-card-selected,
#panel-graph .graph-node-child-wrap-selected > .graph-node-child {
	box-shadow: none;
	outline: 1px solid color-mix(in oklab, var(--brand) 42%, var(--border));
	outline-offset: -1px;
	border-color: color-mix(in oklab, var(--brand) 42%, var(--border));
}

#panel-graph .graph-node-card.graph-node-asset.graph-node-card-selected,
#panel-graph .graph-node-child-wrap-selected > .graph-node-child.graph-node-asset {
	outline: 1px solid color-mix(in oklab, var(--brand) 42%, var(--border));
	outline-offset: -1px;
	border-color: color-mix(in oklab, var(--brand) 42%, var(--border));
}

#panel-graph .graph-node-card-dragging {
	box-shadow: none;
	outline: 1px solid var(--border);
}

#panel-graph .graph-node-measurement_run,
#panel-graph .graph-node-measurement_column,
#panel-graph .graph-node-measurement_series,
#panel-graph .graph-node-dataset,
#panel-graph .graph-node-dataset_version,
#panel-graph .graph-node-asset,
#panel-graph .graph-node-script,
#panel-graph .graph-node-figure,
#panel-graph .graph-node-experiment,
#panel-graph .graph-node-reference {
	border-left: 1px solid color-mix(in oklab, var(--border) 88%, transparent);
}

#panel-graph .graph-node-card.graph-node-measurement_run,
#panel-graph .graph-node-card.graph-node-asset,
#panel-graph .graph-node-card.graph-node-reference,
#panel-graph .graph-node-child.graph-node-measurement_run,
#panel-graph .graph-node-child.graph-node-measurement_column,
#panel-graph .graph-node-child.graph-node-measurement_series,
#panel-graph .graph-node-child.graph-node-asset,
#panel-graph .graph-node-child.graph-node-reference {
	border-color: color-mix(in oklab, var(--border) 88%, transparent);
}

#panel-graph .graph-node-hook {
	width: auto;
	height: auto;
	margin-top: 0;
	border: 0 !important;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
}

#panel-graph .graph-node-hook:hover:not(:disabled) {
	transform: translateY(-50%) scale(1.08);
}

#panel-graph .graph-hook-active,
#panel-graph .graph-hook-snap {
	transform: translateY(-50%) scale(1.14);
}

#panel-graph .graph-node-hook-in,
#panel-graph .graph-node-hook-left {
	left: -6px;
}

#panel-graph .graph-node-hook-out,
#panel-graph .graph-node-hook-right {
	right: -6px;
}

#panel-graph .graph-node-hook-child {
	width: auto;
	height: auto;
	margin-top: 0;
	box-shadow: none !important;
}

#panel-graph .graph-node-hook-icon {
	width: 13px;
	height: 15px;
}

#panel-graph .graph-node-hook-child .graph-node-hook-icon {
	width: 11px;
	height: 13px;
}

@media (max-width: 900px) {
	#panel-graph .graph-layout,
	#panel-graph .graph-layout.graph-layout-panel-collapsed {
		grid-template-columns: 1fr !important;
	}
	#panel-graph .graph-create-panel,
	#panel-graph .graph-overlay-shell-edge-create .graph-create-panel {
		display: none;
	}
	#panel-graph .graph-panel-edge-toggle {
		display: none;
	}
	#panel-graph .graph-panel,
	#panel-graph .graph-layout.graph-layout-panel-collapsed .graph-panel {
		max-height: 38vh;
		opacity: 1;
		transform: none;
		pointer-events: auto;
		border-left: none;
		border-bottom: 1px solid var(--border);
		padding: 12px;
	}
	#panel-graph .graph-inspector-field-grid {
		grid-template-columns: 1fr;
	}
}
