/* Structure-first desktop canvas. Layout changes only through focus/return. */
[hidden]{display:none!important}
.research-layout{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}
.research-main{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;background:#f7f8fc;background-image:radial-gradient(#cbd4e5 .65px,transparent .65px);background-size:18px 18px}
.research-board{position:relative;display:flex;align-items:stretch;gap:14px;padding:14px;width:max-content;min-width:100%;min-height:100%}
.foundation-pane,.research-group{position:relative;flex:none;min-width:0;border:1px solid #dce2ef;border-radius:11px;background:#fafbff;overflow:visible}
.foundation-pane{display:flex;flex-direction:column;width:var(--foundation-width,228px);min-height:0;background:#f9fbfc;overflow:hidden}.foundation-pane>.region-header,.foundation-pane>.foundation-version{flex:none}
.research-group[data-stage=idea]{background:#f4f1fbba}.research-group[data-stage=formal]{background:#eff5fbba}.research-group[data-stage=ablation]{background:#fff7ebba}
.region-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:6px 10px;min-height:40px;border-bottom:1px solid #e3e7f0}
.region-header>div{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.region-header h2{font-size:13px;line-height:1.5;font-weight:650;white-space:nowrap}.region-count{font-size:10px;min-width:16px;height:16px;display:grid;place-items:center;border-radius:9px;background:#e9e9f1;color:#88869c}
.region-action{min-width:32px;min-height:28px;padding:4px 6px;border:0;border-radius:5px;background:transparent;color:#7d7894;font-size:11px;white-space:nowrap}.region-action:hover,.region-action.active{color:#6650b5;background:#e9e3f8}.is-focus-target>.region-header{background:#eee9fa55}
.project-stage-marker{border:1px solid #bcdfce;color:#347a5a;background:#edf8f1;font-size:9px;border-radius:4px;padding:2px 4px;white-space:nowrap}.research-group.is-project-active>.region-header{border-bottom-color:#b5d8c5}
.foundation-version{display:block;font-size:10px;color:#718493;padding:8px 11px 0}.foundation-compact-summary{padding:10px 11px 12px;font-size:11px;line-height:1.8}.foundation-compact-summary p{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 12px}.foundation-compact-summary .button{width:100%;min-height:30px}
.foundation-pane .foundation-column{flex:1;min-height:0;width:auto;height:auto;max-height:none;padding:10px;border:0;background:transparent;overflow:auto;overscroll-behavior:contain}.foundation-pane .foundation-head{display:none}.foundation-pane .foundation-card{padding:10px}.foundation-pane .foundation-card h3{font-size:12px}.foundation-pane .foundation-card p{font-size:12px;overflow-wrap:anywhere}.foundation-pane .foundation-actions{display:flex;flex-direction:column;gap:6px}.foundation-pane .foundation-actions button{white-space:normal}
.research-group-body{position:relative;width:100%;min-height:0}
.research-node{position:absolute;width:var(--node-width,152px);height:var(--node-height,64px);min-width:0;margin:0;padding:7px 9px;text-align:left;border:1px solid #dce2ed;border-radius:8px;background:white;box-shadow:0 3px 8px #293b5806;transform:none;z-index:2;display:flex;flex-direction:column;justify-content:center;gap:3px;cursor:pointer;overflow:hidden}
.research-node.selected{border-color:#8f7bd3;box-shadow:0 0 0 2px #ab99dc36;transform:none}.research-node:hover{border-color:#9d8ad6;box-shadow:0 4px 10px #6d5aa41c}.research-node.exploration-node{border-top:3px solid #72aaa8}
.node-meta{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:9px;line-height:12px;color:#92879c}.node-meta small{font-size:9px;color:#a8a6b4}.research-node strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;font-weight:600;line-height:1.45}
.research-group[data-scale=focus] .research-node{padding:11px 12px;border-radius:10px}.research-group[data-scale=focus] .research-node strong{font-size:14px}.research-group[data-scale=focus] .node-meta{font-size:10px;line-height:15px}
.research-group[data-scale=mini] .research-node{padding:5px 6px;gap:2px;border-radius:6px}.research-group[data-scale=mini] .research-node strong{font-size:10px;line-height:1.4}.research-group[data-scale=mini] .node-meta{font-size:8px;line-height:10px}.research-group[data-scale=mini] .node-meta small{font-size:8px}
.research-board>.relation-svg{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:visible}.relation-svg>path{stroke-width:1.4;stroke-linejoin:round}.relation-svg>path.selected{animation:none}
.research-layout>.evidence-tray{height:auto;flex:0 0 auto;overflow:auto;padding:7px 14px;background:#fff;border-top:1px solid #dde4ef}.evidence-tray .tray-heading{display:flex;align-items:center;min-width:0;gap:12px;margin:0;min-height:34px}.tray-heading>div:first-child{min-width:0}.evidence-tray .tray-heading strong{display:block;font-size:12px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.detail-experiment{display:block!important;font-size:9px!important;color:#9c9bab!important;margin-top:2px;line-height:1.3}.detail-judgment{font-size:10px;color:#8e809b;white-space:nowrap}.evidence-quicklinks{margin-left:auto;display:flex;gap:7px;align-items:center}.evidence-quicklinks .button{min-height:29px;font-size:11px;padding:4px 8px;margin-left:0}.evidence-tray .evidence-tiles{min-width:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:8px}.evidence-tray .evidence-tile{padding:8px 10px}.evidence-tray .evidence-tile strong{font-size:11px;margin:4px 0 0}.evidence-tray .tile-label{font-size:9px}
.code-layout{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden}.code-stage .view-tools{height:36px;min-height:36px;flex:0 0 36px;padding:0 14px}.code-scroll{height:auto;min-height:0;flex:1;overflow:auto;position:relative;background:#f8fafd}.lane-board{position:relative;min-height:0;width:100%;padding:0 12px 4px}
.lane,.lane[data-kind]{position:relative;min-height:0;height:auto;padding:0;border-bottom:1px solid #e4e8f1}.lane .region-header{padding:2px 4px;border-bottom:0;min-height:29px}.lane .region-header h2{font-size:12px;color:var(--blue)}.lane[data-kind=evaluation] .region-header h2{color:var(--teal)}.lane[data-kind=analysis] .region-header h2{color:var(--purple)}.lane[data-kind=report] .region-header h2{color:var(--amber)}.lane .region-action{min-height:26px;font-size:10px;padding:3px 6px}
.lane-content{position:relative;width:100%}.lane .code-node{position:absolute;min-width:0;width:var(--code-width,180px)!important;height:var(--code-height,52px);margin:0;padding:7px 10px;background:#fff;border:1px solid #d4e0ed;border-top:3px solid var(--blue);border-radius:7px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px;z-index:2;overflow:hidden}
.lane .code-node[data-kind=evaluation]{border-top-color:var(--teal)}.lane .code-node[data-kind=analysis]{border-top-color:var(--purple)}.lane .code-node[data-kind=report]{border-top-color:var(--amber)}
.code-node>strong{display:block;font-size:12px;line-height:1.4;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.code-meta{display:flex;align-items:center;gap:10px;font-size:9px;line-height:12px;color:#8c98a7}.code-meta small{margin-left:auto;font-size:9px;color:#9ca5b4}.code-node.selected{border-color:#78a4d4;box-shadow:0 0 0 2px #91b6dd35}.lane .code-node.unrelated{opacity:.65}.lane .code-node.selected{opacity:1}
.lane[data-scale=focus] .code-node{padding:11px 13px}.lane[data-scale=focus] .code-node strong{font-size:14px}.lane[data-scale=focus] .code-meta{font-size:10px}
.lane[data-scale=mini] .code-node{padding:4px 7px;gap:2px}.lane[data-scale=mini] .code-node strong{font-size:10px}.lane[data-scale=mini] .code-meta{font-size:8px;gap:5px}.lane[data-scale=mini] .code-meta small{font-size:8px}
.lane-board>.relation-svg{position:absolute;inset:0;z-index:1;pointer-events:none}.dependency-note:empty{display:none}.dependency-note{font-size:10px;padding:5px 14px;background:#edf7f5}
.code-selection-detail{display:flex;align-items:center;gap:12px;flex:0 0 auto;min-height:45px;padding:6px 14px;border-top:1px solid #dde5ee;background:#fff}.code-selection-title{display:flex;align-items:center;gap:8px;flex:none}.code-selection-title strong{font-size:11px}.code-selection-title .button,.code-selection-detail>.button{font-size:10px;min-height:28px;padding:4px 7px}.selected-executions{display:flex;align-items:center;gap:5px;flex:1;min-width:0;overflow:auto}.selected-executions .execution-chip{min-height:28px;flex:none;font-size:10px;padding:4px 7px}.empty-evidence-label{font-size:10px;color:#9ba4b0}
@media(prefers-reduced-motion:reduce){.research-node,.code-node,.foundation-pane,.research-group,.lane{transition:none!important;animation:none!important}}
.relation-svg>path.research-membership{stroke:#b6bbcd;stroke-width:1.25;stroke-dasharray:4 4}.relation-svg>path.research-membership.selected{stroke:#9f95b6;stroke-width:1.4;stroke-dasharray:4 4}

#research-edges>path{pointer-events:stroke}
.research-tree{position:absolute;transform-origin:top left}.research-group-body{overflow:hidden}.research-board.is-overview{width:100%;min-width:0}

/* Keep the graph and its selected record visible together on desktop. */
.research-layout{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,22vw,304px);gap:0}
.research-layout>.research-main{min-width:0;min-height:0;height:100%}
.research-layout>.evidence-tray.node-inspector{display:block;min-width:0;min-height:0;height:100%;max-height:none;overflow:auto;overscroll-behavior:contain;padding:16px;border-top:0;border-left:1px solid #dce4ef;background:#fff}
.node-inspector .inspector-heading{margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid #e8edf4}
.inspector-eyebrow{display:block;color:#8290a4;font-size:10px;letter-spacing:.08em;margin-bottom:6px}.node-inspector .inspector-heading h2{font-size:16px;font-weight:650;line-height:1.55;margin:0;color:#29384d;overflow-wrap:anywhere}.inspector-status{display:inline-block;margin-top:7px;color:#77639d;font-size:11px;overflow-wrap:anywhere}
.inspector-section{margin:15px 0;min-width:0}.inspector-section h3{font-size:11px;color:#7b8ca5;line-height:1.5;font-weight:600;margin:0 0 8px}.inspector-prose{font-size:12px;line-height:1.8;margin:0;white-space:pre-wrap;color:#475b76;overflow-wrap:anywhere}.inspector-empty{font-size:11px;color:#8c99aa;line-height:1.7;margin:5px 0}.inspector-observation{font-size:11px;line-height:1.7;color:#7d8ba0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 15px}
.node-inspector .evidence-quicklinks,.inspector-actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px}.node-inspector .button{min-height:32px;padding:5px 9px;font-size:11px;white-space:normal;overflow-wrap:anywhere}.inspector-experiment{display:block;font-size:12px;line-height:1.6;color:#405779;margin-bottom:4px}.node-inspector .detail-experiment{font-size:10px!important;line-height:1.6;margin-bottom:8px;color:#8593a6!important}
.research-layout .evidence-tray .evidence-tiles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.research-layout .evidence-tray .evidence-tile{min-height:59px;padding:9px;text-align:left}.research-layout .evidence-tray .tile-label{font-size:10px}.research-layout .evidence-tray .evidence-tile strong{font-size:12px}
.inspector-record{display:block;width:100%;text-align:left;border:1px solid #dfe6ef;background:#f9fbfe;color:#48648b;border-radius:7px;padding:8px 10px;margin:5px 0;min-height:34px;font-size:11px;line-height:1.6;overflow-wrap:anywhere;cursor:pointer}.inspector-record:hover{border-color:#9dadd1;background:#f3f7fd}.inspector-record:focus-visible,.research-node:focus-visible,.code-node:focus-visible,.region-action:focus-visible{outline:2px solid #7c68bc;outline-offset:2px}
.inspector-facts{display:grid;gap:4px;margin:0 0 10px;font-size:11px;line-height:1.7}.inspector-facts dt{color:#8a98aa;margin-top:6px}.inspector-facts dd{margin:0;color:#4e607a;overflow-wrap:anywhere}.inspector-credentials{border-top:1px solid #e4e9f2;padding-top:12px;margin-top:14px;font-size:11px;color:#74859d}.inspector-credentials summary{cursor:pointer;min-height:30px}
.inspector-preview{padding:9px;border:1px solid #e0e7f0;border-radius:8px;margin:8px 0;background:#f9fbfd;min-width:0;overflow:hidden}.inspector-preview>strong{display:block;font-size:11px;line-height:1.5;color:#647b98;margin-bottom:7px;overflow-wrap:anywhere}.inspector-preview .typed-images{display:block;margin:0}.inspector-preview .typed-image{margin:0;padding:0;border:0;min-width:0}.inspector-preview .typed-image img{display:block;width:100%;height:134px;object-fit:contain;background:#f0f3f8}.inspector-preview .typed-image figcaption{font-size:10px;line-height:1.5;overflow-wrap:anywhere;margin:6px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.inspector-preview .typed-metric{display:block;min-width:0;max-width:100%;margin:4px 0;padding:8px}.inspector-preview .typed-metric strong{font-size:24px}.inspector-preview .typed-series{padding:0;min-width:0}.inspector-preview .typed-series svg{display:block;width:100%;height:auto;max-height:136px}.inspector-preview .typed-series p{font-size:10px}.inspector-preview .typed-table{max-height:150px;font-size:10px;overflow:auto}.inspector-preview .inspector-prose{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.research-node{padding:9px 10px;justify-content:flex-start;gap:5px}.research-node strong{font-size:12px;line-height:1.45;min-height:17px}.node-summary{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;line-height:1.5;color:#77869b}.node-footnote{display:flex;justify-content:space-between;gap:5px;color:#8999af;font-size:9px;line-height:13px;margin-top:auto}.node-footnote>span{color:#907ab5}.node-meta,.node-meta small{font-size:9px;color:#8790a5}
.research-group[data-scale=focus] .research-node{padding:10px 11px;gap:5px}.research-group[data-scale=focus] .research-node strong{font-size:13px}.research-group[data-scale=focus] .node-summary{-webkit-line-clamp:3;font-size:11px}.research-group[data-scale=mini] .research-node{padding:8px;gap:4px}.research-group[data-scale=mini] .research-node strong{font-size:12px;line-height:1.4}.research-group[data-scale=mini] .node-summary{-webkit-line-clamp:1;font-size:11px}.research-group[data-scale=mini] .node-meta,.research-group[data-scale=mini] .node-meta small{font-size:9px;line-height:12px}.region-action{min-height:30px;min-width:40px;font-size:11px}
.code-layout>.code-workarea{display:grid;grid-template-columns:minmax(0,1fr) clamp(280px,22vw,304px);flex:1;min-height:0;overflow:hidden}.code-workarea>.code-scroll{min-height:0;min-width:0;height:100%}.code-workarea>.code-inspector{min-height:0;min-width:0;height:100%;overflow:auto;overscroll-behavior:contain;border-left:1px solid #dce4ef;padding:16px;background:#fff}
.code-inspector>.code-selection-detail{display:block;max-height:none;min-height:0;overflow:visible;padding:0;border:0}.code-inspector .selected-executions{display:block;max-height:none;overflow:visible}.code-inspector .selected-executions .button{max-width:none;white-space:normal}.code-inspector>.spec-library{max-height:none;overflow:visible;padding:14px 0 0;margin-top:16px;background:transparent}.code-inspector .spec-library-items{display:grid;gap:7px;overflow:visible}.code-inspector .spec-card{min-width:0;width:100%;padding:8px;min-height:58px;flex:none}.code-inspector .spec-card strong{white-space:normal}
.lane .code-node{padding:7px 10px;justify-content:flex-start;gap:4px}.lane .code-node>strong{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;white-space:normal;font-size:12px;line-height:1.45;overflow:hidden}.lane .code-node .node-summary{font-size:11px;line-height:1.5;-webkit-line-clamp:2}.lane .code-node .code-meta{margin-top:auto;gap:6px;color:#7a8ca5;font-size:9px}.code-meta>span:first-child{max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lane .code-node.unrelated{opacity:.82}.lane .code-node.selected{opacity:1}.lane[data-scale=focus] .code-node{padding:8px 11px}.lane[data-scale=focus] .code-node strong{font-size:12px;-webkit-line-clamp:2}.lane[data-scale=focus] .node-summary{-webkit-line-clamp:2}.lane[data-scale=mini] .code-node{padding:7px;gap:4px}.lane[data-scale=mini] .code-node strong{font-size:12px}.lane[data-scale=mini] .code-node .node-summary{-webkit-line-clamp:1;font-size:11px}.lane[data-scale=mini] .code-meta{font-size:9px}.lane .region-action{min-height:30px;font-size:11px}
.research-group[data-empty=true] .research-group-body{height:0!important}
