.research-workspace { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; overflow: hidden; color: var(--semi-color-text-0); } .research-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; } .research-workspace p, .research-detail-content p, .research-hint { font-size: 13px; color: var(--semi-color-text-2); line-height: 1.6; } .research-main { min-width: 0; display: grid; gap: 20px; } .research-card { border: 1px solid var(--semi-color-border); border-radius: 8px; padding: 20px; background: var(--semi-color-bg-1); min-width: 0; } .research-card h3 { font-size: 16px; margin: 0 0 12px; } .research-card label, .research-editor label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; margin: 12px 0; min-width: 0; } .research-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; } .research-toolbar, .research-methods, .research-lineage { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 16px 0; } .research-toolbar > .semi-input-wrapper { flex: 1; min-width: 160px; } .research-lineage { font-size: 12px; overflow-wrap: anywhere; } .research-variable { display: grid; grid-template-columns: minmax(80px, 0.5fr) repeat(2, minmax(100px, 1fr)); gap: 10px; align-items: start; padding: 14px 0; border-top: 1px solid var(--semi-color-border); } .research-variable > .semi-input-textarea-wrapper { grid-column: 1 / -1; } .research-variable > button { grid-column: 1 / -1; justify-self: start; } .research-code-editor textarea, .research-workspace code, .research-detail-content code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; white-space: pre-wrap; overflow-wrap: anywhere; } .research-workspace pre, .research-detail-content pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 12px; max-height: 320px; overflow: auto; background: var(--semi-color-fill-0); padding: 12px; border-radius: 4px; } .research-table-scroll { overflow-x: auto; } .research-table { border-collapse: collapse; width: 100%; font-size: 13px; } .research-table th { color: var(--semi-color-text-2); font-weight: 500; background: var(--semi-color-fill-0); } .research-table th, .research-table td { text-align: left; vertical-align: top; padding: 12px; border-bottom: 1px solid var(--semi-color-border); } .research-table td { max-width: 350px; overflow-wrap: anywhere; } .research-table details { margin-top: 8px; } .research-workspace summary, .research-detail-content summary { cursor: pointer; font-size: 13px; } .research-comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } .research-comparison-grid article { padding-top: 12px; } .sidebar-group-heading { color: var(--semi-color-text-2); font-size: 11px; padding: 18px 12px 8px; } @media (max-width: 1100px) { .research-comparison-grid { grid-template-columns: 1fr; } } .research-sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } .research-saved-views { padding: 8px 16px; border-bottom: 1px solid var(--line); flex-wrap: wrap; } .research-saved-views .semi-select { min-width: 210px; } /* Native research graph: same compact workspace surfaces and focus states. */ .flow-editor { display: grid; grid-template-columns: minmax(0, 1fr) 235px; gap: 12px; align-items: start; } .flow-canvas-shell { border: 1px solid var(--semi-color-border); border-radius: 8px; overflow: hidden; background: var(--semi-color-bg-1); margin-bottom: 12px; } .flow-canvas-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 12px; color: var(--semi-color-text-2); font-size: 12px; } .flow-canvas-viewport { overflow: auto; height: 460px; background: radial-gradient(var(--semi-color-border) 1px, transparent 1px); background-size: 20px 20px; } .flow-canvas { position: relative; } .flow-edges { position: absolute; inset: 0; pointer-events: none; } .flow-edges path { fill: none; stroke: var(--semi-color-text-2); stroke-width: 1.6; } .flow-edges text { fill: var(--semi-color-text-1); font-size: 12px; } .flow-node { position: absolute; display: flex; flex-direction: column; justify-content: center; gap: 8px; width: 200px; height: 100px; padding: 12px; border: 1px solid var(--semi-color-border); border-radius: 8px; background: var(--semi-color-bg-1); color: var(--semi-color-text-0); text-align: left; cursor: grab; box-shadow: 0 2px 8px #00000008; } .flow-node strong { white-space: nowrap; text-overflow: ellipsis; overflow: hidden; width: 100%; } .flow-node span { font-size: 11px; color: var(--semi-color-text-2); } .flow-node.selected, .flow-node:focus-visible { outline: 2px solid var(--semi-color-primary); outline-offset: 2px; } .flow-node.completed { border-left: 4px solid var(--semi-color-success); } .flow-node.running, .flow-node.waiting { border-left: 4px solid var(--semi-color-primary); } .flow-node.blocked, .flow-node.interrupted { border-left: 4px solid var(--semi-color-warning); } .flow-node.skipped { opacity: 0.55; } .flow-inspector { display: grid; gap: 12px; } .quantflow-workspace select { border: 1px solid var(--semi-color-border); border-radius: 4px; background: var(--semi-color-fill-0); color: var(--semi-color-text-0); padding: 7px 8px; max-width: 100%; } .flow-inspector label { display: grid; gap: 6px; } .flow-inspector fieldset { border: 1px solid var(--semi-color-border); border-radius: 4px; } .flow-inspector fieldset label { display: flex; margin: 8px 0; } .flow-connect { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; } .flow-edge-list { display: grid; gap: 4px; margin-top: 12px; } .flow-edge-list > div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--semi-color-border); padding: 4px 0; } .quantflow-workspace .section-toolbar > .semi-input-wrapper { max-width: 240px; } @media (max-width: 1200px) { .flow-editor { grid-template-columns: minmax(0, 1fr); } .flow-inspector { grid-template-columns: repeat(2, minmax(0, 1fr)); } } /* Lists inherit the viewport boundary; controls and pagination never join data scrolling. */ .research-list { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; } .research-list-filters, .research-list-actions { display: flex; flex-wrap: wrap; align-items: center; flex: 0 0 auto; gap: 12px; padding: 12px; } .research-list-filters { border-bottom: 1px solid var(--line); } .research-list-filters > .semi-input-wrapper { flex: 1; min-width: 160px; } .research-list-filters > .research-toolbar { width: 100%; } .research-list .research-toolbar { margin: 0; } .research-list-scroll { flex: 1; min-height: 0; min-width: 0; overflow: auto; overscroll-behavior: contain; } .research-list-scroll .research-table th { position: sticky; top: 0; z-index: 1; background: var(--canvas); } .research-list-empty { padding: 40px 16px; text-align: center; } .research-detail .semi-sidesheet-body { min-height: 0; overflow: auto; overscroll-behavior: contain; } .research-detail-content { min-width: 0; color: var(--ink); } .research-detail-content .research-main { display: flex; flex-direction: column; gap: 16px; } .quantflow-detail-body { flex: 1; min-height: 0; overflow: auto; } .quantflow-detail-actions { flex-shrink: 0; padding: 8px 0 12px; }