@-webkit-keyframes t-spin {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes t-spin {
  from {
    -webkit-transform: rotate(0deg);
            transform: rotate(0deg);
  }
  to {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
.t-icon {
  display: inline-block;
  vertical-align: middle;
  width: 1em;
  height: 1em;
}
.t-icon::before {
  font-family: unset;
}
.t-icon-loading {
  -webkit-animation: t-spin 1s linear infinite;
          animation: t-spin 1s linear infinite;
}
.t-icon {
  fill: currentColor;
}
.t-icon.t-size-s,
i.t-size-s {
  font-size: 14px;
}
.t-icon.t-size-m,
i.t-size-m {
  font-size: 16px;
}
.t-icon.t-size-l,
i.t-size-l {
  font-size: 18px;
}

.bottom-tab-bar[data-v-25000a4a]{z-index:999;position:fixed;bottom:0;left:0;right:0}

#app {
  padding-bottom: calc(50px + env(safe-area-inset-bottom)); /* 为底部导航栏留出空间，适配移动端安全区域 */
  height: 100vh;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch; /* iOS弹性滚动 */
}

/* 当底部导航栏不显示时，移除底部padding */
#app:not(.show-tab-bar) {
  padding-bottom: 0;
}

/* 全局样式 */
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
}


.home-page[data-v-3a38bba0] {
  min-height: 100vh;
  background: -webkit-linear-gradient(315deg, #667eea 0%, #764ba2 100%);
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
}
.header[data-v-3a38bba0] {
  text-align: center;
  margin-bottom: 40px;
  color: white;
}
.title[data-v-3a38bba0] {
  font-size: 2.5rem;
  font-weight: bold;
  margin-bottom: 10px;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}
.subtitle[data-v-3a38bba0] {
  font-size: 1.2rem;
  opacity: 0.9;
  margin: 0;
}
.feature-list[data-v-3a38bba0] {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
          flex: 1;
  max-width: 800px;
  margin: 0 auto;
  width: 100%;
  overflow-y: auto;
  overflow-x: hidden;
}
.feature-item[data-v-3a38bba0] {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 20px;
  cursor: pointer;
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 20px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}
.feature-item[data-v-3a38bba0]:hover {
  -webkit-transform: translateY(-4px);
          transform: translateY(-4px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
  background: rgba(255, 255, 255, 1);
}
.feature-item[data-v-3a38bba0]:active {
  -webkit-transform: translateY(-2px);
          transform: translateY(-2px);
}
.feature-icon[data-v-3a38bba0] {
  font-size: 2rem;
  width: 60px;
  height: 60px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  background: -webkit-linear-gradient(315deg, #667eea 0%, #764ba2 100%);
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 50%;
  color: white;
  -webkit-flex-shrink: 0;
          flex-shrink: 0;
}
.feature-content[data-v-3a38bba0] {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
          flex: 1;
  min-width: 0;
}
.feature-title[data-v-3a38bba0] {
  margin: 0 0 8px 0;
  font-size: 1.3rem;
  font-weight: 600;
  color: #333;
}
.feature-description[data-v-3a38bba0] {
  margin: 0;
  font-size: 0.95rem;
  color: #666;
  line-height: 1.4;
}
.feature-arrow[data-v-3a38bba0] {
  font-size: 1.5rem;
  color: #999;
  margin-left: 10px;
}
.footer[data-v-3a38bba0] {
  text-align: center;
  padding: 20px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.9rem;
}

/* 响应式设计 */
@media (max-width: 768px) {
.home-page[data-v-3a38bba0] {
    padding: 15px;
}
.title[data-v-3a38bba0] {
    font-size: 2rem;
}
.feature-item[data-v-3a38bba0] {
    padding: 20px;
}
.feature-icon[data-v-3a38bba0] {
    width: 50px;
    height: 50px;
    font-size: 1.5rem;
}
.feature-title[data-v-3a38bba0] {
    font-size: 1.1rem;
}
.feature-description[data-v-3a38bba0] {
    font-size: 0.9rem;
}
}


.org-chart-page[data-v-43823796] {
  padding: 20px;
  height: 100vh;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
}
.org-chart-page h1[data-v-43823796] {
  margin-bottom: 15px;
  color: #333;
  text-align: center;
}
.chart-hint[data-v-43823796] {
  text-align: center;
  color: #666;
  font-size: 14px;
  margin-bottom: 20px;
  padding: 8px;
  background: rgba(95, 149, 255, 0.1);
  border-radius: 20px;
  border: 1px solid rgba(95, 149, 255, 0.2);
}
.chart-container[data-v-43823796] {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
          flex: 1;
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

/* 确保 SVG 元素支持动画 */
.chart-container svg[data-v-43823796] {
  overflow: visible;
}

/* 移动端缩放控制按钮 */
.zoom-controls[data-v-43823796] {
  position: fixed;
  right: 20px;
  bottom: 100px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  gap: 10px;
  z-index: 1000;
}
.zoom-btn[data-v-43823796] {
  width: 50px;
  height: 50px;
  border: none;
  border-radius: 50%;
  background: rgba(95, 149, 255, 0.9);
  color: white;
  font-size: 24px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  -webkit-transition: all 0.3s ease;
  transition: all 0.3s ease;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.zoom-btn[data-v-43823796]:hover {
  background: rgba(95, 149, 255, 1);
  -webkit-transform: scale(1.1);
          transform: scale(1.1);
}
.zoom-btn[data-v-43823796]:active {
  -webkit-transform: scale(0.95);
          transform: scale(0.95);
}
.zoom-btn span[data-v-43823796] {
  line-height: 1;
}

/* 移动端适配 */
@media (max-width: 768px) {
.zoom-controls[data-v-43823796] {
    right: 15px;
    bottom: 80px;
}
.zoom-btn[data-v-43823796] {
    width: 45px;
    height: 45px;
    font-size: 20px;
}
.org-chart-page h1[data-v-43823796] {
    font-size: 20px;
    margin-bottom: 15px;
}
.chart-container[data-v-43823796] {
    border-radius: 6px;
}
}

/* 触摸手势优化 */
.chart-container[data-v-43823796] {
  touch-action: pan-x pan-y pinch-zoom;
  -webkit-overflow-scrolling: touch;
}

.custom-navbar[data-v-264a5f1c]{background-color:var(--td-navbar-bg-color);color:var(--td-navbar-color);padding-top:env(safe-area-inset-top)}.custom-navbar[data-v-264a5f1c] .t-navbar{background-color:var(--td-navbar-bg-color) !important;color:var(--td-navbar-color) !important;height:var(--td-navbar-height) !important}.custom-navbar[data-v-264a5f1c]{box-shadow:0 2px 8px rgba(0,0,0,.1);z-index:999}.back-button[data-v-264a5f1c]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding:4px 8px;border:1px solid #ddd;border-radius:4px;background-color:#f5f5f5;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.back-button .back-text[data-v-264a5f1c]{font-size:14px;color:#333}.back-button[data-v-264a5f1c]:active{background-color:#e0e0e0}

.half-modal[data-v-59282b6f] {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  z-index: 9999; /* 提高 z-index 确保在最上层 */
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: end;
  -webkit-align-items: flex-end;
          align-items: flex-end;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  /* 移动端优化 */
  touch-action: none;
  -webkit-tap-highlight-color: transparent;
  /* 防止闪屏 */
  will-change: opacity;
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
}

/* 动画效果 */
@-webkit-keyframes slideUp-59282b6f {
from {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
    opacity: 0;
}
to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1;
}
}
@keyframes slideUp-59282b6f {
from {
    -webkit-transform: translateY(100%);
            transform: translateY(100%);
    opacity: 0;
}
to {
    -webkit-transform: translateY(0);
            transform: translateY(0);
    opacity: 1;
}
}

/* 弹窗内容动画优化 */
.modal-content[data-v-59282b6f] {
  width: 100%;
  max-height: 70vh;
  background: #ffffff;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
  -webkit-animation: slideUp-59282b6f 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
          animation: slideUp-59282b6f 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
  box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.08);
  position: relative;
  /* 移动端优化 */
  transform: translateZ(0);
  -webkit-transform: translateZ(0);
  will-change: transform;
  /* 触摸优化 */
  touch-action: pan-y;
  /* 防止闪屏 */
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}

/* 拖拽指示条 */
.drag-indicator[data-v-59282b6f] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  padding: 10px 0 8px 0;
  /* 触摸优化 */
  cursor: -webkit-grab;
  cursor: grab;
  -moz-user-select: none;
       user-select: none;
  -webkit-user-select: none;
  /* 增加触摸区域 */
  min-height: 40px;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  /* 触摸反馈 */
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}
.drag-indicator[data-v-59282b6f]:active {
  cursor: -webkit-grabbing;
  cursor: grabbing;
  background-color: rgba(0, 0, 0, 0.05);
}
.indicator-bar[data-v-59282b6f] {
  width: 36px;
  height: 4px;
  background: #e5e5e5;
  border-radius: 2px;
  /* 移动端优化 */
  -webkit-transition: background-color 0.2s ease;
  transition: background-color 0.2s ease;
}
.drag-indicator:hover .indicator-bar[data-v-59282b6f] {
  background: #d0d0d0;
}
.drag-indicator:active .indicator-bar[data-v-59282b6f] {
  background: #b0b0b0;
}

/* 标题区域 */
.modal-header[data-v-59282b6f] {
  padding: 0 20px 14px 20px;
  text-align: center;
  border-bottom: 1px solid #f0f0f0;
  min-height: 42px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
}
.modal-title[data-v-59282b6f] {
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  color: #1a1a1a;
  line-height: 1.35;
}

/* 内容区域 */
.modal-body[data-v-59282b6f] {
  padding: 18px 20px;
  max-height: calc(70vh - 80px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* 滚动条样式 */
.modal-body[data-v-59282b6f]::-webkit-scrollbar {
  width: 4px;
}
.modal-body[data-v-59282b6f]::-webkit-scrollbar-track {
  background: transparent;
}
.modal-body[data-v-59282b6f]::-webkit-scrollbar-thumb {
  background: #d1d1d1;
  border-radius: 2px;
}
.modal-body[data-v-59282b6f]::-webkit-scrollbar-thumb:hover {
  background: #b8b8b8;
}

/* 响应式设计 */
@media (max-width: 768px) {
.modal-content[data-v-59282b6f] {
    max-height: 70vh;
    border-radius: 16px 16px 0 0;
}
.modal-header[data-v-59282b6f] {
    padding: 0 16px 12px 16px;
    min-height: 48px;
}
.modal-body[data-v-59282b6f] {
    padding: 16px;
    max-height: calc(70vh - 80px);
}
.drag-indicator[data-v-59282b6f] {
    padding: 16px 0 12px 0;
    min-height: 48px;
}
.indicator-bar[data-v-59282b6f] {
    width: 40px;
    height: 5px;
}
}
@media (max-width: 375px) {
.modal-content[data-v-59282b6f] {
    border-radius: 12px 12px 0 0;
    max-height: 70vh;
}
.modal-header[data-v-59282b6f] {
    padding: 0 12px 10px 12px;
    min-height: 44px;
}
.modal-body[data-v-59282b6f] {
    padding: 12px;
    max-height: calc(70vh - 70px);
}
.modal-title[data-v-59282b6f] {
    font-size: 16px;
}
.drag-indicator[data-v-59282b6f] {
    padding: 14px 0 10px 0;
    min-height: 44px;
}
}

/* 横屏模式优化 */
@media (orientation: landscape) and (max-height: 500px) {
.modal-content[data-v-59282b6f] {
    max-height: 70vh;
}
.modal-body[data-v-59282b6f] {
    max-height: calc(70vh - 60px);
}
.modal-header[data-v-59282b6f] {
    padding: 0 16px 8px 16px;
    min-height: 36px;
}
.drag-indicator[data-v-59282b6f] {
    padding: 8px 0 6px 0;
    min-height: 36px;
}
}

/* 高分辨率屏幕优化 */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.modal-content[data-v-59282b6f] {
    border-radius: 24px 24px 0 0;
}
.indicator-bar[data-v-59282b6f] {
    width: 40px;
    height: 5px;
}
}

/* 安全区域适配（iPhone X 等） */
@supports (padding: max(0px)) {
.modal-content[data-v-59282b6f] {
    padding-bottom: max(20px, env(safe-area-inset-bottom));
}
.modal-body[data-v-59282b6f] {
    padding-bottom: max(20px, env(safe-area-inset-bottom));
}
}

/* 触摸反馈优化 */
@media (hover: none) and (pointer: coarse) {
.drag-indicator[data-v-59282b6f] {
    -webkit-transition: background-color 0.1s ease;
    transition: background-color 0.1s ease;
}
.drag-indicator[data-v-59282b6f]:active {
    background-color: rgba(0, 0, 0, 0.1);
}
.indicator-bar[data-v-59282b6f] {
    -webkit-transition: background-color 0.1s ease;
    transition: background-color 0.1s ease;
}
.indicator-bar[data-v-59282b6f]:active {
    background-color: #a0a0a0;
}
}

/* 减少动画（用户偏好） */
@media (prefers-reduced-motion: reduce) {
.modal-content[data-v-59282b6f] {
    -webkit-animation: none;
            animation: none;
}
.drag-indicator[data-v-59282b6f] {
    -webkit-transition: none;
    transition: none;
}
.indicator-bar[data-v-59282b6f] {
    -webkit-transition: none;
    transition: none;
}
}

/* 防止触摸事件冲突 */
.half-modal[data-v-59282b6f] * {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

/* 触摸滚动优化 */
.modal-body[data-v-59282b6f] {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
}

/* 触摸高亮去除 */
.half-modal[data-v-59282b6f] * {
  -webkit-tap-highlight-color: transparent;
  tap-highlight-color: transparent;
}

/* 深色模式支持 */
@media (prefers-color-scheme: dark) {
.modal-content[data-v-59282b6f] {
    background: #1c1c1e;
    box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.2);
}
.modal-title[data-v-59282b6f] {
    color: #ffffff;
}
.indicator-bar[data-v-59282b6f] {
    background: #48484a;
}
.modal-header[data-v-59282b6f] {
    border-bottom-color: #2c2c2e;
}
}


.process-editor[data-v-6a1be11e] {
  height: 100vh;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  background: #f5f5f5;
}

/* 顶部菜单栏 */
.top-menu[data-v-6a1be11e] {
  height: 60px;
  background: #fff;
  border-bottom: 1px solid #e8e8e8;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  padding: 0 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 1000;
}
.menu-left[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 20px;
}
.logo[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 8px;
}
.logo-icon[data-v-6a1be11e] {
  font-size: 24px;
}
.logo-text[data-v-6a1be11e] {
  font-size: 18px;
  font-weight: bold;
  color: #1890ff;
}
.file-info[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 8px;
}
.file-name-input[data-v-6a1be11e] {
  border: none;
  outline: none;
  font-size: 16px;
  color: #333;
  background: transparent;
  min-width: 200px;
}
.file-name-input[data-v-6a1be11e]:focus {
  background: #f0f8ff;
  border-radius: 4px;
  padding: 4px 8px;
}
.file-status[data-v-6a1be11e] {
  color: #f5222d;
  font-size: 16px;
}
.menu-center[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
}
.view-controls[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 8px;
  background: #f5f5f5;
  border-radius: 6px;
  padding: 4px;
}
.zoom-level[data-v-6a1be11e] {
  font-size: 12px;
  color: #666;
  min-width: 40px;
  text-align: center;
}
.menu-right[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 12px;
}

/* 左侧工具栏 */
.left-toolbar[data-v-6a1be11e] {
  position: fixed;
  left: 20px;
  top: 80px;
  width: 60px;
  max-height: calc(100vh - 120px);
  background: #fff;
  border-radius: 12px;
  padding: 16px 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  z-index: 100;
  overflow-y: auto;
  overflow-x: hidden;
}
.left-toolbar[data-v-6a1be11e]::-webkit-scrollbar {
  width: 4px;
}
.left-toolbar[data-v-6a1be11e]::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 2px;
}
.left-toolbar[data-v-6a1be11e]::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 2px;
}
.left-toolbar[data-v-6a1be11e]::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}
.toolbar-section[data-v-6a1be11e] {
  margin-bottom: 24px;
  text-align: center;
}
.section-title[data-v-6a1be11e] {
  font-size: 10px;
  color: #999;
  text-align: center;
  margin-bottom: 8px;
  font-weight: 500;
}
.tool-btn[data-v-6a1be11e] {
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 8px;
  background: #f5f5f5;
  cursor: pointer;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  margin-bottom: 8px;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.tool-btn[data-v-6a1be11e]:hover {
  background: #e6f7ff;
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}
.tool-btn.active[data-v-6a1be11e] {
  background: #1890ff;
  color: #fff;
}
.tool-icon[data-v-6a1be11e] {
  font-size: 18px;
}
.node-tools[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  gap: 4px;
}
.node-tool[data-v-6a1be11e] {
  width: 44px;
  height: 44px;
}

/* 主画布区域 */
.main-canvas[data-v-6a1be11e] {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
          flex: 1;
  margin: 80px 80px 60px 100px;
  position: relative;
}
.canvas-container[data-v-6a1be11e] {
  height: 100%;
  position: relative;
}
#process-canvas[data-v-6a1be11e] {
  width: 100%;
  height: 100%;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.canvas-status[data-v-6a1be11e] {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 32px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  padding: 0 16px;
  font-size: 12px;
  border-radius: 0 0 12px 12px;
}
.status-left[data-v-6a1be11e], .status-right[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  gap: 16px;
}
.status-item[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 4px;
}

/* 右侧属性面板 */
.right-panel[data-v-6a1be11e] {
  position: fixed;
  right: 20px;
  top: 80px;
  width: 320px;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  z-index: 100;
  max-height: calc(100vh - 120px);
  overflow-y: auto;
}
.panel-header[data-v-6a1be11e] {
  padding: 20px;
  border-bottom: 1px solid #f0f0f0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
}
.panel-header h3[data-v-6a1be11e] {
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 600;
}
.panel-content[data-v-6a1be11e] {
  padding: 20px;
}
.property-group[data-v-6a1be11e] {
  margin-bottom: 24px;
}
.group-title[data-v-6a1be11e] {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  margin-bottom: 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #f0f0f0;
}
.property-item[data-v-6a1be11e] {
  margin-bottom: 16px;
}
.property-item label[data-v-6a1be11e] {
  display: block;
  margin-bottom: 6px;
  color: #666;
  font-size: 12px;
  font-weight: 500;
}
.property-item input[data-v-6a1be11e],
.property-item textarea[data-v-6a1be11e],
.property-item select[data-v-6a1be11e] {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 12px;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.property-item input[data-v-6a1be11e]:focus,
.property-item textarea[data-v-6a1be11e]:focus,
.property-item select[data-v-6a1be11e]:focus {
  border-color: #1890ff;
  outline: none;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
}
.property-item textarea[data-v-6a1be11e] {
  resize: vertical;
  min-height: 60px;
}
.color-input[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 8px;
}
.color-input input[type="color"][data-v-6a1be11e] {
  width: 40px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}
.color-value[data-v-6a1be11e] {
  font-size: 11px;
  color: #999;
  font-family: monospace;
}
.range-value[data-v-6a1be11e] {
  font-size: 11px;
  color: #999;
  margin-left: 8px;
}
.readonly-value[data-v-6a1be11e] {
  color: #333;
  font-size: 12px;
  padding: 8px 12px;
  background: #f5f5f5;
  border-radius: 6px;
  display: block;
}
.toggle-switch[data-v-6a1be11e] {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
}
.toggle-switch input[data-v-6a1be11e] {
  opacity: 0;
  width: 0;
  height: 0;
}
.toggle-label[data-v-6a1be11e] {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  -webkit-transition: .4s;
  transition: .4s;
  border-radius: 24px;
}
.toggle-label[data-v-6a1be11e]:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  -webkit-transition: .4s;
  transition: .4s;
  border-radius: 50%;
}
input:checked + .toggle-label[data-v-6a1be11e] {
  background-color: #1890ff;
}
input:checked + .toggle-label[data-v-6a1be11e]:before {
  -webkit-transform: translateX(20px);
          transform: translateX(20px);
}
.shortcut-list[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  gap: 8px;
}
.shortcut-item[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  padding: 8px 12px;
  background: #f5f5f5;
  border-radius: 6px;
}
.key[data-v-6a1be11e] {
  background: #e6f7ff;
  color: #1890ff;
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 600;
  font-family: monospace;
}
.desc[data-v-6a1be11e] {
  color: #666;
  font-size: 11px;
}

/* 底部状态栏 */
.bottom-status[data-v-6a1be11e] {
  height: 40px;
  background: #fff;
  border-top: 1px solid #e8e8e8;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  padding: 0 20px;
  font-size: 12px;
  color: #666;
}
.status-left[data-v-6a1be11e], .status-right[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  gap: 16px;
}
.status-item[data-v-6a1be11e] {
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 4px;
}
.status-icon[data-v-6a1be11e] {
  font-size: 14px;
}

/* 按钮样式 */
.btn[data-v-6a1be11e] {
  padding: 8px 16px;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 6px;
}
.btn-primary[data-v-6a1be11e] {
  background: #1890ff;
  color: #fff;
}
.btn-primary[data-v-6a1be11e]:hover {
  background: #096dd9;
}
.btn-secondary[data-v-6a1be11e] {
  background: #f5f5f5;
  color: #333;
  border: 1px solid #d9d9d9;
}
.btn-secondary[data-v-6a1be11e]:hover {
  background: #e6f7ff;
  border-color: #1890ff;
}
.btn-icon[data-v-6a1be11e] {
  padding: 8px;
  min-width: 36px;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
}
.btn-icon[data-v-6a1be11e]:hover {
  background: #f5f5f5;
}

/* 图形选项面板样式 */
.shape-options-panel[data-v-6a1be11e] {
  position: fixed;
  top: 120px; /* 调整位置，显示在工具栏下方 */
  left: 90px; /* 显示在工具栏右侧 */
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  width: 280px;
  max-height: 300px;
  overflow-y: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
}
.options-header[data-v-6a1be11e] {
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
}
.options-header h4[data-v-6a1be11e] {
  margin: 0;
  font-size: 14px;
  color: #333;
}
.options-content[data-v-6a1be11e] {
  padding: 12px 16px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 12px;
}
.shape-category[data-v-6a1be11e] {
  width: 100%;
}
.shape-category h5[data-v-6a1be11e] {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 500;
}
.shape-grid[data-v-6a1be11e] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 12px;
}
.shape-option-btn[data-v-6a1be11e] {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  background: #f5f5f5;
  cursor: pointer;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 4px;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.shape-option-btn[data-v-6a1be11e]:hover {
  background: #e6f7ff;
  border-color: #1890ff;
}
.shape-option-btn .shape-icon[data-v-6a1be11e] {
  font-size: 24px;
}
.shape-option-btn .shape-name[data-v-6a1be11e] {
  font-size: 10px;
  color: #333;
  text-align: center;
}

/* 连接线选项面板样式 */
.connector-options-panel[data-v-6a1be11e] {
  position: fixed;
  top: 120px; /* 调整位置，显示在工具栏下方 */
  left: 90px; /* 与图形选项窗左边对齐 */
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  width: 280px;
  max-height: 300px;
  overflow-y: auto;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
}
.connector-options-panel .options-header[data-v-6a1be11e] {
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-pack: justify;
  -webkit-justify-content: space-between;
          justify-content: space-between;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
}
.connector-options-panel .options-header h4[data-v-6a1be11e] {
  margin: 0;
  font-size: 14px;
  color: #333;
}
.connector-options-panel .options-content[data-v-6a1be11e] {
  padding: 12px 16px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
  gap: 12px;
}
.connector-category[data-v-6a1be11e] {
  width: 100%;
}
.connector-category h5[data-v-6a1be11e] {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 500;
}
.connector-grid[data-v-6a1be11e] {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 12px;
}
.connector-option-btn[data-v-6a1be11e] {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  background: #f5f5f5;
  cursor: pointer;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  gap: 4px;
  -webkit-transition: all 0.2s;
  transition: all 0.2s;
}
.connector-option-btn[data-v-6a1be11e]:hover {
  background: #e6f7ff;
  border-color: #1890ff;
}
.connector-option-btn .connector-icon[data-v-6a1be11e] {
  font-size: 24px;
}
.connector-option-btn .connector-name[data-v-6a1be11e] {
  font-size: 10px;
  color: #333;
  text-align: center;
}

/* 响应式设计 */
@media (max-width: 1200px) {
.right-panel[data-v-6a1be11e] {
    width: 280px;
}
.main-canvas[data-v-6a1be11e] {
    margin-right: 300px;
}
}
@media (max-width: 768px) {
.left-toolbar[data-v-6a1be11e] {
    display: none;
}
.right-panel[data-v-6a1be11e] {
    display: none;
}
.main-canvas[data-v-6a1be11e] {
    margin: 80px 20px 60px 20px;
}
.top-menu[data-v-6a1be11e] {
    padding: 0 15px;
}
.file-name-input[data-v-6a1be11e] {
    min-width: 150px;
}
}


.g6-data-page[data-v-14e0dfea] {
  position: relative;
  width: 100%;
  height: 100vh;
}
.graph-container[data-v-14e0dfea] {
  width: 100%;
  height: 100%;
}
.zoom-controls[data-v-14e0dfea] {
  position: absolute;
  top: 20px;
  right: 20px;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -webkit-flex-direction: column;
          flex-direction: column;
  gap: 8px;
  z-index: 1000;
}
.zoom-btn[data-v-14e0dfea] {
  width: 40px;
  height: 40px;
  border: none;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.9);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  display: -webkit-box;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align: center;
  -webkit-align-items: center;
          align-items: center;
  -webkit-box-pack: center;
  -webkit-justify-content: center;
          justify-content: center;
  font-size: 18px;
  font-weight: bold;
  color: #333;
  -webkit-transition: all 0.2s ease;
  transition: all 0.2s ease;
}
.zoom-btn[data-v-14e0dfea]:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  -webkit-transform: translateY(-1px);
          transform: translateY(-1px);
}
.zoom-btn[data-v-14e0dfea]:active {
  -webkit-transform: translateY(0);
          transform: translateY(0);
}

