.atlas-v2-workspace {
  /* 尺寸 */
  --atlas-splitter-size: 0.25rem;
  --atlas-splitter-hit-area: 0.25rem;
  --atlas-chrome-height: 2rem;
  --atlas-gap: 0.375rem;
  --atlas-padding-compact: 0.375rem 0.625rem;
  --atlas-radius: 0.25rem;
  --atlas-radius-sm: 0.125rem;
  --atlas-border-width: 1px;
  --atlas-focus-ring-width: 2px;
  --atlas-drag-preview-max-width: min(20rem, calc(100vw - 1rem));
  --atlas-popup-inline-size: 14rem;
  --atlas-popup-max-block-size: 12rem;
  --atlas-popup-item-padding: 0.375rem 0.625rem;
  --atlas-popup-item-radius: var(--atlas-radius-sm);
  --atlas-flyout-inline-size: min(22rem, 50vw);
  --atlas-flyout-block-size: min(24rem, 60vh);
  --atlas-tab-overflow-button-inline-size: var(--atlas-chrome-height);
  --atlas-group-border-width: 0px;
  --atlas-group-radius: 0px;
  --atlas-tab-indicator-width: 0px;
  /* 颜色 */
  --atlas-accent: Highlight;
  --atlas-surface: Canvas;
  --atlas-text: CanvasText;
  --atlas-drag-preview-shadow: rgb(0 0 0 / 28%);
  --atlas-popup-bg: Canvas;
  --atlas-popup-text: CanvasText;
  --atlas-popup-border: currentColor;
  --atlas-popup-shadow: 0 0.25rem 0.75rem rgb(0 0 0 / 28%);
  --atlas-popup-backdrop: transparent;
  --atlas-flyout-shadow: 0 0.25rem 0.75rem rgb(0 0 0 / 28%);
  --atlas-floating-bg: var(--atlas-surface);
  --atlas-floating-border: var(--atlas-border-color);
  --atlas-floating-header-bg: var(--atlas-chrome-bg);
  --atlas-floating-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 30%);
  /* 界面框架颜色（ADR-0023 扩展） */
  --atlas-group-bg: transparent;
  --atlas-chrome-bg: transparent;
  --atlas-tab-text: inherit;
  --atlas-tab-text-active: inherit;
  --atlas-tab-bg-active: transparent;
  --atlas-tab-bg-hover: transparent;
  --atlas-splitter-color: currentColor;
  --atlas-border-color: currentColor;
  --atlas-tab-indicator-color: transparent;
  /* 不透明度 */
  --atlas-splitter-opacity: 0.18;
  --atlas-splitter-opacity-hover: 0.4;
  --atlas-splitter-opacity-focus: 0.5;
  --atlas-splitter-opacity-disabled: 0.08;
  --atlas-drop-highlight-alpha-soft: 15%;
  --atlas-drop-highlight-alpha-strong: 22%;
  --atlas-toolbar-divider-opacity: 0.25;
  --atlas-drag-preview-opacity: 0.92;
  --atlas-popup-disabled-opacity: 0.45;
  /* 层级 */
  --atlas-layer-content: 0;
  --atlas-layer-chrome: 10;
  --atlas-layer-floating: 20;
  --atlas-layer-drag: 30;
  --atlas-layer-popup-backdrop: 39;
  --atlas-layer-popup: 40;
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-inline-size: 0;
  min-block-size: 0;
  overflow: hidden;
  isolation: isolate;
}

/* AtlasIcon 的基础排版：图标是装饰性的，不接收指针事件。 */
.atlas-v2-icon {
  display: inline-block;
  flex: 0 0 auto;
  vertical-align: middle;
  pointer-events: none;
}

/* 固定槽位缺席时仍按行号布局：工作区必须位于 1fr 的中间行，
   否则会被自动放入第一行 auto 并收缩到内容高度（REQ-F-002 AC2）。 */
.atlas-v2-workspace > .atlas-v2-top-toolbar {
  grid-row: 1;
}

