@nywqs/scada-engine 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +455 -0
  2. package/dist/components/AttributeConfigDialog.d.ts +39 -0
  3. package/dist/components/BasicPropertiesTab.d.ts +51 -0
  4. package/dist/components/BindingCard.d.ts +36 -0
  5. package/dist/components/CanvasArea.d.ts +4 -0
  6. package/dist/components/CanvasConfigPanel.d.ts +2 -0
  7. package/dist/components/ComponentLibrary.d.ts +6 -0
  8. package/dist/components/CustomCodeDialog.d.ts +30 -0
  9. package/dist/components/DataPropertiesTab.d.ts +42 -0
  10. package/dist/components/DevicePointSelector.d.ts +27 -0
  11. package/dist/components/EdgePropertiesTab.d.ts +22 -0
  12. package/dist/components/EventCard.d.ts +63 -0
  13. package/dist/components/Footer.d.ts +37 -0
  14. package/dist/components/Header.d.ts +71 -0
  15. package/dist/components/MappingConfigurator.d.ts +27 -0
  16. package/dist/components/PropertyPanel.d.ts +27 -0
  17. package/dist/components/WorkflowSelectorDialog.d.ts +15 -0
  18. package/dist/index.d.ts +157 -0
  19. package/dist/main.d.ts +1 -0
  20. package/dist/mock/deviceData.d.ts +39 -0
  21. package/dist/scada-components/basic/circle.d.ts +6 -0
  22. package/dist/scada-components/basic/index.d.ts +6 -0
  23. package/dist/scada-components/basic/rect.d.ts +6 -0
  24. package/dist/scada-components/basic/text.d.ts +6 -0
  25. package/dist/scada-components/canvas/config.d.ts +17 -0
  26. package/dist/scada-components/canvas/index.d.ts +6 -0
  27. package/dist/scada-components/canvas/manager.d.ts +95 -0
  28. package/dist/scada-components/canvas/types.d.ts +77 -0
  29. package/dist/scada-components/index.d.ts +8 -0
  30. package/dist/scada-components/iot/gauge.d.ts +6 -0
  31. package/dist/scada-components/iot/index.d.ts +6 -0
  32. package/dist/scada-components/iot/light.d.ts +6 -0
  33. package/dist/scada-components/iot/switch.d.ts +6 -0
  34. package/dist/scada-components/registry.d.ts +56 -0
  35. package/dist/scada-components/types.d.ts +82 -0
  36. package/dist/scada-engine.css +1 -0
  37. package/dist/scada-engine.es.js +12390 -0
  38. package/dist/scada-engine.umd.js +53 -0
  39. package/dist/types/binding.d.ts +75 -0
  40. package/dist/types/device.d.ts +131 -0
  41. package/dist/types/workflow.d.ts +195 -0
  42. package/dist/utils/animationEngine.d.ts +68 -0
  43. package/dist/utils/authCrypto.d.ts +45 -0
  44. package/dist/utils/commonUtils.d.ts +83 -0
  45. package/dist/utils/eventUtils.d.ts +43 -0
  46. package/dist/utils/fileUtils.d.ts +43 -0
  47. package/dist/utils/index.d.ts +10 -0
  48. package/dist/utils/messageUtils.d.ts +56 -0
  49. package/dist/utils/nodePropertyUtils.d.ts +33 -0
  50. package/dist/utils/storageUtils.d.ts +55 -0
  51. package/dist/views/workflow/WorkflowDialog.d.ts +37 -0
  52. package/dist/views/workflow/WorkflowEditor.d.ts +38 -0
  53. package/dist/views/workflow/components/AddNodeMenu.d.ts +32 -0
  54. package/dist/views/workflow/components/ElementSelector.d.ts +45 -0
  55. package/dist/views/workflow/components/PropertyPanel.d.ts +27 -0
  56. package/dist/views/workflow/components/WorkflowToolbar.d.ts +24 -0
  57. package/dist/views/workflow/components/node-configs/ClearTimerConfig.d.ts +20 -0
  58. package/dist/views/workflow/components/node-configs/ConditionConfig.d.ts +20 -0
  59. package/dist/views/workflow/components/node-configs/CustomCodeConfig.d.ts +20 -0
  60. package/dist/views/workflow/components/node-configs/GetPropertyConfig.d.ts +20 -0
  61. package/dist/views/workflow/components/node-configs/HttpRequestConfig.d.ts +20 -0
  62. package/dist/views/workflow/components/node-configs/SetPropertyConfig.d.ts +20 -0
  63. package/dist/views/workflow/components/node-configs/TimerConfig.d.ts +20 -0
  64. package/dist/views/workflow/config/nodeConfigRegistry.d.ts +5 -0
  65. package/dist/views/workflow/services/canvasElementService.d.ts +31 -0
  66. package/dist/views/workflow/types/node.d.ts +70 -0
  67. package/package.json +77 -0
