.diagram-canvas {
    width: 100%;
    height: 100%;
    position: inherit;
    outline: 0;
    overflow: hidden;
    cursor: -webkit-grab;
    cursor: grab;
    touch-action: none;
}

.diagram-svg-layer, .diagram-html-layer {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    pointer-events: none;
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.html-layer, .svg-layer {
    position: absolute;
    pointer-events: none;
    -webkit-transform-origin: 0 0;
    -ms-transform-origin: 0 0;
    transform-origin: 0 0;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.diagram-node {
    position: absolute;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: default;
    pointer-events: all;
    z-index: 1;
    transition: z-index 0.01s;
}

.diagram-node.selected {
    z-index: 100 !important;
}

.diagram-node.locked {
    cursor: pointer;
}

.diagram-link {
    pointer-events: visiblePainted;
    cursor: pointer;
}

.diagram-navigator {
    z-index: 10;
}

.diagram-navigator .current-view {
    position: absolute;
    border: 2px solid #000;
}

.diagram-group {
    position: absolute;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    cursor: move;
    pointer-events: all;
}

.diagram-group .children {
    position: absolute;
    overflow: visible;
    pointer-events: none;
}

.diagram-link foreignObject.diagram-link-label {
    overflow: visible;
    pointer-events: none;
    width: 1px;
    height: 1px;
}

div.diagram-control {
    position: absolute;
}

.executable.diagram-control {
    pointer-events: all;
    cursor: pointer;
}

/* 节点拖拽优化 - 仅标题区域可拖拽 */
.diagram-node .node-drag-handle {
    cursor: move !important;
    pointer-events: auto !important;
}

/* 标题区域允许拖拽 */
.diagram-node .ant-card-head {
    cursor: move !important;
    pointer-events: auto !important;
}

/* 标题区域内的标题文字也允许拖拽 */
.diagram-node .ant-card-head .ant-card-head-wrapper {
    pointer-events: auto !important;
}

.diagram-node .ant-card-head .ant-card-head-title {
    pointer-events: none !important; /* 标题文字本身不拦截事件，让父元素处理 */
}

/* 标题区域的Extra部分（按钮）阻止拖拽 */
.diagram-node .ant-card-head .ant-card-extra {
    pointer-events: auto !important;
}

.diagram-node .ant-card-head .ant-card-extra * {
    pointer-events: auto !important;
}

/* ===== 关键：内容区域完全阻止拖拽事件 ===== */
.diagram-node .ant-card-body {
    pointer-events: auto !important;
    cursor: default !important;
    -webkit-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    user-select: text;
}

/* 内容区域所有子元素恢复正常交互 */
.diagram-node .ant-card-body * {
    pointer-events: auto !important;
    cursor: default !important;
}

/* 输入框和文本框恢复正常选择 */
.diagram-node input,
.diagram-node textarea,
.diagram-node .ant-input,
.diagram-node .ant-input-textarea,
.diagram-node .ant-input-number-input {
    cursor: text !important;
    -webkit-user-select: text !important;
    -moz-user-select: text !important;
    -ms-user-select: text !important;
    user-select: text !important;
    pointer-events: auto !important;
}

/* 下拉框、滑块等交互组件 */
.diagram-node .ant-select,
.diagram-node .ant-select-selector,
.diagram-node .ant-input-number,
.diagram-node .ant-checkbox-wrapper,
.diagram-node .ant-radio-wrapper,
.diagram-node .ant-radio-group {
    pointer-events: auto !important;
}

/* InputNumber特殊处理 - 确保按钮可点击 */
.diagram-node .ant-input-number * {
    pointer-events: auto !important;
}

.diagram-node .ant-input-number-handler-wrap,
.diagram-node .ant-input-number-handler,
.diagram-node .ant-input-number-handler-up,
.diagram-node .ant-input-number-handler-down,
.diagram-node .ant-input-number-handler-up-inner,
.diagram-node .ant-input-number-handler-down-inner {
    pointer-events: auto !important;
    cursor: pointer !important;
}

.diagram-node .ant-input-number-input {
    pointer-events: auto !important;
    cursor: text !important;
}

/* Slider特殊处理 - 确保所有子元素都可交互 */
.diagram-node .ant-slider {
    pointer-events: auto !important;
    cursor: pointer !important;
    touch-action: none !important; /* 允许触摸拖拽 */
}

.diagram-node .ant-slider * {
    pointer-events: auto !important;
}

.diagram-node .ant-slider-rail,
.diagram-node .ant-slider-track,
.diagram-node .ant-slider-step,
.diagram-node .ant-slider-handle,
.diagram-node .ant-slider-mark {
    pointer-events: auto !important;
    cursor: pointer !important;
    touch-action: none !important; /* 允许触摸拖拽 */
}

.diagram-node .ant-slider-handle {
    cursor: grab !important;
    touch-action: none !important; /* 关键：允许滑块拖拽 */
}

.diagram-node .ant-slider-handle:active,
.diagram-node .ant-slider-handle:hover {
    cursor: grabbing !important;
}

/* 按钮保持原有指针样式 */
.diagram-node button,
.diagram-node .ant-btn {
    cursor: pointer !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    user-select: none !important;
    pointer-events: auto !important;
}