.atlas-v2-workspace > .atlas-v2-status-bar {
  grid-row: 3;
}

.atlas-v2-work-area {
  grid-row: 2;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: minmax(0, 1fr);
  min-inline-size: 0;
  min-block-size: 0;
}

/* ToolBar 缺席时根节点仍固定在中央 1fr 列，避免 grid 自动放置落入 auto 列。 */
.atlas-v2-work-area > [data-atlas-toolbar-side="inline-start"] {
  grid-column: 1;
}

.atlas-v2-work-area > .atlas-v2-work-area-center {
  grid-column: 2;
  display: grid;
  min-inline-size: 0;
  min-block-size: 0;
}

.atlas-v2-work-area > [data-atlas-toolbar-side="inline-end"] {
  grid-column: 3;
}

.atlas-v2-split {
  display: grid;
  min-inline-size: 0;
  min-block-size: 0;
}

.atlas-v2-split-inline {
  grid-template-columns:
    var(--atlas-first-track)
    var(--atlas-splitter-size)
    var(--atlas-second-track);
}

.atlas-v2-split-block {
  grid-template-rows:
    var(--atlas-first-track)
    var(--atlas-splitter-size)
    var(--atlas-second-track);
}

.atlas-v2-splitter {
  position: relative;
  z-index: var(--atlas-layer-chrome);
  background: var(--atlas-splitter-color);
  color: var(--atlas-splitter-color);
  opacity: var(--atlas-splitter-opacity);
  touch-action: none;
  user-select: none;
}

.atlas-v2-splitter::before {
  content: "";
  position: absolute;
  inset: calc(-1 * var(--atlas-splitter-hit-area));
}

.atlas-v2-split-inline > .atlas-v2-splitter {
  cursor: col-resize;
}

.atlas-v2-split-block > .atlas-v2-splitter {
  cursor: row-resize;
}

.atlas-v2-splitter[aria-disabled="true"] {
  cursor: default;
  opacity: var(--atlas-splitter-opacity-disabled);
}

.atlas-v2-splitter:focus-visible {
  opacity: var(--atlas-splitter-opacity-focus);
  outline: var(--atlas-focus-ring-width) solid var(--atlas-accent);
  outline-offset: -2px;
}

.atlas-v2-workspace button:focus-visible,
.atlas-v2-content-outlet:focus-visible {
  outline: var(--atlas-focus-ring-width) solid var(--atlas-accent);
  outline-offset: 2px;
}

.atlas-v2-splitter:hover,
.atlas-v2-split[data-atlas-resizing="true"] > .atlas-v2-splitter {
  opacity: var(--atlas-splitter-opacity-hover);
}

.atlas-v2-splitter-collapse {
  position: relative;
  display: block;
  margin: auto;
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
}

.atlas-v2-group {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-inline-size: 0;
  min-block-size: 0;
  overflow: hidden;
  border: var(--atlas-group-border-width) solid var(--atlas-border-color);
  border-radius: var(--atlas-group-radius);
  background: var(--atlas-group-bg);
}

.atlas-v2-group-collapsed {
  visibility: hidden;
}

.atlas-v2-split[data-atlas-split-hidden="both"] {
  visibility: hidden;
}

.atlas-v2-splitter[data-atlas-splitter-hidden="true"] {
  visibility: hidden;
}

.atlas-v2-content-outlet,
.atlas-v2-empty-state {
  z-index: var(--atlas-layer-content);
  min-inline-size: 0;
  min-block-size: 0;
  overflow: auto;
}

.atlas-v2-tab-strip,
.atlas-v2-panel-header,
.atlas-v2-toolbar {
  z-index: var(--atlas-layer-chrome);
  background: var(--atlas-chrome-bg);
}

.atlas-v2-panel-header {
  display: flex;
  align-items: center;
  gap: var(--atlas-gap);
}

.atlas-v2-panel-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-inline-start: auto;
  min-inline-size: var(--atlas-chrome-height);
  min-block-size: var(--atlas-chrome-height);
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  line-height: 1;
}