.login-modal[data-v-32fb674c]{background:-webkit-linear-gradient(315deg, #f5f7fa 0%, #c3cfe2 100%);background:linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);border-radius:20px 20px 0 0;overflow:hidden}.login-modal .modal-header[data-v-32fb674c]{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:20px;background:#667eea;border-bottom:1px solid #eee}.login-modal .modal-header h2[data-v-32fb674c]{margin:0;font-size:1.3rem;font-weight:bold;color:#fff}.login-modal .modal-body[data-v-32fb674c]{padding:20px}.login-modal .modal-body .auth-login-section[data-v-32fb674c]{text-align:center}.login-modal .modal-body .auth-login-section .auth-description[data-v-32fb674c]{margin-bottom:20px;color:#666}.login-modal .modal-body .auth-login-section .auth-login-btn[data-v-32fb674c]{width:100%;height:48px}.login-modal .modal-body .form-item[data-v-32fb674c]{margin-bottom:20px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.login-modal .modal-body .form-item .form-label[data-v-32fb674c]{width:80px;font-size:16px;color:rgba(0,0,0,.9)}.login-modal .modal-body .form-item .form-value[data-v-32fb674c]{-webkit-box-flex:1;-webkit-flex:1;flex:1}.login-modal .modal-body .form-item .form-value[data-v-32fb674c] .t-input{width:100%;height:48px;border-radius:8px;font-size:16px;color:rgba(0,0,0,.9)}.login-modal .modal-body .form-item .code-input-container[data-v-32fb674c]{display:-webkit-box;display:-webkit-flex;display:flex;gap:10px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.login-modal .modal-body .form-item .code-input-container .code-input[data-v-32fb674c]{-webkit-box-flex:1;-webkit-flex:1;flex:1}.login-modal .modal-body .form-item .code-input-container .send-code-btn[data-v-32fb674c]{-webkit-flex-shrink:0;flex-shrink:0;height:48px}.login-modal .modal-body .login-btn[data-v-32fb674c]{height:48px;margin-top:10px}.login-modal .modal-body .switch-login-method[data-v-32fb674c]{text-align:center;margin-top:20px;padding:15px;background:#fff}.login-modal .modal-body .switch-login-method .switch-text[data-v-32fb674c]{color:#667eea;cursor:pointer;font-size:14px;font-weight:500}.login-modal .modal-body .switch-login-method .switch-text[data-v-32fb674c]:hover{text-decoration:underline}