@@ -0,0 +1,77 @@
1
+ /**
2
+ * 画布配置类型定义
3
+ */
4
+ /**
5
+ * 画布尺寸预设
6
+ */
7
+ export type CanvasSizePreset = '1920*1080' | '1366*768' | '1280*720' | '800*600' | 'custom';
8
+ /**
9
+ * 背景尺寸模式
10
+ */
11
+ export type BackgroundSize = 'origin' | 'contain' | 'cover' | 'stretch';
12
+ /**
13
+ * 图像重复模式
14
+ */
15
+ export type BackgroundRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
16
+ /**
17
+ * 画布配置接口
18
+ */
19
+ export interface CanvasConfig {
20
+ size: {
21
+ width: number;
22
+ height: number;
23
+ preset?: CanvasSizePreset;
24
+ };
25
+ zoom: {
26
+ scale: number;
27
+ min?: number;
28
+ max?: number;
29
+ };
30
+ offset: {
31
+ x: number;
32
+ y: number;
33
+ };
34
+ background: {
35
+ color?: string;
36
+ image?: string;
37
+ size?: BackgroundSize;
38
+ repeat?: BackgroundRepeat;
39
+ };
40
+ grid: {
41
+ enabled: boolean;
42
+ size: number;
43
+ color?: string;
44
+ type?: 'dot' | 'mesh';
45
+ };
46
+ snap: {
47
+ enabled: boolean;
48
+ threshold?: number;
49
+ };
50
+ guides: {
51
+ enabled: boolean;
52
+ color?: string;
53
+ };
54
+ magnetism: {
55
+ enabled: boolean;
56
+ threshold?: number;
57
+ };
58
+ }
59
+ /**
60
+ * 画布配置项定义
61
+ */
62
+ export interface CanvasConfigItem {
63
+ key: string;
64
+ label: string;
65
+ type: 'select' | 'number' | 'color' | 'boolean' | 'slider' | 'image';
66
+ category: 'basic' | 'transform' | 'background' | 'assist';
67
+ path: string;
68
+ defaultValue: any;
69
+ options?: Array<{
70
+ label: string;
71
+ value: any;
72
+ }>;
73
+ min?: number;
74
+ max?: number;
75
+ step?: number;
76
+ description?: string;
77
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SCADA 组件系统统一导出
3
+ */
4
+ export { componentRegistry } from './registry';
5
+ export * from './canvas';
6
+ export type { ComponentConfig, ComponentRegistry, ComponentCategory, ComponentMetadata, ComponentProp, ComponentData, NodeAttrs, PropType } from './types';
7
+ export * as BasicComponents from './basic';
8
+ export * as IoTComponents from './iot';
@@ -0,0 +1,6 @@
1
+ import { ComponentConfig } from '../types';
2
+
3
+ /**
4
+ * 仪表组件配置
5
+ */
6
+ export declare const GaugeComponent: ComponentConfig;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * IoT组件导出
3
+ */
4
+ export { LightComponent } from './light';
5
+ export { SwitchComponent } from './switch';
6
+ export { GaugeComponent } from './gauge';
@@ -0,0 +1,6 @@
1
+ import { ComponentConfig } from '../types';
2
+
3
+ /**
4
+ * 灯泡组件配置
5
+ */
6
+ export declare const LightComponent: ComponentConfig;
@@ -0,0 +1,6 @@
1
+ import { ComponentConfig } from '../types';
2
+
3
+ /**
4
+ * 开关组件配置
5
+ */
6
+ export declare const SwitchComponent: ComponentConfig;
@@ -0,0 +1,56 @@
1
+ import { ComponentRegistry, ComponentConfig, ComponentCategory } from './types';
2
+
3
+ /**
4
+ * 组件注册表
5
+ */
6
+ declare class ComponentRegistryManager {
7
+ private registry;
8
+ constructor();
9
+ /**
10
+ * 注册默认组件
11
+ */
12
+ private registerDefaultComponents;
13
+ /**
14
+ * 注册组件
15
+ */
16
+ register(config: ComponentConfig): void;
17
+ /**
18
+ * 批量注册组件
19
+ */
20
+ registerBatch(configs: ComponentConfig[]): void;
21
+ /**
22
+ * 获取组件配置
23
+ */
24
+ getComponent(id: string): ComponentConfig | undefined;
25
+ /**
26
+ * 获取所有组件
27
+ */
28
+ getAllComponents(): ComponentRegistry;
29
+ /**
30
+ * 按分类获取组件
31
+ */
32
+ getComponentsByCategory(category: ComponentCategory): ComponentConfig[];
33
+ /**
34
+ * 获取组件列表
35
+ */
36
+ getComponentList(): ComponentConfig[];
37
+ /**
38
+ * 检查组件是否存在
39
+ */
40
+ hasComponent(id: string): boolean;
41
+ /**
42
+ * 注销组件
43
+ */
44
+ unregister(id: string): boolean;
45
+ /**
46
+ * 获取组件数量
47
+ */
48
+ getCount(): number;
49
+ /**
50
+ * 清空注册表
51
+ */
52
+ clear(): void;
53
+ }
54
+ export declare const componentRegistry: ComponentRegistryManager;
55
+ export type { ComponentConfig, ComponentRegistry, ComponentCategory };
56
+ export * from './types';
@@ -0,0 +1,82 @@
1
+ /**
2
+ * SCADA 组件系统类型定义
3
+ */
4
+ /**
5
+ * 属性配置类型
6
+ */
7
+ export type PropType = 'text' | 'number' | 'color' | 'boolean' | 'select' | 'slider';
8
+ /**
9
+ * 属性配置项
10
+ */
11
+ export interface ComponentProp {
12
+ key: string;
13
+ label: string;
14
+ type: PropType;
15
+ path: string;
16
+ defaultValue?: any;
17
+ min?: number;
18
+ max?: number;
19
+ step?: number;
20
+ options?: Array<{
21
+ label: string;
22
+ value: any;
23
+ }>;
24
+ description?: string;
25
+ bindable?: boolean;
26
+ }
27
+ /**
28
+ * 组件分类
29
+ */
30
+ export type ComponentCategory = 'basic' | 'iot' | 'chart' | 'custom';
31
+ /**
32
+ * 组件元数据
33
+ */
34
+ export interface ComponentMetadata {
35
+ id: string;
36
+ name: string;
37
+ category: ComponentCategory;
38
+ icon: string;
39
+ description?: string;
40
+ version?: string;
41
+ author?: string;
42
+ }
43
+ /**
44
+ * X6 节点属性
45
+ */
46
+ export interface NodeAttrs {
47
+ body?: Record<string, any>;
48
+ label?: Record<string, any>;
49
+ [key: string]: any;
50
+ }
51
+ /**
52
+ * 组件数据
53
+ */
54
+ export interface ComponentData {
55
+ type: string;
56
+ deviceId?: string;
57
+ property?: string;
58
+ [key: string]: any;
59
+ }
60
+ /**
61
+ * 组件配置
62
+ */
63
+ export interface ComponentConfig {
64
+ metadata: ComponentMetadata;
65
+ shape: string;
66
+ width: number;
67
+ height: number;
68
+ label: string;
69
+ attrs: NodeAttrs;
70
+ data?: ComponentData;
71
+ ports?: any;
72
+ props: ComponentProp[];
73
+ }
74
+ /**
75
+ * 组件注册表
76
+ */
77
+ export type ComponentRegistry = Record<string, ComponentConfig>;
78
+ /**
79
+ * 公共动画属性配置
80
+ * 可以在任何组件中复用
81
+ */
82
+ export declare const COMMON_ANIMATION_PROPS: ComponentProp[];
@@ -0,0 +1 @@
1
+ [data-scada-theme] .scada-header[data-v-9bbedc41]{height:60px;background:#16213e;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #0f3460;gap:24px}[data-scada-theme] .header-left[data-v-9bbedc41]{display:flex;align-items:center;gap:12px;flex-shrink:0}[data-scada-theme] .logo[data-v-9bbedc41]{font-size:20px;font-weight:600;margin:0;color:#e2e8f0}[data-scada-theme] .version[data-v-9bbedc41]{font-size:12px;color:#64748b;padding:2px 8px;background:#0f172a;border-radius:4px}[data-scada-theme] .header-center[data-v-9bbedc41]{flex:1;display:flex;justify-content:center;align-items:center}[data-scada-theme] .header-right[data-v-9bbedc41]{display:flex;align-items:center;gap:12px;flex-shrink:0}[data-scada-theme] .tool-group[data-v-9bbedc41]{display:flex;gap:8px}[data-scada-theme] .header-btn[data-v-9bbedc41]{display:flex;align-items:center;gap:6px;padding:8px 16px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s;font-size:13px}[data-scada-theme] .header-btn[data-v-9bbedc41]:hover{background:#1e3a5f;border-color:#3b82f6;transform:translateY(-1px)}[data-scada-theme] .header-btn .icon[data-v-9bbedc41]{font-size:16px}[data-scada-theme] .tip[data-v-9bbedc41]{font-size:13px;color:#94a3b8}[data-scada-theme] .divider[data-v-9bbedc41]{width:1px;height:32px;background:#334155;margin:0 12px}[data-scada-theme] .toolbar-btn[data-v-9bbedc41]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;font-size:16px}[data-scada-theme] .toolbar-btn[data-v-9bbedc41]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .toolbar-btn .icon[data-v-9bbedc41]{font-size:16px}[data-scada-theme] .toolbar-btn .icon-svg[data-v-9bbedc41]{width:18px;height:18px;display:block}[data-scada-theme] .canvas-info[data-v-9bbedc41]{display:flex;align-items:center;gap:16px}[data-scada-theme] .info-text[data-v-9bbedc41]{font-size:12px;color:#64748b}[data-scada-theme] .component-library[data-v-92bb4e17]{width:260px;height:100%;background:#1e293b;border-right:1px solid #0f3460;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .library-header[data-v-92bb4e17]{padding:16px;line-height:50px;text-align:center;border-bottom:1px solid #0f3460}[data-scada-theme] .library-header h3[data-v-92bb4e17]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .library-content[data-v-92bb4e17]{flex:1;overflow-y:auto;padding:16px}[data-scada-theme] .component-section[data-v-92bb4e17]{margin-bottom:24px}[data-scada-theme] .component-section[data-v-92bb4e17]:last-child{margin-bottom:0}[data-scada-theme] .section-title[data-v-92bb4e17]{font-size:13px;color:#94a3b8;margin:0 0 12px;font-weight:600}[data-scada-theme] .component-grid[data-v-92bb4e17]{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}[data-scada-theme] .component-item[data-v-92bb4e17]{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 8px;background:#0f172a;border:1px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .component-item[data-v-92bb4e17]:hover{background:#1e3a5f;border-color:#3b82f6;transform:translateY(-2px);box-shadow:0 4px 8px #3b82f64d}[data-scada-theme] .component-item[data-v-92bb4e17]:active{transform:translateY(0)}[data-scada-theme] .component-icon[data-v-92bb4e17]{font-size:24px;color:#e2e8f0}[data-scada-theme] .component-name[data-v-92bb4e17]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar{width:8px}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .library-content[data-v-92bb4e17]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .canvas-area[data-v-a869f6aa]{flex:1;display:flex;align-items:center;justify-content:center;background:#0f172a;overflow:auto;position:relative}[data-scada-theme] .canvas-container[data-v-a869f6aa]{position:relative;border:2px solid #334155;box-shadow:0 4px 12px #0000004d;transition:transform .2s ease}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar{width:8px;height:8px}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .canvas-area[data-v-a869f6aa]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .canvas-config-panel[data-v-f309895b]{width:100%;height:100%;background:#1e293b;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .panel-header[data-v-f309895b]{padding:16px;border-bottom:1px solid #0f3460}[data-scada-theme] .panel-header h3[data-v-f309895b]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .panel-content[data-v-f309895b]{flex:1;overflow-y:auto;padding:16px}[data-scada-theme] .config-section[data-v-f309895b]{margin-bottom:24px}[data-scada-theme] .config-section[data-v-f309895b]:last-child{margin-bottom:0}[data-scada-theme] .section-title[data-v-f309895b]{font-size:13px;color:#94a3b8;margin:0 0 12px;font-weight:600}[data-scada-theme] .config-item[data-v-f309895b]{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}[data-scada-theme] .config-item label[data-v-f309895b]{font-size:13px;color:#cbd5e1;flex-shrink:0}[data-scada-theme] .config-select[data-v-f309895b]{width:160px;padding:6px 12px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;font-size:13px}[data-scada-theme] .config-number[data-v-f309895b]{width:80px;padding:6px 12px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;text-align:center;font-size:13px}[data-scada-theme] .config-color[data-v-f309895b]{width:50px;height:32px;border:1px solid #334155;border-radius:4px;cursor:pointer;background:#0f172a}[data-scada-theme] .slider-group[data-v-f309895b]{display:flex;align-items:center;gap:8px;flex:1;max-width:160px}[data-scada-theme] .config-slider[data-v-f309895b]{flex:1}[data-scada-theme] .value-display[data-v-f309895b]{font-size:12px;color:#94a3b8;min-width:30px;text-align:right}[data-scada-theme] .number-input-group[data-v-f309895b]{display:flex;gap:4px}[data-scada-theme] .adjust-btn[data-v-f309895b]{width:32px;height:32px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;font-size:14px}[data-scada-theme] .adjust-btn[data-v-f309895b]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .upload-btn[data-v-f309895b]{width:50px;height:32px;background:#0f172a;color:#e2e8f0;border:1px solid #334155;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}[data-scada-theme] .upload-btn[data-v-f309895b]:hover{background:#1e3a5f;border-color:#3b82f6}[data-scada-theme] .image-upload[data-v-f309895b]{display:flex;gap:8px}[data-scada-theme] .clear-btn[data-v-f309895b]{width:32px;height:32px;background:#dc2626;color:#fff;border:1px solid #991b1b;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s}[data-scada-theme] .clear-btn[data-v-f309895b]:hover{background:#b91c1c;border-color:#7f1d1d}[data-scada-theme] .switch[data-v-f309895b]{position:relative;display:inline-block;width:48px;height:24px}[data-scada-theme] .switch input[data-v-f309895b]{opacity:0;width:0;height:0}[data-scada-theme] .switch .slider[data-v-f309895b]{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#475569;transition:.3s;border-radius:24px}[data-scada-theme] .switch .slider[data-v-f309895b]:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}[data-scada-theme] .switch input:checked+.slider[data-v-f309895b]{background-color:#3b82f6}[data-scada-theme] .switch input:checked+.slider[data-v-f309895b]:before{transform:translate(24px)}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar{width:8px}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .panel-content[data-v-f309895b]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .tab-pane[data-v-def84c5f]{animation:fadeIn-def84c5f .2s}@keyframes fadeIn-def84c5f{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .property-section[data-v-def84c5f]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-def84c5f]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .property-item[data-v-def84c5f]{margin-bottom:12px}[data-scada-theme] .property-item-inline[data-v-def84c5f]{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-scada-theme] .property-item-inline[data-v-def84c5f]:has(.checkbox-wrapper){justify-content:flex-start}[data-scada-theme] .property-item-inline label[data-v-def84c5f]{flex-shrink:0;width:70px;font-size:11px;color:#cbd5e1;margin-bottom:0}[data-scada-theme] .property-item-inline input[data-v-def84c5f],[data-scada-theme] .property-item-inline select[data-v-def84c5f]{flex:1;min-width:0;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-def84c5f]{flex:0 0 auto}[data-scada-theme] .property-item-inline input[data-v-def84c5f]:focus,[data-scada-theme] .property-item-inline select[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item-inline input[data-v-def84c5f]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item-inline .color-input-wrapper[data-v-def84c5f]{flex:1;display:flex;align-items:center;gap:6px}[data-scada-theme] .property-item-inline .color-input-wrapper input[type=color][data-v-def84c5f]{width:40px;height:28px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .property-item-inline .color-input-wrapper .color-value[data-v-def84c5f]{flex:1;min-width:0;font-size:11px;color:#94a3b8;font-family:monospace}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-def84c5f]{flex:1;display:flex;align-items:center;gap:6px;padding:0}[data-scada-theme] .property-item label[data-v-def84c5f]{display:block;font-size:12px;color:#cbd5e1;margin-bottom:6px}[data-scada-theme] .property-item input[data-v-def84c5f]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .property-item input[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .property-item input[data-v-def84c5f]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-row[data-v-def84c5f]{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-scada-theme] .color-input-wrapper[data-v-def84c5f]{display:flex;align-items:center;gap:8px}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]{width:50px;height:36px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]:hover{border-color:#3b82f6}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input-wrapper input[type=color][data-v-def84c5f]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-value[data-v-def84c5f]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .checkbox-wrapper[data-v-def84c5f]{display:inline-flex;align-items:center;gap:6px}[data-scada-theme] .checkbox-wrapper input[type=checkbox][data-v-def84c5f]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6;pointer-events:auto!important;-webkit-appearance:auto!important;-moz-appearance:auto!important;appearance:auto!important;opacity:1!important;z-index:1!important;position:relative!important;flex-shrink:0}[data-scada-theme] .checkbox-label[data-v-def84c5f]{font-size:12px;color:#cbd5e1;white-space:nowrap}[data-scada-theme] select[data-v-def84c5f]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s}[data-scada-theme] select[data-v-def84c5f]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] select option[data-v-def84c5f]{background:#0f172a;color:#e2e8f0}[data-scada-theme] .property-hint[data-v-def84c5f]{display:block;font-size:11px;color:#64748b;margin-top:2px;font-weight:400}[data-scada-theme] .tab-pane[data-v-5b515f8a]{animation:fadeIn-5b515f8a .2s}@keyframes fadeIn-5b515f8a{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .property-section[data-v-5b515f8a]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-5b515f8a]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .property-item-inline[data-v-5b515f8a]{display:flex;align-items:center;gap:8px;margin-bottom:8px}[data-scada-theme] .property-item-inline label[data-v-5b515f8a]{flex-shrink:0;width:70px;font-size:11px;color:#cbd5e1;margin-bottom:0}[data-scada-theme] .property-item-inline input[data-v-5b515f8a],[data-scada-theme] .property-item-inline select[data-v-5b515f8a]{flex:1;min-width:0;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item-inline input[data-v-5b515f8a]:focus,[data-scada-theme] .property-item-inline select[data-v-5b515f8a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item-inline input[data-v-5b515f8a]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item-inline .checkbox-wrapper[data-v-5b515f8a]{flex:1;display:flex;align-items:center;gap:6px;padding:0}[data-scada-theme] .checkbox-wrapper input[type=checkbox][data-v-5b515f8a]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}[data-scada-theme] .checkbox-label[data-v-5b515f8a]{font-size:12px;color:#cbd5e1}[data-scada-theme] .edge-properties-tab[data-v-e47f1784]{padding:0}[data-scada-theme] .property-section[data-v-e47f1784]{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #334155}[data-scada-theme] .property-section[data-v-e47f1784]:last-child{border-bottom:none;margin-bottom:0}[data-scada-theme] .section-title[data-v-e47f1784]{font-size:13px;font-weight:600;color:#e2e8f0;margin:0 0 12px;padding:0}[data-scada-theme] .property-item[data-v-e47f1784]{margin-bottom:12px}[data-scada-theme] .property-item[data-v-e47f1784]:last-child{margin-bottom:0}[data-scada-theme] .property-label[data-v-e47f1784]{display:block;font-size:12px;color:#94a3b8;margin-bottom:6px;font-weight:500}[data-scada-theme] .color-input-wrapper[data-v-e47f1784]{display:flex;gap:8px;align-items:center}[data-scada-theme] .color-input[data-v-e47f1784]{width:40px;height:32px;border:1px solid #475569;border-radius:4px;cursor:pointer;background:#1e293b;padding:2px}[data-scada-theme] .color-input[data-v-e47f1784]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input[data-v-e47f1784]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-text[data-v-e47f1784]{flex:1;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px;font-family:Consolas,monospace}[data-scada-theme] .color-text[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .number-input-wrapper[data-v-e47f1784]{display:flex;align-items:center;gap:8px}[data-scada-theme] .property-input[data-v-e47f1784]{flex:1;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px}[data-scada-theme] .property-input[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .input-unit[data-v-e47f1784]{font-size:12px;color:#64748b;min-width:24px}[data-scada-theme] .property-select[data-v-e47f1784]{width:100%;height:32px;background:#1e293b;border:1px solid #475569;border-radius:4px;padding:0 12px;color:#e2e8f0;font-size:12px;cursor:pointer}[data-scada-theme] .property-select[data-v-e47f1784]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .slider-wrapper[data-v-e47f1784]{display:flex;align-items:center;gap:12px}[data-scada-theme] .property-slider[data-v-e47f1784]{flex:1;height:4px;background:#334155;border-radius:2px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}[data-scada-theme] .property-slider[data-v-e47f1784]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#3b82f6;border-radius:50%;cursor:pointer}[data-scada-theme] .property-slider[data-v-e47f1784]::-moz-range-thumb{width:14px;height:14px;background:#3b82f6;border-radius:50%;border:none;cursor:pointer}[data-scada-theme] .slider-value[data-v-e47f1784]{font-size:12px;color:#94a3b8;min-width:40px;text-align:right}[data-scada-theme] .delete-btn[data-v-e47f1784]{width:100%;height:36px;background:#dc2626;border:none;border-radius:4px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .delete-btn[data-v-e47f1784]:hover{background:#b91c1c}[data-scada-theme] .delete-btn[data-v-e47f1784]:active{transform:scale(.98)}[data-scada-theme] .event-card[data-v-af7c633a]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;transition:all .2s}[data-scada-theme] .event-card[data-v-af7c633a]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-af7c633a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-af7c633a]:hover{background:#3b82f60d;margin:-4px -8px 8px;padding:4px 8px 12px;border-radius:4px}[data-scada-theme] .header-left[data-v-af7c633a]{display:flex;align-items:center;gap:8px}[data-scada-theme] .collapse-icon[data-v-af7c633a]{font-size:10px;color:#64748b;transition:transform .2s;display:inline-block;width:12px}[data-scada-theme] .event-title[data-v-af7c633a]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-remove[data-v-af7c633a]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-af7c633a]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-card-body[data-v-af7c633a]{animation:slideDown-af7c633a .2s ease-out}@keyframes slideDown-af7c633a{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .event-field[data-v-af7c633a]{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}[data-scada-theme] .event-field[data-v-af7c633a]:last-child{margin-bottom:0}[data-scada-theme] .event-field label[data-v-af7c633a]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .event-field input[data-v-af7c633a],[data-scada-theme] .event-field select[data-v-af7c633a],[data-scada-theme] .event-field textarea[data-v-af7c633a]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .event-field input[data-v-af7c633a]:focus,[data-scada-theme] .event-field select[data-v-af7c633a]:focus,[data-scada-theme] .event-field textarea[data-v-af7c633a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .section-title[data-v-af7c633a]{font-size:12px;color:#94a3b8;margin-top:12px;margin-bottom:8px;font-weight:500}[data-scada-theme] .section-title[data-v-af7c633a]:first-child{margin-top:0}[data-scada-theme] .field-hint[data-v-af7c633a]{font-size:11px;color:#64748b;margin-top:2px}[data-scada-theme] .condition-config[data-v-af7c633a]{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .condition-label[data-v-af7c633a]{font-size:12px;color:#cbd5e1}[data-scada-theme] .condition-select[data-v-af7c633a],[data-scada-theme] .condition-input[data-v-af7c633a]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .condition-select[data-v-af7c633a]:focus,[data-scada-theme] .condition-input[data-v-af7c633a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .config-section[data-v-af7c633a]{margin-top:16px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .btn-config[data-v-af7c633a]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:all .2s}[data-scada-theme] .btn-config[data-v-af7c633a]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .selected-workflow-info[data-v-af7c633a]{margin-top:12px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .info-row[data-v-af7c633a]{display:flex;align-items:center;gap:8px;margin-bottom:12px}[data-scada-theme] .info-label[data-v-af7c633a]{font-size:12px;color:#94a3b8}[data-scada-theme] .info-value[data-v-af7c633a]{font-size:13px;color:#10b981;font-weight:500}[data-scada-theme] .modal-overlay[data-v-7884b850]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-7884b850 .2s ease-out}@keyframes fadeIn-7884b850{0%{opacity:0}to{opacity:1}}[data-scada-theme] .modal-container[data-v-7884b850]{width:800px;max-width:90vw;max-height:85vh;background:#0f172a;border-radius:8px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;animation:slideUp-7884b850 .3s ease-out}@keyframes slideUp-7884b850{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .modal-header[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .modal-header h3[data-v-7884b850]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-7884b850]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-close[data-v-7884b850]:hover{background:#1e293b;color:#e2e8f0}[data-scada-theme] .device-point-selector[data-v-7884b850]{display:grid;grid-template-columns:1fr 1.5fr;gap:12px;height:500px;padding:16px 24px;overflow:hidden}[data-scada-theme] .modal-footer[data-v-7884b850]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-7884b850],[data-scada-theme] .btn-confirm[data-v-7884b850]{padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}[data-scada-theme] .btn-cancel[data-v-7884b850]{background:#1e293b;color:#e2e8f0}[data-scada-theme] .btn-cancel[data-v-7884b850]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-7884b850]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-7884b850]:hover{background:#2563eb}[data-scada-theme] .btn-confirm[data-v-7884b850]:disabled{background:#334155;color:#64748b;cursor:not-allowed}[data-scada-theme] .device-list-panel[data-v-7884b850],[data-scada-theme] .point-list-panel[data-v-7884b850]{display:flex;flex-direction:column;background:#1e293b;border:1px solid #334155;border-radius:6px;overflow:hidden}[data-scada-theme] .panel-header[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#334155;border-bottom:1px solid #475569}[data-scada-theme] .panel-header h4[data-v-7884b850]{margin:0;font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .device-count[data-v-7884b850],[data-scada-theme] .point-count[data-v-7884b850]{font-size:12px;color:#94a3b8;background:#1e293b;padding:2px 8px;border-radius:10px}[data-scada-theme] .search-box[data-v-7884b850]{padding:12px 16px;border-bottom:1px solid #334155}[data-scada-theme] .search-input[data-v-7884b850]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .search-input[data-v-7884b850]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .search-input[data-v-7884b850]::placeholder{color:#64748b}[data-scada-theme] .device-list[data-v-7884b850],[data-scada-theme] .point-list[data-v-7884b850]{flex:1;overflow-y:auto;padding:8px}[data-scada-theme] .device-item[data-v-7884b850]{display:flex;justify-content:space-between;align-items:center;padding:12px;margin-bottom:4px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s}[data-scada-theme] .device-item[data-v-7884b850]:hover{background:#1e293b;border-color:#3b82f6}[data-scada-theme] .device-item.active[data-v-7884b850]{background:#3b82f61a;border-color:#3b82f6}[data-scada-theme] .device-item.offline[data-v-7884b850]{opacity:.6}[data-scada-theme] .device-info[data-v-7884b850]{flex:1}[data-scada-theme] .device-name[data-v-7884b850]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#e2e8f0;margin-bottom:4px}[data-scada-theme] .status-dot[data-v-7884b850]{width:8px;height:8px;border-radius:50%;background:#64748b}[data-scada-theme] .status-dot.online[data-v-7884b850]{background:#10b981;box-shadow:0 0 8px #10b98180}[data-scada-theme] .status-dot.offline[data-v-7884b850]{background:#64748b}[data-scada-theme] .status-dot.error[data-v-7884b850]{background:#ef4444;box-shadow:0 0 8px #ef444480}[data-scada-theme] .device-meta[data-v-7884b850]{display:flex;gap:12px;font-size:11px;color:#94a3b8}[data-scada-theme] .device-code[data-v-7884b850]{font-family:monospace}[data-scada-theme] .device-arrow[data-v-7884b850]{font-size:18px;color:#64748b;transition:all .2s}[data-scada-theme] .device-item:hover .device-arrow[data-v-7884b850]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .point-item[data-v-7884b850]{padding:12px;margin-bottom:4px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s}[data-scada-theme] .point-item[data-v-7884b850]:hover{background:#1e293b;border-color:#3b82f6}[data-scada-theme] .point-item.active[data-v-7884b850]{background:#3b82f61a;border-color:#3b82f6}[data-scada-theme] .point-item.disabled[data-v-7884b850]{opacity:.5;cursor:not-allowed}[data-scada-theme] .point-info[data-v-7884b850]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .point-name[data-v-7884b850]{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#e2e8f0}[data-scada-theme] .access-mode[data-v-7884b850]{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:400}[data-scada-theme] .access-mode.read[data-v-7884b850]{background:#3b82f633;color:#60a5fa}[data-scada-theme] .access-mode.write[data-v-7884b850]{background:#ef444433;color:#f87171}[data-scada-theme] .access-mode.readWrite[data-v-7884b850]{background:#10b98133;color:#34d399}[data-scada-theme] .point-meta[data-v-7884b850]{display:flex;gap:12px;font-size:11px;color:#94a3b8}[data-scada-theme] .point-code[data-v-7884b850]{font-family:monospace}[data-scada-theme] .point-unit[data-v-7884b850]{color:#3b82f6}[data-scada-theme] .point-type[data-v-7884b850]{background:#334155;padding:2px 6px;border-radius:3px}[data-scada-theme] .point-value[data-v-7884b850]{font-size:12px;color:#94a3b8}[data-scada-theme] .point-value .value[data-v-7884b850]{color:#e2e8f0;font-weight:500;margin:0 4px}[data-scada-theme] .quality[data-v-7884b850]{font-size:10px;padding:2px 6px;border-radius:3px;margin-left:8px}[data-scada-theme] .quality.good[data-v-7884b850]{background:#10b98133;color:#34d399}[data-scada-theme] .quality.bad[data-v-7884b850]{background:#ef444433;color:#f87171}[data-scada-theme] .quality.uncertain[data-v-7884b850]{background:#f59e0b33;color:#fbbf24}[data-scada-theme] .empty-hint[data-v-7884b850]{text-align:center;padding:40px 20px;color:#64748b;font-size:13px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar{width:6px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-track,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-track{background:#0f172a}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-thumb,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}[data-scada-theme] .device-list[data-v-7884b850]::-webkit-scrollbar-thumb:hover,[data-scada-theme] .point-list[data-v-7884b850]::-webkit-scrollbar-thumb:hover{background:#475569}[data-scada-theme] .modal-overlay[data-v-ef9e0ee1]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeIn-ef9e0ee1 .2s ease-out}@keyframes fadeIn-ef9e0ee1{0%{opacity:0}to{opacity:1}}[data-scada-theme] .modal-container[data-v-ef9e0ee1]{width:600px;max-width:90vw;max-height:85vh;background:#0f172a;border-radius:8px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;animation:slideUp-ef9e0ee1 .3s ease-out}@keyframes slideUp-ef9e0ee1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .modal-header[data-v-ef9e0ee1]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .modal-header h3[data-v-ef9e0ee1]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-ef9e0ee1]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-close[data-v-ef9e0ee1]:hover{background:#1e293b;color:#e2e8f0}[data-scada-theme] .modal-footer[data-v-ef9e0ee1]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1],[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]{padding:8px 24px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1]{background:#1e293b;color:#e2e8f0}[data-scada-theme] .btn-cancel[data-v-ef9e0ee1]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-ef9e0ee1]:hover{background:#2563eb}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]{max-height:60vh;overflow-y:auto;padding:20px 24px;display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-item[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .config-item label[data-v-ef9e0ee1]{font-size:12px;color:#cbd5e1;font-weight:500}[data-scada-theme] .required[data-v-ef9e0ee1]{color:#ef4444;margin-left:2px}[data-scada-theme] .field-hint[data-v-ef9e0ee1]{font-size:11px;color:#64748b;margin-top:4px;line-height:1.4}[data-scada-theme] .field-hint.error[data-v-ef9e0ee1]{color:#ef4444}[data-scada-theme] .config-item select[data-v-ef9e0ee1],[data-scada-theme] .config-item input[data-v-ef9e0ee1]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .config-item select[data-v-ef9e0ee1]:focus,[data-scada-theme] .config-item input[data-v-ef9e0ee1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .unit-config[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .checkbox-label[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px;font-size:13px;color:#cbd5e1;cursor:pointer}[data-scada-theme] .checkbox-label input[type=checkbox][data-v-ef9e0ee1]{width:auto;cursor:pointer}[data-scada-theme] .custom-unit[data-v-ef9e0ee1]{margin-left:24px}[data-scada-theme] .custom-unit input[data-v-ef9e0ee1]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .custom-unit input[data-v-ef9e0ee1]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .mapping-details[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:12px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .range-rules[data-v-ef9e0ee1],[data-scada-theme] .enum-mappings[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .range-rule[data-v-ef9e0ee1],[data-scada-theme] .enum-mapping[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px}[data-scada-theme] .range-rule input[data-v-ef9e0ee1],[data-scada-theme] .enum-mapping input[data-v-ef9e0ee1]{flex:1;padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px}[data-scada-theme] .range-rule input[data-v-ef9e0ee1]:first-child,[data-scada-theme] .range-rule input[data-v-ef9e0ee1]:nth-child(3){max-width:80px}[data-scada-theme] .range-separator[data-v-ef9e0ee1],[data-scada-theme] .range-arrow[data-v-ef9e0ee1],[data-scada-theme] .enum-arrow[data-v-ef9e0ee1]{color:#64748b;font-size:14px;flex-shrink:0}[data-scada-theme] .btn-remove-rule[data-v-ef9e0ee1]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .2s;flex-shrink:0}[data-scada-theme] .btn-remove-rule[data-v-ef9e0ee1]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .btn-add-rule[data-v-ef9e0ee1]{padding:8px 16px;background:#334155;border:1px dashed #475569;border-radius:4px;color:#94a3b8;font-size:12px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-add-rule[data-v-ef9e0ee1]:hover{background:#3b82f6;border-color:#3b82f6;color:#fff;border-style:solid}[data-scada-theme] .mapping-preview[data-v-ef9e0ee1]{padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .mapping-preview label[data-v-ef9e0ee1]{display:block;font-size:12px;color:#94a3b8;margin-bottom:8px}[data-scada-theme] .preview-content[data-v-ef9e0ee1]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .preview-item[data-v-ef9e0ee1]{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#1e293b;border-radius:4px;font-size:12px}[data-scada-theme] .preview-input[data-v-ef9e0ee1]{color:#94a3b8;font-family:monospace}[data-scada-theme] .preview-arrow[data-v-ef9e0ee1]{color:#64748b;font-size:12px}[data-scada-theme] .preview-output[data-v-ef9e0ee1]{color:#3b82f6;font-weight:500}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar{width:6px}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-track{background:#0f172a}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}[data-scada-theme] .mapping-configurator[data-v-ef9e0ee1]::-webkit-scrollbar-thumb:hover{background:#475569}[data-scada-theme] .event-card[data-v-3731c19a]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px;transition:all .2s}[data-scada-theme] .event-card[data-v-3731c19a]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-3731c19a]:hover{background:#3b82f60d;margin:-4px -8px 8px;padding:4px 8px 12px;border-radius:4px}[data-scada-theme] .header-left[data-v-3731c19a]{display:flex;align-items:center;gap:8px}[data-scada-theme] .collapse-icon[data-v-3731c19a]{font-size:10px;color:#64748b;transition:transform .2s;display:inline-block;width:12px}[data-scada-theme] .event-title[data-v-3731c19a]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-remove[data-v-3731c19a]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-3731c19a]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-card-body[data-v-3731c19a]{animation:slideDown-3731c19a .2s ease-out}@keyframes slideDown-3731c19a{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .property-item[data-v-3731c19a]{margin-bottom:12px}[data-scada-theme] .property-item[data-v-3731c19a]:last-child{margin-bottom:0}[data-scada-theme] .property-item label[data-v-3731c19a]{display:block;font-size:12px;color:#cbd5e1;margin-bottom:6px}[data-scada-theme] .property-item select[data-v-3731c19a]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .property-item select[data-v-3731c19a]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .point-selector-trigger[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;min-height:42px}[data-scada-theme] .point-selector-trigger[data-v-3731c19a]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .selected-point[data-v-3731c19a]{flex:1;display:flex;flex-direction:column;gap:4px}[data-scada-theme] .point-main[data-v-3731c19a]{display:flex;align-items:center;gap:8px;font-size:13px}[data-scada-theme] .device-name[data-v-3731c19a]{color:#94a3b8;font-size:12px}[data-scada-theme] .point-name[data-v-3731c19a]{color:#e2e8f0;font-weight:500}[data-scada-theme] .point-details[data-v-3731c19a]{display:flex;gap:8px;font-size:11px;color:#64748b}[data-scada-theme] .point-code[data-v-3731c19a]{font-family:monospace}[data-scada-theme] .point-unit[data-v-3731c19a]{color:#3b82f6}[data-scada-theme] .placeholder[data-v-3731c19a]{color:#64748b;font-size:13px}[data-scada-theme] .selector-arrow[data-v-3731c19a]{font-size:18px;color:#64748b;transition:all .2s}[data-scada-theme] .point-selector-trigger:hover .selector-arrow[data-v-3731c19a]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .mapping-trigger[data-v-3731c19a]{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;cursor:pointer;transition:all .2s;min-height:42px}[data-scada-theme] .mapping-trigger[data-v-3731c19a]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .mapping-summary[data-v-3731c19a]{flex:1;display:flex;flex-direction:column;gap:4px}[data-scada-theme] .mapping-type-label[data-v-3731c19a]{font-size:13px;color:#e2e8f0;font-weight:500}[data-scada-theme] .mapping-detail[data-v-3731c19a]{font-size:11px;color:#64748b}[data-scada-theme] .mapping-trigger .placeholder[data-v-3731c19a]{color:#64748b;font-size:13px}[data-scada-theme] .mapping-trigger:hover .selector-arrow[data-v-3731c19a]{color:#3b82f6;transform:translate(2px)}[data-scada-theme] .dialog-overlay[data-v-90af9944]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-90af9944 .2s}@keyframes fadeIn-90af9944{0%{opacity:0}to{opacity:1}}[data-scada-theme] .dialog-content[data-v-90af9944]{background:#1e293b;border-radius:8px;width:90%;max-width:800px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-90af9944 .3s}@keyframes slideUp-90af9944{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .dialog-header[data-v-90af9944]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-90af9944]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-90af9944]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-90af9944]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-90af9944]{padding:24px;max-height:60vh;overflow-y:auto}[data-scada-theme] .btn-add-group[data-v-90af9944]{width:100%;padding:10px 16px;background:#1e293b;border:1px dashed #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s;margin-bottom:16px}[data-scada-theme] .btn-add-group[data-v-90af9944]:hover{background:#334155;border-color:#3b82f6;color:#e2e8f0}[data-scada-theme] .attribute-group[data-v-90af9944]{margin-bottom:12px;padding:16px;background:#0f172a;border-radius:4px;border:1px solid #334155}[data-scada-theme] .group-row[data-v-90af9944]{display:grid;grid-template-columns:1.5fr 2fr auto;gap:12px;align-items:end}[data-scada-theme] .group-field[data-v-90af9944]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .group-field label[data-v-90af9944]{font-size:12px;color:#94a3b8;font-weight:500}[data-scada-theme] .group-field input[data-v-90af9944],[data-scada-theme] .group-field select[data-v-90af9944]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .group-field input[data-v-90af9944]:focus,[data-scada-theme] .group-field select[data-v-90af9944]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .group-field-value .color-input-wrapper[data-v-90af9944]{display:flex;align-items:center;gap:8px}[data-scada-theme] .group-field-value .color-input-wrapper input[type=color][data-v-90af9944]{width:60px;height:36px}[data-scada-theme] .color-value[data-v-90af9944]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .btn-delete-group[data-v-90af9944]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;transition:all .2s}[data-scada-theme] .btn-delete-group[data-v-90af9944]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .empty-hint[data-v-90af9944]{font-size:12px;color:#64748b;text-align:center;padding:16px;background:#0f172a;border-radius:4px;margin-bottom:12px}[data-scada-theme] .dialog-footer[data-v-90af9944]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-90af9944],[data-scada-theme] .btn-confirm[data-v-90af9944]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-90af9944]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-90af9944]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-90af9944]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-90af9944]:hover{background:#2563eb;border-color:#2563eb}[data-scada-theme] .dialog-overlay[data-v-add3567b]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-add3567b .2s}@keyframes fadeIn-add3567b{0%{opacity:0}to{opacity:1}}[data-scada-theme] .dialog-large[data-v-add3567b]{max-width:1200px;height:80vh;display:flex;flex-direction:column}[data-scada-theme] .dialog-content[data-v-add3567b]{background:#1e293b;border-radius:8px;width:90%;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-add3567b .3s}@keyframes slideUp-add3567b{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .dialog-header[data-v-add3567b]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-add3567b]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-add3567b]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-add3567b]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body-split[data-v-add3567b]{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;overflow:hidden;padding:24px}[data-scada-theme] .code-editor-section[data-v-add3567b]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .code-textarea-full[data-v-add3567b]{flex:1;resize:none;height:100%!important}[data-scada-theme] .code-textarea[data-v-add3567b]{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;line-height:1.6;transition:all .2s}[data-scada-theme] .code-textarea[data-v-add3567b]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .section-header[data-v-add3567b]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-add3567b]{font-size:14px;color:#cbd5e1;font-weight:600}[data-scada-theme] .preview-status[data-v-add3567b]{font-size:13px;font-weight:500}[data-scada-theme] .status-success[data-v-add3567b]{color:#10b981}[data-scada-theme] .status-error[data-v-add3567b]{color:#ef4444}[data-scada-theme] .btn-test[data-v-add3567b]{padding:6px 16px;background:#10b981;border:1px solid #10b981;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-test[data-v-add3567b]:hover{background:#059669;border-color:#059669}[data-scada-theme] .code-preview-section[data-v-add3567b]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .preview-canvas[data-v-add3567b]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}[data-scada-theme] .node-preview[data-v-add3567b]{flex:1;position:relative;min-height:300px}[data-scada-theme] .console-output[data-v-add3567b]{max-height:150px;background:#020617;border-top:1px solid #334155;padding:12px;overflow-y:auto}[data-scada-theme] .console-title[data-v-add3567b]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:500}[data-scada-theme] .console-logs[data-v-add3567b]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .preview-empty[data-v-add3567b]{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px;text-align:center;padding:20px}[data-scada-theme] .preview-error-box[data-v-add3567b]{padding:20px;height:100%;overflow-y:auto}[data-scada-theme] .error-title[data-v-add3567b]{font-size:13px;color:#ef4444;margin-bottom:12px;font-weight:500}[data-scada-theme] .preview-node-container[data-v-add3567b]{height:100%;display:flex;flex-direction:column}[data-scada-theme] .log-item[data-v-add3567b]{font-family:Consolas,Monaco,monospace;font-size:12px;color:#e2e8f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .log-item[data-v-add3567b]:last-child{margin-bottom:0}[data-scada-theme] .error-message[data-v-add3567b]{background:#450a0a;border:1px solid #7f1d1d;border-radius:4px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;color:#fca5a5;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .dialog-footer[data-v-add3567b]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-add3567b],[data-scada-theme] .btn-confirm[data-v-add3567b]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-add3567b]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-add3567b]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-add3567b]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-add3567b]:hover{background:#2563eb;border-color:#2563eb}[data-scada-theme] .dialog-overlay[data-v-c9a88e33]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000}[data-scada-theme] .dialog-container[data-v-c9a88e33]{width:600px;max-height:80vh;background:#1e293b;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}[data-scada-theme] .dialog-header[data-v-c9a88e33]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-c9a88e33]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-c9a88e33]{width:32px;height:32px;background:transparent;border:none;border-radius:4px;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}[data-scada-theme] .btn-close[data-v-c9a88e33]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-c9a88e33]{flex:1;overflow-y:auto;padding:20px 24px}[data-scada-theme] .empty-state[data-v-c9a88e33]{text-align:center;padding:40px 20px;color:#64748b}[data-scada-theme] .empty-state p[data-v-c9a88e33]{margin:8px 0;font-size:14px}[data-scada-theme] .empty-state .hint[data-v-c9a88e33]{font-size:12px;color:#475569}[data-scada-theme] .workflow-list[data-v-c9a88e33]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .workflow-item[data-v-c9a88e33]{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#0f172a;border:2px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .workflow-item[data-v-c9a88e33]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .workflow-item.selected[data-v-c9a88e33]{border-color:#10b981;background:#10b9811a}[data-scada-theme] .workflow-info[data-v-c9a88e33]{flex:1}[data-scada-theme] .workflow-name[data-v-c9a88e33]{font-size:15px;font-weight:500;color:#e2e8f0;margin-bottom:6px}[data-scada-theme] .workflow-meta[data-v-c9a88e33]{display:flex;gap:12px;font-size:12px;color:#64748b}[data-scada-theme] .workflow-id[data-v-c9a88e33]{color:#94a3b8}[data-scada-theme] .workflow-date[data-v-c9a88e33]{color:#64748b}[data-scada-theme] .workflow-actions[data-v-c9a88e33]{display:flex;gap:8px}[data-scada-theme] .btn-icon[data-v-c9a88e33]{width:32px;height:32px;background:transparent;border:1px solid #334155;border-radius:4px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}[data-scada-theme] .btn-icon[data-v-c9a88e33]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .dialog-footer[data-v-c9a88e33]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-secondary[data-v-c9a88e33],[data-scada-theme] .btn-primary[data-v-c9a88e33]{padding:8px 16px;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-c9a88e33]{background:transparent;border:1px solid #475569;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-c9a88e33]:hover{background:#334155;border-color:#64748b}[data-scada-theme] .btn-primary[data-v-c9a88e33]{background:#10b981;border:1px solid #10b981;color:#fff}[data-scada-theme] .btn-primary[data-v-c9a88e33]:hover{background:#059669;border-color:#059669}[data-scada-theme] .btn-primary[data-v-c9a88e33]:disabled{background:#334155;border-color:#334155;color:#64748b;cursor:not-allowed}[data-scada-theme] .property-panel[data-v-7d3281c0]{width:300px;height:100%;background:#1e293b;border-left:1px solid #0f3460;overflow-y:auto}[data-scada-theme] .empty-state[data-v-7d3281c0]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:200px;color:#64748b;text-align:center;padding:24px}[data-scada-theme] .empty-state p[data-v-7d3281c0]{font-size:16px;margin-bottom:8px}[data-scada-theme] .empty-state .hint[data-v-7d3281c0]{font-size:12px;color:#475569}[data-scada-theme] .properties[data-v-7d3281c0]{padding:12px}[data-scada-theme] .panel-title[data-v-7d3281c0]{font-size:15px;font-weight:600;color:#e2e8f0;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #334155}[data-scada-theme] .property-section[data-v-7d3281c0]{margin-bottom:16px}[data-scada-theme] .property-section h4[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:600}[data-scada-theme] .hint-text[data-v-7d3281c0]{font-size:12px;color:#64748b;margin-bottom:12px;line-height:1.5}[data-scada-theme] .empty-hint[data-v-7d3281c0]{display:flex;justify-content:center;align-items:center;padding:24px 16px;color:#64748b;font-size:12px;text-align:center;background:#0f172a;border-radius:4px;margin-bottom:10px}[data-scada-theme] .property-item[data-v-7d3281c0]{margin-bottom:10px}[data-scada-theme] .property-item label[data-v-7d3281c0]{display:block;font-size:11px;color:#cbd5e1;margin-bottom:4px}[data-scada-theme] .property-item input[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item input[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item input[data-v-7d3281c0]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-item select[data-v-7d3281c0],[data-scada-theme] .property-item textarea[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .property-item select[data-v-7d3281c0]:focus,[data-scada-theme] .property-item textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .property-item textarea[data-v-7d3281c0]{resize:vertical;min-height:50px;font-family:Consolas,Monaco,monospace}[data-scada-theme] .property-row[data-v-7d3281c0]{display:grid;grid-template-columns:1fr 1fr;gap:8px}[data-scada-theme] .color-input-wrapper[data-v-7d3281c0]{display:flex;align-items:center;gap:8px}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]{width:50px;height:36px;padding:2px;border:1px solid #334155;border-radius:4px;background:#0f172a;cursor:pointer;transition:all .2s}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]:hover{border-color:#3b82f6}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]::-webkit-color-swatch-wrapper{padding:0}[data-scada-theme] .color-input-wrapper input[type=color][data-v-7d3281c0]::-webkit-color-swatch{border:none;border-radius:2px}[data-scada-theme] .color-value[data-v-7d3281c0]{flex:1;font-size:12px;color:#94a3b8;font-family:monospace}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar{width:8px}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .property-panel[data-v-7d3281c0]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .tabs[data-v-7d3281c0]{display:flex;gap:3px;margin-bottom:12px;padding:3px;background:#0f172a;border-radius:5px}[data-scada-theme] .tab-btn[data-v-7d3281c0]{flex:1;padding:6px 10px;background:transparent;border:none;color:#94a3b8;cursor:pointer;font-size:12px;font-weight:500;border-radius:4px;transition:all .2s}[data-scada-theme] .tab-btn[data-v-7d3281c0]:hover{color:#cbd5e1;background:#1e293b}[data-scada-theme] .tab-btn.active[data-v-7d3281c0]{color:#fff;background:#3b82f6}[data-scada-theme] .tab-content[data-v-7d3281c0]{min-height:0}[data-scada-theme] .tab-pane[data-v-7d3281c0]{animation:fadeIn-7d3281c0 .2s}@keyframes fadeIn-7d3281c0{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown-7d3281c0{0%{opacity:0;max-height:0;overflow:hidden}to{opacity:1;max-height:2000px}}[data-scada-theme] .section-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}[data-scada-theme] .section-header h4[data-v-7d3281c0]{margin:0}[data-scada-theme] .btn-add[data-v-7d3281c0]{padding:5px 10px;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:11px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-add[data-v-7d3281c0]:hover{background:#2563eb}[data-scada-theme] .event-list[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .event-card[data-v-7d3281c0]{background:#0f172a;border:1px solid #334155;border-radius:5px;padding:10px;transition:all .2s}[data-scada-theme] .event-card[data-v-7d3281c0]:hover{border-color:#3b82f6}[data-scada-theme] .event-card-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #1e293b;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s}[data-scada-theme] .event-card-header[data-v-7d3281c0]:hover{background:#3b82f60d;margin:-4px -6px 6px;padding:4px 6px 10px;border-radius:4px}[data-scada-theme] .header-left[data-v-7d3281c0]{display:flex;align-items:center;gap:6px}[data-scada-theme] .collapse-icon[data-v-7d3281c0]{font-size:9px;color:#64748b;transition:transform .2s;display:inline-block;width:10px}[data-scada-theme] .event-type-label[data-v-7d3281c0]{font-size:12px;font-weight:500;color:#e2e8f0}[data-scada-theme] .event-action-badge[data-v-7d3281c0]{font-size:10px;padding:2px 6px;background:#3b82f6;color:#fff;border-radius:8px}[data-scada-theme] .event-card-body[data-v-7d3281c0]{animation:slideDown-7d3281c0 .2s ease-out}[data-scada-theme] .event-index[data-v-7d3281c0]{font-size:12px;font-weight:600;color:#3b82f6}[data-scada-theme] .btn-remove[data-v-7d3281c0]{width:24px;height:24px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;line-height:1;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-7d3281c0]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .event-field[data-v-7d3281c0]{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}[data-scada-theme] .event-field[data-v-7d3281c0]:last-child{margin-bottom:0}[data-scada-theme] .event-field label[data-v-7d3281c0]{font-size:11px;color:#cbd5e1;font-weight:500}[data-scada-theme] .event-field input[data-v-7d3281c0],[data-scada-theme] .event-field select[data-v-7d3281c0],[data-scada-theme] .event-field textarea[data-v-7d3281c0]{width:100%;padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px;transition:all .2s}[data-scada-theme] .event-field input[data-v-7d3281c0]:focus,[data-scada-theme] .event-field select[data-v-7d3281c0]:focus,[data-scada-theme] .event-field textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}[data-scada-theme] .field-hint[data-v-7d3281c0]{font-size:11px;color:#64748b;margin-top:2px}[data-scada-theme] .condition-group[data-v-7d3281c0]{background:#1e293b;border-radius:4px;padding:12px;margin-bottom:12px}[data-scada-theme] .config-section[data-v-7d3281c0]{margin-top:16px;padding:12px;background:#0f172a;border-radius:4px}[data-scada-theme] .section-title[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-top:12px;margin-bottom:8px;font-weight:500}[data-scada-theme] .section-title[data-v-7d3281c0]:first-child{margin-top:0}[data-scada-theme] .btn-config[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer;font-size:13px;transition:all .2s}[data-scada-theme] .btn-config[data-v-7d3281c0]:hover{background:#334155;border-color:#3b82f6}[data-scada-theme] .condition-config[data-v-7d3281c0]{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:12px;background:#1e293b;border-radius:4px}[data-scada-theme] .condition-label[data-v-7d3281c0]{font-size:12px;color:#cbd5e1}[data-scada-theme] .condition-select[data-v-7d3281c0],[data-scada-theme] .condition-input[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .condition-select[data-v-7d3281c0]:focus,[data-scada-theme] .condition-input[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .event-title[data-v-7d3281c0]{font-size:14px;font-weight:600;color:#e2e8f0}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:pointer;transition:all .2s}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .trigger-rule-select[data-v-7d3281c0]:hover{border-color:#475569}[data-scada-theme] .code-textarea[data-v-7d3281c0]{width:100%;padding:12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;font-family:Consolas,Monaco,Courier New,monospace;resize:vertical;min-height:120px;line-height:1.6;transition:all .2s}[data-scada-theme] .code-textarea[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .dialog-overlay[data-v-7d3281c0]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn-7d3281c0 .2s}[data-scada-theme] .dialog-content[data-v-7d3281c0]{background:#1e293b;border-radius:8px;width:90%;max-width:800px;box-shadow:0 20px 25px -5px #00000080,0 10px 10px -5px #0000004d;animation:slideUp-7d3281c0 .3s}[data-scada-theme] .dialog-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-7d3281c0]{font-size:18px;font-weight:600;color:#e2e8f0;margin:0}[data-scada-theme] .btn-close[data-v-7d3281c0]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-7d3281c0]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-7d3281c0]{padding:24px;max-height:60vh;overflow-y:auto}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar{width:8px}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}[data-scada-theme] .dialog-body[data-v-7d3281c0]::-webkit-scrollbar-corner{background:#0f172a}[data-scada-theme] .btn-add-group[data-v-7d3281c0]{width:100%;padding:10px 16px;background:#1e293b;border:1px dashed #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:14px;transition:all .2s;margin-bottom:16px}[data-scada-theme] .btn-add-group[data-v-7d3281c0]:hover{background:#334155;border-color:#3b82f6;color:#e2e8f0}[data-scada-theme] .attribute-group[data-v-7d3281c0]{margin-bottom:12px;padding:16px;background:#0f172a;border-radius:4px;border:1px solid #334155}[data-scada-theme] .group-row[data-v-7d3281c0]{display:grid;grid-template-columns:1.5fr 2fr auto;gap:12px;align-items:end}[data-scada-theme] .group-field[data-v-7d3281c0]{display:flex;flex-direction:column;gap:6px}[data-scada-theme] .group-field label[data-v-7d3281c0]{font-size:12px;color:#94a3b8;font-weight:500}[data-scada-theme] .group-field input[data-v-7d3281c0],[data-scada-theme] .group-field select[data-v-7d3281c0]{width:100%;padding:8px 12px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;transition:all .2s}[data-scada-theme] .group-field input[data-v-7d3281c0]:focus,[data-scada-theme] .group-field select[data-v-7d3281c0]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}[data-scada-theme] .group-field-value .color-input-wrapper[data-v-7d3281c0]{display:flex;align-items:center;gap:8px}[data-scada-theme] .group-field-value .color-input-wrapper input[type=color][data-v-7d3281c0]{width:60px;height:36px}[data-scada-theme] .btn-delete-group[data-v-7d3281c0]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:18px;transition:all .2s}[data-scada-theme] .btn-delete-group[data-v-7d3281c0]:hover{background:#ef4444;border-color:#ef4444;color:#fff}[data-scada-theme] .dialog-large[data-v-7d3281c0]{max-width:1200px;height:80vh;display:flex;flex-direction:column}[data-scada-theme] .dialog-body-split[data-v-7d3281c0]{display:grid;grid-template-columns:1fr 1fr;gap:20px;flex:1;overflow:hidden}[data-scada-theme] .code-editor-section[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .code-textarea-full[data-v-7d3281c0]{flex:1;resize:none;height:100%!important}[data-scada-theme] .section-header[data-v-7d3281c0]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-7d3281c0]{font-size:14px;color:#cbd5e1;font-weight:600}[data-scada-theme] .preview-status[data-v-7d3281c0]{font-size:13px;font-weight:500}[data-scada-theme] .status-success[data-v-7d3281c0]{color:#10b981}[data-scada-theme] .status-error[data-v-7d3281c0]{color:#ef4444}[data-scada-theme] .btn-test[data-v-7d3281c0]{padding:6px 16px;background:#10b981;border:1px solid #10b981;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;transition:all .2s}[data-scada-theme] .btn-test[data-v-7d3281c0]:hover{background:#059669;border-color:#059669}[data-scada-theme] .btn-clear[data-v-7d3281c0]{padding:4px 12px;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;font-size:12px;transition:all .2s}[data-scada-theme] .btn-clear[data-v-7d3281c0]:hover{background:#334155;color:#cbd5e1}[data-scada-theme] .code-preview-section[data-v-7d3281c0]{display:flex;flex-direction:column;gap:12px;height:100%}[data-scada-theme] .preview-canvas[data-v-7d3281c0]{flex:1;background:#0f172a;border:1px solid #334155;border-radius:4px;overflow:hidden;display:flex;flex-direction:column}[data-scada-theme] .node-preview[data-v-7d3281c0]{flex:1;position:relative;min-height:300px}[data-scada-theme] .console-output[data-v-7d3281c0]{max-height:150px;background:#020617;border-top:1px solid #334155;padding:12px;overflow-y:auto}[data-scada-theme] .console-title[data-v-7d3281c0]{font-size:12px;color:#94a3b8;margin-bottom:8px;font-weight:500}[data-scada-theme] .console-logs[data-v-7d3281c0]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .preview-empty[data-v-7d3281c0]{display:flex;align-items:center;justify-content:center;height:100%;color:#64748b;font-size:14px;text-align:center;padding:20px}[data-scada-theme] .preview-error-box[data-v-7d3281c0]{padding:20px;height:100%;overflow-y:auto}[data-scada-theme] .error-title[data-v-7d3281c0]{font-size:13px;color:#ef4444;margin-bottom:12px;font-weight:500}[data-scada-theme] .preview-node-container[data-v-7d3281c0]{height:100%;display:flex;flex-direction:column}[data-scada-theme] .log-item[data-v-7d3281c0]{font-family:Consolas,Monaco,monospace;font-size:12px;color:#e2e8f0;margin-bottom:4px;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .log-item[data-v-7d3281c0]:last-child{margin-bottom:0}[data-scada-theme] .error-message[data-v-7d3281c0]{background:#450a0a;border:1px solid #7f1d1d;border-radius:4px;padding:12px;font-family:Consolas,Monaco,monospace;font-size:12px;color:#fca5a5;white-space:pre-wrap;word-break:break-all}[data-scada-theme] .dialog-footer[data-v-7d3281c0]{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;border-top:1px solid #334155}[data-scada-theme] .btn-cancel[data-v-7d3281c0],[data-scada-theme] .btn-confirm[data-v-7d3281c0]{padding:8px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-cancel[data-v-7d3281c0]{background:transparent;border:1px solid #475569;color:#cbd5e1}[data-scada-theme] .btn-cancel[data-v-7d3281c0]:hover{background:#334155}[data-scada-theme] .btn-confirm[data-v-7d3281c0]{background:#3b82f6;border:1px solid #3b82f6;color:#fff}[data-scada-theme] .btn-confirm[data-v-7d3281c0]:hover{background:#2563eb;border-color:#2563eb}@keyframes slideUp-7d3281c0{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}[data-scada-theme] .scada-footer[data-v-52b6d4b1]{height:32px;background:#1e293b;border-top:1px solid #0f3460;display:flex;align-items:center;padding:0 32px;flex-shrink:0}[data-scada-theme] .footer-content[data-v-52b6d4b1]{width:100%;display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .footer-left[data-v-52b6d4b1],[data-scada-theme] .footer-right[data-v-52b6d4b1]{display:flex;align-items:center;gap:12px}[data-scada-theme] .copyright[data-v-52b6d4b1],[data-scada-theme] .license[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .divider[data-v-52b6d4b1]{color:#475569!important;font-size:12px}[data-scada-theme] .contact-item[data-v-52b6d4b1]{display:flex;align-items:center;gap:4px}[data-scada-theme] .contact-item .icon[data-v-52b6d4b1]{font-size:12px}[data-scada-theme] .contact-item .text[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .contact-item .text[data-v-52b6d4b1]:hover{color:#3b82f6!important;cursor:pointer}[data-scada-theme] .authorized-icon[data-v-52b6d4b1]{font-size:14px;margin-right:6px}[data-scada-theme] .authorized-text[data-v-52b6d4b1]{font-size:12px;color:#10b981!important;font-weight:500}[data-scada-theme] .expiry-text[data-v-52b6d4b1]{font-size:12px;color:#94a3b8!important}[data-scada-theme] .element-selector-overlay[data-v-882704dd]{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000}[data-scada-theme] .element-selector-dialog[data-v-882704dd]{width:600px;max-height:80vh;background:#1e293b;border-radius:8px;display:flex;flex-direction:column;box-shadow:0 4px 24px #0000004d}[data-scada-theme] .dialog-header[data-v-882704dd]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #334155}[data-scada-theme] .dialog-header h3[data-v-882704dd]{margin:0;font-size:16px;font-weight:600;color:#e2e8f0}[data-scada-theme] .btn-close[data-v-882704dd]{width:28px;height:28px;background:transparent;border:none;color:#94a3b8;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-882704dd]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .dialog-body[data-v-882704dd]{flex:1;padding:20px;display:flex;flex-direction:column;gap:16px;overflow:hidden}[data-scada-theme] .search-box input[data-v-882704dd]{width:100%;padding:10px 14px;background:#0f172a;border:1px solid #334155;border-radius:6px;color:#e2e8f0;font-size:14px}[data-scada-theme] .search-box input[data-v-882704dd]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .element-list[data-v-882704dd]{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px}[data-scada-theme] .element-item[data-v-882704dd]{display:flex;align-items:center;gap:12px;padding:12px;background:#0f172a;border:2px solid #334155;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .element-item[data-v-882704dd]:hover{border-color:#3b82f6;background:#1e293b}[data-scada-theme] .element-item.active[data-v-882704dd]{border-color:#3b82f6;background:#3b82f61a}[data-scada-theme] .element-icon[data-v-882704dd]{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#3b82f61a;border-radius:6px;font-size:20px;flex-shrink:0}[data-scada-theme] .element-info[data-v-882704dd]{flex:1}[data-scada-theme] .element-name[data-v-882704dd]{font-size:14px;font-weight:500;color:#e2e8f0;margin-bottom:4px}[data-scada-theme] .element-type[data-v-882704dd]{font-size:12px;color:#94a3b8}[data-scada-theme] .element-check[data-v-882704dd]{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#3b82f6;border-radius:50%;color:#fff;font-size:14px;font-weight:700}[data-scada-theme] .empty-state[data-v-882704dd]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#64748b;padding:40px 20px}[data-scada-theme] .empty-state p[data-v-882704dd]{margin:0;font-size:14px}[data-scada-theme] .empty-hint[data-v-882704dd]{margin-top:8px;font-size:12px;color:#475569}[data-scada-theme] .dialog-footer[data-v-882704dd]{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #334155}[data-scada-theme] .btn-secondary[data-v-882704dd],[data-scada-theme] .btn-primary[data-v-882704dd]{padding:8px 20px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-882704dd]{background:#334155;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-882704dd]:hover{background:#475569}[data-scada-theme] .btn-primary[data-v-882704dd]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-primary[data-v-882704dd]:hover{background:#2563eb}[data-scada-theme] .btn-primary[data-v-882704dd]:disabled{background:#475569;cursor:not-allowed;opacity:.5}[data-scada-theme] .node-config[data-v-fa65eb56]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-fa65eb56]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-fa65eb56]{font-size:13px;color:#94a3b8}[data-scada-theme] .element-selector[data-v-fa65eb56]{display:flex;gap:8px}[data-scada-theme] .element-selector input[data-v-fa65eb56]{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:not-allowed}[data-scada-theme] .btn-select[data-v-fa65eb56]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}[data-scada-theme] .btn-select[data-v-fa65eb56]:hover{background:#2563eb}[data-scada-theme] .element-info[data-v-fa65eb56]{font-size:12px;color:#10b981;margin-top:-4px}[data-scada-theme] .config-group input[data-v-fa65eb56],[data-scada-theme] .config-group textarea[data-v-fa65eb56],[data-scada-theme] .config-group select[data-v-fa65eb56]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-fa65eb56]:focus,[data-scada-theme] .config-group textarea[data-v-fa65eb56]:focus,[data-scada-theme] .config-group select[data-v-fa65eb56]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-42e029d4]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-42e029d4]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-42e029d4]{font-size:13px;color:#94a3b8}[data-scada-theme] .element-selector[data-v-42e029d4]{display:flex;gap:8px}[data-scada-theme] .element-selector input[data-v-42e029d4]{flex:1;padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;cursor:not-allowed}[data-scada-theme] .btn-select[data-v-42e029d4]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:13px;cursor:pointer;transition:all .2s;white-space:nowrap}[data-scada-theme] .btn-select[data-v-42e029d4]:hover{background:#2563eb}[data-scada-theme] .element-info[data-v-42e029d4]{font-size:12px;color:#10b981;margin-top:-4px}[data-scada-theme] .config-group input[data-v-42e029d4],[data-scada-theme] .config-group textarea[data-v-42e029d4],[data-scada-theme] .config-group select[data-v-42e029d4]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-42e029d4]:focus,[data-scada-theme] .config-group textarea[data-v-42e029d4]:focus,[data-scada-theme] .config-group select[data-v-42e029d4]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-15975920]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-15975920]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-15975920]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-15975920],[data-scada-theme] .config-group textarea[data-v-15975920],[data-scada-theme] .config-group select[data-v-15975920]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-15975920]:focus,[data-scada-theme] .config-group textarea[data-v-15975920]:focus,[data-scada-theme] .config-group select[data-v-15975920]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .branches-section[data-v-15975920]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .section-header[data-v-15975920]{display:flex;justify-content:space-between;align-items:center}[data-scada-theme] .section-header label[data-v-15975920]{font-size:13px;color:#94a3b8;font-weight:500}[data-scada-theme] .btn-add[data-v-15975920]{padding:4px 12px;background:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-add[data-v-15975920]:hover{background:#2563eb}[data-scada-theme] .branch-list[data-v-15975920]{display:flex;flex-direction:column;gap:12px}[data-scada-theme] .branch-item[data-v-15975920]{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:12px}[data-scada-theme] .branch-header[data-v-15975920]{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}[data-scada-theme] .branch-number[data-v-15975920]{font-size:12px;color:#3b82f6;font-weight:500}[data-scada-theme] .btn-remove[data-v-15975920]{width:20px;height:20px;background:#ef4444;color:#fff;border:none;border-radius:50%;font-size:16px;line-height:1;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}[data-scada-theme] .btn-remove[data-v-15975920]:hover{background:#dc2626}[data-scada-theme] .branch-config[data-v-15975920]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-row[data-v-15975920]{display:flex;flex-direction:column;gap:4px}[data-scada-theme] .config-row label[data-v-15975920]{font-size:12px;color:#94a3b8}[data-scada-theme] .config-row input[data-v-15975920],[data-scada-theme] .config-row select[data-v-15975920]{padding:6px 10px;background:#1e293b;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:12px}[data-scada-theme] .config-row input[data-v-15975920]:focus,[data-scada-theme] .config-row select[data-v-15975920]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .default-branch-label[data-v-15975920]{font-size:12px;color:#94a3b8;text-align:center;padding:8px;background:#1e293b;border-radius:4px}[data-scada-theme] .node-config[data-v-4c312eea]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-4c312eea]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-4c312eea]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-4c312eea],[data-scada-theme] .config-group textarea[data-v-4c312eea],[data-scada-theme] .config-group select[data-v-4c312eea]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-4c312eea]:focus,[data-scada-theme] .config-group textarea[data-v-4c312eea]:focus,[data-scada-theme] .config-group select[data-v-4c312eea]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .config-group textarea[data-v-4c312eea]{resize:vertical;font-family:Consolas,Monaco,monospace}[data-scada-theme] .node-config[data-v-f7115383]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-f7115383]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-f7115383]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group textarea[data-v-f7115383]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px;resize:vertical;font-family:Consolas,Monaco,monospace}[data-scada-theme] .config-group textarea[data-v-f7115383]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .code-hint[data-v-f7115383]{padding:12px;background:#3b82f61a;border-left:3px solid #3b82f6;border-radius:4px}[data-scada-theme] .code-hint p[data-v-f7115383]{margin:0 0 8px;font-size:13px;color:#94a3b8;font-weight:500}[data-scada-theme] .code-hint ul[data-v-f7115383]{margin:0;padding-left:20px}[data-scada-theme] .code-hint li[data-v-f7115383]{font-size:12px;color:#64748b;margin-bottom:4px}[data-scada-theme] .node-config[data-v-323381bc]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-323381bc]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-323381bc]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-323381bc],[data-scada-theme] .config-group select[data-v-323381bc]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-323381bc]:focus,[data-scada-theme] .config-group select[data-v-323381bc]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .node-config[data-v-d102fb63]{display:flex;flex-direction:column;gap:16px}[data-scada-theme] .config-group[data-v-d102fb63]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .config-group label[data-v-d102fb63]{font-size:13px;color:#94a3b8}[data-scada-theme] .config-group input[data-v-d102fb63],[data-scada-theme] .config-group select[data-v-d102fb63]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .config-group input[data-v-d102fb63]:focus,[data-scada-theme] .config-group select[data-v-d102fb63]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .timer-hint[data-v-d102fb63]{padding:12px;background:#faad141a;border-left:3px solid #faad14;border-radius:4px}[data-scada-theme] .timer-hint p[data-v-d102fb63]{margin:0;font-size:12px;color:#94a3b8}[data-scada-theme] .timer-hint.warning[data-v-d102fb63]{background:#ef44441a;border-left-color:#ef4444}[data-scada-theme] .property-panel[data-v-8304acbc]{width:300px;background:#1e293b;border-left:1px solid #334155;display:flex;flex-direction:column}[data-scada-theme] .property-panel h3[data-v-8304acbc]{margin:0;padding:16px;font-size:14px;font-weight:600;color:#e2e8f0;border-bottom:1px solid #334155}[data-scada-theme] .property-content[data-v-8304acbc]{padding:16px;display:flex;flex-direction:column;gap:16px;overflow-y:auto}[data-scada-theme] .property-group[data-v-8304acbc]{display:flex;flex-direction:column;gap:8px}[data-scada-theme] .property-group label[data-v-8304acbc]{font-size:13px;color:#94a3b8}[data-scada-theme] .property-group input[data-v-8304acbc],[data-scada-theme] .property-group textarea[data-v-8304acbc],[data-scada-theme] .property-group select[data-v-8304acbc]{padding:8px 12px;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;font-size:13px}[data-scada-theme] .property-group input[data-v-8304acbc]:focus,[data-scada-theme] .property-group textarea[data-v-8304acbc]:focus,[data-scada-theme] .property-group select[data-v-8304acbc]:focus{outline:none;border-color:#3b82f6}[data-scada-theme] .property-group input[data-v-8304acbc]:disabled{opacity:.5;cursor:not-allowed}[data-scada-theme] .property-empty[data-v-8304acbc]{flex:1;display:flex;align-items:center;justify-content:center;color:#64748b;font-size:13px}[data-scada-theme] .divider[data-v-8304acbc]{height:1px;background:#334155;margin:8px 0}[data-scada-theme] .toolbar[data-v-b3e0a4fc]{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#1e293b;border-bottom:1px solid #334155}[data-scada-theme] .toolbar-left[data-v-b3e0a4fc]{display:flex;align-items:center;gap:24px}[data-scada-theme] .toolbar-left h2[data-v-b3e0a4fc]{margin:0;font-size:18px;font-weight:600;color:#e2e8f0}[data-scada-theme] .toolbar-right[data-v-b3e0a4fc]{display:flex;gap:12px}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc],[data-scada-theme] .btn-primary[data-v-b3e0a4fc]{padding:8px 16px;border:none;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc]{background:#334155;color:#e2e8f0}[data-scada-theme] .btn-secondary[data-v-b3e0a4fc]:hover{background:#475569}[data-scada-theme] .btn-primary[data-v-b3e0a4fc]{background:#3b82f6;color:#fff}[data-scada-theme] .btn-primary[data-v-b3e0a4fc]:hover{background:#2563eb}[data-scada-theme] .btn-close[data-v-b3e0a4fc]{width:36px;height:36px;padding:0;background:transparent;border:1px solid #475569;border-radius:4px;color:#94a3b8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-left:8px}[data-scada-theme] .btn-close[data-v-b3e0a4fc]:hover{background:#475569;border-color:#64748b;color:#e2e8f0}[data-scada-theme] .close-icon[data-v-b3e0a4fc]{font-size:24px;line-height:1}[data-scada-theme] .menu-overlay[data-v-aa6fccf8]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0000004d;z-index:999}[data-scada-theme] .add-node-menu[data-v-aa6fccf8]{position:fixed;z-index:1000;background:#1e293b;border:1px solid #334155;border-radius:8px;box-shadow:0 4px 12px #0000004d;min-width:280px;max-width:320px}[data-scada-theme] .menu-header[data-v-aa6fccf8]{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #334155;color:#e2e8f0;font-size:14px;font-weight:600}[data-scada-theme] .btn-close[data-v-aa6fccf8]{width:24px;height:24px;background:transparent;border:none;color:#94a3b8;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}[data-scada-theme] .btn-close[data-v-aa6fccf8]:hover{background:#334155;color:#e2e8f0}[data-scada-theme] .menu-list[data-v-aa6fccf8]{padding:8px}[data-scada-theme] .menu-item[data-v-aa6fccf8]{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:all .2s}[data-scada-theme] .menu-item[data-v-aa6fccf8]:hover{background:#334155}[data-scada-theme] .menu-item-icon[data-v-aa6fccf8]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:6px;font-size:18px;flex-shrink:0}[data-scada-theme] .node-icon-getProperty[data-v-aa6fccf8]{background:#1890ff1a}[data-scada-theme] .node-icon-setProperty[data-v-aa6fccf8]{background:#13c2c21a}[data-scada-theme] .node-icon-condition[data-v-aa6fccf8]{background:#faad141a}[data-scada-theme] .node-icon-httpRequest[data-v-aa6fccf8]{background:#722ed11a}[data-scada-theme] .node-icon-customCode[data-v-aa6fccf8]{background:#eb2f961a}[data-scada-theme] .node-icon-timer[data-v-aa6fccf8]{background:#52c41a1a}[data-scada-theme] .node-icon-clearTimer[data-v-aa6fccf8]{background:#ff4d4f1a}[data-scada-theme] .menu-item-info[data-v-aa6fccf8]{flex:1}[data-scada-theme] .menu-item-name[data-v-aa6fccf8]{font-size:14px;color:#e2e8f0;font-weight:500}[data-scada-theme] .menu-item-desc[data-v-aa6fccf8]{font-size:12px;color:#94a3b8;margin-top:2px}[data-scada-theme] .workflow-editor[data-v-649349a2]{display:flex;flex-direction:column;height:100vh;background:#0f172a;color:#e2e8f0}[data-scada-theme] .editor-main[data-v-649349a2]{display:flex;flex:1;overflow:hidden}[data-scada-theme] .canvas-area[data-v-649349a2]{flex:1;position:relative;overflow:hidden;background:#0f172a}[data-scada-theme] #workflow-container[data-v-649349a2]{width:100%;height:100%}[data-scada-theme] .workflow-dialog-overlay[data-v-4e7f6ab7]{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;z-index:9999;display:flex;align-items:center;justify-content:center}[data-scada-theme] .workflow-dialog[data-v-4e7f6ab7]{width:100vw;height:100vh;background:#0f172a;overflow:hidden}.scada-layout[data-v-3a288b48]{width:100%;height:100%;min-height:100vh;display:flex;flex-direction:column;background:#1a1a2e}[data-scada-theme] .scada-canvas-container[data-v-3a288b48]{flex:1;display:flex;background:#0f172a;overflow:hidden;min-height:0}[data-scada-theme][data-v-3a288b48] .x6-node-selected{outline:2px solid #3b82f6;outline-offset:2px;box-shadow:0 0 0 4px #3b82f626,0 0 12px #3b82f64d;transition:outline .15s ease,box-shadow .15s ease}[data-scada-theme][data-v-3a288b48] .x6-node-selected rect,[data-scada-theme][data-v-3a288b48] .x6-node-selected circle,[data-scada-theme][data-v-3a288b48] .x6-node-selected ellipse{filter:brightness(1.05)}.scada-toast{position:fixed;top:20px;left:50%;transform:translate(-50%) translateY(-100px);padding:12px 24px;border-radius:6px;color:#fff;font-size:14px;font-weight:500;box-shadow:0 4px 12px #0000004d;z-index:9999;opacity:0;transition:all .3s ease;pointer-events:none}.scada-toast.show{transform:translate(-50%) translateY(0);opacity:1}.scada-toast-success{background:linear-gradient(135deg,#10b981,#059669)}.scada-toast-error{background:linear-gradient(135deg,#ef4444,#dc2626)}.scada-toast-warning{background:linear-gradient(135deg,#f59e0b,#d97706)}@keyframes edge-flow-3a288b48{0%{stroke-dashoffset:0}to{stroke-dashoffset:-100}}[data-scada-theme][data-v-3a288b48] .x6-edge path{transition:stroke .3s ease,stroke-width .3s ease}[data-scada-theme][data-v-3a288b48] .edge-flow-slow{animation:edge-flow-3a288b48 4s linear infinite}[data-scada-theme][data-v-3a288b48] .edge-flow-normal{animation:edge-flow-3a288b48 2s linear infinite}[data-scada-theme][data-v-3a288b48] .edge-flow-fast{animation:edge-flow-3a288b48 1s linear infinite}.scada-layout[data-scada-theme=dark]{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;-webkit-font-smoothing:antialiased!important;-moz-osx-font-smoothing:grayscale!important;color:#e2e8f0!important;font-size:14px!important;line-height:1.5!important;box-sizing:border-box!important;margin:0!important;padding:0!important;border:none!important;display:flex!important;flex-direction:column!important;flex:1!important;width:100%!important;height:100%!important;min-height:100vh!important;background:#1a1a2e!important;overflow:hidden!important;position:relative!important}.scada-layout[data-scada-theme=dark] *,.scada-layout[data-scada-theme=dark] *:before,.scada-layout[data-scada-theme=dark] *:after{box-sizing:border-box!important;margin:0;padding:0}.scada-layout[data-scada-theme=dark]>*{box-sizing:border-box!important}.scada-layout[data-scada-theme=dark]>.scada-header,.scada-layout[data-scada-theme=dark]>.scada-footer{color:#e2e8f0!important;margin:0!important}.scada-layout[data-scada-theme=dark] .property-panel>.panel-header,.scada-layout[data-scada-theme=dark] .component-library>.library-header,.scada-layout[data-scada-theme=dark] .canvas-config-panel>.config-header{color:#e2e8f0!important;margin:0!important;padding:0!important}.scada-layout[data-scada-theme=dark] .scada-header h1,.scada-layout[data-scada-theme=dark] .scada-header h2,.scada-layout[data-scada-theme=dark] .scada-header h3,.scada-layout[data-scada-theme=dark] .scada-header h4{color:#e2e8f0!important;margin:0!important;padding:0!important;font-weight:600!important}.scada-layout[data-scada-theme=dark] .canvas-area input:not([class*=ant-]):not([type=range]):not([type=color]):not([type=checkbox]),.scada-layout[data-scada-theme=dark] .canvas-area select:not([class*=ant-]),.scada-layout[data-scada-theme=dark] .canvas-area textarea:not([class*=ant-]),.scada-layout[data-scada-theme=dark] .canvas-area button:not([class*=ant-]){-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;outline:none!important;border:none!important;background:none!important;margin:0!important;padding:0!important;color:inherit!important;font-family:inherit!important;font-size:inherit!important}.scada-layout[data-scada-theme=dark] .canvas-area label,.scada-layout[data-scada-theme=dark] .canvas-area span,.scada-layout[data-scada-theme=dark] .canvas-area p,.scada-layout[data-scada-theme=dark] .canvas-area div{color:inherit!important;font-family:inherit!important;line-height:normal!important}.scada-layout[data-scada-theme] ::-webkit-scrollbar{width:8px;height:8px}.scada-layout[data-scada-theme] ::-webkit-scrollbar-track{background:#0f172a;border-radius:4px}.scada-layout[data-scada-theme] ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#475569,#334155);border-radius:4px;border:2px solid #0f172a;transition:background .2s}.scada-layout[data-scada-theme] ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#3b82f6,#2563eb)}.scada-layout[data-scada-theme] ::-webkit-scrollbar-corner{background:#0f172a}.scada-layout .x6-node-selected rect{stroke:#3b82f6!important;stroke-width:2!important;filter:drop-shadow(0 0 8px rgba(59,130,246,.6))!important}.scada-layout .x6-edge-selected path{stroke:#3b82f6!important;stroke-width:3!important}.scada-layout .x6-widget-selection-box{border:2px solid #3b82f6!important;background-color:#3b82f61a!important}.scada-layout[data-scada-theme] input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:linear-gradient(90deg,#475569,#334155);border-radius:2px;outline:none;opacity:.9;transition:opacity .2s}.scada-layout[data-scada-theme] input[type=range]:hover{opacity:1}.scada-layout[data-scada-theme] input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#8b5cf6;border-radius:50%;cursor:pointer;border:2px solid #0f172a;box-shadow:0 0 8px #8b5cf699;transition:all .2s}.scada-layout[data-scada-theme] input[type=range]::-webkit-slider-thumb:hover{background:#a78bfa;box-shadow:0 0 12px #8b5cf6cc;transform:scale(1.1)}.scada-layout[data-scada-theme] input[type=range]::-moz-range-thumb{width:16px;height:16px;background:#8b5cf6;border-radius:50%;cursor:pointer;border:2px solid #0f172a;box-shadow:0 0 8px #8b5cf699;transition:all .2s}.scada-layout[data-scada-theme] input[type=range]::-moz-range-thumb:hover{background:#a78bfa;box-shadow:0 0 12px #8b5cf6cc;transform:scale(1.1)}