.atlas-v2-panel-close:hover {
  background: var(--atlas-tab-bg-hover);
}

.atlas-v2-tab-bar {
  position: relative;
  z-index: var(--atlas-layer-chrome);
  display: flex;
  min-inline-size: 0;
  background: var(--atlas-chrome-bg);
}

.atlas-v2-tab-strip {
  display: flex;
  flex: 1 1 auto;
  min-inline-size: 0;
  overflow-inline: auto;
}

/* 菜单模式不滚动：未完全可见的标签页经溢出菜单访问；
   换行模式让标签条长高，所有标签页保持可见。 */
.atlas-v2-tab-strip[data-atlas-overflow-mode="menu"] {
  overflow-inline: hidden;
}

.atlas-v2-tab-strip[data-atlas-overflow-mode="wrap"] {
  flex-wrap: wrap;
  overflow-inline: visible;
}

.atlas-v2-tab-strip [role="tab"] {
  flex: 0 0 auto;
  /* 标题超出标签页可视宽度时截断并显示省略号（REQ-F-027 AC2）。
     max-inline-size 相对标签条取值：单个长标题收缩到可视宽度，
     多个标签仍可超出并保留 REQ-F-043 的滚动溢出模式。 */
  max-inline-size: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--atlas-tab-text);
  background: transparent;
}

.atlas-v2-tab-overflow-button {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-inline-size: var(--atlas-tab-overflow-button-inline-size);
  min-block-size: var(--atlas-chrome-height);
  border: 0;
  padding: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
}

.atlas-v2-tab-overflow-button:hover {
  background: var(--atlas-tab-bg-hover);
}

/* 仅当控制器测得标签页溢出时显示按钮（REQ-F-042 AC1）。 */
.atlas-v2-tab-strip[data-atlas-overflow-mode="menu"][data-atlas-overflowing="true"]
  + .atlas-v2-tab-overflow-button {
  display: inline-flex;
}

.atlas-v2-popup-backdrop {
  position: fixed;
  z-index: var(--atlas-layer-popup-backdrop);
  inset: 0;
  background: var(--atlas-popup-backdrop);
}

.atlas-v2-popup {
  position: fixed;
  z-index: var(--atlas-layer-popup);
  display: flex;
  flex-direction: column;
  inline-size: var(--atlas-popup-inline-size);
  max-inline-size: calc(100vw - 1rem);
  max-block-size: var(--atlas-popup-max-block-size);
  box-sizing: border-box;
  padding: var(--atlas-padding-compact);
  overflow-block: auto;
  border: var(--atlas-border-width) solid var(--atlas-popup-border);
  border-radius: var(--atlas-radius);
  background: var(--atlas-popup-bg);
  color: var(--atlas-popup-text);
  box-shadow: var(--atlas-popup-shadow);
}

.atlas-v2-popup-item {
  display: block;
  inline-size: 100%;
  border: 0;
  padding: var(--atlas-popup-item-padding);
  border-radius: var(--atlas-popup-item-radius);
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  text-align: start;
  overflow-wrap: anywhere;
}

.atlas-v2-popup-item:hover:not(:disabled),
.atlas-v2-popup-item:focus-visible {
  background: var(--atlas-tab-bg-hover);
}

.atlas-v2-popup-item:disabled {
  opacity: var(--atlas-popup-disabled-opacity);
  cursor: default;
}

/* 溢出菜单只列出未完全可见的标签页；控制器为每个标签页与菜单项
   写入同一 data-atlas-tab-clipped 标记。 */
[data-atlas-tab-menu-item][data-atlas-tab-clipped="false"] {
  display: none;
}

.atlas-v2-tab-strip [role="tab"][aria-selected="true"] {
  color: var(--atlas-tab-text-active);
  background: var(--atlas-tab-bg-active);
  box-shadow: inset 0 calc(-1 * var(--atlas-tab-indicator-width)) 0
    var(--atlas-tab-indicator-color);
}

.atlas-v2-tab-strip [role="tab"]:hover:not([aria-selected="true"]),
.atlas-v2-tab-strip [role="tab"]:focus-visible {
  background: var(--atlas-tab-bg-hover);
}

