body {
  margin: 0;
  overflow: hidden;
}

/* CORE LAYOUT: top 3 / control 2 / data 1. Never turn layers into columns. */
#workspace {
  position: relative;
  isolation: isolate;
  height: 100vh;
  --workbench-edge-gap: 4px;
}

#top-layer {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  font-size: 32px;
}

#sidebar-toggle {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  margin-block-start: var(--workbench-edge-gap);
  margin-inline-start: var(--workbench-edge-gap);
  margin-block-end: 0;
  margin-inline-end: 0;
  padding: 0;
  border: 0;
  background: transparent;
  appearance: none;
  -webkit-appearance: none;
  pointer-events: auto;
  font: inherit;
  cursor: pointer;
}

#sidebar-toggle[data-ink-measured] {
  inline-size: var(--toggle-ink-inline-size);
  block-size: var(--toggle-ink-block-size);
}

#sidebar-toggle > [data-glyph-canvas] {
  display: block;
  inline-size: 0;
  block-size: 0;
  pointer-events: none;
}

#sidebar-toggle[data-ink-measured] > [data-glyph-canvas] {
  inline-size: 100%;
  block-size: 100%;
}

#sidebar-toggle:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 2px;
}

#control-plane {
  position: absolute;
  inset-block: 0;
  inset-inline-start: 0;
  z-index: 2;
  width: clamp(320px, 28vw, 440px);
  padding-block-start: var(--content-top, 0px);
  padding-inline: var(--workbench-edge-gap);
  overflow-x: hidden;
  overflow-y: scroll;
  background: Canvas;
  box-sizing: border-box;
}

#control-plane h1 {
  margin-block-start: 0;
}

#data-plane {
  position: relative;
  z-index: 1;
  height: 100vh;
  overflow: hidden;
}

/* CORE RENDERER MOUNT: always full viewport; product code owns its renderer. */
#graph-root {
  position: absolute;
  inset: 0;
  box-sizing: border-box;
  padding-block-start: var(--content-top, 0px);
}

#graph-root > :first-child {
  margin-block-start: 0;
}

/* 诊断文本是语义内容；真实 renderer 不接受这条内缩规则。 */
#graph-root > [data-workbench-content] {
  margin-inline: var(--workbench-edge-gap);
}

#workspace[data-sidebar="collapsed"] #control-plane { display: none; }

@media (max-width: 959px) {
  #control-plane { width: 100%; }
}