.atlas-v2-toolbar {
  position: relative;
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
  min-block-size: 0;
}

.atlas-v2-toolbar-area {
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
  min-block-size: 0;
}

.atlas-v2-toolbar-area-bottom {
  justify-content: flex-end;
  flex: 1;
}

.atlas-v2-toolbar-region {
  display: flex;
  flex-direction: column;
  min-inline-size: 0;
  min-block-size: 0;
  position: relative;
}

.atlas-v2-auto-hide-owner {
  position: relative;
}

.atlas-v2-auto-hide-entry {
  display: flex;
  align-items: center;
  gap: var(--atlas-gap);
  inline-size: 100%;
  box-sizing: border-box;
  border: 0;
  padding: var(--atlas-padding-compact);
  background: transparent;
  color: inherit;
  cursor: default;
  font: inherit;
  text-align: start;
}

.atlas-v2-auto-hide-entry:hover,
.atlas-v2-auto-hide-entry:focus-visible {
  background: var(--atlas-tab-bg-hover);
}

/* 自动隐藏 Flyout 覆盖在相邻面板上方（REQ-F-023 AC2）：
   条目所在 ToolBar 的 inline-end 侧展开；RTL 由 logical inset 自动镜像。 */
.atlas-v2-auto-hide-flyout {
  display: none;
  position: absolute;
  inset-block-start: 0;
  z-index: var(--atlas-layer-drag);
  inline-size: var(--atlas-flyout-inline-size);
  block-size: var(--atlas-flyout-block-size);
  box-sizing: border-box;
  overflow: hidden;
  border: var(--atlas-border-width) solid var(--atlas-popup-border);
  border-radius: var(--atlas-radius);
  background: var(--atlas-popup-bg);
  color: var(--atlas-popup-text);
  box-shadow: var(--atlas-flyout-shadow);
}

.atlas-v2-toolbar[data-atlas-toolbar-side="inline-start"] .atlas-v2-auto-hide-flyout {
  inset-inline-start: 100%;
}

.atlas-v2-toolbar[data-atlas-toolbar-side="inline-end"] .atlas-v2-auto-hide-flyout {
  inset-inline-end: 100%;
}

[data-atlas-auto-hide-open="true"] > .atlas-v2-auto-hide-flyout {
  display: grid;
}

.atlas-v2-auto-hide-flyout > .atlas-v2-content-outlet {
  inline-size: 100%;
  block-size: 100%;
}

.atlas-v2-toolbar-divider {
  border-block-start: var(--atlas-border-width) solid currentColor;
  opacity: var(--atlas-toolbar-divider-opacity);
}

.atlas-v2-toolbar-section-divider {
  flex: 0 0 auto;
}

.atlas-v2-toolbar-section-divider[data-atlas-toolbar-section-divider="false"] {
  visibility: hidden;
}

.atlas-v2-drop-scaffold {
  display: none;
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  block-size: var(--atlas-chrome-height);
  box-sizing: border-box;
  opacity: 0;
}

.atlas-v2-workspace[data-atlas-dragging="true"] .atlas-v2-drop-scaffold[data-atlas-drop-scaffold="true"] {
  display: block;
}

.atlas-v2-workspace[data-atlas-dragging="true"] .atlas-v2-toolbar-region[data-atlas-region-empty="true"] {
  min-block-size: var(--atlas-chrome-height);
  min-inline-size: 100%;
}

.atlas-v2-workspace[data-atlas-dragging="true"] .atlas-v2-toolbar {
  min-inline-size: var(--atlas-chrome-height);
}

.atlas-v2-workspace[data-atlas-dragging="true"] .atlas-v2-toolbar-area {
  min-inline-size: 100%;
}

/* 放置高亮：非文档 Group 元素保留整元素指示器
   （panel-header-insertion / toolbar-insertion / drop-scaffold /
   toolbar-region / panel-region-center / 标签页上的 document-center）。 */
[data-atlas-drop-preview]:not([data-atlas-group-kind="document"]) {
  outline: var(--atlas-focus-ring-width) solid var(--atlas-accent);
  outline-offset: -2px;
  background: color-mix(in srgb, var(--atlas-accent) var(--atlas-drop-highlight-alpha-soft), transparent);
}

/* 文档 Group 主体不整体填充；五个区域形状由 ::before 绘制。
   25% 带宽必须与 documentTargetKind 决策完全一致（所见即所得）。 */
[data-atlas-group-kind="document"][data-atlas-drop-preview] {
  outline: none;
  background: transparent;
}

/* Tool Panel 落在 Editor Group 上会浮出为窗口（REQ-F-152）；
   与五个文档停靠区区分，使用虚线整组轮廓。 */
[data-atlas-group-kind="document"][data-atlas-drop-preview="floating-window"] {
  outline: var(--atlas-focus-ring-width) dashed var(--atlas-accent);
  outline-offset: -4px;
  background: color-mix(in srgb, var(--atlas-accent) var(--atlas-drop-highlight-alpha-soft), transparent);
}

[data-atlas-group-kind="document"][data-atlas-drop-preview^="document-"]::before {
  content: "";
  position: absolute;
  z-index: calc(var(--atlas-layer-chrome) + 1);
  pointer-events: none;
  background: color-mix(in srgb, var(--atlas-accent) var(--atlas-drop-highlight-alpha-strong), transparent);
  outline: var(--atlas-focus-ring-width) solid var(--atlas-accent);
  outline-offset: -2px;
  border-radius: var(--atlas-radius-sm);
}

[data-atlas-group-kind="document"][data-atlas-drop-preview="document-inline-start"]::before {
  inset-block: 0;
  inset-inline-start: 0;
  inline-size: 25%;
}

[data-atlas-group-kind="document"][data-atlas-drop-preview="document-inline-end"]::before {
  inset-block: 0;
  inset-inline-end: 0;
  inline-size: 25%;
}

[data-atlas-group-kind="document"][data-atlas-drop-preview="document-block-start"]::before {
  inset-inline: 0;
  inset-block-start: 0;
  block-size: 25%;
}

[data-atlas-group-kind="document"][data-atlas-drop-preview="document-block-end"]::before {
  inset-inline: 0;
  inset-block-end: 0;
  block-size: 25%;
}

[data-atlas-group-kind="document"][data-atlas-drop-preview="document-center"]::before {
  inset-block-start: 25%;
  inset-inline-start: 25%;
  inline-size: 50%;
  block-size: 50%;
}

.atlas-v2-overlay-root {
  position: absolute;
  z-index: var(--atlas-layer-drag);
  inset: 0;
  pointer-events: none;
}

.atlas-v2-drag-preview {
  position: fixed;
  inset: 0 auto auto 0;
  display: inline-flex;
  align-items: center;
  gap: var(--atlas-gap);
  max-inline-size: var(--atlas-drag-preview-max-width);
  min-block-size: var(--atlas-chrome-height);
  box-sizing: border-box;
  contain: layout paint style;
  padding: var(--atlas-padding-compact);
  overflow: hidden;
  border: var(--atlas-border-width) solid var(--atlas-accent);
  border-radius: var(--atlas-radius);
  background: var(--atlas-surface);
  color: var(--atlas-text);
  box-shadow: 0 0.25rem 0.75rem var(--atlas-drag-preview-shadow);
  opacity: var(--atlas-drag-preview-opacity);
  pointer-events: none;
  user-select: none;
  white-space: nowrap;
  text-overflow: ellipsis;
  will-change: transform;
}

.atlas-v2-drag-preview-title {
  min-inline-size: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.atlas-v2-workspace[data-atlas-dragging="true"] .atlas-v2-drop-scaffold[data-atlas-drop-scaffold="true"][data-atlas-drop-preview="drop-scaffold"] {
  opacity: 1;
  border: var(--atlas-focus-ring-width) solid var(--atlas-accent);
  outline: 0;
  background: color-mix(in srgb, var(--atlas-accent) var(--atlas-drop-highlight-alpha-soft), transparent);
}

[data-atlas-dragging="true"] {
  cursor: grabbing;
  user-select: none;
}

@media (prefers-reduced-motion: reduce) {
  .atlas-v2-workspace *,
  .atlas-v2-workspace *::before,
  .atlas-v2-workspace *::after {
    scroll-behavior: auto;
    transition-duration: 0s;
    animation-duration: 0s;
  }
}

.atlas-v2-workspace[data-atlas-reduced-motion="true"] *,
.atlas-v2-workspace[data-atlas-reduced-motion="true"] *::before,
.atlas-v2-workspace[data-atlas-reduced-motion="true"] *::after {
  scroll-behavior: auto;
  transition-duration: 0s;
  animation-duration: 0s;
}
.atlas-v2-content-stack {
  display: contents;
}

.atlas-v2-sandbox-frame {
  width: 100%;
  height: 100%;
  border: 0;
}

/* 浮动窗口层：覆盖 Work Area 与固定槽位，但不拦截未命中窗口的指针。 */
.atlas-v2-floating-layer {
  position: absolute;
  inset: 0;
  z-index: var(--atlas-layer-floating);
  pointer-events: none;
}

.atlas-v2-floating-window {
  position: absolute;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-inline-size: 240px;
  min-block-size: 160px;
  border: var(--atlas-border-width) solid var(--atlas-floating-border);
  border-radius: var(--atlas-radius);
  background: var(--atlas-floating-bg);
  box-shadow: var(--atlas-floating-shadow);
  overflow: hidden;
  pointer-events: auto;
  outline: none;
}

.atlas-v2-floating-window:focus-visible,
.atlas-v2-floating-window:focus-within {
  border-color: var(--atlas-accent);
}

.atlas-v2-floating-header {
  flex: 0 0 auto;
  cursor: move;
  background: var(--atlas-floating-header-bg);
  border-block-end: var(--atlas-border-width) solid var(--atlas-floating-border);
}

.atlas-v2-floating-content {
  display: flex;
  flex: 1 1 auto;
  min-inline-size: 0;
  min-block-size: 0;
}

.atlas-v2-floating-content > .atlas-v2-content-outlet {
  flex: 1 1 auto;
}

.atlas-v2-floating-resize {
  position: absolute;
  z-index: 1;
}

.atlas-v2-floating-resize-n,
.atlas-v2-floating-resize-s {
  inset-inline: 0;
  block-size: 6px;
  cursor: ns-resize;
}

.atlas-v2-floating-resize-n {
  inset-block-start: -3px;
}

.atlas-v2-floating-resize-s {
  inset-block-end: -3px;
}

.atlas-v2-floating-resize-e,
.atlas-v2-floating-resize-w {
  inset-block: 0;
  inline-size: 6px;
  cursor: ew-resize;
}

.atlas-v2-floating-resize-e {
  inset-inline-end: -3px;
}

.atlas-v2-floating-resize-w {
  inset-inline-start: -3px;
}

.atlas-v2-floating-resize-ne,
.atlas-v2-floating-resize-nw,
.atlas-v2-floating-resize-se,
.atlas-v2-floating-resize-sw {
  inline-size: 12px;
  block-size: 12px;
}

.atlas-v2-floating-resize-ne {
  inset-block-start: -3px;
  inset-inline-end: -3px;
  cursor: nesw-resize;
}

.atlas-v2-floating-resize-nw {
  inset-block-start: -3px;
  inset-inline-start: -3px;
  cursor: nwse-resize;
}

.atlas-v2-floating-resize-se {
  inset-block-end: -3px;
  inset-inline-end: -3px;
  cursor: nwse-resize;
}

.atlas-v2-floating-resize-sw {
  inset-block-end: -3px;
  inset-inline-start: -3px;
  cursor: nesw-resize;
}

.atlas-v2-toolbar-entry-floating {
  text-decoration: underline dotted;
  text-underline-offset: 0.2em;
}
